メインコンテンツへスキップ

LazyCut Callback with wrong or unstable results

ユーザーの入力を待っています。

コメント

2件のコメント

  • Gwyneth Butera
    • Gurobi Staff

    Hi John - Just to be sure, have you set the LazyContstraints parameter to 1? Thanks.

    0
  • Riley Clement
    • Gurobi Staff

    Hi John,

    Certainly 2) is completely expected.  For Benders Decomposition you would apply the lazy constraints when solutions are discovered.  If t is not bounded above then it is very easy for Gurobi to deduce the problem is unbounded and there will be no solutions to trigger the callback.  This is standard practice - see θ ≥ M in the formulation described here (here theta is bounded below because it is being minimized): https://jump.dev/JuMP.jl/stable/tutorials/algorithms/benders_decomposition/

    The other issues you describe will be issues in your implementation, not the solver.

    Here are some tips.

    * In the subproblem set InfUnbdInfo=1.  If your subproblem is in primal form you will need to construct your feasibility cuts with information from FarkasDual.  If your subproblem is in dual form you will need to construct your feasibility cuts with information from UnbdRay.

    * FarkasDual and UnbdRay may not be available if the subproblem terminates during barrier.  For this reason it is advisable to use either primal simplex, dual simplex, or both (with concurrent LP), to solve all subproblems, or at least until you no longer need feasibility cuts.

    * You can either build your subproblem by replacing the master variables with their values from the master solution, or you can keep them as variables and fix the values of the variables.  If you do the latter it can be tempting (when using the primal form of the subproblem) to fix the variables by their bounds and use RC in place of dual values - this will not likely work when the subproblem is infeasible. You should fix the values by constraints instead and query the dual values.

    * With respect to the undecomposed problem, if your objective coefficients for variables which would belong to the subproblem are all zero, then you may need to make modifications to the subproblem depending on whether it is in primal or dual form - but let's not worry about this unless this case holds.

    - Riley

     

     

    0

サインインしてコメントを残してください。