Decision Optimization

Decision Optimization

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

 View Only
Expand all | Collapse all

Binary Program for a Resource Constrained project scheduling problem

ALEX FLEISCHER

ALEX FLEISCHERFri November 21, 2014 11:58 AM

  • 1.  Binary Program for a Resource Constrained project scheduling problem

    Posted Fri November 21, 2014 10:11 AM

    Originally posted by: Elizabeth1393


    Good afternoon,

    I am supposed to implement a binary program in IBM ILOG CPLEX optimization studio, but I have been having some troubles, since I am not experient at this language. 
     

    The model file is: 

     

    int n = ...;
    range activities = 0..n;
     
     
    {int} resources = {1} ; //{1}
     
    int duration[activities] = ...;
    {int} P[activities] = ...;
     
    int T = ...;
    int ES[activities];
    int LS[activities];
    {int} r[activities][resources]= ...;
    int tau; 
     
    range time = 0..11; 
     
     
    dvar int x[activities][time] in 0..1;
     
     
    minimize sum (t in ES[n+1]..LS[n+1], j in activities) t*x[j,t];
     
    subject to{
     
     
    forall (j in activities) {
        sum (t in ES[j]..LS[j]) x[j][t] == 1;
          }      
       forall (j in activities, i in P[j]  ) {           
        sum (t in ES[j]..LS[j]) t*x[j][t] - sum(t in ES[i]..LS[i]) t*x[i][t]  >= duration[i];     
         }      
       //forall (t in 1..11) {
      //sum (j in activities) resources[j] * sum(tau in maxl(ES[j], t-duration[j])..minl(t-1, LS[j])) x[j,tau] <= 2;  
     
     // }
     forall(k in resources, t in 1..T) {
      sum(j in activities) 
      sum(tau in maxl(ES[j], t-duration[j])..minl(t-1, LS[j])) r[j][k] * x[j][tau] <= 2;
     }
       }  
       

     

    And the data file is: 

     

    n = 8;
     
    duration = [0,2,1,1,1,1,3,2,0];
    r = [0,1,1,2,2,2,2,1,0]; 
     
    ES = [0,0,0,2,1,3,3,2,6];
    LS = [5,5,7,7,8,10,8,9,11]; 
    T=11;
     
    P = [{},{0},{0},{1},{2},{3},{3},{4},{5,6,7}]; 

     

     

    The latest problem is in the last constraint, specifically here: r[j][k] * x[j][tau]  where it says "operator not available for {int}*dvar int"

     

    Could somebody help me please? 

     

    Thank you. 


    #DecisionOptimization
    #OPLusingCPLEXOptimizer


  • 2.  Re: Binary Program for a Resource Constrained project scheduling problem

    Posted Fri November 21, 2014 11:58 AM

    Hi

    I fixed some issues to make your model work

    .mod

    int n = ...;
    range activities = 0..n;
     
     
    {int} resources = {1} ; //{1}
     
    int duration[activities] = ...;
    {int} P[activities] = ...;
     
    int T = ...;
    int ES[activities]=...;
    int LS[activities]=...;
    int r[activities][resources]= ...;
    //int tau;
     
    range time = 0..11;
     
     
    dvar int x[activities][time] in 0..1;
     
     
    minimize sum (t in ES[n]..LS[n], j in activities) t*x[j,t];
     
    subject to{
     
     
    forall (j in activities) {
        sum (t in ES[j]..LS[j]) x[j][t] == 1;
          }      
       forall (j in activities, i in P[j]  ) {           
        sum (t in ES[j]..LS[j]) t*x[j][t] - sum(t in ES[i]..LS[i]) t*x[i][t]  >= duration[i];     
         }      
       //forall (t in 1..11) {
      //sum (j in activities) resources[j] * sum(tau in maxl(ES[j], t-duration[j])..minl(t-1, LS[j])) x[j,tau] <= 2;  
     
     // }
     forall(k in resources, t in 1..T) {
      sum(j in activities)
      sum(tau in maxl(ES[j], t-duration[j])..minl(t-1, LS[j])) r[j][k] * x[j][tau] <= 2;
     }
       }  
     

    .dat

    n = 8;
     
    duration = [0,2,1,1,1,1,3,2,0];
    r = [[0],[1],[1],[2],[2],[2],[2],[1],[0]];
     
    ES = [0,0,0,2,1,3,3,2,6];
    LS = [5,5,7,7,8,10,8,9,11];
    T=11;
     
    P = [{},{0},{0},{1},{2},{3},{3},{4},{5,6,7}];

    regards


    #DecisionOptimization
    #OPLusingCPLEXOptimizer