import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import org.jacop.constraints.Constraint;
import org.jacop.constraints.DecomposedConstraint;
import org.jacop.constraints.DecomposedConstraintCloneableInterface;
import org.jacop.constraints.InCloneable;
import org.jacop.constraints.XeqCCloneable;
import org.jacop.core.IntVarCloneable;
import org.jacop.core.IntervalDomain;
import org.jacop.core.SmallDenseDomain;
import org.jacop.core.StoreCloneable;
import org.jacop.core.ValueEnumeration;
import org.jacop.core.Var;
import frodo2.algorithms.AbstractProblem;
import frodo2.solutionSpaces.Addable;
import frodo2.solutionSpaces.AddableInteger;
import frodo2.solutionSpaces.BasicUtilitySolutionSpace;
import frodo2.solutionSpaces.DCOPProblemInterface;
import frodo2.solutionSpaces.ProblemInterface;
import frodo2.solutionSpaces.UtilitySolutionSpace;
import frodo2.solutionSpaces.UtilitySolutionSpace.SparseIterator;
import frodo2.solutionSpaces.hypercube.Hypercube.NullHypercube;
import frodo2.solutionSpaces.hypercube.ScalarHypercube;