Decision Optimization

Decision Optimization

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


#Analytics
#DecisionOptimization
#DecisionOptimization
 View Only
  • 1.  CPLEX cannot extract the expression

    Posted 07/05/16 01:10 PM

    Originally posted by: NguyenHuuTRi


    Hi,

     

    I am trying to run this model but it said that CPLEX cannot extract the expression. Attached please find my model. Hope you can help fix this error.

     

    Thanks.

     

    Tri.


    #DecisionOptimization
    #OPLusingCPLEXOptimizer


  • 2.  Re: CPLEX cannot extract the expression

    Posted 07/05/16 03:23 PM

    Hi,

    in order to be able to extract you could rewrite into something like

    /*********************************************
     * OPL 12.6.2.0 Model
     * Author: halenguy
     * Creation Date: Jun 18, 2016 at 10:32:46 PM
     *********************************************/

     

    //parameters

    int m =2; // number of product
    int n =2; // number of station
    int k =4; // number of MT

    range station = 1..n;
    range products = 1..m;
    range MT = 1..k;


    float prodGoal[station][products]=...;
    float runrate[station][products]=...;
    float LS[station][products]= ...;
    float PT[station][products]=...;
    float TS[station]=[0.5 , 0.25];
    float MA[station]=[0.9, 0.8];
    float T=10;
    float weight[1..6]=[0.3 , 0.3, 0.1, 0.1, 0.1, 0.1];
    float C[station]=[0.5, 0.5];
    float l[MT]= [0.5, 0.3, 0.5, 1];
    //variables
    dvar float x[MT][station];
    dvar float dp[station];
    dvar float dn[station];
    dvar boolean y[MT];
    dvar boolean c[MT][station];

    dvar float bp1[station];
    dvar float bp2[station];
    dvar float bp3[station];
    dvar float bn1[station];
    dvar float bn2[station];
    dvar float bn3[station];
    //Objective:

    dvar float abc; //=sum(j in station)(abs(sum( p in products)(prodGoal[j][p]*PT[j][p])/LS[j][p]-T*sum( i in MT)((1-y[i])*x[i][j]) - T*(sum (i in MT)(y[i]*x[i][j]*l[i]))));
    dvar float priority1; //= sum(j in station)(0.2*bp1[j]+0.3*bn1[j]);
    dvar float priority2; //=sum(j in station)(0.2*bp2[j]+0.1*bn2[j]);
    dvar float priority3; //=sum(j in station)(0.1*bp3[j]+0.1*bn3[j]);

    dvar float xy[MT][station];


    minimize (weight[3]*abc + weight[4]*priority1 + weight[5]*priority2 + weight[6]*priority3) ;
     
     
    subject to {

    forall(i in MT, j in station) (xy[i][j]==x[i][j]) == (y[i]==1);
    forall(i in MT, j in station) (xy[i][j]==0) == (y[i]==0);


    abc==sum(j in station)(abs(sum( p in products)(prodGoal[j][p]*PT[j][p])/LS[j][p]
    -T*sum( i in MT)(x[i][j]-xy[i][j])
     - T*(sum (i in MT)(xy[i][j]*l[i]))));
    priority1== sum(j in station)(0.2*bp1[j]+0.3*bn1[j]);
    priority2==sum(j in station)(0.2*bp2[j]+0.1*bn2[j]);
    priority3==sum(j in station)(0.1*bp3[j]+0.1*bn3[j]);

        
        forall(i in MT, j in station, p in products)    
            workload1:
            c[i][j]==1 && y[i]==1 && l[i]==0.5 &&
            T*sum (i in MT)(x[i][j]*l[i])+bn1[j] - bp1[j]== sum( p in products)((prodGoal[j][p]*PT[j][p])/LS[j][p]);
            
         forall(i in MT, j in station, p in products)    
            workload2:
            c[i][j]==1 &&y[i]==0 &&        
            T*sum (i in MT)(0)+bn2[j] - bp2[j]== sum( p in products)((prodGoal[j][p]*PT[j][p])/LS[j][p]);
        forall(i in MT, j in station, p in products)    
            workload3:
            c[i][j]==1 && y[i]==1 && l[i]==0.5 &&
            T*sum (i in MT)(x[i][j]*l[i])+bn3[j] - bp3[j]== sum( p in products)((prodGoal[j][p]*PT[j][p])/LS[j][p]);
        forall(i in MT, j in station)    
            workload4:
            x[i][j] <= 1000000*c[i][j];
        forall(i in MT, j in station)
        sum (j in station) x[i][j] <= l[i];
        forall(i in MT, j in station)
          0<=x[i][j]<=1;
    }

    regards


    #DecisionOptimization
    #OPLusingCPLEXOptimizer


  • 3.  Re: CPLEX cannot extract the expression

    Posted 07/05/16 07:17 PM

    Originally posted by: NguyenHuuTRi


    Hi Alex,

    I noticed that your suggestion is workable. However, when I run this model, it returns the no solution. Can you please have a look on that matter?

     

    Thanks.

     

    Tri.


    #DecisionOptimization
    #OPLusingCPLEXOptimizer


  • 4.  Re: CPLEX cannot extract the expression

    Posted 07/06/16 10:07 AM

    Hi,

    you should try to debug your model , relax all constraints by commenting and then add one by one

    regards


    #DecisionOptimization
    #OPLusingCPLEXOptimizer