Decision Optimization

Decision Optimization

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

 View Only
Expand all | Collapse all

column generation : CONCERT API or CPLEX Interactive Optimizer

  • 1.  column generation : CONCERT API or CPLEX Interactive Optimizer

    Posted Sun March 13, 2016 08:50 PM

    Originally posted by: abhzap


    Hi All,

         I am used to creating my .lp directly using java i.e. I use java to write text files named as ".lp". So I basically writing all my constraints as strings to a text file. I then use batch scripts to run my .lp files in the CPLEX interactive optimizer.

         However, I am trying to use column generation and all the material online only talks about using CONCERT API for column generation.

         I would like to know :-

    1.  Is there a way to implement column generation directly from the interactive optimizer. Any links to resources showing the set of commands or anything else in this regard will be helpful.
    2.  If using CONCERT API are there issues running the output files in a server in batch mode? Since I was looking through the forums and exporting the model (when using CONCERT API) as a .lp and running in cplex optimizer seems to be the faster way of doing things then cplex.solve()... in which case I don't have to go through the trouble of learning CONCERT API and its details.

         Any insight and help in the above respects will be much appreciated!

    Thanks,

    abhzap

         

       

     


    #CPLEXOptimizers
    #DecisionOptimization


  • 2.  Re: column generation : CONCERT API or CPLEX Interactive Optimizer

    Posted Mon March 14, 2016 07:22 AM
    1. Well, yes, it can be done by I strongly advise against it. You would have to parse the output of the interactive optimizer in one way or the other to analyze the solution and update the model for the next iteration. Also, you would have to repeatedly update the LP file on disk with the new columns. This is very cumbersome and error-prone. For any applications that needs to actually react on a solution vector computed by CPLEX I strongly recommend to use a programming API.
    2. It may pay off to start learning the Concert API. The API is supposed to be quite intuitive and has direct support for column generation (take a look at the CutStock.java example). In the long run this will a lot faster and will be much easier to maintain than dumping out files to disk and solve with the interactive solver.

    I am not clear what you mean when you say "run in batch mode". In column generation you don't know all problems to solve in advance, right? The next problem to solve depends on the solution of the current problem, so how would you create a batch of problems to solve?


    #CPLEXOptimizers
    #DecisionOptimization


  • 3.  Re: column generation : CONCERT API or CPLEX Interactive Optimizer

    Posted Tue March 15, 2016 01:09 PM

    Originally posted by: abhzap


    Thank you Daniel,

                         I admit I didn't really think through while asking the "batch mode" question. My question was more like "if I want to run the same model for different set of inputs", which I did in my earlier approach by having an instance of the LP for each input combination and hence, I ran these '.lp' files in a batch mode. But I guess the CONCERT API should be able to take care of  multiple inputs.

     

     

     

     


    #CPLEXOptimizers
    #DecisionOptimization