0

I would like to compute strong branching with getStrongBranch function in CPLEX concert with C++.

getStrongBranch(IloNumArray downobj, IloNumArray upobj, const IloNumVarArray var, IloInt itmax)

The method like getObjValue reports the value of objective. Is there any method to get the value of downobj and upobj for a variable which is selected for branching?

usercp
  • 9
  • 3

1 Answers1

0

You can use the IloCplex::ControlCallbackI's methods getUpPseudoCost and getDownPseudoCost. If you also set the variable selection to full strong branching this will be close to strong branching score.

Other than that there is no function to get more detailed strong branching information inside a callback.

Daniel Junglas
  • 5,830
  • 1
  • 5
  • 22
  • You mean to use getDownPseudoCost and getUpPseudoCost instead of downobj and upobj in getStrongBranching method, respectively? If yes. As I know, full strong branching selects some candidate variables for branching but strong branching computes score for all fractional variables. What is difference between the formula of strong branching and full strong branching in CPLEX that you wrote it will be close to strong branching score? – usercp Mar 28 '20 at 17:51
  • What exactly CPLEX does during full strong branching is a trade secret. Roughly, it adds more information to the strong branching score, for example to break ties between variables that have the same score. – Daniel Junglas Mar 30 '20 at 05:33