Decision Optimization

Decision Optimization

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


#Analytics
#DecisionOptimization
#DecisionOptimization
 View Only
  • 1.  Infeasible problem: how co theck current values

    Posted 09/20/11 05:14 PM

    Originally posted by: JamieKang


    Hello,

    Currently I am getting an error as this:
    Row 'IloC8' infeasible, all entries at implied bounds.

    But I know that it is solvable so I must have made mistakes with constraints, and I want to check where I made mistakes. So I was wondering if there is any way to print out current values that are creating the infeasibility? Then I think I can track down the problem easily.

    I am using Java, and trying to solve a MIP with variables less than 200, and 300 constraints (some of them actually refer to the same constraint).

    Any help would be appreciated.

    Thank you,

    Jamie
    #CPLEXOptimizers
    #DecisionOptimization


  • 2.  Re: Infeasible problem: how co theck current values

    Posted 09/20/11 05:54 PM

    Originally posted by: SystemAdmin


    Hello Jamie,

    Export the generated model in an LP format to go through the constraints. To do so, assuming that 'cplex' is the IloCplex object being used, add the following line just before the "cplex.solve();' statement:

    cplex.exportModel("test.lp");

    This human readable format of the model will allow you to look at the constraints (as well as objective function and variable bounds) as they have been generated by your data set. Given your knowledge of the model, going through it might be enough to see if certain constraints are not being generated as you intended them to.

    If you would like to find the minimal conflict (set of constraint and/or bounds that cause the infeasibility), you can run it against CPLEX's conflict refiner using the interactive optimizer using the following commands:

    CPLEX> read test.lp //read in the model
    CPLEX> conf //to run the conflict refiner
    CPLEX> disp conf all //to display the minimal conflict

    You could also call the conflict refiner using the Java API. The following technote may be useful in this regards:
    https://www-304.ibm.com/support/docview.wss?uid=swg21437987

    Hope this helps
    -Abhishek
    #CPLEXOptimizers
    #DecisionOptimization


  • 3.  Re: Infeasible problem: how co theck current values

    Posted 09/21/11 01:09 PM

    Originally posted by: JamieKang


    Hello,

    Thanks for the help. I already had cplex.exportModel("test.lp"), and was still confused.
    But I will try the second method, and see if I can track down my problems.

    Thank you for the tip,

    Jamie
    #CPLEXOptimizers
    #DecisionOptimization


  • 4.  Re: Infeasible problem: how co theck current values

    Posted 09/21/11 05:51 PM

    Originally posted by: SystemAdmin


    Do you know a feasible solution? If so, you can add constraints to lock in that solution (x1 = 2.4, x2 = 3.5, ...) and ask CPLEX to give you an IIS. It will involve at least some of your added constraints, but it will also identify constraints those values violate.

    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: Infeasible problem: how co theck current values

    Posted 09/22/11 05:12 AM

    Originally posted by: SystemAdmin


    In addition to the stuff suggested by previous posts it may also be useful to run feasopt. feasopt allows you to relax a specified set of constraints and/or variables and computes a solution that violates feasibility to a minimal degree.
    #CPLEXOptimizers
    #DecisionOptimization


  • 6.  Re: Infeasible problem: how co theck current values

    Posted 09/26/11 04:57 PM

    Originally posted by: JamieKang


    Thank you all. I finally figured out and fixed the bug using the tips.

    Sincerely,
    Jamie
    #CPLEXOptimizers
    #DecisionOptimization