Decision Optimization

Decision Optimization

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


#Analytics
#DecisionOptimization
#DecisionOptimization
 View Only
  • 1.  bounds on slack variables

    Posted 10/06/09 09:59 PM

    Originally posted by: SystemAdmin


    [aberlll said:]

    Hi, I am new to CPLEX.
    I am frustrating as I got an optimal solution according to CPLEX 12 for my MILP problem, which is actually violating one of the inequality constraint. I checked the quality of the solution,
    ===
    Display which part of the solution: quality
    Incumbent solution:
    MILP objective                                0.0000000000e+00
    MILP solution norm |x| (Total, Max)            1.39351e+06  1.00000e+03
    MILP solution error (Ax=b) (Total, Max)        5.50706e-11  6.30962e-12
    MILP x bound error (Total, Max)                1.29603e-11  9.09495e-13
    MILP x integrality error (Total, Max)          0.00000e+00  0.00000e+00
    MILP slack bound error (Total, Max)            1.00011e-06  1.00001e-06

    Changed parameter settings:
    mip tolerances absmipgap 1e-12
    mip tolerances integrality 0
    simplex tolerances feasibility 1e-09
    ===
    The maximum slack bound error is 1e-6, it allows 0< -1e-6, which is not what I am expecting. Are there any ways to tighten the constraints for these slack variables? I&#039;ve already changed the simplex tolerances feasibility to its minimum 1e-09, but it doesn&#039;t work. <br />Any suggestions?
    Thanks



    #CPLEXOptimizers
    #DecisionOptimization


  • 2.  Re: bounds on slack variables

    Posted 10/07/09 04:28 AM

    Originally posted by: SystemAdmin


    [achterberg said:]

    It is hard to say why CPLEX does not provide a solution within your feasibility tolerance. Did the status indicator say something like "optimal - unscaled infeasibilities"? This would indicate that presolving and/or scaling are the reason for your issue.

    In any case, you should consider (in this order)
    (1) set the numerical emphasis to "yes",
    (2) disable scaling
    (3) disable presolving
    (4) disable cuts
    (5) send the model to our technical support to get additional help

    Of course, all of (1)-(4) usually come with a performance penalty, so there is clearly a trade-off between numerical accuracy and performance.

    An additional hint about numerical issues can be obtained by the condition number of the root LP basis. In order to get this, you can use the following interactive commands:

    read yourproblem.lp
    write presolved.pre
    read presolved.pre
    change prob lp
    opt
    disp sol kappa

    If the condition number is more than 1e+10, it indicates that your problem instance is ill conditioned. But please note that even with a small condition number, numerical issues are still possible because the reported condition number is only for one individual basis (namely the optimal root LP basis). CPLEX has to solve equation systems for a lot of different bases during a MIP run, and it can very well be that some of them have a much higher condition number than the optimal root LP basis.


    Tobias

    #CPLEXOptimizers
    #DecisionOptimization


  • 3.  Re: bounds on slack variables

    Posted 10/07/09 04:33 PM

    Originally posted by: SystemAdmin


    [aberlll said:]

    Setting numerical emphasis on really works in this case.
    Thanks for the insights!!!


    #CPLEXOptimizers
    #DecisionOptimization