Procedure GMP::Stochastic::AddBendersOptimalityCut(GMP, solution, cutNo)


The procedure GMP::Stochastic::AddBendersOptimalityCut adds a Benders optimality cut to the parent of a Benders problem by using the dual information from a solution of the Benders problem.

     GMP,            ! (input) a generated mathematical program
     solution,       ! (input) a solution
     cutNo           ! (input) a scalar reference



An element in the set AllGeneratedMathematicalPrograms.


An integer scalar reference to a solution.


An integer scalar reference to a cut number.

Return Value

The procedure returns 1 on success, or 0 otherwise..


  • The GMP should have been created by the function GMP::Stochastic::BendersFindReference.

  • By using the suffix .SubproblemOptimalityCuts of the associated symbolic mathematical program it is possible to refer to the row that is added by GMP::Stochastic::AddBendersOptimalityCut. Let gmpBen be a Benders problem corresponding to the symbolic mathematical program mp. Then the row mp.SubproblemOptimalityCuts(gmpBen,lbl) is added to the GMP, where lbl is an element in the set AllGMPExtensions created by this procedure using cutNo.

  • The first time this procedure is called for a Benders problem a new column mp.SubproblemObjectiveBound(gmpBen) is added to the parent of the Benders problem. For this column a coefficient equal to the relative weight of the Benders problem will be added to the objective of the parent. For this column a coefficient of 1 is added to the optimality cut.