Good afternoon,

I would like to know how to express the following condition that should introduce that the **resource allocated to each project should satisfy each project demand during the period when the project is executing**, means for **t between Start and End.**

- Such as
**Debut (j)**is the first decision variable: the starting date of the project. **Fin (j)**the finishing date of the project j.

Here is the details about the problem :

param n;

param l;

set P:= {1…n}; #set of projects

set RType:={“Project manager”, “Contractual manager”}; #set of human resources

set T:= {1…l}; #set of periods

param LF{j in P}; # Latest finishing of the project

param Duration{j in P};# duration of project j

param RDemand{j in P, r in RType}; # total number of required resource type r to be allocated to project j on any term within its duration

param Av{r in RType, t in T}; #number of resource type r available at the period t

var Debut{j in P} integer>=1; # Project starting date

var Fin{j in P} integer>=0; # Project finishing date

var XS{j in P, t in T} binary; #indicates in which period project j starts

var XE{j in P, t in T} binary; #indicates in which period project j finishes

var Y{j in P, r in RType, t in T} integer>=0; #resource r allocated to project j at the period t

minimize Z:

sum{j in P, r in RType, t in T} Y[j,r,t];

subject to DurationConstraint {j in P}:

Fin[j]-Debut[j]+1= Duration[j];

subject to StartConstraint {j in P}:

Debut[j]= sum {t in T} t*XS[j,t];

subject to EndConstraint {j in P}:

Fin[j]= sum {t in T} t*XE[j,t];

subject to SContraint {j in P}:

sum{t in T} XS[j,t] <= 1;

subject to EConstraint {j in P}:

sum{t in T} XE[j,t] <= 1;

subject to AffectConstraint {r in RType, t in T}:

sum {j in P} Y[j,r,t]<= Av[r,t];

subject to DemandConstraint {j in P, r in RType, t in T}:

Y[j, r, t]= RDemand[j,r];

subject to FinishConstraint {j in P}:

Fin[j]<= LF[j];

**The results that I get are really weird when I juste put the following constraint ::**

subject to DemandConstraint {j in P, (j,s) in PS, (j, m) in PM, r in RType,t in T}:

Y[j, r, t]>= RDemand[s,m,r];**!!!**

**When testing the following one, I had an error on defining indexes :**

subject to DemandConstraint {j in P, r in RType, t in T : Debut[j]<=t<=Fin[j]}:

Y[j, r, t]= RDemand[j,r];

Thank you!!!

Best regards,