Decision Optimization

Decision Optimization

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


#Analytics
#DecisionOptimization
#DecisionOptimization
 View Only
  • 1.  Precision issues in solving MIP (Binary variables)

    Posted 06/11/13 01:10 PM

    Originally posted by: QChen61


    In my LP model, I have constraints as follows:

    b[1]+b[2]=1

    x[1]<=b[1], x[2]<=b[2]

    x[1],x[2] \in [0,1]

    b[1],b[2] binary

    That is, only one x can be strictly positive. The objective function does not have any b variables.

    However, in the optimal solutions given by CPLEX (default settings), the values are

    x[1]=0.000004103      b[1]=0.000009409
    x[2]=0.000000000      b[2]=0.999990591

    What  I would like to see is:

    x[1]=0.000004103      b[1]=1
    x[2]=0.000000000      b[2]=0

    Anyone knows how should I tune the solver's parameters? 

    Thanks in advance!

     

    Best,

    QC


    #CPLEXOptimizers
    #DecisionOptimization


  • 2.  Re: Precision issues in solving MIP (Binary variables)

    Posted 06/11/13 04:10 PM

    I assume you meant b[1]=0, b[2]=1. Just round them. You can try to eliminate all "noise" in the binary variables by cranking the integrality tolerance down to zero, but it potentially could make CPLEX think your model is infeasible.

    Paul


    #CPLEXOptimizers
    #DecisionOptimization


  • 3.  Re: Precision issues in solving MIP (Binary variables)

    Posted 06/11/13 09:30 PM

    Originally posted by: 63M3_Qiushi_Chen


    Thanks. But I did mean b[1]=1, b[2]=0 if x[1]=0.000004103 and x[2]=0.00000000 because of the constraints.


    #CPLEXOptimizers
    #DecisionOptimization


  • 4.  Re: Precision issues in solving MIP (Binary variables)

    Posted 06/12/13 11:12 AM

    b[1] = 1 is implied by the constraints, but b[2] = 0, while feasible, is not implied by the constraint x[2] <= b[2]. x[2] = 0, b[2] = 1 satisfies that constraint. Dialing the EpInt parameter down to zero (or close to zero) will force b[1] to be 1 (or close to 1), but won't affect b[2].

    Are you trying to achieve x[i] = 0 if and only if b[i] = 0 in your model?


    #CPLEXOptimizers
    #DecisionOptimization