Decision Optimization

Decision Optimization

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


#Analytics
#DecisionOptimization
#DecisionOptimization
 View Only
  • 1.  Making CPLEX model perform better

    Posted 10/15/08 08:13 PM

    Originally posted by: SystemAdmin


    [jantzen said:]

    I'm generating models that use many equations repeating the same sum of variables (A + B  + C + D), with of course other variables. Would it help in any way if I declared a new variable X, created a constraint where this new variable is equal to the sum of my variables ("X = A + B + C + D"), and then use this new variable X whenever I used to use the sum ?

    I'm tracking every possible way to improve performance of my models, already knowing that I have potential numerical instabilities I cannot get rid of by design. I was wondering if a trick such as above was already done in some way during preprocessing, or if it had a chance of making my system converge faster ... thanks.

    Before:
    [color=blue][b]A + B + C + D[/b][/color] + E  <= xxxx<br />[color=blue][b]A + B + C + D[/b][/color] + F  >= yyyy
    zzzz <= [color=blue][b]A + B + C + D[/b][/color] <= tttt<br />
    After:
    [color=red][b]X[/b][/color] = [color=blue][b]A + B + C + D[/b][/color]
    [color=red][b]X[/b][/color] + E <= xxxx<br />[color=red][b]X[/b][/color] + F >= yyyy
    zzzz <= [color=red][b]X[/b][/color] <= tttt<br />
    (I'm using CPLEX 11.2 and MIP)
    #CPLEXOptimizers
    #DecisionOptimization


  • 2.  Re: Making CPLEX model perform better

    Posted 10/16/08 09:17 AM

    Originally posted by: SystemAdmin


    [MaryFenelon said:]

    You can see what CPLEX does in presolve by writing out the presolved model.  In the Interactive System you would do this with "write model.pre" and in the Callable Library use the CPXpreslvwrite() routine. The "pre" format is a binary format, so you then need to read the model back in to query it or write it in a readable format like "lp" format.




    #CPLEXOptimizers
    #DecisionOptimization


  • 3.  Re: Making CPLEX model perform better

    Posted 10/16/08 02:42 PM

    Originally posted by: SystemAdmin


    [jantzen said:]

    Indeed, and I can see it doesn't factorize repeating sets of variables (I would have been happily surprised :) )

    Now, considering the way CPLEX works, would it make it make convergence better if I did such effort myself ?
    #CPLEXOptimizers
    #DecisionOptimization


  • 4.  Re: Making CPLEX model perform better

    Posted 10/17/08 07:42 AM

    Originally posted by: SystemAdmin


    [MaryFenelon said:]

    I would expect it to solve better. There will be fewer nonzeros which should make the node subproblems solve faster and possibly the aggregation will allow more presolve reductions. 

    Your comment about known numerical instabilities sounds like trouble.  You should focus on improving that aspect of the formulation since if the numerics are bad the rest doesn't matter.
    #CPLEXOptimizers
    #DecisionOptimization


  • 5.  Re: Making CPLEX model perform better

    Posted 10/17/08 08:06 PM

    Originally posted by: SystemAdmin


    [jantzen said:]

    Actually, there is no way we can improve that due to heavy business constraints. It's a problem we've always be aware of, and despite 2+ years of heavy investigation there is no way to express our business model otherwise :(
    #CPLEXOptimizers
    #DecisionOptimization