Decision Optimization

Decision Optimization

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


#Analytics
#DecisionOptimization
#DecisionOptimization
 View Only
  • 1.  Using CPLEX to only determine feasibility?

    Posted 06/27/08 05:13 AM

    Originally posted by: SystemAdmin


    [rbowmaker said:]

    I have an application in which I want to quickly find out if an LP is feasible.
    If it is feasible, I do not care what the optimal solution is.

    Does CPLEX have an option to stop as soon as any feasible solution has been found, or infeasibility has been established?
    If so, how reliable would this be?

    Thanks
    #CPLEXOptimizers
    #DecisionOptimization


  • 2.  Re: Using CPLEX to only determine feasibility?

    Posted 06/27/08 07:55 AM

    Originally posted by: SystemAdmin


    [prubin said:]

    Before solving the LP, set ObjLLim to 1e75 if you are minimizing or ObjULim to -1e75 if you are maximizing.  The first feasible solution will violate that limit and CPLEX will stop.  When CPLEX returns from the solve() method (which will return FALSE), check the LP's CPLEX status (not the regular status).  You're looking for AbortObjLim as the returned status if the LP was feasible, Infeasible or maybe InfOrUnbd if not.

    If you're using the C interface, the parameter you want is CPX_PARAM_OBJLLIM or CPX_PARAM_OBJULIM respectively.  If you're using the interactive optimizer, set simplex limits lowerobj or upperobj.

    I'm not sure what you mean by "how reliable".  If you mean "will it really stop with the first feasible solution", the answer is yes.  If you mean "will it be right saying feasible/infeasible", that depends a bit on how well scaled your problem is (and, in my case, with whether I have recently offended some minor but spiteful deity).

    /Paul
    #CPLEXOptimizers
    #DecisionOptimization


  • 3.  Re: Using CPLEX to only determine feasibility?

    Posted 06/27/08 12:41 PM

    Originally posted by: SystemAdmin


    [alain.chabrier said:]

    Hi,

    you might also simply remove the objective from the model and run. CPLEX without objective will use default settings good for feasibility.

    From Concert or OPL it should be very easy to do.

    e.g. remove the line of code like
    model.add(obj);

    Alain
    #CPLEXOptimizers
    #DecisionOptimization