Skip to main content

Fixed Dest Multi Move

Like Fixed Dest, but moves sets of related objects together rather than one object at a time. For each equivalent set of objects in the hot container, it evaluates moving the whole set into a single, fixed destination container.

Each set of related objects in the source container is evaluated for moving together into one fixed destination container

Parameters

ParameterTypeRequiredDefaultDescription
maxSamplesPerEquivSetintNo5Number of object samples selected for each equivalent set (higher gives better quality for on-demand equivalent sets)
specialContainerstringNo-The fixed destination container the object sets are moved into
rasLocalSearchMetadataRasLocalSearchMetadataNo-Optional metadata used by RAS local search

Behavior

Given the hot container and a fixed destination, the move type groups the source objects into equivalent sets, samples up to maxSamplesPerEquivSet objects from each set, and evaluates moving each set together into the destination, applying the best improving move.

Complexity

Proportional to the number of equivalent sets times maxSamplesPerEquivSet, since the destination is fixed.

Example

Configure local search to use only the fixed dest multi move type:

FixedDestMultiMoveTypeSpec fixedDestMulti;
fixedDestMulti.specialContainer() = "container1";

LocalSearchSolverSpec localSearch;
localSearch.moveTypeList()->push_back(
ProblemSolver::makeMoveTypeSpec(fixedDestMulti));

solver.addSolver(localSearch);

(source)