Hello Gams Community,

I am using a MIP model for project scheduling. The model is working

well for small problems but is struggling for bigger ones. Actually I

tested the model with 129 jobs and the computation time is already 120

sek. Since for the full practical problem 2000 jobs have to be

scheduled I am more or less sure that it will exceed time limit. I

tried aggressive probing and cutting as well as MIP emphasis 1-3 +

rinsheur but nothing improved the performance. Can anyone help me?

Thanks in advanced.

The model can be seen below:

$Title (Example)

$Ontext

…

$Offtext

Sets

j jobs /

…

/

f (j) final job / P1_Dummy_2, P2_Dummy_2, P3_Dummy_2 /

g (j) start job / P1_Dummy_1, P2_Dummy_1, P3_Dummy_1 /

Alias (i,j);

Set

m modus / …/

r resources /…/

t time index /… /

Alias (t,b)

Set s Sections / …/

;

Set path (i,j) /

…

/ ;

Parameters

c (r) costs per resource

/…/

d (j,m) duration for job from i executed in mode m

/ …

/

k (j,m,r) /…

/

kk (j,m,s) /… /

DD (f) due date /…/

SD (g) Start date /…/

max (s) Max Resource /… / ;

Variables

x(j,m,t) 1 if task j is done in t and executed in m

UK (r) units of resources required

TC Total Costs

binary Variable x;

Equations

cost define objective function

each_job (j) ens. that j is done only in one t

and m

precedence (i,j) ensures the precendence relationship

resource (t,r) prevents resource overuse

max_R (t,s) Space

due_date (f) ensures due date

Start_date (g) Start date

;

cost … TC =e= sum((r), (c (r)*UK (r))) ;

each_job(j) … sum ((m,t),x(j,m,t))=e= 1 ;

precedence (i,j)$path(i,j)… sum ((t,m),x(i,m,t)*(ord (t)+
(d(i,m)))) =l= sum ((t,m),x(j,m,t)* ord (t)) ;

resource (t,r)… sum {(j,m), k(j,m,r) * sum ((b)$

{[(ord(b)>=ord(t)) and (ord (b)=(ord (t)- d(j,m)+1))]}, x(j,m,b))} =l=

UK(r) ;

max_R (t,s)… sum {(j,m), kk(j,m,s) * sum ((b)$

{[(ord(b)>=ord(t)) and (ord (b)=(ord (t)- d(j,m)+1))]}, x(j,m,b))} =l=

max (s) ;

due_date (f) … sum ((t,m),x(f,m,t)*(ord(t)+d(f,m))) =l= DD (f) ;

Start_date (g) … sum ((t,m),x(g,m,t)*(ord(t))) =g= SD (g);

Model Example /all/ ;

Solve Example using MIP minimize TC

\