Decision Optimization

Decision Optimization

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

 View Only
  • 1.  integer unbounded

    Posted Thu October 03, 2013 03:15 PM

    Originally posted by: PingLiu


    Hi, everyone,

    I solved a MIP problem in enrmip.lp, but the error in cpxsol.mat says it's integer unbounded.

    How may I know which integer is unbounded? 


    #CPLEXOptimizers
    #DecisionOptimization


  • 2.  Re: integer unbounded

    Posted Thu October 03, 2013 04:59 PM

    It's not an "integer" that is unbounded. If I read your file correctly, all integer variables are binary (so obviously bounded). What the message means is that there are integer-feasible solutions with unboundedly large objective values.

    Open your LP file in the interactive optimizer ("read" command) and try to solve it ("mip" command). You will get a message that it is unbounded. Now fix the binary variables at the current values (command: "ch pr fixed_milp" and solve it as an LP (command: "prim"). You will be told that the LP is unbounded, and that the slack variable c257 is diverging. The corresponding constraint (command: "di pr co 257") is:


    c257: - x86 + x89 + 0.681967241710129 x91 + 0.318032758289871 x92
           - 0.171989743410839 x93 + 0.146043014879032 x94 - 0.146043014879031 x95
           - 0.146043014879031 x96 + 0.146043014879032 x97 + 0.681967241710129 x98
           + 0.318032758289871 x99 - 0.171989743410839 x100
           + 0.146043014879032 x101 - 0.146043014879031 x102
           - 0.146043014879031 x103 + 0.146043014879032 x104
           - 0.681967241710129 x119 - 0.318032758289871 x120
           + 0.171989743410839 x121 - 0.146043014879032 x122
           + 0.146043014879031 x123 + 0.146043014879031 x124
           - 0.146043014879032 x125 - 0.681967241710129 x126
           - 0.318032758289871 x127 + 0.171989743410839 x128
           - 0.146043014879032 x129 + 0.146043014879031 x130
           + 0.146043014879031 x131 - 0.146043014879032 x132 + x147 + x148
           <= 40.62286

    So there are values for the noninteger x variables that, with the binary variables fixed at whatever values CPLEX chose, make the slack in this constraint blow up toward infinity while making the objective value blow up toward negative infinity.

    Unfortunately, you cannot get a dual ray (which would show you in what direction the variables are moving as the objective blows up) from the interactive optimizer, and I don't know if you can get them in MATLAB (since I don't use MATLAB). All else failing, try putting very large but finite upper bounds on all your continuous variables, rerun the model, and see which ones slam into those bounds. Then ask yourself why that should not be happening.

    Paul


    #CPLEXOptimizers
    #DecisionOptimization


  • 3.  Re: integer unbounded

    Posted Thu October 03, 2013 06:02 PM

    Originally posted by: PingLiu


    thank you for the reply.

    I ran the code in the interactive optimizer. as you did, after I fix the binaries, the  obj goes to -1.5*10^9.

    Does it mean that the original MIP is infeasible?

    but in my problem, if something happens, a penalty will apply, which is in 10^8.

    I think that is why the objective value is in 10^9.

    so I still cannot understand why obj in 10^9 means unbounded?


    #CPLEXOptimizers
    #DecisionOptimization


  • 4.  Re: integer unbounded

    Posted Fri October 04, 2013 09:50 AM

    IIRC, you are minimizing, which means the objective hit -1.5e9 on its way to -infinity. Your MIP is not infeasible; it is unbounded (as the original message said).


    #CPLEXOptimizers
    #DecisionOptimization