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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

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!