Decision Optimization

Decision Optimization

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


#Analytics
#DecisionOptimization
#DecisionOptimization
 View Only
  • 1.  wrong unbounded status

    Posted 03/16/15 06:19 PM

    Originally posted by: Hlads


    I am using Python API for IBM CPLEX. I am quite new in CPLEX.

    In my program I iteratively set to zero bounds of different combinations of variables and solve the problem for each such combination. In some cases I get unbounded solution (while before setting to zero this bounds problem was bounded).

    (To avoid infeasibility errors I turn off scaling

    problem.parameters.read.scale.set(-1))

    Example of output data (combination of variables/objective/status):

    R_HMR_0264+R_HMR_9159 3.98008365854e-06 unbounded
    R_HMR_0264+R_HMR_9151 3.98008365854e-06 unbounded
    R_HMR_0294+R_HMR_4743 1.86194202992e-06 unbounded
    R_HMR_0294+R_HMR_4756 1.86194202992e-06 unbounded
    R_HMR_0294+R_HMR_4862 1.86194202992e-06 unbounded
    R_HMR_0294+R_HMR_4760 1.86194202992e-06 unbounded
    R_HMR_0294+R_HMR_4692 1.86194202992e-06 unbounded
     

    When I check this combinations "by hand" I get bounded solution with different value of objective.

    What is the reason of such behaviour? How can I solve this problem?

    Is it connected somehow with previous solving steps (before setting to zero bounds of variables)?


    #CPLEXOptimizers
    #DecisionOptimization


  • 2.  Re: wrong unbounded status

    Posted 03/16/15 07:09 PM

    This may or may not be helpful.  Did you see Coping with an ill-conditioned problem or handling unscaled infeasibilities in the documentation?

    Also, are you able to export the model before calling solve() (preferably in .sav.gz format) and attach it here (for a case where you think you're getting the wrong results)?  This may allow others to help you more quickly.  Do you get the same results when running the exported model in the interactive?

     


    #CPLEXOptimizers
    #DecisionOptimization


  • 3.  Re: wrong unbounded status

    Posted 03/17/15 09:39 AM

    Originally posted by: Hlads


    Previously I had this problem with scaling, in this case I got status "optimal_infeasible", that's why I turn off scaling.

    But now it is seems that it is a different problem.

    When I do the same interactively reading problem from .sav file I get different results. Status - optimal.

    Unfortunately I can't upload my problem, as this is unpublished data.

    I have found the following in documentation:

    Re-solving

    You may re-solve the problem by reissuing the optimize command. CPLEX restarts

    the solution process from the previous optimal basis, and thus requires zero

    iterations. If you do not wish to restart the problem from an advanced basis, use

    the set advance command to turn off the advanced start indicator.

    Remember that a problem must be present in memory (entered via the enter

    command or read from a file) before you issue the optimize command.

     

    How can I control this parameters in Python API?


    #CPLEXOptimizers
    #DecisionOptimization


  • 4.  Re: wrong unbounded status

    Posted 03/17/15 11:25 AM

    By default, this parameter is already "on".

    You can set the advanced start switch parameter in the Python API, like so:

    >>> import cplex
    >>> cpx = cplex.Cplex()
    >>> cpx.parameters.advance.values[cpx.parameters.advance.get()]
    'standard'
    >>> cpx.parameters.advance.set(cpx.parameters.advance.values.none)
    >>> # run the following to see the help:
    ... 
    >>> help(cpx.parameters.advance.values)
    

     


    #CPLEXOptimizers
    #DecisionOptimization


  • 5.  Re: wrong unbounded status

    Posted 03/17/15 12:33 PM

    Originally posted by: Hlads


    Thank you!


    #CPLEXOptimizers
    #DecisionOptimization