Decision Optimization

Decision Optimization

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


#Analytics
#DecisionOptimization
#DecisionOptimization
 View Only
  • 1.  Violated Constraint?

    Posted 09/04/12 03:24 AM

    Originally posted by: HendrikEwe


    Hi,

    we just came across a curious case of a constraint which is violated using Cplex 12.1 and which is not violated using various older versions (e.g., Cplex 11.2).
    You can see from the attached LP-file that

    IloC1249: y0 = 1

    Hence, by constraint k0, at least one of y1, ..., y190 has to be 1. This is not the case with the Cplex 12.1 solution.
    Is this a bug or are we missing something here..?

    Thanks for your help,

    Hendrik Ewe
    #CPLEXOptimizers
    #DecisionOptimization


  • 2.  Re: Violated Constraint?

    Posted 09/04/12 04:42 AM

    Originally posted by: T_O


    At the moment, I do not have 12.1, but 12.4. returns the following:
    Cover cuts applied: 1
    Zero-half cuts applied: 31
    Gomory fractional cuts applied: 6

    Root node processing (before b&c):
    Real time = 1.81
    Parallel b&c, 32 threads:
    Real time = 1687.35
    Sync time (average) = 0.34
    Wait time (average) = 0.01

    Total (root+branch&cut) = 1689.16 sec.

    Solution pool: 10 solutions saved.

    MIP - Integer optimal, tolerance (0.0001/1e-06): Objective = 1.3416217275e+05
    Current MIP best bound = 1.3417020319e+05 (gap = 8.03044, 0.01%)
    Solution time = 1689.56 sec. Iterations = 13595703 Nodes = 135012 (4)
    Deterministic time = 903161.37 ticks (534.55 ticks/sec)

    CPLEX> dis sol var *
    Incumbent solution
    Variable Name Solution Value
    x37 1.000000
    x69 1.000000
    x102 1.000000
    x136 1.000000
    x168 1.000000
    x202 1.000000
    x234 1.000000
    x266 1.000000
    x298 1.000000
    x330 1.000000
    x362 1.000000
    x394 1.000000
    x426 1.000000
    x458 1.000000
    y10 1.000000
    y21 1.000000
    y0 1.000000
    y491 1.000000
    All other variables matching '*' are 0.

    Best regards,
    Thomas
    #CPLEXOptimizers
    #DecisionOptimization


  • 3.  Re: Violated Constraint?

    Posted 09/04/12 05:04 AM

    Originally posted by: T_O


    Here is the result from another computer (also CPLEX 12.4):
    Cover cuts applied: 1
    Zero-half cuts applied: 23
    Gomory fractional cuts applied: 7

    Root node processing (before b&c):
    Real time = 1.63
    Parallel b&c, 4 threads:
    Real time = 3396.71
    Sync time (average) = 0.03
    Wait time (average) = 0.00

    Total (root+branch&cut) = 3398.33 sec.

    Solution pool: 14 solutions saved.

    MIP - Integer optimal, tolerance (0.0001/1e-06): Objective = 1.3404697305e+05
    Current MIP best bound = 1.3406034899e+05 (gap = 13.3759, 0.01%)
    Solution time = 3398.70 sec. Iterations = 8765254 Nodes = 148807 (215)
    Deterministic time = 2015711.14 ticks (593.08 ticks/sec)

    CPLEX> dis sol var *
    Incumbent solution
    Variable Name Solution Value
    x35 1.000000
    x67 1.000000
    x99 1.000000
    x135 1.000000
    x167 1.000000
    x202 1.000000
    x234 1.000000
    x266 1.000000
    x298 1.000000
    x330 1.000000
    x362 1.000000
    x394 1.000000
    x426 1.000000
    x458 1.000000
    y2 1.000000
    y15 1.000000
    y0 1.000000
    y491 1.000000
    All other variables matching '*' are 0.
    #CPLEXOptimizers
    #DecisionOptimization


  • 4.  Re: Violated Constraint?

    Posted 09/04/12 05:13 AM

    Originally posted by: T_O


    Here is a third (and my last) result from a third PC:

    Cover cuts applied: 1
    Zero-half cuts applied: 25
    Gomory fractional cuts applied: 8

    Root node processing (before b&c):
    Real time = 0.88
    Parallel b&c, 8 threads:
    Real time = 4022.78
    Sync time (average) = 0.05
    Wait time (average) = 0.01

    Total (root+branch&cut) = 4023.66 sec.

    Solution pool: 19 solutions saved.

    MIP - Integer optimal, tolerance (0.0001/1e-06): Objective = 1.3405977270e+05
    Current MIP best bound = 1.3407313647e+05 (gap = 13.3638, 0.01%)
    Solution time = 4023.91 sec. Iterations = 20429166 Nodes = 86777 (392)
    Deterministic time = 2712435.16 ticks (674.08 ticks/sec)

    CPLEX> dis sol var *
    Incumbent solution
    Variable Name Solution Value
    x26 1.000000
    x72 1.000000
    x104 1.000000
    x136 1.000000
    x168 1.000000
    x201 1.000000
    x233 1.000000
    x266 1.000000
    x298 1.000000
    x330 1.000000
    x362 1.000000
    x394 1.000000
    x426 1.000000
    x458 1.000000
    y1 1.000000
    y17 1.000000
    y63 1.000000
    y0 1.000000
    y491 1.000000
    All other variables matching '*' are 0.
    #CPLEXOptimizers
    #DecisionOptimization


  • 5.  Re: Violated Constraint?

    Posted 09/04/12 06:38 AM

    Originally posted by: HendrikEwe


    Hi Thomas,

    thanks for your help.
    The results of Cplex 12.4 are a bit different, but also in all three cases you described constraints seem to be violated. For example, in your last post you y63==1 and hence by constraint k63 (see mipex1.lp) one of y64,...,y263 should be set to one, too.
    Does that make sense? :-)

    Best regards,

    Hendrik.
    #CPLEXOptimizers
    #DecisionOptimization


  • 6.  Re: Violated Constraint?

    Posted 09/04/12 08:31 AM

    Originally posted by: T_O


    Hmm, I guess, there are numerical problems. It also failed with numerical emphasis enabled. (cf. MILP slack bound error)

    CPLEX> dis sol qual
    Incumbent solution:
    MILP objective 1.3420057275e+05
    MILP solution norm |x| (Total, Max) 1.90000e+01 1.00000e+00
    MILP solution error (Ax=b) (Total, Max) 7.32015e-14 2.65413e-16
    MILP x bound error (Total, Max) 1.57697e-13 2.09589e-14
    MILP x integrality error (Total, Max) 3.15399e-13 2.09832e-14
    MILP slack bound error (Total, Max) 1.00000e+00 1.00000e+00

    Branch-and-cut subproblem optimization:
    Max condition number: 6.8972e+18
    Percentage (number) of stable bases: 88.29% (3241)
    Percentage (number) of suspicious bases: 3.16% (116)
    Percentage (number) of unstable bases: 6.56% (241)
    Percentage (number) of ill-posed bases: 1.99% (73)
    Attention level: 0.039896
    CPLEX encountered numerical difficulties while solving this model.
    #CPLEXOptimizers
    #DecisionOptimization


  • 7.  Re: Violated Constraint?

    Posted 09/18/12 04:06 AM

    Originally posted by: SystemAdmin


    Strange. Using CPLEX 12.4, I get a solution that seems to be okay.

    With the solution that violates a constraint, what output did you get with "display solution quality" in the interactive?
    Tobias
    #CPLEXOptimizers
    #DecisionOptimization


  • 8.  Re: Violated Constraint?

    Posted 09/19/12 04:05 AM

    Originally posted by: HendrikEwe


    This is really strange indeed: I re-ran the problem last night and now got different results!

    CPLEX> dis sol var *
    Incumbent solution
    Variable Name Solution Value
    x22 1.000000
    x54 1.000000
    x86 1.000000
    x118 1.000000
    x160 1.000000
    x192 1.000000
    x224 1.000000
    x256 1.000000
    x288 1.000000
    x330 1.000000
    x362 1.000000
    x394 1.000000
    x426 1.000000
    x458 1.000000
    y1 1.000000
    y11 1.000000
    y151 1.000000
    y321 1.000000
    y0 1.000000
    y491 1.000000

    Which is totally fine. Also the errors are different:

    CPLEX> display solution quality
    Incumbent solution:
    MILP objective 1.3272857279e+005
    MILP solution norm |x| (Total, Max) 2.00000e+001 1.00000e+000
    MILP solution error (Ax=b) (Total, Max) 0.00000e+000 0.00000e+000
    MILP x bound error (Total, Max) 0.00000e+000 0.00000e+000
    MILP x integrality error (Total, Max) 0.00000e+000 0.00000e+000
    MILP slack bound error (Total, Max) 0.00000e+000 0.00000e+000

    I think last time I only used one thread but this time eight. I will try again with only one...
    #CPLEXOptimizers
    #DecisionOptimization


  • 9.  Re: Violated Constraint?

    Posted 09/20/12 03:07 AM

    Originally posted by: HendrikEwe


    I don't get it - here are the results for one thread:

    CPLEX> dis sol var *
    Incumbent solution
    Variable Name Solution Value
    x22 1.000000
    x54 1.000000
    x70 -0.000000
    x77 -0.000000
    x78 0.000000
    x86 1.000000
    x96 0.000000
    x102 -0.000000
    x109 -0.000000
    x118 1.000000
    x134 0.000000
    x160 1.000000
    x192 1.000000
    x224 1.000000
    x256 1.000000
    x288 1.000000
    x328 -0.000000
    x330 1.000000
    x362 1.000000
    x394 1.000000
    x426 1.000000
    x458 1.000000
    y1 1.000000
    y70 0.000000
    y101 -0.000000
    y142 -0.000000
    y151 1.000000
    y159 -0.000000
    y320 -0.000000
    y321 1.000000
    y322 0.000000
    y333 0.000000
    y343 0.000000
    y0 1.000000
    y491 1.000000
    All other variables matching '*' are 0.

    CPLEX> dis sol qual
    Incumbent solution:
    MILP objective 1.3272857279e+005
    MILP solution norm |x| (Total, Max) 1.90000e+001 1.00000e+000
    MILP solution error (Ax=b) (Total, Max) 8.33579e-014 4.95635e-016
    MILP x bound error (Total, Max) 8.75369e-011 2.38737e-011
    MILP x integrality error (Total, Max) 1.63137e-010 2.38737e-011
    MILP slack bound error (Total, Max) 2.38740e-010 2.38738e-011

    Are there some other settings that I might have changed unintentionally? I will further investigate...
    #CPLEXOptimizers
    #DecisionOptimization