Originally posted by: SystemAdmin
> I might be wrong but I have the feeling BranchCallback do not eliminate nodes I would like to prune thanks to my deductions. Considering the same example presented above, if I deduce x=1, I jump to node:
>
> LB(x1) = 1 / LB(x2) = 0
> UB(x1) = 1 / UB(x2) = 0
>
> thanks to makebranch(...) method,
>
When you do that, do you only specify LB(x1)=1 to makebranch() or do you also specify UB(x2)=0 for the new node?
> but I think CPLEX might still generate unwanted nodes later...
>
> Example of undesirable node:
> LB(x1) = 1 / LB(x2) = 0
> UB(x1) = 1 / UB(x2) = 1 (see above for more details)
>
Are you sure that this node is a descendant of the node you created above? Maybe this "unwanted" node is in a completely different part of the tree?
> Am I Wrong ?
>
Most probably yes. If you have UB(x2)=0 (for binary x2) for a node in the tree then CPLEX will never create a descendant node with UB(x2)=1 for that node.
#CPLEXOptimizers#DecisionOptimization