12.07.2015 Views

ILOG CPLEX 11.0 User's Manual

ILOG CPLEX 11.0 User's Manual

ILOG CPLEX 11.0 User's 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.

current node. Thus, if the relaxation remains feasible after the variable fixings have beenadded, the feasibility of these goals is certain.If at that point the goal stack is not empty, the goals on the goal stack need to be checked forfeasibility as well. Thus by continuing to execute the goals from the goal stack,<strong>ILOG</strong> <strong>CPLEX</strong> will either prove feasibility of the solution with respect to the remaining goalsor, in case the relaxation becomes infeasible, decide it really is infeasible and discard thesolution. The rest of the branch & cut search remains unaffected by all of this.The benefit of this approach is that your heuristic need not be aware of the entire modelincluding all its parts that might be implemented via goals. Your heuristic can still safely beused, as <strong>ILOG</strong> <strong>CPLEX</strong> will make sure of feasibility for the entire model. However, there aresome performance considerations to observe. If parts of the model specified with goals aredominant, heuristic solutions you generate might need to be rejected so frequently that youdo not get enough payoff for the work of running the heuristic. Also, your heuristic shouldaccount for the global and local cuts that have been added at the node where you run yourheuristic so that a solution candidate is not rejected right away and the work wasted.Controlling Goal-Defined SearchSo far, you have seen how to control the branching and cut generation of <strong>ILOG</strong> <strong>CPLEX</strong>branch & cut search. The remaining missing piece is the node selection strategy. The nodeselection strategy sets which of the active nodes in the tree <strong>ILOG</strong> <strong>CPLEX</strong> chooses when itselects the next node for processing. <strong>ILOG</strong> <strong>CPLEX</strong> has several built-in node selectionstrategies, selected through the parameter NodeSel (CPX_PARAM_NODESEL).When you use goal-controlled search, you use node evaluators to override the built-in nodeselection strategy. You combine a goal with a node evaluator by calling the methodIloCplex::Goal::Apply (IloCplex.apply or Cplex.Apply). This method returns anew goal that implements the same search strategy as the goal passed as the argument, butadds the node evaluator to every node in the subtree defined by the goal. Consequently,nodes may have a list of evaluators attached to them.When node evaluators are used, nodes are selected like this:1. <strong>ILOG</strong> <strong>CPLEX</strong> starts to choose the node with the built-in strategy as a first candidate.2. Then <strong>ILOG</strong> <strong>CPLEX</strong> loops over all remaining active nodes and considers choosing theminstead.3. If a node has the same evaluator attached to it as the current candidate, the evaluator isasked whether this node should take precedence over the current candidate. If theresponse is positive, the node under investigation becomes the new candidate, and thetest against other nodes continues.440 <strong>ILOG</strong> <strong>CPLEX</strong> <strong>11.0</strong> — USER’ S MANUAL

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

Saved successfully!

Ooh no, something went wrong!