Decision Optimization

Decision Optimization

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


#Analytics
#DecisionOptimization
#DecisionOptimization
 View Only
  • 1.  two similar problems one feasible while another not

    Posted 01/26/16 06:18 PM

    Originally posted by: PingLiu


    I have two problems in mps. there are some very small differences in the coefficients of x1 in row c21, c22, c24, c25, c27, c28, c30, c31 between these two problems. the feasible problem can successfully find the solution expressed in x in the attachment. I tried the attached x solution in the infeasible problem, it seems the infeasible problem should have the same solution as the feasible problem. But the cplex can only find solution for one of the problems. I don't understand why another one would be infeasible. 


    #CPLEXOptimizers
    #DecisionOptimization


  • 2.  Re: two similar problems one feasible while another not

    Posted 01/27/16 07:44 AM

    Have you tried using the conflict refiner? It claims that the following system of constraints is infeasible in MyMPS_infeasible:

    Subject To
     R3:  C3 - 3000 C12 <= 0
     R24: 2.6822091e-9 C1 + C9 <= 0
     R32: C3 - C4 - C5 + C6  = 3560.340332
     R33: 0.9990000129 C1 + 0.8999999762 C5 - 1.098901153 C6 - C7  = 0
    \Sum of equality rows in the conflict:
    \ sum_eq: 0.9990000129 C1 + C3 - C4 - 0.1000000238 C5 - 0.0989011529999999 C6
    \         - C7  = 3560.340332
    Bounds
          C1 Free
          C3 Free
          C6 Free
     0 <= C12 <= 1
     All other variables are >= 0.
    Binaries
     C12

    When I use the solution for MyMPS_feasible as MIP start for MyMPS_infeasible and refine the resulting conflict then I get this as minimal conflict:

    Subject To
     R2:  - C1 + 10 C2 <= 0
     R24: 2.6822091e-9 C1 + C9 <= 0
     R30: - 0.150000006 C1 + C11 <= 0
    Bounds
          C1 Free
     0 <= C2 <= 1
     -Inf <= C11 <= 1000000
     All other variables are >= 0.
    Binaries
     C2

    I did not check anything in detail but mixing coefficients like 1e-9 with coefficients like 8000 is a bad idea in any case. This is really asking for numerical problems.


    #CPLEXOptimizers
    #DecisionOptimization


  • 3.  Re: two similar problems one feasible while another not

    Posted 01/28/16 12:49 AM

    Originally posted by: PingLiu


    The coefficients of 1e-9 should be 0. I don't know why it is expressed as something strange like this in Python.

    It seems that conflict refiner is a good idea for debugging. Do you know how I can invoke it in Python?


    #CPLEXOptimizers
    #DecisionOptimization


  • 4.  Re: two similar problems one feasible while another not

    Posted 01/28/16 03:23 AM

    I don't think Python is the culprit here. Probably you are doing some calculations that are not exact and then forget to properly round/truncate the results.

    Detailed explanation of conflict analysis in CPLEX can be found here. The relevant functions in the Python API are Cplex.conflict.refine() and Cplex.conflict.refine_MIP_start().


    #CPLEXOptimizers
    #DecisionOptimization