Creates a child node for the current node with the specified estimated objective value by setting more restrictive bounds on the variables in the array passed as an argument.
vars
. vars
. Setting dirs[j]
to Cplex.BranchDirection.Up
specifies that the lower bound of variable vars[j]
is to be set to bounds[j]
. Setting dirs[j]
to Cplex.BranchDirection.Down
specifies that the upper bound of variable vars[j]
is to be set to bounds[j]
. The Cplex.NodeId
of the created child node.
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 new, tighter bounds for a set of variables. 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.
Cplex.BranchCallback Class | ILOG.CPLEX Namespace | Cplex.BranchCallback.MakeBranch Overload List