Decision Optimization

Decision Optimization

Delivers prescriptive analytics capabilities and decision intelligence to improve decision-making.

 View Only
  • 1.  Gomory (Fractional) Cuts via Callable / Callback

    Posted Tue November 11, 2014 08:09 PM

    Originally posted by: Allexandre


    Hi,

    I built a set partitioning formulation on Callable. Now I would like to add Gomory cuts at it. Looking on the web I found that there's a set of functions, called CALLBACK, that aparentelly have this subfunction which add these cuts on my MIP formulation (CPX_CALLBACK_INFO_FRACCUT_COUNT). Could someone help me in how to use this?

    Really thanks,

    Allexandre.


    #DecisionOptimization
    #MathematicalProgramming-General


  • 2.  Re: Gomory (Fractional) Cuts via Callable / Callback

    Posted Wed November 12, 2014 08:39 AM

    I think you got that wrong. Unless you explicitly disable cuts, CPLEX will automatically separate several types of cutting planes as long as it deems them to be effective. So by default you will get Gomory without changing anything.

    The CPX_CALLBACK_INFO_*CUT_COUNT constants are used with function CPXgetcallbackinfo() to query how many cuts of a certain type have been added. They do not control in any way what cuts are added.

    You may want to take a look at the Cuts chapter in the user manual. That has more details about the cuts separated by CPLEX and the parameters controlling them.


    #DecisionOptimization
    #MathematicalProgramming-General


  • 3.  Re: Gomory (Fractional) Cuts via Callable / Callback

    Posted Wed November 12, 2014 09:11 AM

    Originally posted by: Allexandre


    Hello Daniel,

    So, computationally, if I add some Gomory cut by myself, it wouldn't  make any different during the process? Even it was made iterativelly? Like, my set partitioning formulation is my master, then I solve the master, solve the subproblem with the master's dual variables and, before I solve the master again, I thought I could add theses cuts. 

    And how can I get the coefficients of the slack variables on the final simplex tableau?

    Thanks,

    Allexandre.


    #DecisionOptimization
    #MathematicalProgramming-General


  • 4.  Re: Gomory (Fractional) Cuts via Callable / Callback

    Posted Fri November 21, 2014 04:27 AM

    Whether this makes any difference or not depends on whether CPLEX would have chosen to add those cuts as well or not. CPLEX does not separate and add all cuts that can potentially be found (for performance and numerical reasons).


    #DecisionOptimization
    #MathematicalProgramming-General


  • 5.  Re: Gomory (Fractional) Cuts via Callable / Callback

    Posted Fri November 21, 2014 05:33 AM

    Originally posted by: Allexandre


    So, as CPLEX does not add all possible Gomory cuts, can I identify all added cuts? with the porpose that I add only really new cuts? Thanks.


    #DecisionOptimization
    #MathematicalProgramming-General


  • 6.  Re: Gomory (Fractional) Cuts via Callable / Callback

    Posted Wed November 12, 2014 08:29 PM

    Originally posted by: Allexandre


    So, as I want to add Gomory cuts, even that the CPLEX make itself, how can I add constraints for the slack variables that I want?

     

    Thanks;


    #DecisionOptimization
    #MathematicalProgramming-General


  • 7.  Re: Gomory (Fractional) Cuts via Callable / Callback

    Posted Tue January 06, 2015 05:49 AM

    That would be hard to do, I think. What you can do (and what should not be too hard) is to look at the current LP (including cuts) and the solution vector and then separate that solution vector. If you find violated Gomory cuts then CPLEX obviously did not add them.


    #DecisionOptimization
    #MathematicalProgramming-General