Decision Optimization

Decision Optimization

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


#Analytics
#DecisionOptimization
#DecisionOptimization
 View Only
  • 1.  Big M and indicator constraints

    Posted 10/30/18 12:02 PM

    Originally posted by: 88Simon88


    Hello everybody,

    In the below formulation, X is binary, what is the best method to make it linear?

    Istip = (1 - Xsti) * (aps * Is(t-1)i(p-1) + bps * Is(t-1)ip + cps * Is(t-1)i(p+1))

     

    1- Indicator constraint

    forall (s in scenario, t in 2..T, i in cell)
    {
        (X[s][t][i] == 0) == (I[s][t][i][p] == a[p][s] * I[s][t-1][i][p-1] + a[p][s] * I[s][t-1][i][p] + a[p][s] * I[s][t-1][i][p+1]);

        (X[s][t][i] == 1) == (I[s][t][i][p] == 0);

    }

    2- Big M

    forall (s in scenario, t in 2..T, i in cell, p in 2..P-1)
      {  
        I[s][t][i][p] <= (a[p][s] * I[s][t-1][i][p-1] + b[p][s] * I[s][t-1][i][p] + c[p][s] * I[s][t-1][i][p+1]) + X[s][t][i] * BigM;
        I[s][t][i][p] >= (a[p][s] * I[s][t-1][i][p-1] + b[p][s] * I[s][t-1][i][p] + c[p][s] * I[s][t-1][i][p+1]) - X[s][t][i] * BigM;
        I[s][t][i][p] <= (1 - X[s][t][i]) * BigM;
        } 

    What is your suggestion? Have the codes written correctly?

    Thanks in advance for your help.


    #CPLEXOptimizers
    #DecisionOptimization


  • 2.  Re: Big M and indicator constraints

    Posted 10/30/18 03:20 PM

    Algebraically, your big M constraints look correct. Bear in mind that (a) you do not have to use the same value for "BigM" in each constraint and (b) the tighter the constraint (the smaller the value of "BigM") the better the solver performance (provided, of course, that "BigM" is big enough to be correct). Your indicator formulation uses "a" where I would have expected "b" or "c".


    #CPLEXOptimizers
    #DecisionOptimization


  • 3.  Re: Big M and indicator constraints

    Posted 10/30/18 04:54 PM

    Originally posted by: 88Simon88


    Thanks for your response.

    "a" has been written mistakenly as "b" and "c". You are right.

    Thank you so much.


    #CPLEXOptimizers
    #DecisionOptimization