Decision Optimization

Decision Optimization

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


#Analytics
#DecisionOptimization
#DecisionOptimization
 View Only
  • 1.  Infeasible solution found by CPLEX

    Posted 11/30/12 09:28 AM

    Originally posted by: SystemAdmin


    Dear all

    I use CPLEX(Version academic 12.3) to solve an MIP problem, and obtain an optimal solution(No constraints violate). When I change the ordering of some MIP constraints (in the program codes), the optimal solution is changed and becomes infeasible(That is, the soluton violates one of constraints). Can someone explain this? Thank you for your response.
    #CPLEXOptimizers
    #DecisionOptimization


  • 2.  Re: Infeasible solution found by CPLEX

    Posted 12/03/12 02:15 AM

    Originally posted by: SystemAdmin


    This sounds like either a bug or numerical problems.
    Could you provide SAV files and/or log files for the two different models here?
    Could you upgrade to a more recent version of CPLEX?
    #CPLEXOptimizers
    #DecisionOptimization


  • 3.  Re: Infeasible solution found by CPLEX

    Posted 12/03/12 04:05 AM

    Originally posted by: SystemAdmin


    Thank you, DanielJunglas.
    ->"This sounds like either a bug or numerical problems."
    What do you mean of "numercial problems"? Can you explain it more specific? Or give me some suggestions about it.
    #CPLEXOptimizers
    #DecisionOptimization


  • 4.  Re: Infeasible solution found by CPLEX

    Posted 12/03/12 04:10 AM

    Originally posted by: SystemAdmin


    Thank you, DanielJunglas.

    ->This sounds like either a bug or numerical problems.
    What do you mean of "numercial problems"? Could you explain it more specific? or give me some suggestions to understand it.
    #CPLEXOptimizers
    #DecisionOptimization


  • 5.  Re: Infeasible solution found by CPLEX

    Posted 12/04/12 04:26 AM

    Originally posted by: SystemAdmin


    The answer is not clear.
    #CPLEXOptimizers
    #DecisionOptimization


  • 6.  Re: Infeasible solution found by CPLEX

    Posted 12/05/12 05:37 PM

    Originally posted by: SystemAdmin


    CPLEX (and all other MIP solvers) is based on floating point arithmetics. If the values in the floating point calculations are of very different scale, then there is risk to get round off errors.

    The typical way of dealing with numerical issues (i.e., round off errors) is to introduce feasibility tolerances, i.e., a threshold up to which an infeasibility is considered acceptable because it could just be the result of round off errors.

    If your model is ill-conditioned (CPLEX needs to invert sub-matrices with high condition number), then it could happen that the numerics become so poor that you can no longer trust the results. This can even mean that changes like permuting the rows can lead to differences in the result. This is not a property of CPLEX, but of any floating point based numerical software.

    CPLEX provides a tool to assess the numerical stability of your model. For continuous problems you can see the condition number of the final optimal basis by entering
    
    display solution quality
    

    in the interactive CPLEX shell. For MIPs, you need to activate the "MIP kappa" feature to get statistics about the numerical quality of the model and the solving process:
    
    read yourproblem.sav set mip strategy kappa 2 optimize display solution quality
    


    If you see a maximal condition number that is significantly larger than 1e+10, then it is likely that the model has numerical problems. One advice would be to avoid very large and very small coefficients in the constraint matrix. Maybe, you can rescale the variables to avoid those coefficients. For example, you could express variables that measure distance in kilometers instead of millimeters, or variables that measure costs in millions of dollars instead of cents.
    Tobias
    #CPLEXOptimizers
    #DecisionOptimization


  • 7.  Re: Infeasible solution found by CPLEX

    Posted 12/05/12 05:41 PM

    Originally posted by: SystemAdmin


    Numerical problems occur when the simplex method has to deal with "stiff" basis matrices (matrices that are close to singular). This introduces large rounding errors. Numerical instability of this sort can be caused by poor scaling (mixing large and small coefficients), but it can also be the result of bad luck .

    To test whether you have numerical stability problems, you can turn on the numerical emphasis parameter (which tells CPLEX to spend extra time trying to avoid stability problems) and see if that fixes the issue, or you can ask CPLEX to collect "kappa statistics" (condition numbers for the bases encountered) and see if it finds very many unstable bases.

    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