import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.PriorityQueue;
import frodo2.solutionSpaces.Addable;
import frodo2.solutionSpaces.AddableInteger;
import frodo2.solutionSpaces.BasicUtilitySolutionSpace;
import frodo2.solutionSpaces.ProblemInterface;
import frodo2.solutionSpaces.SolutionSpace;
import frodo2.solutionSpaces.UtilitySolutionSpace;
import frodo2.solutionSpaces.UtilitySolutionSpaceLimited;
import frodo2.solutionSpaces.UtilitySolutionSpace.Iterator;
import frodo2.solutionSpaces.hypercube.BasicHypercube;
import frodo2.solutionSpaces.hypercube.BlindProjectOutput;
import frodo2.solutionSpaces.hypercube.ExpectationOutput;
import frodo2.solutionSpaces.hypercube.Hypercube;
import frodo2.solutionSpaces.hypercube.JoinOutputHypercube;
import frodo2.solutionSpaces.hypercube.ScalarBasicHypercube;
import frodo2.solutionSpaces.hypercube.ScalarHypercube;
import frodo2.solutionSpaces.hypercube.ScalarSpaceIter;
import frodo2.solutionSpaces.hypercube.Hypercube.NullHypercube;
import com.opsresearch.orobjects.lib.graph.DuplicateVertexException;
import com.opsresearch.orobjects.lib.graph.PointGraph;
import com.opsresearch.orobjects.lib.graph.VertexNotFoundException;
import com.opsresearch.orobjects.lib.graph.tsp.TwoOpt;
import com.opsresearch.orobjects.lib.graph.vrp.BestOf;
import com.opsresearch.orobjects.lib.graph.vrp.ClarkeWright;
import com.opsresearch.orobjects.lib.graph.vrp.Composite;
import com.opsresearch.orobjects.lib.graph.vrp.GillettMiller;
import com.opsresearch.orobjects.lib.graph.vrp.ImproveI;
import com.opsresearch.orobjects.lib.graph.vrp.ImproveWithTSP;
import com.opsresearch.orobjects.lib.graph.vrp.SolutionNotFoundException;
import com.opsresearch.orobjects.lib.graph.vrp.VRPException;