ILOG CPLEX .NET Reference Manual

Cplex.BranchCallback.MakeBranch Method (IConstraint[], Double)

Creates a child node for the current node by adding constraints to restrict its feasible domain.

protected virtual NodeId MakeBranch(
   IConstraint[] cuts,
   double objestimate
);

Parameters

cuts
The array of constraints that will be added to the current node in order to define the child node. All constraints must be linear.
objestimate
An estimate of the objective value at the subnode specified by this branch.

Return Value

The Cplex.NodeId of the created child node.

Remarks

This method or any of the other makeBranch methods can be called zero, one, or two times. Each time one of the makeBranch methods is called, a child node of the current node is created, thereby overriding the branch decision taken by the invoking Cplex object. It is an error to call one of the makeBranch methods more than twice. If no makeBranch method is called and the method prune is not called as well, the search is continued with the branching decision taken by the invoking Cplex object.

Each call specifies a branch; in other words, it instructs the invoking Cplex optimizer to create a subnode from the current node and indicates how to do so. This method specifies additional constraints that are added to the current node in order to define the child node.

The parameter objestimate provides an estimate of the resulting optimal objective value for the subnode specified by this branch. The invoking instance of Cplex may use this estimate to select nodes to process. A poor estimate will not influence the correctness of the solution, but it may influence performance. Using the objective value of the current node is usually a safe choice.

See Also

Cplex.BranchCallback Class | ILOG.CPLEX Namespace | Cplex.BranchCallback.MakeBranch Overload List