FRAMES NO FRAMES

IloSplit

public IloGoal IloSplit(const IloEnv env, const IloNumVarArray vars, IloBool increaseMinFirst=IloTrue, IloNum precision=0)
Definition file: ilsolver/ilosolverint.h
Include file: <ilsolver/ilosolver.h>

This function creates and returns a goal in a Concert Technology model. The goal attempts to assign values to the constrained floating-point variables in the array vars. To do so, IloSplit scans the variables from the first to the last and repeats its procedure until all the variables are bound.

At each step of the scan, if the current variable is not yet bound, IloSplit sets a choice point, replaces the domain of the current variable by one of the halves, and examines the next variable.

For example, IloSplit starts with the first variable; if the first variable has not already been bound, IloSplit sets a choice point, then replaces the domain of that variable by one of the halves; IloSplit then examines the second variable. In contrast, if the first variable has already been bound, IloSplit examines the second variable directly.

When the argument increaseMin is IloTrue, the upper half of the domain is tried first. When increaseMin is IloFalse, the lower half of the domain is tried first.

When the optional argument precision is strictly positive, at each choice point, the domains of the variables are reduced more than usual. This reduction is the same as the one performed by the goal IloGenerateBounds.

This function returns an instance of IloGoal for use with the member functions IloSolver::startNewSearch and IloSolver::solve. IloSplit is extracted to IlcSplit. An instance of IloSolver extracts the goal that it returns as an instance of IlcGoal for use during a Solver search.

This function works on numerical variables of type Float and type Int.

For an IloNumVarArray, IloSplit is extracted to IlcSplit. IlcSplit differs from IlcGenerate in the way the variables are chosen. IlcSplit considers first the first variable in the array then the second one and so on. When it reaches the end of the array it starts again from the beginning.

See Also: