Decision Optimization

Decision Optimization

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


#Analytics
#DecisionOptimization
#DecisionOptimization
 View Only
  • 1.  logical constraint

    Posted 01/14/17 05:12 PM

    Originally posted by: Rym


    When i use a logical a constraint, i fall into a bad case:

    I explain:

     

    dvar float R[P][D] in 0..1;

    dexpr float minx[j in P] = minl(R[j][1],(minl(R[j][2],R[j][3]))); 
    dexpr int mini[j in P]=(minx[j]==R[j][1])*(1)+(minx[j]==R[j][2])*(2)+(minx[j]==R[j][3])*(3);

     

     

    The result:

    // R matrix

     [[0.95 0.95122 0.95]

     [0.95 0.95122 0.95]]

    //minx array
     [0.95 0.95]

    //mini array
     [4 4]

     

    So the problem in the "mini array" when i have two equal values like  [0.95 0.95122 0.95]], it gives me  4 instead of 1 or 3. In this example, it calculates (minx[j]==R[j][1])*(1)+(minx[j]==R[j][3])*(3)=4;

     

     

    There is another formula to express my need? Thanks

     


    #DecisionOptimization
    #OPLusingCPLEXOptimizer


  • 2.  Re: logical constraint

    Posted 01/15/17 01:09 PM

    Hi,

    you could try to go on with logical constraints:

    dexpr int mini[j in P]=(minx[j]==
    R[j][1])*(1)+((minx[j]==R[j][2])&&(abs(minx[j]-R[j][1])>=epsilon))*(2)+((minx[j]==R[j][3])&&(abs(minx[j]-R[j][1])>=epsilon)&&(abs(minx[j]-R[j][2])>=epsilon))*(3);

     

    For example

    range P=1..2;
    range D=1..3;

    float epsilon=0.000001;

    float r[P][D]=[[0.95, 0.95122, 0.95],
     [0.95, 0.95122 ,0.95]] ;
     
     dvar float R[P][D] in 0..1;

    dexpr float minx[j in P] = minl(R[j][1],(minl(R[j][2],R[j][3])));
    dexpr int mini[j in P]=(minx[j]==
    R[j][1])*(1)+((minx[j]==R[j][2])&&(abs(minx[j]-R[j][1])>=epsilon))*(2)+((minx[j]==R[j][3])&&(abs(minx[j]-R[j][1])>=epsilon)&&(abs(minx[j]-R[j][2])>=epsilon))*(3);

    subject to
    {
    forall(p in P,d in D) R[p][d]==r[p][d];
    }

    execute
    {
    writeln(mini);
    }

    gives

     [1 1]

     

    regards


    #DecisionOptimization
    #OPLusingCPLEXOptimizer


  • 3.  Re: logical constraint

    Posted 01/15/17 06:02 PM

    Originally posted by: Rym


    It's working. Thanks


    #DecisionOptimization
    #OPLusingCPLEXOptimizer