Decision Optimization

Decision Optimization

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

 View Only
  • 1.  MILP slack bound error problem

    Posted Thu July 12, 2012 12:34 AM

    Originally posted by: SystemAdmin


    Dear all,

    I try to solve a complicated MILP problem, but the optimal result returned by CPLEX is obvious not correct, the MILP slack bound error is huge as

    Display which part of the solution: quality
    Incumbent solution:
    MILP objective 7.8200000000e+002
    MILP solution norm |x| (Total, Max) 2.00074e+007 5.00000e+006
    MILP solution error (Ax=b) (Total, Max) 7.70900e-011 7.66249e-011
    MILP x bound error (Total, Max) 2.59597e-013 1.92624e-014
    MILP x integrality error (Total, Max) 6.12999e-017 7.66249e-018
    MILP slack bound error (Total, Max) 1.95000e+003 4.50000e+002

    Some slacks for less and equal constraints are negative and far away from 0, so the solution breaks these constraints at all.

    Any ideas about this problem.

    Thanks a lot.
    #CPLEXOptimizers
    #DecisionOptimization


  • 2.  Re: MILP slack bound error problem

    Posted Thu July 12, 2012 02:15 AM

    Originally posted by: SystemAdmin


    Have you tried to turn on numerical emphasis:
    CPLEX> set emphasis numerical y
    

    What is the output of
    CPLEX> display problem statistics
    

    #CPLEXOptimizers
    #DecisionOptimization


  • 3.  Re: MILP slack bound error problem

    Posted Thu July 12, 2012 02:44 AM

    Originally posted by: SystemAdmin


    I didn't turn on numerical emphasis and the output of stats is

    Display which problem characteristic: stats
    Problem name: vnpromodel4.lp
    Variables : 2383 Nneg: 1985, Binary: 398
    Objective nonzeros : 25
    Linear constraints : 2783 Less: 1383, Equal: 1400
    Nonzeros : 9494
    RHS nonzeros : 1187

    Variables : Min LB: 0.0000000 Max UB: 1.000000
    Objective nonzeros : Min : 1.000000 Max : 1.000000
    Linear constraints :
    Nonzeros : Min : 1.000000 Max : 1.000000e+007
    RHS nonzeros : Min : 1.000000 Max : 150.0000
    #CPLEXOptimizers
    #DecisionOptimization


  • 4.  Re: MILP slack bound error problem

    Posted Fri July 13, 2012 08:38 PM

    Originally posted by: SystemAdmin


    I would suggest that you do one or both of the following:

    (a) turn on numerical emphasis (per Daniel's question/suggestion);
    (b) use 'set mip strategy kappastats' to collect basis condition number information (setting = 2) and then, after solving, display the kappa statistics (I think that is under 'display solution quality kappa' but I won't swear to it).

    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: MILP slack bound error problem

    Posted Sat July 14, 2012 01:47 PM

    Originally posted by: SystemAdmin


    Hi Paul,

    I turn on the numerical emphasis and set mip strategy kappastats to collect basis condition number information setting to 2.
    The result is same, but the processing time decreased a lot...

    Display which part of the solution: qua
    Incumbent solution:
    MILP objective 9.3500000000e+002
    MILP solution norm |x| (Total, Max) 6.00049e+007 4.99993e+006
    MILP solution error (Ax=b) (Total, Max) 2.79130e-013 2.84217e-014
    MILP x bound error (Total, Max) 3.84060e-013 2.40728e-014
    MILP x integrality error (Total, Max) 6.42079e-017 3.21039e-017
    MILP slack bound error (Total, Max) 1.80000e+003 4.50000e+002

    Branch-and-cut subproblem optimization:
    Max condition number: 7.9997e+023
    Percentage (number) of stable bases: 2.24% (20165)
    Percentage (number) of suspicious bases: 64.07% (576540)
    Percentage (number) of unstable bases: 16.04% (144345)
    Percentage (number) of ill-posed bases: 17.65% (158785)
    Attention level: 0.230991
    CPLEX encountered numerical difficulties while solving this model.

    Thanks a lot
    #CPLEXOptimizers
    #DecisionOptimization


  • 6.  Re: MILP slack bound error problem

    Posted Sat July 14, 2012 03:28 PM

    Originally posted by: SystemAdmin


    Both the last message and the kappa statistics tell the same story: your model has substantial numerical stability problems. There are multiple possible causes; bad scaling is one possibility. Your constraint coefficients span seven orders of magnitude. I've seen worse, but that might contribute to the instability. You might consider whether you can shrink the ratio of largest to smallest coefficient magnitude. Beyond that, I cannot offer much specific advice. Searching "instability" or "stability" on this forum should turn up posts from other people with unstable models; maybe you'll find something helpful in one of those threads.

    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


  • 7.  Re: MILP slack bound error problem

    Posted Sun July 15, 2012 12:31 AM

    Originally posted by: SystemAdmin


    Thanks a lot.
    Some coefficients in the model are extremely large, that may cause the problem.
    I think I will modify the model and try again later.
    #CPLEXOptimizers
    #DecisionOptimization


  • 8.  Re: MILP slack bound error problem

    Posted Thu August 02, 2012 07:29 PM

    Originally posted by: SystemAdmin


    Hi, I google the numerical emphasis and found you. Would you tell me how to turn on the numerical emphasis with c++? Thanks so much.
    #CPLEXOptimizers
    #DecisionOptimization


  • 9.  Re: MILP slack bound error problem

    Posted Sun August 05, 2012 04:59 PM

    Originally posted by: SystemAdmin


    CPLEX > Parameters of CPLEX > Parameters Reference Manual > List of CPLEX parameters > numerical precision emphasis

    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