ILOG CPLEX 11.0 User's Manual > Advanced Programming Techniques > Using Goals > Branch & Cut with Goals > How Goals Are Implemented in Branch & Cut

Note
The discussion of the details of using goals will be presented mainly in terms of the C++ API. The Java and .NET APIs follow the same design and are thus equivalent at this level of discussion. In cases where a difference between these APIs needs to be observed, the point will be raised. Where the difference is only in syntax, the other syntax will be mentioned in parentheses following the C++ syntax.

In C++, goals are implemented in objects of type IloCplex::GoalI (having handle class IloCplex::Goal). In Java, goals are implemented in objects of type IloCplex.Goal (and there are no handle classes). In .NET, goals are implemented by the class Cplex.Goal. The method IloCplex::GoalI::execute (IloCplex.Goal.execute) is where the control is implemented. This method is called by IloCplex after a node relaxation has been solved and all cuts have been added. Invoking the method execute of a goal is often referred to as executing a goal. When the method execute is executed, other methods of the class IloCplex::GoalI (IloCplex.Goal or Cplex.Goal) can be called to query information about the current node problem and the solution of its relaxation.