Decision Optimization

Decision Optimization

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

 View Only
  • 1.  Initial basis

    Posted Thu March 29, 2012 04:58 PM

    Originally posted by: SystemAdmin


    Hi,

    I have been working for a while in a branch&price&cut algorithm. Since CPLEX do not support B&P models, I had to use some other libraries for coding the whole branching process. Now, during the B&P&C, I am introducing something similar to what you call lazy constraints. Unfortunately, I am having some problems with this.

    As far as I know, one of the features of CPLEX while solving over an optimization model sequentially (like when solving a model using column generation), is that it uses the solutions found in previous iterations to get some sort of a warm start. However, in my case, since I am introducing additional constraints every time I find an integer solution in the B&B tree, I found that sometimes CPLEX declares that the model is infeasible, when it is really not. I am guessing that this happens because the initial solution (found in previous iteration) may not be feasible after introducing the new cuts.

    Is there any way to avoid this behavior and start the solution of a model from scratch? I know that this seems to be a little odd and dumb, but the way in which I am generating the additional constraints require something like this.
    Thanks a lot for your time.

    -JLW
    #CPLEXOptimizers
    #DecisionOptimization


  • 2.  Re: Initial basis

    Posted Thu March 29, 2012 07:12 PM

    Originally posted by: SystemAdmin


    Hi again,
    I have also an additional question: During the branching stage (I already have coded the branching rules of the B&P) I am wondering which is the best way to "duplicate" the model to pass it to both of the children nodes in each branch. What I am doing right now is something like this: I am creating an IloCplex object in each of the nodes, so I can modify independently the columns and the rows of each individual optimization model at each of the nodes. The problem that I am having, besides the one of the previous question, is that I am literally generating each model from scratch (calling every time the loop to generate the variables and the constraints, over and over again) which I think is completely inefficient. Is there a better way of doing it?

    Thanks
    #CPLEXOptimizers
    #DecisionOptimization


  • 3.  Re: Initial basis

    Posted Fri March 30, 2012 05:45 PM

    Originally posted by: SystemAdmin


    This may depend on the API you're using. Have a look at this thread to see a method in Java (using serialization).

    That said, piling up a lot of CPLEX instances is likely to gobble up your memory fairly quickly. One way to be conservative with memory would be to do a depth-first seach, keeping just one CPLEX instance and adding/deleting rows and columns with each branch/backtrack.

    Paul

    Mathematicians are like Frenchmen: whenever you say something to them, they translate it into their own language, and at once it is something entirely different. (Goethe)
    #CPLEXOptimizers
    #DecisionOptimization


  • 4.  Re: Initial basis

    Posted Fri March 30, 2012 05:39 PM

    Originally posted by: SystemAdmin


    If CPLEX tries to "hot start" and discovers the previous solution is infeasible, I believe that (at least with default settings) it may try to "repair" the start. Whether that succeeds for fails (or whether I'm wrong and CPLEX does not attempt a repair), it most definitely will not give up and declare the problem infeasible.

    If CPLEX declares the problem infeasible after you add constraints, it will do so whether or not you hot-start it. Either your new constraint really makes the problem infeasible or else some sort of numerical issue makes it look infeasible.

    In any case, you can turn off hot starts by setting the AdvInd parameter to 0.

    Paul

    Mathematicians are like Frenchmen: whenever you say something to them, they translate it into their own language, and at once it is something entirely different. (Goethe)
    #CPLEXOptimizers
    #DecisionOptimization


  • 5.  Re: Initial basis

    Posted Sat April 07, 2012 08:27 PM

    Originally posted by: SystemAdmin


    I decided to try a different approach
    #CPLEXOptimizers
    #DecisionOptimization