Skip to main content

Branch-and-cut performance and PreCrush




  • Maliheh Aramon
    Gurobi Staff Gurobi Staff
    Hi Cheng-Lung,
    The user cuts are expressed with respect to the decision variables of the original model. Setting the PreCrush parameter to 1 shuts off a few reductions to allow the presolve to represent the user cuts in terms of the decision variables defining the presolved model.

    Are you sure that your cuts are not silently ignored when \(\texttt{PreCrush}=0\)? Have you tried to solve the model without user cuts to make sure that the addition of user cuts improves the performance? It is likely that the benefit of the extra presolve procedures, which are turned off by setting \(\texttt{PreCrush}=1\), is greater than the benefit of adding user cuts. Could you please share the log files of your runs with different \(\texttt{PreCrush}\) values? It would be great if you could share the log file without the user cuts as well. 
    Best regards,
  • Cheng-Lung Chen
    First Comment
    First Question

    Hello Maliheh,

    Thanks for responding! I did a couple of experiment and you are correct. The Gurobi presolve, heuristics and cuts are so powerful that the optimization performance is actually better without my user cuts (which is derived from a substructure aka relaxation not the entire problem). 

    However, when I turn off the presolve, heuristics and cuts, both optimality gap and number of b&c nodes are smaller and better for the problem with my user cuts than without them. But that's just a limited observation as my problem is network optimization, the topology and density of network might also play some roles in optimization performance as well. 

    I just need to revise my experiment and setting and presentation strategy to address my contribution for the polyhedral study I have done. Thanks so much!


Please sign in to leave a comment.