FRAMES NO FRAMES

IloSelectSolutions

public IloPoolProc IloSelectSolutions(IloEnv env, IloSelector< IloSolution, IloSolutionPool > selector, IloBool unique=IloFalse)
Definition file: ilsolver/iimiloproc.h
Creates a pool processor which selects using a standard Solver selector.

This function creates a pool processor on the environment env which selects from its input by asking for successive selections from selector. Selectors can be built-in ones such as IloRandomSelector or ones created using the ILOSELECTOR0 or ILOCTXSELECTOR0 macros (or their variants). (See ILOSELECTOR0 for ILOCTXSELECTOR0 documentation.) You can specify if you would like selections to avoid duplicates using the parameter unique. Set this flag to IloTrue if the pool processor is not to produce duplicates in its output pool.

The following code uses ILOCTXSELECTOR1 to create a custom selector:

ILOCTXSELECTOR1(CustomSelector, IloSolution, IloSolutionPool, in,
                IloSolver, solver, IlcInt, tournamentSize) {
  IloInt size = in.getSize(); 
  if (size != 0) {
    IlcRandom rnd = solver.getRandom();
    IloSolution candidate = in.getSolution(rnd.getInt(size));
    for (IlcInt tournament = 1; tournament < tournamentSize; tournament++) {
      IloSolution competition = in.getSolution(rnd.getInt(size));
      if (competition.isBetterThan(candidate))
        candidate = competition;
    }
    select(candidate);
  }
}

If selector has been created from ILOCTXSELECTOR1, IloSelectSolutions will ensure that the context passed will be the instance of the IloSolver on which it is executing.

See Also: