30.01.2015 Views

ILOG CPLEX C++ API 9.0 Reference Manual

ILOG CPLEX C++ API 9.0 Reference Manual

ILOG CPLEX C++ API 9.0 Reference Manual

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

IloCplex::GoalI<br />

public IloBool isIntegerFeasible()<br />

This method returns IloTrue if the solution of the current node is integer feasible.<br />

public IloBool isSOSFeasible(const IloSOS2 sos2)<br />

This method returns IloTrue if the solution of the current node is SOS feasible for the<br />

special ordered set indicated in its argument. The SOS passed as a parameter to this<br />

method must be of type 2; the equivalent method for an SOS of type 1 is also available.<br />

See the User's <strong>Manual</strong> for more about these types of special ordered sets.<br />

public IloBool isSOSFeasible(const IloSOS1 sos1)<br />

This method returns IloTrue if the solution of the current node is SOS feasible for the<br />

special ordered set indicated in its argument. The SOS passed as a parameter to this<br />

method must be of type 1; the equivalent method for an SOS of type 2 is also available.<br />

See the User's <strong>Manual</strong> for more about these types of special ordered sets.<br />

public static IloCplex::Goal OrGoal(IloCplex::Goal goal1,<br />

IloCplex::Goal goal2)<br />

The static methods OrGoal all return a goal that creates as many branches (or,<br />

equivalently, subproblems) as there are parameters. Each of the subnodes will be<br />

initialized with the remaining goal stack of the current node. In addition, the goal<br />

parameter will be pushed on the goal stack of the corresponding subgoal. If more than<br />

six branches need to be created, instances of OrGoal can be combined.<br />

public static IloCplex::Goal SolutionGoal(const IloIntVarArray vars,<br />

const IloNumArray vals)<br />

This static method creates and returns a goal that attempts to inject a solution specified<br />

by setting the variables listed in array vars to the corresponding values listed in the<br />

array vals.<br />

IloCplex will not blindly accept such a solution as a new incumbent. Instead, it will<br />

make sure that this solution is compatible with both the model and the goals. When<br />

checking feasibility with goals, it checks feasibility with both the goals that have already<br />

been executed and the goals that are still on the goal stack. Thus, in particular,<br />

IloCplex will reject any solution that is not compatible with the branching that has<br />

been done so far.<br />

IloCplex takes over memory managment for arrays vars and vals passed to<br />

SolutionGoal. Thus IloCplex will call method end for these arrays as soon as<br />

they can be discarded. Calling end for the arrays passed to SolutionGoal is an<br />

error and must be avoided.<br />

public static IloCplex::Goal SolutionGoal(const IloNumVarArray vars,<br />

const IloNumArray vals)<br />

This static method creates and returns a goal that attempts to inject a solution specified<br />

by setting the variables listed in array vars to the corresponding values listed in the<br />

array vals.<br />

<strong>ILOG</strong> <strong>CPLEX</strong> <strong>C++</strong> <strong>API</strong> <strong>9.0</strong> REFERENCE M ANUAL 146

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!