Decision Optimization

Decision Optimization

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

 View Only
  • 1.  branch-and-cut

    Posted Fri April 04, 2008 12:08 PM

    Originally posted by: SystemAdmin


    [ozkok said:]

    Hello,

    I am trying to implement a branch-and-cut algorithm using concert technology and c++ and I use Cplex 10. I have a problem with the size of my subproblem which I solve at each step.

    Using a cut callback routine, I separate and add cuts to my subproblem. Since I add many cuts to the subproblem, it finally gets too large to be solved and I encounter some memory problems. I heard that, if another software (different from concert technology) was used to implement the branch-and-cut, you can ignore some of the cuts you added if they are not violated for a constant number of iterations, for example. In other words, you optimize the subproblem with only some of the cuts generated. This prevents the subproblem to get too large.

    Is it possible to do such a thing in concert technology? Can we either remove the cuts we added by using cutcallback or tell cplex to ignore the ones that have not been active in the last few iterations?

    (I should also say that, I only add my own cuts and do not allow cplex to generate its own cuts such as clique cuts etc.)

    I would appreciate any help.

    best regards
    #CPLEXOptimizers
    #DecisionOptimization


  • 2.  Re: branch-and-cut

    Posted Mon April 07, 2008 10:13 AM

    Originally posted by: SystemAdmin


    [MaryFenelon said:]

    There isn't a way to do this from Concert Technology as far as I know.  Some other people have asked for this facility, so we are considering adding it to CPLEX.
    #CPLEXOptimizers
    #DecisionOptimization


  • 3.  Re: branch-and-cut

    Posted Tue April 08, 2008 11:25 PM

    Originally posted by: SystemAdmin


    [Sylvain said:]

    I should mention that I am also interested in removing previously added cuts during a branch-and-cut.
    Indeed for one problem I am trying to solve, I know that some of the cuts that I add dominate some previously added cuts which become totally unuseful.
    #CPLEXOptimizers
    #DecisionOptimization


  • 4.  Re: branch-and-cut

    Posted Tue April 15, 2008 07:49 PM

    Originally posted by: SystemAdmin


    [ozkok said:]

    Ok, thank you for the answer.

    One way to overcome this problem may be as follows:

    First I can solve the initial problem as an LP (instead of an IP) and get the solution. Then instead of using cutcallback routine to add cuts,
    I can add cuts with my own routines (after the optimization) and reoptimize my LP by dual simplex. As dual simplex will use the information obtained from the optimization, I hope that this will not take much time. On the other hand, cutcallbacks might run faster since they are implemented by ILOG.

    Do you have any idea about the performance of my proposed method (solving initial LP, add cuts and optimize again by dual simplex until I cannnot generate no more cuts) when compared to using callbacks? 

    Because, if the performance is not too bad, I could remove some of the cuts which are not active in the last few iterations.

    Best regards
    #CPLEXOptimizers
    #DecisionOptimization