Class CartesianProductMoveSelector<Solution_>

All Implemented Interfaces:
Iterable<Move<Solution_>>, EventListener, IterableSelector<Solution_,Move<Solution_>>, MoveSelector<Solution_>, Selector<Solution_>, PhaseLifecycleListener<Solution_>, SolverLifecycleListener<Solution_>

public class CartesianProductMoveSelector<Solution_> extends CompositeMoveSelector<Solution_>
A CompositeMoveSelector that Cartesian products 2 or more MoveSelectors.

For example: a Cartesian product of {A, B, C} and {X, Y} will result in {AX, AY, BX, BY, CX, CY}.

Warning: there is no duplicated Move check, so union of {A, B} and {B} will result in {AB, BB}.

See Also: