MRCPSP + anyone with a RCPSP in Gams language?

Hello together,

I am absolutely new in GAMS progamming and programming in generel
(just a little bit Xpress so far).

For a practical Project scheduling Problem I would like to implement a
so called Multi Mode Resource Constrained Project Scheduling Problem.
To get into the GAMS environment my idea was to start with a basic CPM
Modell and after it to expand the Modell through a RCPSP and after it
to a MRCPSP.

But l am struggeling already at the beginning with the CPM
implementation. I dont know how to code precedence relationships between tasks. I tried to connect them with a d(i,j) = time lag between activity i and j but just because I dont know a better way to code them.

It seems that all syntax errors are eliminated from my first model but
the output isn`t that pretty → infeasible


My first little model is coded as the following:


Sets

i activities / Dummy_1, Design, Structure, Basics, Cabin,
Service, Components, Dummy_2 /


Alias (i,j) ;

Parameters

d(i,j) time lag between activity i and j
/ Dummy_1. Design 0,
Dummy_1. Structure 0,
Dummy_1. Basics 0,
Design. Cabin 2,
Structure. Cabin 3,
Structure. Service 3,
Basics. Service 1,
Cabin. Components 4,
Service. Dummy_2 2,
Components. Dummy_2 1 / ;

Variables
S(i) start time of activity i
T total time

Positive Variable S ;

Equations
time define objective function
order (i,j) ensures the technical order
restrictions
start (i) ensures beginning at point 0 ;

time … T =e= S(‘Dummy_2’) ;

order(i,j) … S(j) - S(i) =g= d(i,j) ;

start(i) … S(‘Dummy_1’)=e= 0 ;

Model transport /all/ ;

Solve transport using lp minimizing T ;


→ the infeasibality occured in row (order Design, Cabin): 0 >= 2

→ it seems that the starting points of the activities were`t
calculated

→ Please help :wink: + If anyone has a basic RCPSP in GAMS language I
am highly interested in it.

Best regards

Keks

\

Hi Keks,

The infeasibility is becuase you defined the order(i,j) constraint for every combination of i and j.
You could try to define task precedents (the project path) using dynamic sets and define the constraint order (i,j) over this dynamic set only.

*** Creating dyaminc set
Set path(i,j) /
Dummy_1. Design
Dummy_1. Structure
Dummy_1. Basics
Design. Cabin
Structure. Cabin
Structure. Service
Basics. Service
Cabin. Components
Service. Dummy_2
Components. Dummy_2
/
**** definig equation over dynamic set
order(i,j)$m(i,j) … S(j) - S(i) =g= d(i,j) ;

I hope this solves the infeasiblity!

Just an opinoin: if you are minimizing the total project time, I think you must include the duration of each task.

Good luck

On Sun, Aug 7, 2011 at 1:14 PM, Keks wrote:

Hello together,

I am absolutely new in GAMS progamming and programming in generel
(just a little bit Xpress so far).

For a practical Project scheduling Problem I would like to implement a
so called Multi Mode Resource Constrained Project Scheduling Problem.
To get into the GAMS environment my idea was to start with a basic CPM
Modell and after it to expand the Modell through a RCPSP and after it
to a MRCPSP.

But l am struggeling already at the beginning with the CPM
implementation. I dont know how to code precedence relationships between tasks. I tried to connect them with a d(i,j) = time lag between activity i and j but just because I dont know a better way to code them.

It seems that all syntax errors are eliminated from my first model but
the output isn`t that pretty → infeasible


My first little model is coded as the following:


Sets

i activities / Dummy_1, Design, Structure, Basics, Cabin,
Service, Components, Dummy_2 /


Alias (i,j) ;

Parameters

d(i,j) time lag between activity i and j
/ Dummy_1. Design 0,
Dummy_1. Structure 0,
Dummy_1. Basics 0,
Design. Cabin 2,
Structure. Cabin 3,
Structure. Service 3,
Basics. Service 1,
Cabin. Components 4,
Service. Dummy_2 2,
Components. Dummy_2 1 / ;

Variables
S(i) start time of activity i
T total time

Positive Variable S ;

Equations
time define objective function
order (i,j) ensures the technical order
restrictions
start (i) ensures beginning at point 0 ;

time … T =e= S(‘Dummy_2’) ;

order(i,j) … S(j) - S(i) =g= d(i,j) ;

start(i) … S(‘Dummy_1’)=e= 0 ;

Model transport /all/ ;

Solve transport using lp minimizing T ;


→ the infeasibality occured in row (order Design, Cabin): 0 >= 2

→ it seems that the starting points of the activities were`t
calculated

→ Please help :wink: + If anyone has a basic RCPSP in GAMS language I
am highly interested in it.

Best regards

Keks


To post to this group, send email to gamsworld@googlegroups.com.
To unsubscribe from this group, send email to gamsworld+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/gamsworld?hl=en.

\

To post to this group, send email to gamsworld@googlegroups.com.
To unsubscribe from this group, send email to gamsworld+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/gamsworld?hl=en.

Hi Muhajir,

thanks for your quick response, I think I understood your intension.

But after I tried to implement your advices, different error messages occured.

At first my Alias statement wasn’t working anymore because now set path (i,j) was a key set himselfs.
My second question is what i “m” for ?
But if you would like to take a look at my coding (error messages included) because also other errors occured.

Thanks in advanced

Sets
10
11 i activities / Dummy_1, Design, Structure, Basics, Cabin, Serv
ice, Components, Dummy_2 /
12
13 i,j path
14 / Dummy_1. Design
15 Dummy_1. Structure
16 Dummy_1. Basics
17 Design. Cabin
18 Structure. Cabin
19 Structure. Service
20 Basics. Service
21 Cabin. Components
22 Service. Dummy_2
23 Components. Dummy_2 /
24 Alias (i,j) ;
**** $406,158
25
26 Parameters
27
28 d(i,j) path duration from i to j
**** $122
29 / Dummy_1. Design 0
30 Dummy_1. Structure 0
31 Dummy_1. Basics 0
32 Design. Cabin 2
33 Structure. Cabin 3
34 Structure. Service 3
35 Basics. Service 1
36 Cabin. Components 4
37 Service. Dummy_2 2
38 Components. Dummy_2 1
39 / ;
40
41 Variables
42 S(i) start time of activity i
43 T total time
44
45 Positive Variable S ;
46
47 Equations
48 time define objective function
49 order (i,j) ensures the technical order restrictions
**** $122
50 start (i) ensures beginning at point 0 ;
51
52 time … T =e= S(‘Dummy_2’) ;
53
54 order(i,j)$m(i,j) … S(j) - S(i) =g= d(i,j) ;
**** $148,140 $171,148 $148
55
56 start(I) … S(‘Dummy_1’)=e= 0 ;
57
58 Model transport /all/ ;
59
60 Solve transport using lp minimizing T ;
**** $257



Von: “Muhajir Tadesse”
Gesendet: 07-Aug-2011 16:02:38
An: gamsworld@googlegroups.com
Betreff: Re: MRCPSP + anyone with a RCPSP in Gams language?


Hi Keks,

The infeasibility is becuase you defined the order(i,j) constraint for every combination of i and j.
You could try to define task precedents (the project path) using dynamic sets and define the constraint order (i,j) over this dynamic set only.

*** Creating dyaminc set
Set path(i,j) /
Dummy_1. Design
Dummy_1. Structure
Dummy_1. Basics
Design. Cabin
Structure. Cabin
Structure. Service
Basics. Service
Cabin. Components
Service. Dummy_2
Components. Dummy_2
/
**** definig equation over dynamic set
order(i,j)$m(i,j) … S(j) - S(i) =g= d(i,j) ;

I hope this solves the infeasiblity!

Just an opinoin: if you are minimizing the total project time, I think you must include the duration of each task.

Good luck

On Sun, Aug 7, 2011 at 1:14 PM, Keks wrote:

Hello together,

I am absolutely new in GAMS progamming and programming in generel
(just a little bit Xpress so far).

For a practical Project scheduling Problem I would like to implement a
so called Multi Mode Resource Constrained Project Scheduling Problem.
To get into the GAMS environment my idea was to start with a basic CPM
Modell and after it to expand the Modell through a RCPSP and after it
to a MRCPSP.

But l am struggeling already at the beginning with the CPM
implementation. I dont know how to code precedence relationships between tasks. I tried to connect them with a d(i,j) = time lag between activity i and j but just because I dont know a better way to code them.

It seems that all syntax errors are eliminated from my first model but
the output isn`t that pretty → infeasible


My first little model is coded as the following:


Sets

i activities / Dummy_1, Design, Structure, Basics, Cabin,
Service, Components, Dummy_2 /


Alias (i,j) ;

Parameters

d(i,j) time lag between activity i and j
/ Dummy_1. Design 0,
Dummy_1. Structure 0,
Dummy_1. Basics 0,
Design. Cabin 2,
Structure. Cabin 3,
Structure. Service 3,
Basics. Service 1,
Cabin. Components 4,
Service. Dummy_2 2,
Components. Dummy_2 1 / ;

Variables
S(i) start time of activity i
T total time

Positive Variable S ;

Equations
time define objective function
order (i,j) ensures the technical order
restrictions
start (i) ensures beginning at point 0 ;

time … T =e= S(‘Dummy_2’) ;

order(i,j) … S(j) - S(i) =g= d(i,j) ;

start(i) … S(‘Dummy_1’)=e= 0 ;

Model transport /all/ ;

Solve transport using lp minimizing T ;


→ the infeasibality occured in row (order Design, Cabin): 0 >= 2

→ it seems that the starting points of the activities were`t
calculated

→ Please help :wink: + If anyone has a basic RCPSP in GAMS language I
am highly interested in it.

Best regards

Keks


To post to this group, send email to gamsworld@googlegroups.com.
To unsubscribe from this group, send email to gamsworld+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/gamsworld?hl=en.



\

To post to this group, send email to gamsworld@googlegroups.com.
To unsubscribe from this group, send email to gamsworld+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/gamsworld?hl=en.



Schon gehört? WEB.DE hat einen genialen Phishing-Filter in die
Toolbar eingebaut! http://produkte.web.de/go/toolbar


To post to this group, send email to gamsworld@googlegroups.com.
To unsubscribe from this group, send email to gamsworld+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/gamsworld?hl=en.

Sorry Keks,

Here is what I mean.

Path (i,j) should be defined after defining the alias. GAMS will not understand set “j” unless first you define it in the alias.

The other was my mistake, ‘m’ was to mean ‘path’ !, It goes like this

order(i,j)$path(i,j) … S(j) - S(i) =g= d(i,j) ;

sorry for the mistake

I hope it will be OK now!

*******************************Rearrange the modes as
Sets
10
11 i activities / Dummy_1, Design, Structure, Basics, Cabin, Serv
ice, Components, Dummy_2 /
12
24 Alias (i,j) ;
**** $406,158
25
13 i,j path
14 / Dummy_1. Design
15 Dummy_1. Structure
16 Dummy_1. Basics
17 Design. Cabin
18 Structure. Cabin
19 Structure. Service
20 Basics. Service
21 Cabin. Components
22 Service. Dummy_2
23 Components. Dummy_2 /
26 Parameters
27
28 d(i,j) path duration from i to j
**** $122
29 / Dummy_1. Design 0
30 Dummy_1. Structure 0
31 Dummy_1. Basics 0
32 Design. Cabin 2
33 Structure. Cabin 3
34 Structure. Service 3
35 Basics. Service 1
36 Cabin. Components 4
37 Service. Dummy_2 2
38 Components. Dummy_2 1
39 / ;
40
41 Variables
42 S(i) start time of activity i
43 T total time
44
45 Positive Variable S ;
46
47 Equations
48 time define objective function
49 order (i,j) ensures the technical order restrictions
**** $122
50 start (i) ensures beginning at point 0 ;
51
52 time … T =e= S(‘Dummy_2’) ;
53
54 order(i,j)$path(i,j) … S(j) - S(i) =g= d(i,j) ;
**** $148,140 $171,148 $148
55
56 start(I) … S(‘Dummy_1’)=e= 0 ;
57
58 Model transport /all/ ;
59
60 Solve transport using lp minimizing T ;


$257




Von: “Muhajir Tadesse”
Gesendet: 07-Aug-2011 16:02:38
An: gamsworld@googlegroups.com
Betreff: Re: MRCPSP + anyone with a RCPSP in Gams language?



Hi Keks,

The infeasibility is becuase you defined the order(i,j) constraint for every combination of i and j.
You could try to define task precedents (the project path) using dynamic sets and define the constraint order (i,j) over this dynamic set only.

*** Creating dyaminc set
Set path(i,j) /
Dummy_1. Design
Dummy_1. Structure
Dummy_1. Basics
Design. Cabin
Structure. Cabin
Structure. Service
Basics. Service
Cabin. Components
Service. Dummy_2
Components. Dummy_2
/
**** definig equation over dynamic set
order(i,j)$m(i,j) … S(j) - S(i) =g= d(i,j) ;

I hope this solves the infeasiblity!

Just an opinoin: if you are minimizing the total project time, I think you must include the duration of each task.

Good luck

On Sun, Aug 7, 2011 at 1:14 PM, Keks wrote:

Hello together,

I am absolutely new in GAMS progamming and programming in generel
(just a little bit Xpress so far).

For a practical Project scheduling Problem I would like to implement a
so called Multi Mode Resource Constrained Project Scheduling Problem.
To get into the GAMS environment my idea was to start with a basic CPM
Modell and after it to expand the Modell through a RCPSP and after it
to a MRCPSP.

But l am struggeling already at the beginning with the CPM
implementation. I dont know how to code precedence relationships between tasks. I tried to connect them with a d(i,j) = time lag between activity i and j but just because I dont know a better way to code them.

It seems that all syntax errors are eliminated from my first model but
the output isn`t that pretty → infeasible


My first little model is coded as the following:


Sets

i activities / Dummy_1, Design, Structure, Basics, Cabin,
Service, Components, Dummy_2 /


Alias (i,j) ;

Parameters

d(i,j) time lag between activity i and j
/ Dummy_1. Design 0,
Dummy_1. Structure 0,
Dummy_1. Basics 0,
Design. Cabin 2,
Structure. Cabin 3,
Structure. Service 3,
Basics. Service 1,
Cabin. Components 4,
Service. Dummy_2 2,
Components. Dummy_2 1 / ;

Variables
S(i) start time of activity i
T total time

Positive Variable S ;

Equations
time define objective function
order (i,j) ensures the technical order
restrictions
start (i) ensures beginning at point 0 ;

time … T =e= S(‘Dummy_2’) ;

order(i,j) … S(j) - S(i) =g= d(i,j) ;

start(i) … S(‘Dummy_1’)=e= 0 ;

Model transport /all/ ;

Solve transport using lp minimizing T ;


→ the infeasibality occured in row (order Design, Cabin): 0 >= 2

→ it seems that the starting points of the activities were`t
calculated

→ Please help :wink: + If anyone has a basic RCPSP in GAMS language I
am highly interested in it.

Best regards

Keks


To post to this group, send email to gamsworld@googlegroups.com.
To unsubscribe from this group, send email to gamsworld+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/gamsworld?hl=en.



\

To post to this group, send email to gamsworld@googlegroups.com.
To unsubscribe from this group, send email to gamsworld+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/gamsworld?hl=en.



Schon gehört? WEB.DE hat einen genialen Phishing-Filter in die
Toolbar eingebaut! http://produkte.web.de/go/toolbar


To post to this group, send email to gamsworld@googlegroups.com.
To unsubscribe from this group, send email to gamsworld+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/gamsworld?hl=en.

\

To post to this group, send email to gamsworld@googlegroups.com.
To unsubscribe from this group, send email to gamsworld+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/gamsworld?hl=en.

Hi Muhajir,

thanks a lot, my litte CPM is working now. So, today I tried my second approach to GAMS with an more advanced RIP Modell (A new heuristic for the multi mode resource investment problem by Hsu and Kim), but no wonder i am of course struggeling again.

→ three generel errors occured: 133, 148, 149

→ One big problem I have, is that I don’t know how to sum about a specific part of a set that is dynamic (Problem for the resource equation)

→ I think the 148 error occured because t is an indice and also multiplied sometimes → but I don’t how to solve it

The coding is the following → if you still interested so take a look :slight_smile:

start:

3
Modell by HSU and Kim (2004)

8
9 Sets
10
11 j jobs / Dummy_1, Design, Structure, Basics, Cabin, Service,
12 Components,Dummy_2 /
13
14 Alias (i,j);
15
16
17 Set m modes /Standard, Fast/
18
19 r resources /Painter /
20
21 t time index /1*16 /
22
23 Alias (t,b)
24 ;
25
26
27
28
29 Set path (i,j) /
30 Dummy_1.Design
31 Dummy_1.Structure
32 Dummy_1.Basics
33 Design. Cabin
34 Structure. Cabin
35 Structure. Service
36 Basics. Service
37 Cabin. Components
38 Service. Dummy_2
39 Components. Dummy_2 / ;
40
41
42
43 Parameters
44
45 c (r) Costs per resource
46 /Painter 1/
47
48 d(j,m) duration for job from i executed in mode m
49
50 / Dummy_1.Standard 0
51 Design.Standard 2
52 Structure.Standard 3
53 Basics.Standard 1
54 Cabin.Standard 4
55 Service.Standard 2
56 Components.Standard 1
57 Dummy_2.Fast 0
58 Design.Fast 1
59 Structure.Fast 2
60 Basics.Fast 1
61 Cabin.Fast 2
62 Service.Fast 1
63 Components.Fast 1
64 /
65
66
67 k (j,m,r) /Dummy_1.Standard.Painter 0
68 Design.Standard. Painter 3
69 Structure.Standard. Painter 1
70 Basics.Standard. Painter 2
71 Cabin.Standard. Painter 2
72 Service.Standard. Painter 3
73 Components.Standard. Painter 3
74 Dummy_2.Standard. Painter 0
75 Dummy_1.Fast. Painter 0
76 Design.Fast. Painter 4
77 Structure.Fast. Painter 2
78 Basics.Fast. Painter 4
79 Cabin.Fast. Painter 4
80 Service.Fast. Painter 4
81 Components.Fast. Painter 4
82 Dummy_2.Fast. Painter 0 / ;
83
84 Scalar DD due date /12/;
85
86 Variables
87 x(j,m,t) 1 if task j is done in t and executed in m
88 UK (r) units of resources required
89 TC Total Costs
90 binary Variable x ;
91
92 Equations
93 cost define objective function
94 each_job (j) ens. that j is done only in one t and m
95 precedence (i,j) ensures the precendence relationship
96 resource (t,r) prevents resource overuse
97 due_date ensures due date ;
98
99 cost … TC =e= sum(r, (c (r)UK (r))) ;
100
101 each_job(j) …sum ((m,t),x(j,m,t))=e= 1 ;
102
103 precedence (i,j)$path(i,j)… sum ((m,t),x(i,m,t)
(t+d(i,m))) =l=
**** $148 $133
104 sum ((m,t),x(j,m,t)t) ;
**** 148 105 106 resource (t,r).. sum ((j,m),k(j,m,r)) * sum (b(t-d(j,m)+1), x(j,m,b))
**** $148$149,149,133,133,14
9,149
107 =l= UK(r) ;
108
109 due_date … sum ((m,t),x(j,m,t)
t) =l= DD ;
**** $149 $148
110
111 Model transport /all/ ;
112
113 Solve transport using MIP minimize TC ;
**** $257
114
115
116
Error Messages


133 Incompatible operands for addition
148 Dimension different - The symbol is referenced with more/less
indices as declared
149 Uncontrolled set entered as constant
257 Solve statement not checked because of previous errors



Von: “Muhajir Tadesse”
Gesendet: 08-Aug-2011 10:51:19
An: gamsworld@googlegroups.com
Betreff: Re: MRCPSP + anyone with a RCPSP in Gams language?

Sorry Keks,

Here is what I mean.

Path (i,j) should be defined after defining the alias. GAMS will not understand set “j” unless first you define it in the alias.

The other was my mistake, ‘m’ was to mean ‘path’ !, It goes like this

order(i,j)$path(i,j) … S(j) - S(i) =g= d(i,j) ;

sorry for the mistake

I hope it will be OK now!

*******************************Rearrange the modes as
Sets
10
11 i activities / Dummy_1, Design, Structure, Basics, Cabin, Serv
ice, Components, Dummy_2 /
12
24 Alias (i,j) ;
**** $406,158
25
13 i,j path
14 / Dummy_1. Design
15 Dummy_1. Structure
16 Dummy_1. Basics
17 Design. Cabin
18 Structure. Cabin
19 Structure. Service
20 Basics. Service
21 Cabin. Components
22 Service. Dummy_2
23 Components. Dummy_2 /
26 Parameters
27
28 d(i,j) path duration from i to j
**** $122
29 / Dummy_1. Design 0
30 Dummy_1. Structure 0
31 Dummy_1. Basics 0
32 Design. Cabin 2
33 Structure. Cabin 3
34 Structure. Service 3
35 Basics. Service 1
36 Cabin. Components 4
37 Service. Dummy_2 2
38 Components. Dummy_2 1
39 / ;
40
41 Variables
42 S(i) start time of activity i
43 T total time
44
45 Positive Variable S ;
46
47 Equations
48 time define objective function
49 order (i,j) ensures the technical order restrictions
**** $122
50 start (i) ensures beginning at point 0 ;
51
52 time … T =e= S(‘Dummy_2’) ;
53
54 order(i,j)$path(i,j) … S(j) - S(i) =g= d(i,j) ;
**** $148,140 $171,148 $148
55
56 start(I) … S(‘Dummy_1’)=e= 0 ;
57
58 Model transport /all/ ;
59
60 Solve transport using lp minimizing T ;


$257




Von: “Muhajir Tadesse”
Gesendet: 07-Aug-2011 16:02:38
An: gamsworld@googlegroups.com
Betreff: Re: MRCPSP + anyone with a RCPSP in Gams language?




Hi Keks,

The infeasibility is becuase you defined the order(i,j) constraint for every combination of i and j.
You could try to define task precedents (the project path) using dynamic sets and define the constraint order (i,j) over this dynamic set only.

*** Creating dyaminc set
Set path(i,j) /
Dummy_1. Design
Dummy_1. Structure
Dummy_1. Basics
Design. Cabin
Structure. Cabin
Structure. Service
Basics. Service
Cabin. Components
Service. Dummy_2
Components. Dummy_2
/
**** definig equation over dynamic set
order(i,j)$m(i,j) … S(j) - S(i) =g= d(i,j) ;

I hope this solves the infeasiblity!

Just an opinoin: if you are minimizing the total project time, I think you must include the duration of each task.

Good luck

On Sun, Aug 7, 2011 at 1:14 PM, Keks wrote:

Hello together,

I am absolutely new in GAMS progamming and programming in generel
(just a little bit Xpress so far).

For a practical Project scheduling Problem I would like to implement a
so called Multi Mode Resource Constrained Project Scheduling Problem.
To get into the GAMS environment my idea was to start with a basic CPM
Modell and after it to expand the Modell through a RCPSP and after it
to a MRCPSP.

But l am struggeling already at the beginning with the CPM
implementation. I dont know how to code precedence relationships between tasks. I tried to connect them with a d(i,j) = time lag between activity i and j but just because I dont know a better way to code them.

It seems that all syntax errors are eliminated from my first model but
the output isn`t that pretty → infeasible


My first little model is coded as the following:


Sets

i activities / Dummy_1, Design, Structure, Basics, Cabin,
Service, Components, Dummy_2 /


Alias (i,j) ;

Parameters

d(i,j) time lag between activity i and j
/ Dummy_1. Design 0,
Dummy_1. Structure 0,
Dummy_1. Basics 0,
Design. Cabin 2,
Structure. Cabin 3,
Structure. Service 3,
Basics. Service 1,
Cabin. Components 4,
Service. Dummy_2 2,
Components. Dummy_2 1 / ;

Variables
S(i) start time of activity i
T total time

Positive Variable S ;

Equations
time define objective function
order (i,j) ensures the technical order
restrictions
start (i) ensures beginning at point 0 ;

time … T =e= S(‘Dummy_2’) ;

order(i,j) … S(j) - S(i) =g= d(i,j) ;

start(i) … S(‘Dummy_1’)=e= 0 ;

Model transport /all/ ;

Solve transport using lp minimizing T ;


→ the infeasibality occured in row (order Design, Cabin): 0 >= 2

→ it seems that the starting points of the activities were`t
calculated

→ Please help :wink: + If anyone has a basic RCPSP in GAMS language I
am highly interested in it.

Best regards

Keks


MMRIPpdf.pdf (166 KB)

Hello Keks
You have to use ORD function to operate set order values with parameters.
I have a rough look at the model and here are some suggestions.
++++++
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
due_date (j) ensures due 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 ((m,t),x(i,m,t)*(ord(t)+d(i,m))) =l=

sum ((m,t),x(j,m,t)*ord(t)) ;


resource (t,r)… sum ((j,m),k(j,m,r) * sum (b$(ord(t)-d(j,m)+1), x(j,m,b)))


=l= UK(r) ;

due_date(j)… sum ((m,t),x(j,m,t)* ord(t)) =l= DD ;


Model transport /all/ ;

Solve transport using MIP minimize TC ;
+++++++

Hope this helps you out!

Best

On Wed, Aug 10, 2011 at 12:09 PM, “Frank Kähler” wrote:

Hi Muhajir,

thanks a lot, my litte CPM is working now. So, today I tried my second approach to GAMS with an more advanced RIP Modell (A new heuristic for the multi mode resource investment problem by Hsu and Kim), but no wonder i am of course struggeling again.

→ three generel errors occured: 133, 148, 149

→ One big problem I have, is that I don’t know how to sum about a specific part of a set that is dynamic (Problem for the resource equation)

→ I think the 148 error occured because t is an indice and also multiplied sometimes → but I don’t how to solve it

The coding is the following → if you still interested so take a look :slight_smile:

start:

3
Modell by HSU and Kim (2004)

8
9 Sets
10
11 j jobs / Dummy_1, Design, Structure, Basics, Cabin, Service,
12 Components,Dummy_2 /
13
14 Alias (i,j);
15
16
17 Set m modes /Standard, Fast/
18
19 r resources /Painter /
20
21 t time index /1*16 /
22
23 Alias (t,b)
24 ;
25
26
27
28
29 Set path (i,j) /
30 Dummy_1.Design
31 Dummy_1.Structure
32 Dummy_1.Basics
33 Design. Cabin
34 Structure. Cabin
35 Structure. Service
36 Basics. Service
37 Cabin. Components
38 Service. Dummy_2
39 Components. Dummy_2 / ;
40
41
42
43 Parameters
44
45 c (r) Costs per resource
46 /Painter 1/
47
48 d(j,m) duration for job from i executed in mode m
49
50 / Dummy_1.Standard 0
51 Design.Standard 2
52 Structure.Standard 3
53 Basics.Standard 1
54 Cabin.Standard 4
55 Service.Standard 2
56 Components.Standard 1
57 Dummy_2.Fast 0
58 Design.Fast 1
59 Structure.Fast 2
60 Basics.Fast 1
61 Cabin.Fast 2
62 Service.Fast 1
63 Components.Fast 1
64 /
65
66
67 k (j,m,r) /Dummy_1.Standard.Painter 0
68 Design.Standard. Painter 3
69 Structure.Standard. Painter 1
70 Basics.Standard. Painter 2
71 Cabin.Standard. Painter 2
72 Service.Standard. Painter 3
73 Components.Standard. Painter 3
74 Dummy_2.Standard. Painter 0
75 Dummy_1.Fast. Painter 0
76 Design.Fast. Painter 4
77 Structure.Fast. Painter 2
78 Basics.Fast. Painter 4
79 Cabin.Fast. Painter 4
80 Service.Fast. Painter 4
81 Components.Fast. Painter 4
82 Dummy_2.Fast. Painter 0 / ;
83
84 Scalar DD due date /12/;
85
86 Variables
87 x(j,m,t) 1 if task j is done in t and executed in m
88 UK (r) units of resources required
89 TC Total Costs
90 binary Variable x ;
91
92 Equations
93 cost define objective function
94 each_job (j) ens. that j is done only in one t and m
95 precedence (i,j) ensures the precendence relationship
96 resource (t,r) prevents resource overuse
97 due_date ensures due date ;
98
99 cost … TC =e= sum(r, (c (r)UK (r))) ;
100
101 each_job(j) …sum ((m,t),x(j,m,t))=e= 1 ;
102
103 precedence (i,j)$path(i,j)… sum ((m,t),x(i,m,t)
(t+d(i,m))) =l=
**** $148 $133
104 sum ((m,t),x(j,m,t)t) ;
**** 148 105 106 resource (t,r).. sum ((j,m),k(j,m,r)) * sum (b(t-d(j,m)+1), x(j,m,b))
**** $148$149,149,133,133,14
9,149
107 =l= UK(r) ;
108
109 due_date … sum ((m,t),x(j,m,t)
t) =l= DD ;
**** $149 $148
110
111 Model transport /all/ ;
112
113 Solve transport using MIP minimize TC ;
**** $257
114
115
116
Error Messages


133 Incompatible operands for addition
148 Dimension different - The symbol is referenced with more/less
indices as declared
149 Uncontrolled set entered as constant
257 Solve statement not checked because of previous errors



Von: “Muhajir Tadesse”
Gesendet: 08-Aug-2011 10:51:19

An: gamsworld@googlegroups.com
Betreff: Re: MRCPSP + anyone with a RCPSP in Gams language?

Sorry Keks,

Here is what I mean.

Path (i,j) should be defined after defining the alias. GAMS will not understand set “j” unless first you define it in the alias.

The other was my mistake, ‘m’ was to mean ‘path’ !, It goes like this

order(i,j)$path(i,j) … S(j) - S(i) =g= d(i,j) ;

sorry for the mistake

I hope it will be OK now!

*******************************Rearrange the modes as
Sets
10
11 i activities / Dummy_1, Design, Structure, Basics, Cabin, Serv
ice, Components, Dummy_2 /
12
24 Alias (i,j) ;
**** $406,158
25
13 i,j path
14 / Dummy_1. Design
15 Dummy_1. Structure
16 Dummy_1. Basics
17 Design. Cabin
18 Structure. Cabin
19 Structure. Service
20 Basics. Service
21 Cabin. Components
22 Service. Dummy_2
23 Components. Dummy_2 /
26 Parameters
27
28 d(i,j) path duration from i to j
**** $122
29 / Dummy_1. Design 0
30 Dummy_1. Structure 0
31 Dummy_1. Basics 0
32 Design. Cabin 2
33 Structure. Cabin 3
34 Structure. Service 3
35 Basics. Service 1
36 Cabin. Components 4
37 Service. Dummy_2 2
38 Components. Dummy_2 1
39 / ;
40
41 Variables
42 S(i) start time of activity i
43 T total time
44
45 Positive Variable S ;
46
47 Equations
48 time define objective function
49 order (i,j) ensures the technical order restrictions
**** $122
50 start (i) ensures beginning at point 0 ;
51
52 time … T =e= S(‘Dummy_2’) ;
53
54 order(i,j)$path(i,j) … S(j) - S(i) =g= d(i,j) ;
**** $148,140 $171,148 $148
55
56 start(I) … S(‘Dummy_1’)=e= 0 ;
57
58 Model transport /all/ ;
59
60 Solve transport using lp minimizing T ;


$257




Von: “Muhajir Tadesse”
Gesendet: 07-Aug-2011 16:02:38
An: gamsworld@googlegroups.com
Betreff: Re: MRCPSP + anyone with a RCPSP in Gams language?




Hi Keks,

The infeasibility is becuase you defined the order(i,j) constraint for every combination of i and j.
You could try to define task precedents (the project path) using dynamic sets and define the constraint order (i,j) over this dynamic set only.

*** Creating dyaminc set
Set path(i,j) /
Dummy_1. Design
Dummy_1. Structure
Dummy_1. Basics
Design. Cabin
Structure. Cabin
Structure. Service
Basics. Service
Cabin. Components
Service. Dummy_2
Components. Dummy_2
/
**** definig equation over dynamic set
order(i,j)$m(i,j) … S(j) - S(i) =g= d(i,j) ;

I hope this solves the infeasiblity!

Just an opinoin: if you are minimizing the total project time, I think you must include the duration of each task.

Good luck

On Sun, Aug 7, 2011 at 1:14 PM, Keks wrote:

Hello together,

I am absolutely new in GAMS progamming and programming in generel
(just a little bit Xpress so far).

For a practical Project scheduling Problem I would like to implement a
so called Multi Mode Resource Constrained Project Scheduling Problem.
To get into the GAMS environment my idea was to start with a basic CPM
Modell and after it to expand the Modell through a RCPSP and after it
to a MRCPSP.

But l am struggeling already at the beginning with the CPM
implementation. I dont know how to code precedence relationships between tasks. I tried to connect them with a d(i,j) = time lag between activity i and j but just because I dont know a better way to code them.

It seems that all syntax errors are eliminated from my first model but
the output isn`t that pretty → infeasible


My first little model is coded as the following:


Sets

i activities / Dummy_1, Design, Structure, Basics, Cabin,
Service, Components, Dummy_2 /


Alias (i,j) ;

Parameters

d(i,j) time lag between activity i and j
/ Dummy_1. Design 0,
Dummy_1. Structure 0,
Dummy_1. Basics 0,
Design. Cabin 2,
Structure. Cabin 3,
Structure. Service 3,
Basics. Service 1,
Cabin. Components 4,
Service. Dummy_2 2,
Components. Dummy_2 1 / ;

Variables
S(i) start time of activity i
T total time

Positive Variable S ;

Equations
time define objective function
order (i,j) ensures the technical order
restrictions
start (i) ensures beginning at point 0 ;

time … T =e= S(‘Dummy_2’) ;

order(i,j) … S(j) - S(i) =g= d(i,j) ;

start(i) … S(‘Dummy_1’)=e= 0 ;

Model transport /all/ ;

Solve transport using lp minimizing T ;


→ the infeasibality occured in row (order Design, Cabin): 0 >= 2

→ it seems that the starting points of the activities were`t
calculated

→ Please help :wink: + If anyone has a basic RCPSP in GAMS language I
am highly interested in it.

Best regards

Keks


To post to this group, send email to gamsworld@googlegroups.com.
To unsubscribe from this group, send email to gamsworld+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/gamsworld?hl=en.



\

To post to this group, send email to gamsworld@googlegroups.com.
To unsubscribe from this group, send email to gamsworld+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/gamsworld?hl=en.



Schon gehört? WEB.DE hat einen genialen Phishing-Filter in die
Toolbar eingebaut! http://produkte.web.de/go/toolbar

\

To post to this group, send email to gamsworld@googlegroups.com.
To unsubscribe from this group, send email to gamsworld+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/gamsworld?hl=en.


\

To post to this group, send email to gamsworld@googlegroups.com.
To unsubscribe from this group, send email to gamsworld+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/gamsworld?hl=en.



Schon gehört? WEB.DE hat einen genialen Phishing-Filter in die
Toolbar eingebaut! http://produkte.web.de/go/toolbar


To post to this group, send email to gamsworld@googlegroups.com.
To unsubscribe from this group, send email to gamsworld+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/gamsworld?hl=en.

\

To post to this group, send email to gamsworld@googlegroups.com.
To unsubscribe from this group, send email to gamsworld+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/gamsworld?hl=en.

Sorry Keks again

The sum on resource constraint should go like this:

resource (t,r)… sum ((j,m),k(j,m,r) * sum (b$[ord(b)=(ord(t)-d(j,m)+1)], x(j,m,b)))

I am not an expert in PM but I think the last equation should be formulated as follows to include the duration of the task (d(j,m)).

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

You should compare and validate the output with small and already solved problem first.

Best



On Wed, Aug 10, 2011 at 1:35 PM, Muhajir wrote:

Hello Keks
You have to use ORD function to operate set order values with parameters.
I have a rough look at the model and here are some suggestions.
++++++
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
due_date (j) ensures due 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 ((m,t),x(i,m,t)*(ord(t)+d(i,m))) =l=

sum ((m,t),x(j,m,t)*ord(t)) ;


resource (t,r)… sum ((j,m),k(j,m,r) * sum (b$(ord(t)-d(j,m)+1), x(j,m,b)))


=l= UK(r) ;

due_date(j)… sum ((m,t),x(j,m,t)* ord(t)) =l= DD ;


Model transport /all/ ;

Solve transport using MIP minimize TC ;
+++++++

Hope this helps you out!

Best


On Wed, Aug 10, 2011 at 12:09 PM, “Frank Kähler” wrote:

Hi Muhajir,

thanks a lot, my litte CPM is working now. So, today I tried my second approach to GAMS with an more advanced RIP Modell (A new heuristic for the multi mode resource investment problem by Hsu and Kim), but no wonder i am of course struggeling again.

→ three generel errors occured: 133, 148, 149

→ One big problem I have, is that I don’t know how to sum about a specific part of a set that is dynamic (Problem for the resource equation)

→ I think the 148 error occured because t is an indice and also multiplied sometimes → but I don’t how to solve it

The coding is the following → if you still interested so take a look :slight_smile:

start:

3
Modell by HSU and Kim (2004)

8
9 Sets
10
11 j jobs / Dummy_1, Design, Structure, Basics, Cabin, Service,
12 Components,Dummy_2 /
13
14 Alias (i,j);
15
16
17 Set m modes /Standard, Fast/
18
19 r resources /Painter /
20
21 t time index /1*16 /
22
23 Alias (t,b)
24 ;
25
26
27
28
29 Set path (i,j) /
30 Dummy_1.Design
31 Dummy_1.Structure
32 Dummy_1.Basics
33 Design. Cabin
34 Structure. Cabin
35 Structure. Service
36 Basics. Service
37 Cabin. Components
38 Service. Dummy_2
39 Components. Dummy_2 / ;
40
41
42
43 Parameters
44
45 c (r) Costs per resource
46 /Painter 1/
47
48 d(j,m) duration for job from i executed in mode m
49
50 / Dummy_1.Standard 0
51 Design.Standard 2
52 Structure.Standard 3
53 Basics.Standard 1
54 Cabin.Standard 4
55 Service.Standard 2
56 Components.Standard 1
57 Dummy_2.Fast 0
58 Design.Fast 1
59 Structure.Fast 2
60 Basics.Fast 1
61 Cabin.Fast 2
62 Service.Fast 1
63 Components.Fast 1
64 /
65
66
67 k (j,m,r) /Dummy_1.Standard.Painter 0
68 Design.Standard. Painter 3
69 Structure.Standard. Painter 1
70 Basics.Standard. Painter 2
71 Cabin.Standard. Painter 2
72 Service.Standard. Painter 3
73 Components.Standard. Painter 3
74 Dummy_2.Standard. Painter 0
75 Dummy_1.Fast. Painter 0
76 Design.Fast. Painter 4
77 Structure.Fast. Painter 2
78 Basics.Fast. Painter 4
79 Cabin.Fast. Painter 4
80 Service.Fast. Painter 4
81 Components.Fast. Painter 4
82 Dummy_2.Fast. Painter 0 / ;
83
84 Scalar DD due date /12/;
85
86 Variables
87 x(j,m,t) 1 if task j is done in t and executed in m
88 UK (r) units of resources required
89 TC Total Costs
90 binary Variable x ;
91
92 Equations
93 cost define objective function
94 each_job (j) ens. that j is done only in one t and m
95 precedence (i,j) ensures the precendence relationship
96 resource (t,r) prevents resource overuse
97 due_date ensures due date ;
98
99 cost … TC =e= sum(r, (c (r)UK (r))) ;
100
101 each_job(j) …sum ((m,t),x(j,m,t))=e= 1 ;
102
103 precedence (i,j)$path(i,j)… sum ((m,t),x(i,m,t)
(t+d(i,m))) =l=
**** $148 $133
104 sum ((m,t),x(j,m,t)t) ;
**** 148 105 106 resource (t,r).. sum ((j,m),k(j,m,r)) * sum (b(t-d(j,m)+1), x(j,m,b))
**** $148$149,149,133,133,14
9,149
107 =l= UK(r) ;
108
109 due_date … sum ((m,t),x(j,m,t)
t) =l= DD ;
**** $149 $148
110
111 Model transport /all/ ;
112
113 Solve transport using MIP minimize TC ;
**** $257
114
115
116
Error Messages


133 Incompatible operands for addition
148 Dimension different - The symbol is referenced with more/less
indices as declared
149 Uncontrolled set entered as constant
257 Solve statement not checked because of previous errors



Von: “Muhajir Tadesse”
Gesendet: 08-Aug-2011 10:51:19

An: gamsworld@googlegroups.com
Betreff: Re: MRCPSP + anyone with a RCPSP in Gams language?

Sorry Keks,

Here is what I mean.

Path (i,j) should be defined after defining the alias. GAMS will not understand set “j” unless first you define it in the alias.

The other was my mistake, ‘m’ was to mean ‘path’ !, It goes like this

order(i,j)$path(i,j) … S(j) - S(i) =g= d(i,j) ;

sorry for the mistake

I hope it will be OK now!

*******************************Rearrange the modes as
Sets
10
11 i activities / Dummy_1, Design, Structure, Basics, Cabin, Serv
ice, Components, Dummy_2 /
12
24 Alias (i,j) ;
**** $406,158
25
13 i,j path
14 / Dummy_1. Design
15 Dummy_1. Structure
16 Dummy_1. Basics
17 Design. Cabin
18 Structure. Cabin
19 Structure. Service
20 Basics. Service
21 Cabin. Components
22 Service. Dummy_2
23 Components. Dummy_2 /
26 Parameters
27
28 d(i,j) path duration from i to j
**** $122
29 / Dummy_1. Design 0
30 Dummy_1. Structure 0
31 Dummy_1. Basics 0
32 Design. Cabin 2
33 Structure. Cabin 3
34 Structure. Service 3
35 Basics. Service 1
36 Cabin. Components 4
37 Service. Dummy_2 2
38 Components. Dummy_2 1
39 / ;
40
41 Variables
42 S(i) start time of activity i
43 T total time
44
45 Positive Variable S ;
46
47 Equations
48 time define objective function
49 order (i,j) ensures the technical order restrictions
**** $122
50 start (i) ensures beginning at point 0 ;
51
52 time … T =e= S(‘Dummy_2’) ;
53
54 order(i,j)$path(i,j) … S(j) - S(i) =g= d(i,j) ;
**** $148,140 $171,148 $148
55
56 start(I) … S(‘Dummy_1’)=e= 0 ;
57
58 Model transport /all/ ;
59
60 Solve transport using lp minimizing T ;


$257




Von: “Muhajir Tadesse”
Gesendet: 07-Aug-2011 16:02:38
An: gamsworld@googlegroups.com
Betreff: Re: MRCPSP + anyone with a RCPSP in Gams language?




Hi Keks,

The infeasibility is becuase you defined the order(i,j) constraint for every combination of i and j.
You could try to define task precedents (the project path) using dynamic sets and define the constraint order (i,j) over this dynamic set only.

*** Creating dyaminc set
Set path(i,j) /
Dummy_1. Design
Dummy_1. Structure
Dummy_1. Basics
Design. Cabin
Structure. Cabin
Structure. Service
Basics. Service
Cabin. Components
Service. Dummy_2
Components. Dummy_2
/
**** definig equation over dynamic set
order(i,j)$m(i,j) … S(j) - S(i) =g= d(i,j) ;

I hope this solves the infeasiblity!

Just an opinoin: if you are minimizing the total project time, I think you must include the duration of each task.

Good luck

On Sun, Aug 7, 2011 at 1:14 PM, Keks wrote:

Hello together,

I am absolutely new in GAMS progamming and programming in generel
(just a little bit Xpress so far).

For a practical Project scheduling Problem I would like to implement a
so called Multi Mode Resource Constrained Project Scheduling Problem.
To get into the GAMS environment my idea was to start with a basic CPM
Modell and after it to expand the Modell through a RCPSP and after it
to a MRCPSP.

But l am struggeling already at the beginning with the CPM
implementation. I dont know how to code precedence relationships between tasks. I tried to connect them with a d(i,j) = time lag between activity i and j but just because I dont know a better way to code them.

It seems that all syntax errors are eliminated from my first model but
the output isn`t that pretty → infeasible


My first little model is coded as the following:


Sets

i activities / Dummy_1, Design, Structure, Basics, Cabin,
Service, Components, Dummy_2 /


Alias (i,j) ;

Parameters

d(i,j) time lag between activity i and j
/ Dummy_1. Design 0,
Dummy_1. Structure 0,
Dummy_1. Basics 0,
Design. Cabin 2,
Structure. Cabin 3,
Structure. Service 3,
Basics. Service 1,
Cabin. Components 4,
Service. Dummy_2 2,
Components. Dummy_2 1 / ;

Variables
S(i) start time of activity i
T total time

Positive Variable S ;

Equations
time define objective function
order (i,j) ensures the technical order
restrictions
start (i) ensures beginning at point 0 ;

time … T =e= S(‘Dummy_2’) ;

order(i,j) … S(j) - S(i) =g= d(i,j) ;

start(i) … S(‘Dummy_1’)=e= 0 ;

Model transport /all/ ;

Solve transport using lp minimizing T ;


→ the infeasibality occured in row (order Design, Cabin): 0 >= 2

→ it seems that the starting points of the activities were`t
calculated

→ Please help :wink: + If anyone has a basic RCPSP in GAMS language I
am highly interested in it.

Best regards

Keks


To post to this group, send email to gamsworld@googlegroups.com.
To unsubscribe from this group, send email to gamsworld+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/gamsworld?hl=en.



\

To post to this group, send email to gamsworld@googlegroups.com.
To unsubscribe from this group, send email to gamsworld+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/gamsworld?hl=en.



Schon gehört? WEB.DE hat einen genialen Phishing-Filter in die
Toolbar eingebaut! http://produkte.web.de/go/toolbar

\

To post to this group, send email to gamsworld@googlegroups.com.
To unsubscribe from this group, send email to gamsworld+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/gamsworld?hl=en.


\

To post to this group, send email to gamsworld@googlegroups.com.
To unsubscribe from this group, send email to gamsworld+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/gamsworld?hl=en.



Schon gehört? WEB.DE hat einen genialen Phishing-Filter in die
Toolbar eingebaut! http://produkte.web.de/go/toolbar


To post to this group, send email to gamsworld@googlegroups.com.
To unsubscribe from this group, send email to gamsworld+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/gamsworld?hl=en.


\

To post to this group, send email to gamsworld@googlegroups.com.
To unsubscribe from this group, send email to gamsworld+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/gamsworld?hl=en.

Hi, I also have a MRCPSP model that doesn’t work, because of being
integer – infeasible. could you please have a look at it? thank you.
Do you think it has anything to do with the fact that I chose Cplex as
my solver?


Solving MRCPSP Problem - set used: J501_1
SETS
J/1
52/
M/13/
T/1
500/
RP/12/
RV/1
2/
Time1(T)/11/
Time2(T)/1
7/
Time3(T)/15/
Time4(T)/1
7/
Time5(T)/17/
Time6(T)/1
10/
Time7(T)/110/
Time8(T)/1
5/
Time9(T)/110/
Time10(T)/1
9/
Time11(T)/711/
Time12(T)/4
11/
Time13(T)/111/
Time14(T)/1
11/
Time15(T)/112/
Time16(T)/7
11/
Time17(T)/113/
Time18(T)/1
11/
Time19(T)/111/
Time20(T)/1
12/
Time21(T)/412/
Time22(T)/1
11/
Time23(T)/212/
Time24(T)/10
13/
Time25(T)/1112/
Time26(T)/12
13/
Time27(T)/713/
Time28(T)/6
13/
Time29(T)/314/
Time30(T)/11
13/
Time31(T)/813/
Time32(T)/10
16/
Time33(T)/713/
Time34(T)/6
13/
Time35(T)/416/
Time36(T)/2
13/
Time37(T)/1318/
Time38(T)/14
18/
Time39(T)/1218/
Time40(T)/12
18/
Time41(T)/1118/
Time42(T)/11
18/
Time43(T)/918/
Time44(T)/10
18/
Time45(T)/1118/
Time46(T)/9
18/
Time47(T)/1218/
Time48(T)/7
18/
Time49(T)/718/
Time50(T)/10
18/
Time51(T)/1118/
Time52(T)/18
18/
S1(J)/2 3 4 5 6 7 8 9 10 13 14 15 17 18 19 20 22/
S2(J)/50 49 48 36 33 31 27 23 16 11/
S3(J)/51 49 48 46 41 36 35 34 33 31 30 26 12/
S4(J)/50 49 48 46 44 43 35 32 28 27 24 11/
S5(J)/49 48 33 31 27 16 11/
S6(J)/51 50 49 48 47 45 44 41 34 32 30 28 26 24/
S7(J)/50 48 46 45 43 41 34 32 30 24 21/
S8(J)/49 48 46 43 41 35 26 12/
S9(J)/48 46 44 43 42 41 31 30 28 25 24/
S10(J)/45 44 41 40 39 29 27 26/
S11(J)/51 45 42 41 39 30 25/
S12(J)/50 45 44 42 32 24/
S13(J)/48 44 42 32 26 24/
S14(J)/47 46 45 43 39 31 30/
S15(J)/47 41 39 33 31 26/
S16(J)/44 42 30 26 24/
S17(J)/51 50 46 43 42 41 39 38/
S18(J)/46 43 41 40 39 38 30/
S19(J)/42 41 39 30 27 26/
S20(J)/47 43 31 26/
S21(J)/49 31 26/
S22(J)/51 39 38 34/
S23(J)/43 32 26/
S24(J)/40 39 38 37/
S25(J)/47 26/
S26(J)/38 37/
S27(J)/38 37/
S28(J)/40 39/
S29(J)/46 42/
S30(J)/37/
S31(J)/40/
S32(J)/38/
S33(J)/37/
S34(J)/37/
S35(J)/38/
S36(J)/43/
S37(J)/52/
S38(J)/52/
S39(J)/52/
S40(J)/52/
S41(J)/52/
S42(J)/52/
S43(J)/52/
S44(J)/52/
S45(J)/52/
S46(J)/52/
S47(J)/52/
S48(J)/52/
S49(J)/52/
S50(J)/52/
S51(J)/52/;
PARAMETERS
time(T);
time(T)=Ord(T);
TABLE
P(J,M)
1 2 3
1 0 0 0
2 1 8 8
3 1 3 7
4 1 2 6
5 6 6 7
6 5 9 10
7 3 4 6
8 3 6 7
9 5 6 9
10 2 5 8
11 4 7 10
12 6 8 9
13 1 4 10
14 3 7 8
15 3 4 9
16 2 4 7
17 1 5 5
18 8 9 10
19 3 3 4
20 7 8 10
21 2 3 4
22 5 7 10
23 1 4 8
24 2 7 8
25 1 2 7
26 1 2 9
27 2 5 10
28 3 5 10
29 5 5 7
30 2 5 6
31 1 3 4
32 4 6 7
33 1 4 9
34 2 7 10
35 2 4 4
36 1 2 7
37 5 6 7
38 2 3 10
39 4 4 9
40 5 5 6
41 4 5 8
42 2 4 4
43 5 7 9
44 5 9 10
45 4 7 10
46 4 9 10
47 5 6 8
48 4 6 8
49 2 7 10
50 3 5 10
51 5 5 8
52 0 0 0;
Parameter
RVA(RV)
/1 71
2 71/;
table
RPA(RP,T)
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31 32 33 34
35 36 37 38 39 40 41
42 43 44 45 46 47 48
49 50 51 52 53 54 55
56 57 58 59 60 61 62
63 64 65 66 67 68 69
70 71 72 73 74 75 76
77 78 79 80 81 82 83
84 85 86 87 88 89 90
91 92 93 94 95 96 97
98 99 100 101 102 103 104
105 106 107 108 109 110 111
112 113 114 115 116 117 118
119 120 121 122 123 124 125
126 127 128 129 130 131 132
133 134 135 136 137 138 139
140 141 142 143 144 145 146
147 148 149 150 151 152 153
154 155 156 157 158 159 160
161 162 163 164 165 166 167
168 169 170 171 172 173 174
175 176 177 178 179 180 181
182 183 184 185 186 187 188
189 190 191 192 193 194 195
196 197 198 199 200 201 202
203 204 205 206 207 208 209
210 211 212 213 214 215 216
217 218 219 220 221 222 223
224 225 226 227 228 229 230
231 232 233 234 235 236 237
238 239 240 241 242 243 244
245 246 247 248 249 250 251
252 253 254 255 256 257 258
259 260 261 262 263 264 265
266 267 268 269 270 271 272
273 274 275 276 277 278 279
280 281 282 283 284 285 286
287 288 289 290 291 292 293
294 295 296 297 298 299 300
301 302 303 304 305 306 307
308 309 310 311 312 313 314
315 316 317 318 319 320 321
322 323 324 325 326 327 328
329 330 331 332 333 334 335
336 337 338 339 340 341 342
343 344 345 346 347 348 349
350 351 352 353 354 355 356
357 358 359 360 361 362 363
364 365 366 367 368 369 370
371 372 373 374 375 376 377
378 379 380 381 382 383 384
385 386 387 388 389 390 391
392 393 394 395 396 397 398
399 400 401 402 403 404 405
406 407 408 409 410 411 412
413 414 415 416 417 418 419
420 421 422 423 424 425 426
427 428 429 430 431 432 433
434 435 436 437 438 439 440
441 442 443 444 445 446 447
448 449 450 451 452 453 454
455 456 457 458 459 460 461
462 463 464 465 466 467 468
469 470 471 472 473 474 475
476 477 478 479 480 481 482
483 484 485 486 487 488 489
490 491 492 493 494 495 496
497 498 499 500
1 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30
2 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27;
table
RPC(J,M,RP)
1 2
1.1 0 0
1.2 0 0
1.3 0 0
2.1 0 8
2.2 6 0
2.3 5 0
3.1 3 0
3.2 0 5
3.3 0 2
4.1 0 6
4.2 5 0
4.3 0 3
5.1 6 0
5.2 6 0
5.3 6 0
6.1 0 8
6.2 4 0
6.3 0 7
7.1 0 4
7.2 6 0
7.3 0 2
8.1 6 0
8.2 6 0
8.3 0 9
9.1 0 8
9.2 7 0
9.3 7 0
10.1 7 0
10.2 0 7
10.3 0 6
11.1 0 4
11.2 5 0
11.3 0 1
12.1 0 8
12.2 0 6
12.3 0 5
13.1 8 0
13.2 7 0
13.3 0 6
14.1 3 0
14.2 3 0
14.3 0 4
15.1 0 1
15.2 0 1
15.3 2 0
16.1 0 6
16.2 5 0
16.3 0 5
17.1 5 0
17.2 4 0
17.3 0 3
18.1 5 0
18.2 4 0
18.3 4 0
19.1 4 0
19.2 0 3
19.3 0 1
20.1 10 0
20.2 0 5
20.3 7 0
21.1 7 0
21.2 0 7
21.3 0 6
22.1 0 5
22.2 5 0
22.3 0 3
23.1 0 8
23.2 6 0
23.3 0 8
24.1 0 4
24.2 5 0
24.3 4 0
25.1 0 9
25.2 0 4
25.3 0 1
26.1 0 6
26.2 0 4
26.3 0 4
27.1 0 9
27.2 0 5
27.3 0 3
28.1 0 5
28.2 2 0
28.3 2 0
29.1 0 8
29.2 0 8
29.3 0 8
30.1 7 0
30.2 0 2
30.3 0 2
31.1 0 3
31.2 7 0
31.3 0 1
32.1 0 6
32.2 0 4
32.3 1 0
33.1 0 7
33.2 2 0
33.3 2 0
34.1 6 0
34.2 0 8
34.3 6 0
35.1 3 0
35.2 0 3
35.3 3 0
36.1 0 8
36.2 0 7
36.3 7 0
37.1 0 7
37.2 0 7
37.3 0 5
38.1 0 6
38.2 2 0
38.3 0 4
39.1 0 3
39.2 0 2
39.3 0 2
40.1 6 0
40.2 0 9
40.3 6 0
41.1 3 0
41.2 2 0
41.3 0 4
42.1 0 7
42.2 9 0
42.3 0 2
43.1 0 7
43.2 0 5
43.3 2 0
44.1 10 0
44.2 10 0
44.3 0 1
45.1 0 6
45.2 0 4
45.3 3 0
46.1 5 0
46.2 3 0
46.3 0 8
47.1 0 4
47.2 7 0
47.3 0 3
48.1 8 0
48.2 7 0
48.3 2 0
49.1 5 0
49.2 4 0
49.3 0 6
50.1 0 9
50.2 7 0
50.3 7 0
51.1 5 0
51.2 0 9
51.3 0 9
52.1 0 0
52.2 0 0
52.3 0 0;
table
RVC(J,M,RV)
1 2
1.1 0 0
1.2 0 0
1.3 0 0
2.1 0 3
2.2 0 2
2.3 5 0
3.1 0 8
3.2 0 7
3.3 0 3
4.1 4 0
4.2 3 0
4.3 3 0
5.1 8 0
5.2 0 8
5.3 5 0
6.1 0 7
6.2 0 4
6.3 2 0
7.1 0 6
7.2 7 0
7.3 0 5
8.1 0 2
8.2 0 1
8.3 1 0
9.1 0 2
9.2 3 0
9.3 1 0
10.1 0 1
10.2 0 1
10.3 5 0
11.1 7 0
11.2 4 0
11.3 1 0
12.1 0 4
12.2 4 0
12.3 0 1
13.1 8 0
13.2 0 7
13.3 5 0
14.1 0 9
14.2 0 5
14.3 0 5
15.1 0 8
15.2 3 0
15.3 0 7
16.1 7 0
16.2 0 3
16.3 0 2
17.1 6 0
17.2 5 0
17.3 0 2
18.1 6 0
18.2 6 0
18.3 0 3
19.1 8 0
19.2 0 7
19.3 2 0
20.1 6 0
20.2 0 8
20.3 2 0
21.1 0 6
21.2 8 0
21.3 0 5
22.1 0 5
22.2 0 5
22.3 0 3
23.1 10 0
23.2 6 0
23.3 0 3
24.1 0 7
24.2 0 5
24.3 0 3
25.1 0 7
25.2 0 5
25.3 0 2
26.1 0 8
26.2 4 0
26.3 2 0
27.1 0 5
27.2 0 5
27.3 2 0
28.1 0 6
28.2 0 4
28.3 3 0
29.1 0 8
29.2 5 0
29.3 0 4
30.1 3 0
30.2 0 4
30.3 0 1
31.1 7 0
31.2 0 4
31.3 5 0
32.1 0 7
32.2 0 7
32.3 5 0
33.1 8 0
33.2 0 4
33.3 8 0
34.1 0 6
34.2 7 0
34.3 0 1
35.1 0 6
35.2 0 2
35.3 0 2
36.1 7 0
36.2 0 6
36.3 2 0
37.1 7 0
37.2 5 0
37.3 4 0
38.1 5 0
38.2 4 0
38.3 3 0
39.1 5 0
39.2 0 3
39.3 0 2
40.1 0 3
40.2 4 0
40.3 0 2
41.1 8 0
41.2 7 0
41.3 5 0
42.1 0 6
42.2 7 0
42.3 0 1
43.1 0 8
43.2 3 0
43.3 2 0
44.1 0 2
44.2 0 1
44.3 0 1
45.1 6 0
45.2 6 0
45.3 0 6
46.1 4 0
46.2 3 0
46.3 0 7
47.1 0 6
47.2 0 6
47.3 2 0
48.1 7 0
48.2 4 0
48.3 4 0
49.1 2 0
49.2 2 0
49.3 0 1
50.1 5 0
50.2 0 7
50.3 1 0
51.1 5 0
51.2 0 6
51.3 1 0
52.1 0 0
52.2 0 0
52.3 0 0;
VARIABLES
Z
BINARY VARIABLES
X(J,M,T)
Y(J,M);
INTEGER VARIABLES
S(J)
F(J);
EQUATIONS
OBJECTIVE
CONS1(J)
CONS2(M)
CONS3(M)
CONS4(M)
CONS5(M)
CONS6(M)
CONS7(M)
CONS8(M)
CONS9(M)
CONS10(M)
CONS11(M)
CONS12(M)
CONS13(M)
CONS14(M)
CONS15(M)
CONS16(M)
CONS17(M)
CONS18(M)
CONS19(M)
CONS20(M)
CONS21(M)
CONS22(M)
CONS23(M)
CONS24(M)
CONS25(M)
CONS26(M)
CONS27(M)
CONS28(M)
CONS29(M)
CONS30(M)
CONS31(M)
CONS32(M)
CONS33(M)
CONS34(M)
CONS35(M)
CONS36(M)
CONS37(M)
CONS38(M)
CONS39(M)
CONS40(M)
CONS41(M)
CONS42(M)
CONS43(M)
CONS44(M)
CONS45(M)
CONS46(M)
CONS47(M)
CONS48(M)
CONS49(M)
CONS50(M)
CONS51(M)
CONS52(M)
CONS53(M)
CONS54(M,T)
CONS55(M,T)
CONS56(M,T)
CONS57(M,T)
CONS58(M,T)
CONS59(M,T)
CONS60(M,T)
CONS61(M,T)
CONS62(M,T)
CONS63(M,T)
CONS64(M,T)
CONS65(M,T)
CONS66(M,T)
CONS67(M,T)
CONS68(M,T)
CONS69(M,T)
CONS70(M,T)
CONS71(M,T)
CONS72(M,T)
CONS73(M,T)
CONS74(M,T)
CONS75(M,T)
CONS76(M,T)
CONS77(M,T)
CONS78(M,T)
CONS79(M,T)
CONS80(M,T)
CONS81(M,T)
CONS82(M,T)
CONS83(M,T)
CONS84(M,T)
CONS85(M,T)
CONS86(M,T)
CONS87(M,T)
CONS88(M,T)
CONS89(M,T)
CONS90(M,T)
CONS91(M,T)
CONS92(M,T)
CONS93(M,T)
CONS94(M,T)
CONS95(M,T)
CONS96(M,T)
CONS97(M,T)
CONS98(M,T)
CONS99(M,T)
CONS100(M,T)
CONS101(M,T)
CONS102(M,T)
CONS103(M,T)
CONS104(M,T)
CONS105(M,T)
CONS106(M,T)
CONS107(M,T)
CONS108(M,T)
CONS109(M,T)
CONS110(M,T)
CONS111(M,T)
CONS112(M,T)
CONS113(M,T)
CONS114(M,T)
CONS115(M,T)
CONS116(M,T)
CONS117(M,T)
CONS118(M,T)
CONS119(M,T)
CONS120(M,T)
CONS121(M,T)
CONS122(M,T)
CONS123(M,T)
CONS124(M,T)
CONS125(M,T)
CONS126(M,T)
CONS127(M,T)
CONS128(M,T)
CONS129(M,T)
CONS130(M,T)
CONS131(M,T)
CONS132(M,T)
CONS133(M,T)
CONS134(M,T)
CONS135(M,T)
CONS136(M,T)
CONS137(M,T)
CONS138(M,T)
CONS139(M,T)
CONS140(M,T)
CONS141(M,T)
CONS142(M,T)
CONS143(M,T)
CONS144(M,T)
CONS145(M,T)
CONS146(M,T)
CONS147(M,T)
CONS148(M,T)
CONS149(M,T)
CONS150(M,T)
CONS151(M,T)
CONS152(M,T)
CONS153(M,T)
CONS154(M,T)
CONS155(M,T)
CONS156(M,T)
CONS157(M,T)
CONS158(S1)
CONS159(S2)
CONS160(S3)
CONS161(S4)
CONS162(S5)
CONS163(S6)
CONS164(S7)
CONS165(S8)
CONS166(S9)
CONS167(S10)
CONS168(S11)
CONS169(S12)
CONS170(S13)
CONS171(S14)
CONS172(S15)
CONS173(S16)
CONS174(S17)
CONS175(S18)
CONS176(S19)
CONS177(S20)
CONS178(S21)
CONS179(S22)
CONS180(S23)
CONS181(S24)
CONS182(S25)
CONS183(S26)
CONS184(S27)
CONS185(S28)
CONS186(S29)
CONS187(S30)
CONS188(S31)
CONS189(S32)
CONS190(S33)
CONS191(S34)
CONS192(S35)
CONS193(S36)
CONS194(S37)
CONS195(S38)
CONS196(S39)
CONS197(S40)
CONS198(S41)
CONS199(S42)
CONS200(S43)
CONS201(S44)
CONS202(S45)
CONS203(S46)
CONS204(S47)
CONS205(S48)
CONS206(S49)
CONS207(S50)
CONS208(S51)
CONS209(RP,T)
CONS210(RV);
OBJECTIVE… Z=E=F(‘52’);
CONS1(J)… SUM(M,Y(J,M))=E=1;
CONS2(M)… SUM(T$Time1(T),X(‘1’,M,T))-P(‘1’,M)*Y(‘1’,M)=E=0;
CONS3(M)… SUM(T$Time2(T),X(‘2’,M,T))-P(‘2’,M)*Y(‘2’,M)=E=0;
CONS4(M)… SUM(T$Time3(T),X(‘3’,M,T))-P(‘3’,M)*Y(‘3’,M)=E=0;
CONS5(M)… SUM(T$Time4(T),X(‘4’,M,T))-P(‘4’,M)*Y(‘4’,M)=E=0;
CONS6(M)… SUM(T$Time5(T),X(‘5’,M,T))-P(‘5’,M)*Y(‘5’,M)=E=0;
CONS7(M)… SUM(T$Time6(T),X(‘6’,M,T))-P(‘6’,M)*Y(‘6’,M)=E=0;
CONS8(M)… SUM(T$Time7(T),X(‘7’,M,T))-P(‘7’,M)*Y(‘7’,M)=E=0;
CONS9(M)… SUM(T$Time8(T),X(‘8’,M,T))-P(‘8’,M)*Y(‘8’,M)=E=0;
CONS10(M)… SUM(T$Time9(T),X(‘9’,M,T))-P(‘9’,M)*Y(‘9’,M)=E=0;
CONS11(M)… SUM(T$Time10(T),X(‘10’,M,T))-P(‘10’,M)*Y(‘10’,M)=E=0;
CONS12(M)… SUM(T$Time11(T),X(‘11’,M,T))-P(‘11’,M)*Y(‘11’,M)=E=0;
CONS13(M)… SUM(T$Time12(T),X(‘12’,M,T))-P(‘12’,M)*Y(‘12’,M)=E=0;
CONS14(M)… SUM(T$Time13(T),X(‘13’,M,T))-P(‘13’,M)*Y(‘13’,M)=E=0;
CONS15(M)… SUM(T$Time14(T),X(‘14’,M,T))-P(‘14’,M)*Y(‘14’,M)=E=0;
CONS16(M)… SUM(T$Time15(T),X(‘15’,M,T))-P(‘15’,M)*Y(‘15’,M)=E=0;
CONS17(M)… SUM(T$Time16(T),X(‘16’,M,T))-P(‘16’,M)*Y(‘16’,M)=E=0;
CONS18(M)… SUM(T$Time17(T),X(‘17’,M,T))-P(‘17’,M)*Y(‘17’,M)=E=0;
CONS19(M)… SUM(T$Time18(T),X(‘18’,M,T))-P(‘18’,M)*Y(‘18’,M)=E=0;
CONS20(M)… SUM(T$Time19(T),X(‘19’,M,T))-P(‘19’,M)*Y(‘19’,M)=E=0;
CONS21(M)… SUM(T$Time20(T),X(‘20’,M,T))-P(‘20’,M)*Y(‘20’,M)=E=0;
CONS22(M)… SUM(T$Time21(T),X(‘21’,M,T))-P(‘21’,M)*Y(‘21’,M)=E=0;
CONS23(M)… SUM(T$Time22(T),X(‘22’,M,T))-P(‘22’,M)*Y(‘22’,M)=E=0;
CONS24(M)… SUM(T$Time23(T),X(‘23’,M,T))-P(‘23’,M)*Y(‘23’,M)=E=0;
CONS25(M)… SUM(T$Time24(T),X(‘24’,M,T))-P(‘24’,M)*Y(‘24’,M)=E=0;
CONS26(M)… SUM(T$Time25(T),X(‘25’,M,T))-P(‘25’,M)*Y(‘25’,M)=E=0;
CONS27(M)… SUM(T$Time26(T),X(‘26’,M,T))-P(‘26’,M)*Y(‘26’,M)=E=0;
CONS28(M)… SUM(T$Time27(T),X(‘27’,M,T))-P(‘27’,M)*Y(‘27’,M)=E=0;
CONS29(M)… SUM(T$Time28(T),X(‘28’,M,T))-P(‘28’,M)*Y(‘28’,M)=E=0;
CONS30(M)… SUM(T$Time29(T),X(‘29’,M,T))-P(‘29’,M)*Y(‘29’,M)=E=0;
CONS31(M)… SUM(T$Time30(T),X(‘30’,M,T))-P(‘30’,M)*Y(‘30’,M)=E=0;
CONS32(M)… SUM(T$Time31(T),X(‘31’,M,T))-P(‘31’,M)*Y(‘31’,M)=E=0;
CONS33(M)… SUM(T$Time32(T),X(‘32’,M,T))-P(‘32’,M)*Y(‘32’,M)=E=0;
CONS34(M)… SUM(T$Time33(T),X(‘33’,M,T))-P(‘33’,M)*Y(‘33’,M)=E=0;
CONS35(M)… SUM(T$Time34(T),X(‘34’,M,T))-P(‘34’,M)*Y(‘34’,M)=E=0;
CONS36(M)… SUM(T$Time35(T),X(‘35’,M,T))-P(‘35’,M)*Y(‘35’,M)=E=0;
CONS37(M)… SUM(T$Time36(T),X(‘36’,M,T))-P(‘36’,M)*Y(‘36’,M)=E=0;
CONS38(M)… SUM(T$Time37(T),X(‘37’,M,T))-P(‘37’,M)*Y(‘37’,M)=E=0;
CONS39(M)… SUM(T$Time38(T),X(‘38’,M,T))-P(‘38’,M)*Y(‘38’,M)=E=0;
CONS40(M)… SUM(T$Time39(T),X(‘39’,M,T))-P(‘39’,M)*Y(‘39’,M)=E=0;
CONS41(M)… SUM(T$Time40(T),X(‘40’,M,T))-P(‘40’,M)*Y(‘40’,M)=E=0;
CONS42(M)… SUM(T$Time41(T),X(‘41’,M,T))-P(‘41’,M)*Y(‘41’,M)=E=0;
CONS43(M)… SUM(T$Time42(T),X(‘42’,M,T))-P(‘42’,M)*Y(‘42’,M)=E=0;
CONS44(M)… SUM(T$Time43(T),X(‘43’,M,T))-P(‘43’,M)*Y(‘43’,M)=E=0;
CONS45(M)… SUM(T$Time44(T),X(‘44’,M,T))-P(‘44’,M)*Y(‘44’,M)=E=0;
CONS46(M)… SUM(T$Time45(T),X(‘45’,M,T))-P(‘45’,M)*Y(‘45’,M)=E=0;
CONS47(M)… SUM(T$Time46(T),X(‘46’,M,T))-P(‘46’,M)*Y(‘46’,M)=E=0;
CONS48(M)… SUM(T$Time47(T),X(‘47’,M,T))-P(‘47’,M)*Y(‘47’,M)=E=0;
CONS49(M)… SUM(T$Time48(T),X(‘48’,M,T))-P(‘48’,M)*Y(‘48’,M)=E=0;
CONS50(M)… SUM(T$Time49(T),X(‘49’,M,T))-P(‘49’,M)*Y(‘49’,M)=E=0;
CONS51(M)… SUM(T$Time50(T),X(‘50’,M,T))-P(‘50’,M)*Y(‘50’,M)=E=0;
CONS52(M)… SUM(T$Time51(T),X(‘51’,M,T))-P(‘51’,M)*Y(‘51’,M)=E=0;
CONS53(M)… SUM(T$Time52(T),X(‘52’,M,T))-P(‘52’,M)*Y(‘52’,M)=E=0;
CONS54(M,T)$Time1(T)… Time(T)*X(‘1’,M,T)=L=F(‘1’);
CONS55(M,T)$Time2(T)… Time(T)*X(‘2’,M,T)=L=F(‘2’);
CONS56(M,T)$Time3(T)… Time(T)*X(‘3’,M,T)=L=F(‘3’);
CONS57(M,T)$Time4(T)… Time(T)*X(‘4’,M,T)=L=F(‘4’);
CONS58(M,T)$Time5(T)… Time(T)*X(‘5’,M,T)=L=F(‘5’);
CONS59(M,T)$Time6(T)… Time(T)*X(‘6’,M,T)=L=F(‘6’);
CONS60(M,T)$Time7(T)… Time(T)*X(‘7’,M,T)=L=F(‘7’);
CONS61(M,T)$Time8(T)… Time(T)*X(‘8’,M,T)=L=F(‘8’);
CONS62(M,T)$Time9(T)… Time(T)*X(‘9’,M,T)=L=F(‘9’);
CONS63(M,T)$Time10(T)… Time(T)*X(‘10’,M,T)=L=F(‘10’);
CONS64(M,T)$Time11(T)… Time(T)*X(‘11’,M,T)=L=F(‘11’);
CONS65(M,T)$Time12(T)… Time(T)*X(‘12’,M,T)=L=F(‘12’);
CONS66(M,T)$Time13(T)… Time(T)*X(‘13’,M,T)=L=F(‘13’);
CONS67(M,T)$Time14(T)… Time(T)*X(‘14’,M,T)=L=F(‘14’);
CONS68(M,T)$Time15(T)… Time(T)*X(‘15’,M,T)=L=F(‘15’);
CONS69(M,T)$Time16(T)… Time(T)*X(‘16’,M,T)=L=F(‘16’);
CONS70(M,T)$Time17(T)… Time(T)*X(‘17’,M,T)=L=F(‘17’);
CONS71(M,T)$Time18(T)… Time(T)*X(‘18’,M,T)=L=F(‘18’);
CONS72(M,T)$Time19(T)… Time(T)*X(‘19’,M,T)=L=F(‘19’);
CONS73(M,T)$Time20(T)… Time(T)*X(‘20’,M,T)=L=F(‘20’);
CONS74(M,T)$Time21(T)… Time(T)*X(‘21’,M,T)=L=F(‘21’);
CONS75(M,T)$Time22(T)… Time(T)*X(‘22’,M,T)=L=F(‘22’);
CONS76(M,T)$Time23(T)… Time(T)*X(‘23’,M,T)=L=F(‘23’);
CONS77(M,T)$Time24(T)… Time(T)*X(‘24’,M,T)=L=F(‘24’);
CONS78(M,T)$Time25(T)… Time(T)*X(‘25’,M,T)=L=F(‘25’);
CONS79(M,T)$Time26(T)… Time(T)*X(‘26’,M,T)=L=F(‘26’);
CONS80(M,T)$Time27(T)… Time(T)*X(‘27’,M,T)=L=F(‘27’);
CONS81(M,T)$Time28(T)… Time(T)*X(‘28’,M,T)=L=F(‘28’);
CONS82(M,T)$Time29(T)… Time(T)*X(‘29’,M,T)=L=F(‘29’);
CONS83(M,T)$Time30(T)… Time(T)*X(‘30’,M,T)=L=F(‘30’);
CONS84(M,T)$Time31(T)… Time(T)*X(‘31’,M,T)=L=F(‘31’);
CONS85(M,T)$Time32(T)… Time(T)*X(‘32’,M,T)=L=F(‘32’);
CONS86(M,T)$Time33(T)… Time(T)*X(‘33’,M,T)=L=F(‘33’);
CONS87(M,T)$Time34(T)… Time(T)*X(‘34’,M,T)=L=F(‘34’);
CONS88(M,T)$Time35(T)… Time(T)*X(‘35’,M,T)=L=F(‘35’);
CONS89(M,T)$Time36(T)… Time(T)*X(‘36’,M,T)=L=F(‘36’);
CONS90(M,T)$Time37(T)… Time(T)*X(‘37’,M,T)=L=F(‘37’);
CONS91(M,T)$Time38(T)… Time(T)*X(‘38’,M,T)=L=F(‘38’);
CONS92(M,T)$Time39(T)… Time(T)*X(‘39’,M,T)=L=F(‘39’);
CONS93(M,T)$Time40(T)… Time(T)*X(‘40’,M,T)=L=F(‘40’);
CONS94(M,T)$Time41(T)… Time(T)*X(‘41’,M,T)=L=F(‘41’);
CONS95(M,T)$Time42(T)… Time(T)*X(‘42’,M,T)=L=F(‘42’);
CONS96(M,T)$Time43(T)… Time(T)*X(‘43’,M,T)=L=F(‘43’);
CONS97(M,T)$Time44(T)… Time(T)*X(‘44’,M,T)=L=F(‘44’);
CONS98(M,T)$Time45(T)… Time(T)*X(‘45’,M,T)=L=F(‘45’);
CONS99(M,T)$Time46(T)… Time(T)*X(‘46’,M,T)=L=F(‘46’);
CONS100(M,T)$Time47(T)… Time(T)*X(‘47’,M,T)=L=F(‘47’);
CONS101(M,T)$Time48(T)… Time(T)*X(‘48’,M,T)=L=F(‘48’);
CONS102(M,T)$Time49(T)… Time(T)*X(‘49’,M,T)=L=F(‘49’);
CONS103(M,T)$Time50(T)… Time(T)*X(‘50’,M,T)=L=F(‘50’);
CONS104(M,T)$Time51(T)… Time(T)*X(‘51’,M,T)=L=F(‘51’);
CONS105(M,T)$Time52(T)… Time(T)*X(‘52’,M,T)=L=F(‘52’);
CONS106(M,T)$Time1(T)… Time(T)X(‘1’,M,T)+1000000(1-X(‘1’,M,T))=G=S(‘1’);
CONS107(M,T)$Time2(T)… Time(T)X(‘2’,M,T)+1000000(1-X(‘2’,M,T))=G=S(‘1’);
CONS108(M,T)$Time3(T)… Time(T)X(‘3’,M,T)+1000000(1-X(‘3’,M,T))=G=S(‘1’);
CONS109(M,T)$Time4(T)… Time(T)X(‘4’,M,T)+1000000(1-X(‘4’,M,T))=G=S(‘1’);
CONS110(M,T)$Time5(T)… Time(T)X(‘5’,M,T)+1000000(1-X(‘5’,M,T))=G=S(‘1’);
CONS111(M,T)$Time6(T)… Time(T)X(‘6’,M,T)+1000000(1-X(‘6’,M,T))=G=S(‘1’);
CONS112(M,T)$Time7(T)… Time(T)X(‘7’,M,T)+1000000(1-X(‘7’,M,T))=G=S(‘1’);
CONS113(M,T)$Time8(T)… Time(T)X(‘8’,M,T)+1000000(1-X(‘8’,M,T))=G=S(‘1’);
CONS114(M,T)$Time9(T)… Time(T)X(‘9’,M,T)+1000000(1-X(‘9’,M,T))=G=S(‘1’);
CONS115(M,T)$Time10(T)… Time(T)X(‘10’,M,T)+1000000(1-X(‘10’,M,T))=G=S(‘1’);
CONS116(M,T)$Time11(T)… Time(T)X(‘11’,M,T)+1000000(1-X(‘11’,M,T))=G=S(‘1’);
CONS117(M,T)$Time12(T)… Time(T)X(‘12’,M,T)+1000000(1-X(‘12’,M,T))=G=S(‘1’);
CONS118(M,T)$Time13(T)… Time(T)X(‘13’,M,T)+1000000(1-X(‘13’,M,T))=G=S(‘1’);
CONS119(M,T)$Time14(T)… Time(T)X(‘14’,M,T)+1000000(1-X(‘14’,M,T))=G=S(‘1’);
CONS120(M,T)$Time15(T)… Time(T)X(‘15’,M,T)+1000000(1-X(‘15’,M,T))=G=S(‘1’);
CONS121(M,T)$Time16(T)… Time(T)X(‘16’,M,T)+1000000(1-X(‘16’,M,T))=G=S(‘1’);
CONS122(M,T)$Time17(T)… Time(T)X(‘17’,M,T)+1000000(1-X(‘17’,M,T))=G=S(‘1’);
CONS123(M,T)$Time18(T)… Time(T)X(‘18’,M,T)+1000000(1-X(‘18’,M,T))=G=S(‘1’);
CONS124(M,T)$Time19(T)… Time(T)X(‘19’,M,T)+1000000(1-X(‘19’,M,T))=G=S(‘1’);
CONS125(M,T)$Time20(T)… Time(T)X(‘20’,M,T)+1000000(1-X(‘20’,M,T))=G=S(‘1’);
CONS126(M,T)$Time21(T)… Time(T)X(‘21’,M,T)+1000000(1-X(‘21’,M,T))=G=S(‘1’);
CONS127(M,T)$Time22(T)… Time(T)X(‘22’,M,T)+1000000(1-X(‘22’,M,T))=G=S(‘1’);
CONS128(M,T)$Time23(T)… Time(T)X(‘23’,M,T)+1000000(1-X(‘23’,M,T))=G=S(‘1’);
CONS129(M,T)$Time24(T)… Time(T)X(‘24’,M,T)+1000000(1-X(‘24’,M,T))=G=S(‘1’);
CONS130(M,T)$Time25(T)… Time(T)X(‘25’,M,T)+1000000(1-X(‘25’,M,T))=G=S(‘1’);
CONS131(M,T)$Time26(T)… Time(T)X(‘26’,M,T)+1000000(1-X(‘26’,M,T))=G=S(‘1’);
CONS132(M,T)$Time27(T)… Time(T)X(‘27’,M,T)+1000000(1-X(‘27’,M,T))=G=S(‘1’);
CONS133(M,T)$Time28(T)… Time(T)X(‘28’,M,T)+1000000(1-X(‘28’,M,T))=G=S(‘1’);
CONS134(M,T)$Time29(T)… Time(T)X(‘29’,M,T)+1000000(1-X(‘29’,M,T))=G=S(‘1’);
CONS135(M,T)$Time30(T)… Time(T)X(‘30’,M,T)+1000000(1-X(‘30’,M,T))=G=S(‘1’);
CONS136(M,T)$Time31(T)… Time(T)X(‘31’,M,T)+1000000(1-X(‘31’,M,T))=G=S(‘1’);
CONS137(M,T)$Time32(T)… Time(T)X(‘32’,M,T)+1000000(1-X(‘32’,M,T))=G=S(‘1’);
CONS138(M,T)$Time33(T)… Time(T)X(‘33’,M,T)+1000000(1-X(‘33’,M,T))=G=S(‘1’);
CONS139(M,T)$Time34(T)… Time(T)X(‘34’,M,T)+1000000(1-X(‘34’,M,T))=G=S(‘1’);
CONS140(M,T)$Time35(T)… Time(T)X(‘35’,M,T)+1000000(1-X(‘35’,M,T))=G=S(‘1’);
CONS141(M,T)$Time36(T)… Time(T)X(‘36’,M,T)+1000000(1-X(‘36’,M,T))=G=S(‘1’);
CONS142(M,T)$Time37(T)… Time(T)X(‘37’,M,T)+1000000(1-X(‘37’,M,T))=G=S(‘1’);
CONS143(M,T)$Time38(T)… Time(T)X(‘38’,M,T)+1000000(1-X(‘38’,M,T))=G=S(‘1’);
CONS144(M,T)$Time39(T)… Time(T)X(‘39’,M,T)+1000000(1-X(‘39’,M,T))=G=S(‘1’);
CONS145(M,T)$Time40(T)… Time(T)X(‘40’,M,T)+1000000(1-X(‘40’,M,T))=G=S(‘1’);
CONS146(M,T)$Time41(T)… Time(T)X(‘41’,M,T)+1000000(1-X(‘41’,M,T))=G=S(‘1’);
CONS147(M,T)$Time42(T)… Time(T)X(‘42’,M,T)+1000000(1-X(‘42’,M,T))=G=S(‘1’);
CONS148(M,T)$Time43(T)… Time(T)X(‘43’,M,T)+1000000(1-X(‘43’,M,T))=G=S(‘1’);
CONS149(M,T)$Time44(T)… Time(T)X(‘44’,M,T)+1000000(1-X(‘44’,M,T))=G=S(‘1’);
CONS150(M,T)$Time45(T)… Time(T)X(‘45’,M,T)+1000000(1-X(‘45’,M,T))=G=S(‘1’);
CONS151(M,T)$Time46(T)… Time(T)X(‘46’,M,T)+1000000(1-X(‘46’,M,T))=G=S(‘1’);
CONS152(M,T)$Time47(T)… Time(T)X(‘47’,M,T)+1000000(1-X(‘47’,M,T))=G=S(‘1’);
CONS153(M,T)$Time48(T)… Time(T)X(‘48’,M,T)+1000000(1-X(‘48’,M,T))=G=S(‘1’);
CONS154(M,T)$Time49(T)… Time(T)X(‘49’,M,T)+1000000(1-X(‘49’,M,T))=G=S(‘1’);
CONS155(M,T)$Time50(T)… Time(T)X(‘50’,M,T)+1000000(1-X(‘50’,M,T))=G=S(‘1’);
CONS156(M,T)$Time51(T)… Time(T)X(‘51’,M,T)+1000000(1-X(‘51’,M,T))=G=S(‘1’);
CONS157(M,T)$Time52(T)… Time(T)X(‘52’,M,T)+1000000(1-X(‘52’,M,T))=G=S(‘1’);
CONS158(S1(J))… F(‘1’)=L=S(S1)-1;
CONS159(S2(J))… F(‘2’)=L=S(S2)-1;
CONS160(S3(J))… F(‘3’)=L=S(S3)-1;
CONS161(S4(J))… F(‘4’)=L=S(S4)-1;
CONS162(S5(J))… F(‘5’)=L=S(S5)-1;
CONS163(S6(J))…F(‘6’)=L=S(S6)-1;
CONS164(S7(J))… F(‘7’)=L=S(S7)-1;
CONS165(S8(J))… F(‘8’)=L=S(S8)-1;
CONS166(S9(J))… F(‘9’)=L=S(S9)-1;
CONS167(S10(J))… F(‘10’)=L=S(S10)-1;
CONS168(S11(J))… F(‘11’)=L=S(S11)-1;
CONS169(S12(J))… F(‘12’)=L=S(S12)-1;
CONS170(S13(J))… F(‘13’)=L=S(S13)-1;
CONS171(S14(J))… F(‘14’)=L=S(S14)-1;
CONS172(S15(J))… F(‘15’)=L=S(S15)-1;
CONS173(S16(J))… F(‘16’)=L=S(S16)-1;
CONS174(S17(J))… F(‘17’)=L=S(S17)-1;
CONS175(S18(J))… F(‘18’)=L=S(S18)-1;
CONS176(S19(J))… F(‘19’)=L=S(S19)-1;
CONS177(S20(J))… F(‘20’)=L=S(S20)-1;
CONS178(S21(J))… F(‘21’)=L=S(S21)-1;
CONS179(S22(J))… F(‘22’)=L=S(S22)-1;
CONS180(S23(J))… F(‘23’)=L=S(S23)-1;
CONS181(S24(J))… F(‘24’)=L=S(S24)-1;
CONS182(S25(J))… F(‘25’)=L=S(S25)-1;
CONS183(S26(J))… F(‘26’)=L=S(S26)-1;
CONS184(S27(J))… F(‘27’)=L=S(S27)-1;
CONS185(S28(J))… F(‘28’)=L=S(S28)-1;
CONS186(S29(J))… F(‘29’)=L=S(S29)-1;
CONS187(S30(J))… F(‘30’)=L=S(S30)-1;
CONS188(S31(J))… F(‘31’)=L=S(S31)-1;
CONS189(S32(J))… F(‘32’)=L=S(S32)-1;
CONS190(S33(J))… F(‘33’)=L=S(S33)-1;
CONS191(S34(J))… F(‘34’)=L=S(S34)-1;
CONS192(S35(J))… F(‘35’)=L=S(S35)-1;
CONS193(S36(J))… F(‘36’)=L=S(S36)-1;
CONS194(S37(J))… F(‘37’)=L=S(S37)-1;
CONS195(S38(J))… F(‘38’)=L=S(S38)-1;
CONS196(S39(J))… F(‘39’)=L=S(S39)-1;
CONS197(S40(J))… F(‘40’)=L=S(S40)-1;
CONS198(S41(J))… F(‘41’)=L=S(S41)-1;
CONS199(S42(J))… F(‘42’)=L=S(S42)-1;
CONS200(S43(J))… F(‘43’)=L=S(S43)-1;
CONS201(S44(J))… F(‘44’)=L=S(S44)-1;
CONS202(S45(J))… F(‘45’)=L=S(S45)-1;
CONS203(S46(J))… F(‘46’)=L=S(S46)-1;
CONS204(S47(J))… F(‘47’)=L=S(S47)-1;
CONS205(S48(J))… F(‘48’)=L=S(S48)-1;
CONS206(S49(J))… F(‘49’)=L=S(S49)-1;
CONS207(S50(J))… F(‘50’)=L=S(S50)-1;
CONS208(S51(J))… F(‘51’)=L=S(S51)-1;
CONS209(RP,T)… SUM(J,SUM(M,RPC(J,M,RP)*X(J,M,T)))=L=RPA(RP,T);
CONS210(RV)… SUM(J,SUM(M,SUM(T,RVC(J,M,RV)*X(J,M,T))))=L=RVA(RV);
MODEL MRCPSP /ALL/;
SOLVE MRCPSP USING MIP MINIMIZING Z;
DISPLAY S.L,S.M;

On 8/10/11, Muhajir wrote:

Sorry Keks again

The sum on resource constraint should go like this:

resource (t,r)… sum ((j,m),k(j,m,r) * sum (b$[ord(b)=(ord(t)-d(j,m)+1)],
x(j,m,b)))

I am not an expert in PM but I think the last equation should be formulated
as follows to include the duration of the task (d(j,m)).

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

You should compare and validate the output with small and already solved
problem first.

Best

On Wed, Aug 10, 2011 at 1:35 PM, Muhajir wrote:

Hello Keks
You have to use ORD function to operate set order values with parameters.
I have a rough look at the model and here are some suggestions.
++++++
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
due_date (j) ensures due 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 ((m,t),x(i,m,t)*(ord(t)+d(i,m)))

=l=

                               sum ((m,t),x(j,m,t)*ord(t)) ;


 resource (t,r).. sum ((j,m),k(j,m,r) * sum (b$(ord(t)-d(j,m)+1),

x(j,m,b)))

                  =l= UK(r)   ;

due_date(j)..   sum ((m,t),x(j,m,t)* ord(t)) =l= DD   ;


Model transport /all/ ;

Solve transport using MIP minimize TC ;

+++++++

Hope this helps you out!

Best

On Wed, Aug 10, 2011 at 12:09 PM, “Frank Kähler”
wrote:

Hi Muhajir,

thanks a lot, my litte CPM is working now. So, today I tried my second
approach to GAMS with an more advanced RIP Modell (A new heuristic for
the
multi mode resource investment problem by Hsu and Kim), but no wonder i
am
of course struggeling again.

→ three generel errors occured: 133, 148, 149

→ One big problem I have, is that I don’t know how to sum about a
specific part of a set that is dynamic (Problem for the resource
equation)

→ I think the 148 error occured because t is an indice and also
multiplied sometimes → but I don’t how to solve it

The coding is the following → if you still interested so take a look
:slight_smile:

start:

3
Modell by HSU and Kim (2004)

8
9 Sets
10
11 j jobs / Dummy_1, Design, Structure, Basics, Cabin,
Service,
12 Components,Dummy_2 /
13
14 Alias (i,j);
15
16
17 Set m modes /Standard, Fast/
18
19 r resources /Painter /
20
21 t time index /1*16 /
22
23 Alias (t,b)
24 ;
25
26
27
28
29 Set path (i,j) /
30 Dummy_1.Design
31 Dummy_1.Structure
32 Dummy_1.Basics
33 Design. Cabin
34 Structure. Cabin
35 Structure. Service
36 Basics. Service
37 Cabin. Components
38 Service. Dummy_2
39 Components. Dummy_2 / ;
40
41
42
43 Parameters
44
45 c (r) Costs per resource
46 /Painter 1/
47
48 d(j,m) duration for job from i executed in mode m
49
50 / Dummy_1.Standard 0
51 Design.Standard 2
52 Structure.Standard 3
53 Basics.Standard 1
54 Cabin.Standard 4
55 Service.Standard 2
56 Components.Standard 1
57 Dummy_2.Fast 0
58 Design.Fast 1
59 Structure.Fast 2
60 Basics.Fast 1
61 Cabin.Fast 2
62 Service.Fast 1
63 Components.Fast 1
64 /
65
66
67 k (j,m,r) /Dummy_1.Standard.Painter 0
68 Design.Standard. Painter 3
69 Structure.Standard. Painter 1
70 Basics.Standard. Painter 2
71 Cabin.Standard. Painter 2
72 Service.Standard. Painter 3
73 Components.Standard. Painter 3
74 Dummy_2.Standard. Painter 0
75 Dummy_1.Fast. Painter 0
76 Design.Fast. Painter 4
77 Structure.Fast. Painter 2
78 Basics.Fast. Painter 4
79 Cabin.Fast. Painter 4
80 Service.Fast. Painter 4
81 Components.Fast. Painter 4
82 Dummy_2.Fast. Painter 0 / ;
83
84 Scalar DD due date /12/;
85
86 Variables
87 x(j,m,t) 1 if task j is done in t and executed in m
88 UK (r) units of resources required
89 TC Total Costs
90 binary Variable x ;
91
92 Equations
93 cost define objective function
94 each_job (j) ens. that j is done only in one t
and m
95 precedence (i,j) ensures the precendence
relationship
96 resource (t,r) prevents resource overuse
97 due_date ensures due date ;
98
99 cost … TC =e= sum(r, (c (r)UK (r))) ;
100
101 each_job(j) …sum ((m,t),x(j,m,t))=e= 1 ;
102
103 precedence (i,j)$path(i,j)… sum ((m,t),x(i,m,t)
(t+d(i,m))) =l=
**** $148 $133
104 sum ((m,t),x(j,m,t)*t) ;
**** 148 105 106 resource (t,r).. sum ((j,m),k(j,m,r)) * sum (b(t-d(j,m)+1),
x(j,m,b))


$148$149,149,133,133,14
9,149
107 =l= UK(r) ;
108
109 due_date … sum ((m,t),x(j,m,t)* t) =l= DD ;
**** $149 $148
110
111 Model transport /all/ ;
112
113 Solve transport using MIP minimize TC ;
**** $257
114
115
116
Error Messages

133 Incompatible operands for addition
148 Dimension different - The symbol is referenced with more/less
indices as declared
149 Uncontrolled set entered as constant
257 Solve statement not checked because of previous errors


Von: “Muhajir Tadesse”
Gesendet: 08-Aug-2011 10:51:19

An: gamsworld@googlegroups.com
Betreff: Re: MRCPSP + anyone with a RCPSP in Gams language?

Sorry Keks,

Here is what I mean.

Path (i,j) should be defined after defining the alias. GAMS will not
understand set “j” unless first you define it in the alias.

The other was my mistake, ‘m’ was to mean ‘path’ !, It goes like this

order(i,j)$path(i,j) … S(j) - S(i) =g= d(i,j) ;

sorry for the mistake

I hope it will be OK now!

*******************************Rearrange the modes
as

Sets
10
11 i activities / Dummy_1, Design, Structure, Basics,
Cabin, Serv
ice, Components, Dummy_2 /
12
24 Alias (i,j) ;
**** $406,158
25
13 i,j path
14 / Dummy_1. Design
15 Dummy_1. Structure
16 Dummy_1. Basics
17 Design. Cabin
18 Structure. Cabin
19 Structure. Service
20 Basics. Service
21 Cabin. Components
22 Service. Dummy_2
23 Components. Dummy_2 /
26 Parameters
27
28 d(i,j) path duration from i to j
**** $122
29 / Dummy_1. Design 0
30 Dummy_1. Structure 0
31 Dummy_1. Basics 0
32 Design. Cabin 2
33 Structure. Cabin 3
34 Structure. Service 3
35 Basics. Service 1
36 Cabin. Components 4
37 Service. Dummy_2 2
38 Components. Dummy_2 1
39 / ;
40
41 Variables
42 S(i) start time of activity i
43 T total time
44
45 Positive Variable S ;
46
47 Equations
48 time define objective function
49 order (i,j) ensures the technical order
restrictions
**** $122
50 start (i) ensures beginning at point 0 ;
51
52 time … T =e= S(‘Dummy_2’) ;
53
54 order(i,j)$path(i,j) … S(j) - S(i) =g= d(i,j) ;
**** $148,140 $171,148 $148
55
56 start(I) … S(‘Dummy_1’)=e= 0 ;
57
58 Model transport /all/ ;
59
60 Solve transport using lp minimizing T ;


            $257

Von: “Muhajir Tadesse”
Gesendet: 07-Aug-2011 16:02:38
An: gamsworld@googlegroups.com
Betreff: Re: MRCPSP + anyone with a RCPSP in Gams language?

Hi Keks,

The infeasibility is becuase you defined the order(i,j) constraint for
every combination of i and j.
You could try to define task precedents (the project path) using dynamic
sets and define the constraint order (i,j) over this dynamic set only.

*** Creating dyaminc set
Set path(i,j) /
Dummy_1. Design
Dummy_1. Structure
Dummy_1. Basics
Design. Cabin
Structure. Cabin
Structure. Service
Basics. Service
Cabin. Components
Service. Dummy_2
Components. Dummy_2
/
**** definig equation over dynamic set
order(i,j)$m(i,j) … S(j) - S(i) =g= d(i,j) ;

I hope this solves the infeasiblity!

Just an opinoin: if you are minimizing the total project time, I think
you must include the duration of each task.

Good luck

On Sun, Aug 7, 2011 at 1:14 PM, Keks wrote:

Hello together,

I am absolutely new in GAMS progamming and programming in generel
(just a little bit Xpress so far).

For a practical Project scheduling Problem I would like to implement a
so called Multi Mode Resource Constrained Project Scheduling Problem.
To get into the GAMS environment my idea was to start with a basic CPM
Modell and after it to expand the Modell through a RCPSP and after it
to a MRCPSP.

But l am struggeling already at the beginning with the CPM
implementation. I dont know how to code precedence relationships between tasks. I tried to connect them with a d(i,j) = time lag between activity i and j but just because I dont know a better way to code them.

It seems that all syntax errors are eliminated from my first model but
the output isn`t that pretty → infeasible

My first little model is coded as the following:

Sets

     i activities   / Dummy_1, Design, Structure, Basics, Cabin,

Service, Components, Dummy_2 /

Alias (i,j) ;

Parameters

  d(i,j)  time lag between activity i and j
    /    Dummy_1. Design       0,
         Dummy_1. Structure    0,
         Dummy_1. Basics       0,
         Design. Cabin         2,
         Structure. Cabin      3,
         Structure. Service    3,
         Basics. Service       1,
         Cabin. Components     4,
         Service. Dummy_2      2,
         Components. Dummy_2   1   /  ;

Variables
S(i) start time of activity i
T total time

Positive Variable S ;

Equations
time define objective function
order (i,j) ensures the technical order
restrictions
start (i) ensures beginning at point 0 ;

time … T =e= S(‘Dummy_2’) ;

order(i,j) … S(j) - S(i) =g= d(i,j) ;

start(i) … S(‘Dummy_1’)=e= 0 ;

Model transport /all/ ;

Solve transport using lp minimizing T ;

→ the infeasibality occured in row (order Design, Cabin): 0 >= 2

→ it seems that the starting points of the activities were`t
calculated

→ Please help :wink: + If anyone has a basic RCPSP in GAMS language I
am highly interested in it.

Best regards

Keks


You received this message because you are subscribed to the Google
Groups “gamsworld” group.
To post to this group, send email to gamsworld@googlegroups.com.
To unsubscribe from this group, send email to
gamsworld+unsubscribe@googlegroups.com.
For more options, visit this group at
http://groups.google.com/group/gamsworld?hl=en.


You received this message because you are subscribed to the Google
Groups
“gamsworld” group.
To post to this group, send email to gamsworld@googlegroups.com.
To unsubscribe from this group, send email to
gamsworld+unsubscribe@googlegroups.com.
For more options, visit this group at
http://groups.google.com/group/gamsworld?hl=en.

Schon gehört? WEB.DE hat einen genialen Phishing-Filter in die
Toolbar eingebaut!
http://produkte.web.de/go/toolbar

You received this message because you are subscribed to the Google
Groups
“gamsworld” group.
To post to this group, send email to gamsworld@googlegroups.com.
To unsubscribe from this group, send email to
gamsworld+unsubscribe@googlegroups.com.
For more options, visit this group at
http://groups.google.com/group/gamsworld?hl=en.


“gamsworld” group.
To post to this group, send email to gamsworld@googlegroups.com.
To unsubscribe from this group, send email to
gamsworld+unsubscribe@googlegroups.com.
For more options, visit this group at
http://groups.google.com/group/gamsworld?hl=en.

Schon gehört? WEB.DE hat einen genialen Phishing-Filter in die
Toolbar eingebaut!
http://produkte.web.de/go/toolbar


“gamsworld” group.
To post to this group, send email to gamsworld@googlegroups.com.
To unsubscribe from this group, send email to
gamsworld+unsubscribe@googlegroups.com.
For more options, visit this group at
http://groups.google.com/group/gamsworld?hl=en.


“gamsworld” group.
To post to this group, send email to gamsworld@googlegroups.com.
To unsubscribe from this group, send email to
gamsworld+unsubscribe@googlegroups.com.
For more options, visit this group at
http://groups.google.com/group/gamsworld?hl=en.


\

In The Name of God
Hi everyone,
I fixed some deficiencies of my MRCPSP model, but still one thing is
not OK, and it is about the precedence constraints. As you see in this
syntax,
CONS167(J)$P11(J)… F(J)=L=S(‘11’)-1;
This constraint should apply to all of the predecessors of activity 11
(P11- that is, activities 2,4 and 5), but the only constraint I get in
the lst file after running my model is this:
---- CONS167 =L=

CONS167(2)… - S(11) + F(2) =L= -1 ; (LHS = 0, INFES = 1 ***)
and there is no equation about activities 4 or 5. what should I do?
Thanks in advance.


On 8/14/11, Fatemeh Faghih Mohammadi wrote:

In The Name of God
Hello everyone,
I am writing a MRCPSP model in GAMS with Cplex as the chosen solver
for MIP. Now the source code has no errors, but when I run the model I
get a message like “The problem is integer – infeasible”. I checked my
model results and found out that all my variables have the value of
zero. why do you think this is happening?
Here’s my code. Thanks in advance.
Solving MRCPSP Problem - set used: J501_1
SETS
J/1
52/
M/13/
T/1
500/
RP/12/
RV/1
2/
Time1(T)/11/
Time2(T)/1
7/
Time3(T)/15/
Time4(T)/1
7/
Time5(T)/17/
Time6(T)/1
10/
Time7(T)/110/
Time8(T)/1
5/
Time9(T)/110/
Time10(T)/1
9/
Time11(T)/711/
Time12(T)/4
11/
Time13(T)/111/
Time14(T)/1
11/
Time15(T)/112/
Time16(T)/7
11/
Time17(T)/113/
Time18(T)/1
11/
Time19(T)/111/
Time20(T)/1
12/
Time21(T)/412/
Time22(T)/1
11/
Time23(T)/212/
Time24(T)/10
13/
Time25(T)/1112/
Time26(T)/12
13/
Time27(T)/713/
Time28(T)/6
13/
Time29(T)/314/
Time30(T)/11
13/
Time31(T)/813/
Time32(T)/10
16/
Time33(T)/713/
Time34(T)/6
13/
Time35(T)/416/
Time36(T)/2
13/
Time37(T)/1318/
Time38(T)/14
18/
Time39(T)/1218/
Time40(T)/12
18/
Time41(T)/1118/
Time42(T)/11
18/
Time43(T)/918/
Time44(T)/10
18/
Time45(T)/1118/
Time46(T)/9
18/
Time47(T)/1218/
Time48(T)/7
18/
Time49(T)/718/
Time50(T)/10
18/
Time51(T)/1118/
Time52(T)/18
18/
S1(J)/2 3 4 5 6 7 8 9 10 13 14 15 17 18 19 20 22/
S2(J)/50 49 48 36 33 31 27 23 16 11/
S3(J)/51 49 48 46 41 36 35 34 33 31 30 26 12/
S4(J)/50 49 48 46 44 43 35 32 28 27 24 11/
S5(J)/49 48 33 31 27 16 11/
S6(J)/51 50 49 48 47 45 44 41 34 32 30 28 26 24/
S7(J)/50 48 46 45 43 41 34 32 30 24 21/
S8(J)/49 48 46 43 41 35 26 12/
S9(J)/48 46 44 43 42 41 31 30 28 25 24/
S10(J)/45 44 41 40 39 29 27 26/
S11(J)/51 45 42 41 39 30 25/
S12(J)/50 45 44 42 32 24/
S13(J)/48 44 42 32 26 24/
S14(J)/47 46 45 43 39 31 30/
S15(J)/47 41 39 33 31 26/
S16(J)/44 42 30 26 24/
S17(J)/51 50 46 43 42 41 39 38/
S18(J)/46 43 41 40 39 38 30/
S19(J)/42 41 39 30 27 26/
S20(J)/47 43 31 26/
S21(J)/49 31 26/
S22(J)/51 39 38 34/
S23(J)/43 32 26/
S24(J)/40 39 38 37/
S25(J)/47 26/
S26(J)/38 37/
S27(J)/38 37/
S28(J)/40 39/
S29(J)/46 42/
S30(J)/37/
S31(J)/40/
S32(J)/38/
S33(J)/37/
S34(J)/37/
S35(J)/38/
S36(J)/43/
S37(J)/52/
S38(J)/52/
S39(J)/52/
S40(J)/52/
S41(J)/52/
S42(J)/52/
S43(J)/52/
S44(J)/52/
S45(J)/52/
S46(J)/52/
S47(J)/52/
S48(J)/52/
S49(J)/52/
S50(J)/52/
S51(J)/52/;
PARAMETERS
time(T);
time(T)=Ord(T);
TABLE
P(J,M)
1 2 3
1 0 0 0
2 1 8 8
3 1 3 7
4 1 2 6
5 6 6 7
6 5 9 10
7 3 4 6
8 3 6 7
9 5 6 9
10 2 5 8
11 4 7 10
12 6 8 9
13 1 4 10
14 3 7 8
15 3 4 9
16 2 4 7
17 1 5 5
18 8 9 10
19 3 3 4
20 7 8 10
21 2 3 4
22 5 7 10
23 1 4 8
24 2 7 8
25 1 2 7
26 1 2 9
27 2 5 10
28 3 5 10
29 5 5 7
30 2 5 6
31 1 3 4
32 4 6 7
33 1 4 9
34 2 7 10
35 2 4 4
36 1 2 7
37 5 6 7
38 2 3 10
39 4 4 9
40 5 5 6
41 4 5 8
42 2 4 4
43 5 7 9
44 5 9 10
45 4 7 10
46 4 9 10
47 5 6 8
48 4 6 8
49 2 7 10
50 3 5 10
51 5 5 8
52 0 0 0;
Parameter
RVA(RV)
/1 71
2 71/;
table
RPA(RP,T)
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31 32 33 34
35 36 37 38 39 40 41
42 43 44 45 46 47 48
49 50 51 52 53 54 55
56 57 58 59 60 61 62
63 64 65 66 67 68 69
70 71 72 73 74 75 76
77 78 79 80 81 82 83
84 85 86 87 88 89 90
91 92 93 94 95 96 97
98 99 100 101 102 103 104
105 106 107 108 109 110 111
112 113 114 115 116 117 118
119 120 121 122 123 124 125
126 127 128 129 130 131 132
133 134 135 136 137 138 139
140 141 142 143 144 145 146
147 148 149 150 151 152 153
154 155 156 157 158 159 160
161 162 163 164 165 166 167
168 169 170 171 172 173 174
175 176 177 178 179 180 181
182 183 184 185 186 187 188
189 190 191 192 193 194 195
196 197 198 199 200 201 202
203 204 205 206 207 208 209
210 211 212 213 214 215 216
217 218 219 220 221 222 223
224 225 226 227 228 229 230
231 232 233 234 235 236 237
238 239 240 241 242 243 244
245 246 247 248 249 250 251
252 253 254 255 256 257 258
259 260 261 262 263 264 265
266 267 268 269 270 271 272
273 274 275 276 277 278 279
280 281 282 283 284 285 286
287 288 289 290 291 292 293
294 295 296 297 298 299 300
301 302 303 304 305 306 307
308 309 310 311 312 313 314
315 316 317 318 319 320 321
322 323 324 325 326 327 328
329 330 331 332 333 334 335
336 337 338 339 340 341 342
343 344 345 346 347 348 349
350 351 352 353 354 355 356
357 358 359 360 361 362 363
364 365 366 367 368 369 370
371 372 373 374 375 376 377
378 379 380 381 382 383 384
385 386 387 388 389 390 391
392 393 394 395 396 397 398
399 400 401 402 403 404 405
406 407 408 409 410 411 412
413 414 415 416 417 418 419
420 421 422 423 424 425 426
427 428 429 430 431 432 433
434 435 436 437 438 439 440
441 442 443 444 445 446 447
448 449 450 451 452 453 454
455 456 457 458 459 460 461
462 463 464 465 466 467 468
469 470 471 472 473 474 475
476 477 478 479 480 481 482
483 484 485 486 487 488 489
490 491 492 493 494 495 496
497 498 499 500
1 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30
2 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27;
table
RPC(J,M,RP)
1 2
1.1 0 0
1.2 0 0
1.3 0 0
2.1 0 8
2.2 6 0
2.3 5 0
3.1 3 0
3.2 0 5
3.3 0 2
4.1 0 6
4.2 5 0
4.3 0 3
5.1 6 0
5.2 6 0
5.3 6 0
6.1 0 8
6.2 4 0
6.3 0 7
7.1 0 4
7.2 6 0
7.3 0 2
8.1 6 0
8.2 6 0
8.3 0 9
9.1 0 8
9.2 7 0
9.3 7 0
10.1 7 0
10.2 0 7
10.3 0 6
11.1 0 4
11.2 5 0
11.3 0 1
12.1 0 8
12.2 0 6
12.3 0 5
13.1 8 0
13.2 7 0
13.3 0 6
14.1 3 0
14.2 3 0
14.3 0 4
15.1 0 1
15.2 0 1
15.3 2 0
16.1 0 6
16.2 5 0
16.3 0 5
17.1 5 0
17.2 4 0
17.3 0 3
18.1 5 0
18.2 4 0
18.3 4 0
19.1 4 0
19.2 0 3
19.3 0 1
20.1 10 0
20.2 0 5
20.3 7 0
21.1 7 0
21.2 0 7
21.3 0 6
22.1 0 5
22.2 5 0
22.3 0 3
23.1 0 8
23.2 6 0
23.3 0 8
24.1 0 4
24.2 5 0
24.3 4 0
25.1 0 9
25.2 0 4
25.3 0 1
26.1 0 6
26.2 0 4
26.3 0 4
27.1 0 9
27.2 0 5
27.3 0 3
28.1 0 5
28.2 2 0
28.3 2 0
29.1 0 8
29.2 0 8
29.3 0 8
30.1 7 0
30.2 0 2
30.3 0 2
31.1 0 3
31.2 7 0
31.3 0 1
32.1 0 6
32.2 0 4
32.3 1 0
33.1 0 7
33.2 2 0
33.3 2 0
34.1 6 0
34.2 0 8
34.3 6 0
35.1 3 0
35.2 0 3
35.3 3 0
36.1 0 8
36.2 0 7
36.3 7 0
37.1 0 7
37.2 0 7
37.3 0 5
38.1 0 6
38.2 2 0
38.3 0 4
39.1 0 3
39.2 0 2
39.3 0 2
40.1 6 0
40.2 0 9
40.3 6 0
41.1 3 0
41.2 2 0
41.3 0 4
42.1 0 7
42.2 9 0
42.3 0 2
43.1 0 7
43.2 0 5
43.3 2 0
44.1 10 0
44.2 10 0
44.3 0 1
45.1 0 6
45.2 0 4
45.3 3 0
46.1 5 0
46.2 3 0
46.3 0 8
47.1 0 4
47.2 7 0
47.3 0 3
48.1 8 0
48.2 7 0
48.3 2 0
49.1 5 0
49.2 4 0
49.3 0 6
50.1 0 9
50.2 7 0
50.3 7 0
51.1 5 0
51.2 0 9
51.3 0 9
52.1 0 0
52.2 0 0
52.3 0 0;
table
RVC(J,M,RV)
1 2
1.1 0 0
1.2 0 0
1.3 0 0
2.1 0 3
2.2 0 2
2.3 5 0
3.1 0 8
3.2 0 7
3.3 0 3
4.1 4 0
4.2 3 0
4.3 3 0
5.1 8 0
5.2 0 8
5.3 5 0
6.1 0 7
6.2 0 4
6.3 2 0
7.1 0 6
7.2 7 0
7.3 0 5
8.1 0 2
8.2 0 1
8.3 1 0
9.1 0 2
9.2 3 0
9.3 1 0
10.1 0 1
10.2 0 1
10.3 5 0
11.1 7 0
11.2 4 0
11.3 1 0
12.1 0 4
12.2 4 0
12.3 0 1
13.1 8 0
13.2 0 7
13.3 5 0
14.1 0 9
14.2 0 5
14.3 0 5
15.1 0 8
15.2 3 0
15.3 0 7
16.1 7 0
16.2 0 3
16.3 0 2
17.1 6 0
17.2 5 0
17.3 0 2
18.1 6 0
18.2 6 0
18.3 0 3
19.1 8 0
19.2 0 7
19.3 2 0
20.1 6 0
20.2 0 8
20.3 2 0
21.1 0 6
21.2 8 0
21.3 0 5
22.1 0 5
22.2 0 5
22.3 0 3
23.1 10 0
23.2 6 0
23.3 0 3
24.1 0 7
24.2 0 5
24.3 0 3
25.1 0 7
25.2 0 5
25.3 0 2
26.1 0 8
26.2 4 0
26.3 2 0
27.1 0 5
27.2 0 5
27.3 2 0
28.1 0 6
28.2 0 4
28.3 3 0
29.1 0 8
29.2 5 0
29.3 0 4
30.1 3 0
30.2 0 4
30.3 0 1
31.1 7 0
31.2 0 4
31.3 5 0
32.1 0 7
32.2 0 7
32.3 5 0
33.1 8 0
33.2 0 4
33.3 8 0
34.1 0 6
34.2 7 0
34.3 0 1
35.1 0 6
35.2 0 2
35.3 0 2
36.1 7 0
36.2 0 6
36.3 2 0
37.1 7 0
37.2 5 0
37.3 4 0
38.1 5 0
38.2 4 0
38.3 3 0
39.1 5 0
39.2 0 3
39.3 0 2
40.1 0 3
40.2 4 0
40.3 0 2
41.1 8 0
41.2 7 0
41.3 5 0
42.1 0 6
42.2 7 0
42.3 0 1
43.1 0 8
43.2 3 0
43.3 2 0
44.1 0 2
44.2 0 1
44.3 0 1
45.1 6 0
45.2 6 0
45.3 0 6
46.1 4 0
46.2 3 0
46.3 0 7
47.1 0 6
47.2 0 6
47.3 2 0
48.1 7 0
48.2 4 0
48.3 4 0
49.1 2 0
49.2 2 0
49.3 0 1
50.1 5 0
50.2 0 7
50.3 1 0
51.1 5 0
51.2 0 6
51.3 1 0
52.1 0 0
52.2 0 0
52.3 0 0;
VARIABLES
Z
BINARY VARIABLES
X(J,M,T)
Y(J,M);
INTEGER VARIABLES
S(J)
F(J);
EQUATIONS
OBJECTIVE
CONS1(J)
CONS2(M)
CONS3(M)
CONS4(M)
CONS5(M)
CONS6(M)
CONS7(M)
CONS8(M)
CONS9(M)
CONS10(M)
CONS11(M)
CONS12(M)
CONS13(M)
CONS14(M)
CONS15(M)
CONS16(M)
CONS17(M)
CONS18(M)
CONS19(M)
CONS20(M)
CONS21(M)
CONS22(M)
CONS23(M)
CONS24(M)
CONS25(M)
CONS26(M)
CONS27(M)
CONS28(M)
CONS29(M)
CONS30(M)
CONS31(M)
CONS32(M)
CONS33(M)
CONS34(M)
CONS35(M)
CONS36(M)
CONS37(M)
CONS38(M)
CONS39(M)
CONS40(M)
CONS41(M)
CONS42(M)
CONS43(M)
CONS44(M)
CONS45(M)
CONS46(M)
CONS47(M)
CONS48(M)
CONS49(M)
CONS50(M)
CONS51(M)
CONS52(M)
CONS53(M)
CONS54(M,T)
CONS55(M,T)
CONS56(M,T)
CONS57(M,T)
CONS58(M,T)
CONS59(M,T)
CONS60(M,T)
CONS61(M,T)
CONS62(M,T)
CONS63(M,T)
CONS64(M,T)
CONS65(M,T)
CONS66(M,T)
CONS67(M,T)
CONS68(M,T)
CONS69(M,T)
CONS70(M,T)
CONS71(M,T)
CONS72(M,T)
CONS73(M,T)
CONS74(M,T)
CONS75(M,T)
CONS76(M,T)
CONS77(M,T)
CONS78(M,T)
CONS79(M,T)
CONS80(M,T)
CONS81(M,T)
CONS82(M,T)
CONS83(M,T)
CONS84(M,T)
CONS85(M,T)
CONS86(M,T)
CONS87(M,T)
CONS88(M,T)
CONS89(M,T)
CONS90(M,T)
CONS91(M,T)
CONS92(M,T)
CONS93(M,T)
CONS94(M,T)
CONS95(M,T)
CONS96(M,T)
CONS97(M,T)
CONS98(M,T)
CONS99(M,T)
CONS100(M,T)
CONS101(M,T)
CONS102(M,T)
CONS103(M,T)
CONS104(M,T)
CONS105(M,T)
CONS106(M,T)
CONS107(M,T)
CONS108(M,T)
CONS109(M,T)
CONS110(M,T)
CONS111(M,T)
CONS112(M,T)
CONS113(M,T)
CONS114(M,T)
CONS115(M,T)
CONS116(M,T)
CONS117(M,T)
CONS118(M,T)
CONS119(M,T)
CONS120(M,T)
CONS121(M,T)
CONS122(M,T)
CONS123(M,T)
CONS124(M,T)
CONS125(M,T)
CONS126(M,T)
CONS127(M,T)
CONS128(M,T)
CONS129(M,T)
CONS130(M,T)
CONS131(M,T)
CONS132(M,T)
CONS133(M,T)
CONS134(M,T)
CONS135(M,T)
CONS136(M,T)
CONS137(M,T)
CONS138(M,T)
CONS139(M,T)
CONS140(M,T)
CONS141(M,T)
CONS142(M,T)
CONS143(M,T)
CONS144(M,T)
CONS145(M,T)
CONS146(M,T)
CONS147(M,T)
CONS148(M,T)
CONS149(M,T)
CONS150(M,T)
CONS151(M,T)
CONS152(M,T)
CONS153(M,T)
CONS154(M,T)
CONS155(M,T)
CONS156(M,T)
CONS157(M,T)
CONS158(S1)
CONS159(S2)
CONS160(S3)
CONS161(S4)
CONS162(S5)
CONS163(S6)
CONS164(S7)
CONS165(S8)
CONS166(S9)
CONS167(S10)
CONS168(S11)
CONS169(S12)
CONS170(S13)
CONS171(S14)
CONS172(S15)
CONS173(S16)
CONS174(S17)
CONS175(S18)
CONS176(S19)
CONS177(S20)
CONS178(S21)
CONS179(S22)
CONS180(S23)
CONS181(S24)
CONS182(S25)
CONS183(S26)
CONS184(S27)
CONS185(S28)
CONS186(S29)
CONS187(S30)
CONS188(S31)
CONS189(S32)
CONS190(S33)
CONS191(S34)
CONS192(S35)
CONS193(S36)
CONS194(S37)
CONS195(S38)
CONS196(S39)
CONS197(S40)
CONS198(S41)
CONS199(S42)
CONS200(S43)
CONS201(S44)
CONS202(S45)
CONS203(S46)
CONS204(S47)
CONS205(S48)
CONS206(S49)
CONS207(S50)
CONS208(S51)
CONS209(RP,T)
CONS210(RV);
OBJECTIVE… Z=E=F(‘52’);
CONS1(J)… SUM(M,Y(J,M))=E=1;
CONS2(M)… SUM(T$Time1(T),X(‘1’,M,T))-P(‘1’,M)*Y(‘1’,M)=E=0;
CONS3(M)… SUM(T$Time2(T),X(‘2’,M,T))-P(‘2’,M)*Y(‘2’,M)=E=0;
CONS4(M)… SUM(T$Time3(T),X(‘3’,M,T))-P(‘3’,M)*Y(‘3’,M)=E=0;
CONS5(M)… SUM(T$Time4(T),X(‘4’,M,T))-P(‘4’,M)*Y(‘4’,M)=E=0;
CONS6(M)… SUM(T$Time5(T),X(‘5’,M,T))-P(‘5’,M)*Y(‘5’,M)=E=0;
CONS7(M)… SUM(T$Time6(T),X(‘6’,M,T))-P(‘6’,M)*Y(‘6’,M)=E=0;
CONS8(M)… SUM(T$Time7(T),X(‘7’,M,T))-P(‘7’,M)*Y(‘7’,M)=E=0;
CONS9(M)… SUM(T$Time8(T),X(‘8’,M,T))-P(‘8’,M)*Y(‘8’,M)=E=0;
CONS10(M)… SUM(T$Time9(T),X(‘9’,M,T))-P(‘9’,M)*Y(‘9’,M)=E=0;
CONS11(M)… SUM(T$Time10(T),X(‘10’,M,T))-P(‘10’,M)*Y(‘10’,M)=E=0;
CONS12(M)… SUM(T$Time11(T),X(‘11’,M,T))-P(‘11’,M)*Y(‘11’,M)=E=0;
CONS13(M)… SUM(T$Time12(T),X(‘12’,M,T))-P(‘12’,M)*Y(‘12’,M)=E=0;
CONS14(M)… SUM(T$Time13(T),X(‘13’,M,T))-P(‘13’,M)*Y(‘13’,M)=E=0;
CONS15(M)… SUM(T$Time14(T),X(‘14’,M,T))-P(‘14’,M)*Y(‘14’,M)=E=0;
CONS16(M)… SUM(T$Time15(T),X(‘15’,M,T))-P(‘15’,M)*Y(‘15’,M)=E=0;
CONS17(M)… SUM(T$Time16(T),X(‘16’,M,T))-P(‘16’,M)*Y(‘16’,M)=E=0;
CONS18(M)… SUM(T$Time17(T),X(‘17’,M,T))-P(‘17’,M)*Y(‘17’,M)=E=0;
CONS19(M)… SUM(T$Time18(T),X(‘18’,M,T))-P(‘18’,M)*Y(‘18’,M)=E=0;
CONS20(M)… SUM(T$Time19(T),X(‘19’,M,T))-P(‘19’,M)*Y(‘19’,M)=E=0;
CONS21(M)… SUM(T$Time20(T),X(‘20’,M,T))-P(‘20’,M)*Y(‘20’,M)=E=0;
CONS22(M)… SUM(T$Time21(T),X(‘21’,M,T))-P(‘21’,M)*Y(‘21’,M)=E=0;
CONS23(M)… SUM(T$Time22(T),X(‘22’,M,T))-P(‘22’,M)*Y(‘22’,M)=E=0;
CONS24(M)… SUM(T$Time23(T),X(‘23’,M,T))-P(‘23’,M)*Y(‘23’,M)=E=0;
CONS25(M)… SUM(T$Time24(T),X(‘24’,M,T))-P(‘24’,M)*Y(‘24’,M)=E=0;
CONS26(M)… SUM(T$Time25(T),X(‘25’,M,T))-P(‘25’,M)*Y(‘25’,M)=E=0;
CONS27(M)… SUM(T$Time26(T),X(‘26’,M,T))-P(‘26’,M)*Y(‘26’,M)=E=0;
CONS28(M)… SUM(T$Time27(T),X(‘27’,M,T))-P(‘27’,M)*Y(‘27’,M)=E=0;
CONS29(M)… SUM(T$Time28(T),X(‘28’,M,T))-P(‘28’,M)*Y(‘28’,M)=E=0;
CONS30(M)… SUM(T$Time29(T),X(‘29’,M,T))-P(‘29’,M)*Y(‘29’,M)=E=0;
CONS31(M)… SUM(T$Time30(T),X(‘30’,M,T))-P(‘30’,M)*Y(‘30’,M)=E=0;
CONS32(M)… SUM(T$Time31(T),X(‘31’,M,T))-P(‘31’,M)*Y(‘31’,M)=E=0;
CONS33(M)… SUM(T$Time32(T),X(‘32’,M,T))-P(‘32’,M)*Y(‘32’,M)=E=0;
CONS34(M)… SUM(T$Time33(T),X(‘33’,M,T))-P(‘33’,M)*Y(‘33’,M)=E=0;
CONS35(M)… SUM(T$Time34(T),X(‘34’,M,T))-P(‘34’,M)*Y(‘34’,M)=E=0;
CONS36(M)… SUM(T$Time35(T),X(‘35’,M,T))-P(‘35’,M)*Y(‘35’,M)=E=0;
CONS37(M)… SUM(T$Time36(T),X(‘36’,M,T))-P(‘36’,M)*Y(‘36’,M)=E=0;
CONS38(M)… SUM(T$Time37(T),X(‘37’,M,T))-P(‘37’,M)*Y(‘37’,M)=E=0;
CONS39(M)… SUM(T$Time38(T),X(‘38’,M,T))-P(‘38’,M)*Y(‘38’,M)=E=0;
CONS40(M)… SUM(T$Time39(T),X(‘39’,M,T))-P(‘39’,M)*Y(‘39’,M)=E=0;
CONS41(M)… SUM(T$Time40(T),X(‘40’,M,T))-P(‘40’,M)*Y(‘40’,M)=E=0;
CONS42(M)… SUM(T$Time41(T),X(‘41’,M,T))-P(‘41’,M)*Y(‘41’,M)=E=0;
CONS43(M)… SUM(T$Time42(T),X(‘42’,M,T))-P(‘42’,M)*Y(‘42’,M)=E=0;
CONS44(M)… SUM(T$Time43(T),X(‘43’,M,T))-P(‘43’,M)*Y(‘43’,M)=E=0;
CONS45(M)… SUM(T$Time44(T),X(‘44’,M,T))-P(‘44’,M)*Y(‘44’,M)=E=0;
CONS46(M)… SUM(T$Time45(T),X(‘45’,M,T))-P(‘45’,M)*Y(‘45’,M)=E=0;
CONS47(M)… SUM(T$Time46(T),X(‘46’,M,T))-P(‘46’,M)*Y(‘46’,M)=E=0;
CONS48(M)… SUM(T$Time47(T),X(‘47’,M,T))-P(‘47’,M)*Y(‘47’,M)=E=0;
CONS49(M)… SUM(T$Time48(T),X(‘48’,M,T))-P(‘48’,M)*Y(‘48’,M)=E=0;
CONS50(M)… SUM(T$Time49(T),X(‘49’,M,T))-P(‘49’,M)*Y(‘49’,M)=E=0;
CONS51(M)… SUM(T$Time50(T),X(‘50’,M,T))-P(‘50’,M)*Y(‘50’,M)=E=0;
CONS52(M)… SUM(T$Time51(T),X(‘51’,M,T))-P(‘51’,M)*Y(‘51’,M)=E=0;
CONS53(M)… SUM(T$Time52(T),X(‘52’,M,T))-P(‘52’,M)*Y(‘52’,M)=E=0;
CONS54(M,T)$Time1(T)… Time(T)*X(‘1’,M,T)=L=F(‘1’);
CONS55(M,T)$Time2(T)… Time(T)*X(‘2’,M,T)=L=F(‘2’);
CONS56(M,T)$Time3(T)… Time(T)*X(‘3’,M,T)=L=F(‘3’);
CONS57(M,T)$Time4(T)… Time(T)*X(‘4’,M,T)=L=F(‘4’);
CONS58(M,T)$Time5(T)… Time(T)*X(‘5’,M,T)=L=F(‘5’);
CONS59(M,T)$Time6(T)… Time(T)*X(‘6’,M,T)=L=F(‘6’);
CONS60(M,T)$Time7(T)… Time(T)*X(‘7’,M,T)=L=F(‘7’);
CONS61(M,T)$Time8(T)… Time(T)*X(‘8’,M,T)=L=F(‘8’);
CONS62(M,T)$Time9(T)… Time(T)*X(‘9’,M,T)=L=F(‘9’);
CONS63(M,T)$Time10(T)… Time(T)*X(‘10’,M,T)=L=F(‘10’);
CONS64(M,T)$Time11(T)… Time(T)*X(‘11’,M,T)=L=F(‘11’);
CONS65(M,T)$Time12(T)… Time(T)*X(‘12’,M,T)=L=F(‘12’);
CONS66(M,T)$Time13(T)… Time(T)*X(‘13’,M,T)=L=F(‘13’);
CONS67(M,T)$Time14(T)… Time(T)*X(‘14’,M,T)=L=F(‘14’);
CONS68(M,T)$Time15(T)… Time(T)*X(‘15’,M,T)=L=F(‘15’);
CONS69(M,T)$Time16(T)… Time(T)*X(‘16’,M,T)=L=F(‘16’);
CONS70(M,T)$Time17(T)… Time(T)*X(‘17’,M,T)=L=F(‘17’);
CONS71(M,T)$Time18(T)… Time(T)*X(‘18’,M,T)=L=F(‘18’);
CONS72(M,T)$Time19(T)… Time(T)*X(‘19’,M,T)=L=F(‘19’);
CONS73(M,T)$Time20(T)… Time(T)*X(‘20’,M,T)=L=F(‘20’);
CONS74(M,T)$Time21(T)… Time(T)*X(‘21’,M,T)=L=F(‘21’);
CONS75(M,T)$Time22(T)… Time(T)*X(‘22’,M,T)=L=F(‘22’);
CONS76(M,T)$Time23(T)… Time(T)*X(‘23’,M,T)=L=F(‘23’);
CONS77(M,T)$Time24(T)… Time(T)*X(‘24’,M,T)=L=F(‘24’);
CONS78(M,T)$Time25(T)… Time(T)*X(‘25’,M,T)=L=F(‘25’);
CONS79(M,T)$Time26(T)… Time(T)*X(‘26’,M,T)=L=F(‘26’);
CONS80(M,T)$Time27(T)… Time(T)*X(‘27’,M,T)=L=F(‘27’);
CONS81(M,T)$Time28(T)… Time(T)*X(‘28’,M,T)=L=F(‘28’);
CONS82(M,T)$Time29(T)… Time(T)*X(‘29’,M,T)=L=F(‘29’);
CONS83(M,T)$Time30(T)… Time(T)*X(‘30’,M,T)=L=F(‘30’);
CONS84(M,T)$Time31(T)… Time(T)*X(‘31’,M,T)=L=F(‘31’);
CONS85(M,T)$Time32(T)… Time(T)*X(‘32’,M,T)=L=F(‘32’);
CONS86(M,T)$Time33(T)… Time(T)*X(‘33’,M,T)=L=F(‘33’);
CONS87(M,T)$Time34(T)… Time(T)*X(‘34’,M,T)=L=F(‘34’);
CONS88(M,T)$Time35(T)… Time(T)*X(‘35’,M,T)=L=F(‘35’);
CONS89(M,T)$Time36(T)… Time(T)*X(‘36’,M,T)=L=F(‘36’);
CONS90(M,T)$Time37(T)… Time(T)*X(‘37’,M,T)=L=F(‘37’);
CONS91(M,T)$Time38(T)… Time(T)*X(‘38’,M,T)=L=F(‘38’);
CONS92(M,T)$Time39(T)… Time(T)*X(‘39’,M,T)=L=F(‘39’);
CONS93(M,T)$Time40(T)… Time(T)*X(‘40’,M,T)=L=F(‘40’);
CONS94(M,T)$Time41(T)… Time(T)*X(‘41’,M,T)=L=F(‘41’);
CONS95(M,T)$Time42(T)… Time(T)*X(‘42’,M,T)=L=F(‘42’);
CONS96(M,T)$Time43(T)… Time(T)*X(‘43’,M,T)=L=F(‘43’);
CONS97(M,T)$Time44(T)… Time(T)*X(‘44’,M,T)=L=F(‘44’);
CONS98(M,T)$Time45(T)… Time(T)*X(‘45’,M,T)=L=F(‘45’);
CONS99(M,T)$Time46(T)… Time(T)*X(‘46’,M,T)=L=F(‘46’);
CONS100(M,T)$Time47(T)… Time(T)*X(‘47’,M,T)=L=F(‘47’);
CONS101(M,T)$Time48(T)… Time(T)*X(‘48’,M,T)=L=F(‘48’);
CONS102(M,T)$Time49(T)… Time(T)*X(‘49’,M,T)=L=F(‘49’);
CONS103(M,T)$Time50(T)… Time(T)*X(‘50’,M,T)=L=F(‘50’);
CONS104(M,T)$Time51(T)… Time(T)*X(‘51’,M,T)=L=F(‘51’);
CONS105(M,T)$Time52(T)… Time(T)*X(‘52’,M,T)=L=F(‘52’);
CONS106(M,T)$Time1(T)… Time(T)X(‘1’,M,T)+1000000(1-X(‘1’,M,T))=G=S(‘1’);
CONS107(M,T)$Time2(T)… Time(T)X(‘2’,M,T)+1000000(1-X(‘2’,M,T))=G=S(‘1’);
CONS108(M,T)$Time3(T)… Time(T)X(‘3’,M,T)+1000000(1-X(‘3’,M,T))=G=S(‘1’);
CONS109(M,T)$Time4(T)… Time(T)X(‘4’,M,T)+1000000(1-X(‘4’,M,T))=G=S(‘1’);
CONS110(M,T)$Time5(T)… Time(T)X(‘5’,M,T)+1000000(1-X(‘5’,M,T))=G=S(‘1’);
CONS111(M,T)$Time6(T)… Time(T)X(‘6’,M,T)+1000000(1-X(‘6’,M,T))=G=S(‘1’);
CONS112(M,T)$Time7(T)… Time(T)X(‘7’,M,T)+1000000(1-X(‘7’,M,T))=G=S(‘1’);
CONS113(M,T)$Time8(T)… Time(T)X(‘8’,M,T)+1000000(1-X(‘8’,M,T))=G=S(‘1’);
CONS114(M,T)$Time9(T)… Time(T)X(‘9’,M,T)+1000000(1-X(‘9’,M,T))=G=S(‘1’);
CONS115(M,T)$Time10(T)…
Time(T)X(‘10’,M,T)+1000000(1-X(‘10’,M,T))=G=S(‘1’);
CONS116(M,T)$Time11(T)…
Time(T)X(‘11’,M,T)+1000000(1-X(‘11’,M,T))=G=S(‘1’);
CONS117(M,T)$Time12(T)…
Time(T)X(‘12’,M,T)+1000000(1-X(‘12’,M,T))=G=S(‘1’);
CONS118(M,T)$Time13(T)…
Time(T)X(‘13’,M,T)+1000000(1-X(‘13’,M,T))=G=S(‘1’);
CONS119(M,T)$Time14(T)…
Time(T)X(‘14’,M,T)+1000000(1-X(‘14’,M,T))=G=S(‘1’);
CONS120(M,T)$Time15(T)…
Time(T)X(‘15’,M,T)+1000000(1-X(‘15’,M,T))=G=S(‘1’);
CONS121(M,T)$Time16(T)…
Time(T)X(‘16’,M,T)+1000000(1-X(‘16’,M,T))=G=S(‘1’);
CONS122(M,T)$Time17(T)…
Time(T)X(‘17’,M,T)+1000000(1-X(‘17’,M,T))=G=S(‘1’);
CONS123(M,T)$Time18(T)…
Time(T)X(‘18’,M,T)+1000000(1-X(‘18’,M,T))=G=S(‘1’);
CONS124(M,T)$Time19(T)…
Time(T)X(‘19’,M,T)+1000000(1-X(‘19’,M,T))=G=S(‘1’);
CONS125(M,T)$Time20(T)…
Time(T)X(‘20’,M,T)+1000000(1-X(‘20’,M,T))=G=S(‘1’);
CONS126(M,T)$Time21(T)…
Time(T)X(‘21’,M,T)+1000000(1-X(‘21’,M,T))=G=S(‘1’);
CONS127(M,T)$Time22(T)…
Time(T)X(‘22’,M,T)+1000000(1-X(‘22’,M,T))=G=S(‘1’);
CONS128(M,T)$Time23(T)…
Time(T)X(‘23’,M,T)+1000000(1-X(‘23’,M,T))=G=S(‘1’);
CONS129(M,T)$Time24(T)…
Time(T)X(‘24’,M,T)+1000000(1-X(‘24’,M,T))=G=S(‘1’);
CONS130(M,T)$Time25(T)…
Time(T)X(‘25’,M,T)+1000000(1-X(‘25’,M,T))=G=S(‘1’);
CONS131(M,T)$Time26(T)…
Time(T)X(‘26’,M,T)+1000000(1-X(‘26’,M,T))=G=S(‘1’);
CONS132(M,T)$Time27(T)…
Time(T)X(‘27’,M,T)+1000000(1-X(‘27’,M,T))=G=S(‘1’);
CONS133(M,T)$Time28(T)…
Time(T)X(‘28’,M,T)+1000000(1-X(‘28’,M,T))=G=S(‘1’);
CONS134(M,T)$Time29(T)…
Time(T)X(‘29’,M,T)+1000000(1-X(‘29’,M,T))=G=S(‘1’);
CONS135(M,T)$Time30(T)…
Time(T)X(‘30’,M,T)+1000000(1-X(‘30’,M,T))=G=S(‘1’);
CONS136(M,T)$Time31(T)…
Time(T)X(‘31’,M,T)+1000000(1-X(‘31’,M,T))=G=S(‘1’);
CONS137(M,T)$Time32(T)…
Time(T)X(‘32’,M,T)+1000000(1-X(‘32’,M,T))=G=S(‘1’);
CONS138(M,T)$Time33(T)…
Time(T)X(‘33’,M,T)+1000000(1-X(‘33’,M,T))=G=S(‘1’);
CONS139(M,T)$Time34(T)…
Time(T)X(‘34’,M,T)+1000000(1-X(‘34’,M,T))=G=S(‘1’);
CONS140(M,T)$Time35(T)…
Time(T)X(‘35’,M,T)+1000000(1-X(‘35’,M,T))=G=S(‘1’);
CONS141(M,T)$Time36(T)…
Time(T)X(‘36’,M,T)+1000000(1-X(‘36’,M,T))=G=S(‘1’);
CONS142(M,T)$Time37(T)…
Time(T)X(‘37’,M,T)+1000000(1-X(‘37’,M,T))=G=S(‘1’);
CONS143(M,T)$Time38(T)…
Time(T)X(‘38’,M,T)+1000000(1-X(‘38’,M,T))=G=S(‘1’);
CONS144(M,T)$Time39(T)…
Time(T)X(‘39’,M,T)+1000000(1-X(‘39’,M,T))=G=S(‘1’);
CONS145(M,T)$Time40(T)…
Time(T)X(‘40’,M,T)+1000000(1-X(‘40’,M,T))=G=S(‘1’);
CONS146(M,T)$Time41(T)…
Time(T)X(‘41’,M,T)+1000000(1-X(‘41’,M,T))=G=S(‘1’);
CONS147(M,T)$Time42(T)…
Time(T)X(‘42’,M,T)+1000000(1-X(‘42’,M,T))=G=S(‘1’);
CONS148(M,T)$Time43(T)…
Time(T)X(‘43’,M,T)+1000000(1-X(‘43’,M,T))=G=S(‘1’);
CONS149(M,T)$Time44(T)…
Time(T)X(‘44’,M,T)+1000000(1-X(‘44’,M,T))=G=S(‘1’);
CONS150(M,T)$Time45(T)…
Time(T)X(‘45’,M,T)+1000000(1-X(‘45’,M,T))=G=S(‘1’);
CONS151(M,T)$Time46(T)…
Time(T)X(‘46’,M,T)+1000000(1-X(‘46’,M,T))=G=S(‘1’);
CONS152(M,T)$Time47(T)…
Time(T)X(‘47’,M,T)+1000000(1-X(‘47’,M,T))=G=S(‘1’);
CONS153(M,T)$Time48(T)…
Time(T)X(‘48’,M,T)+1000000(1-X(‘48’,M,T))=G=S(‘1’);
CONS154(M,T)$Time49(T)…
Time(T)X(‘49’,M,T)+1000000(1-X(‘49’,M,T))=G=S(‘1’);
CONS155(M,T)$Time50(T)…
Time(T)X(‘50’,M,T)+1000000(1-X(‘50’,M,T))=G=S(‘1’);
CONS156(M,T)$Time51(T)…
Time(T)X(‘51’,M,T)+1000000(1-X(‘51’,M,T))=G=S(‘1’);
CONS157(M,T)$Time52(T)…
Time(T)X(‘52’,M,T)+1000000(1-X(‘52’,M,T))=G=S(‘1’);
CONS158(S1(J))… F(‘1’)=L=S(S1)-1;
CONS159(S2(J))… F(‘2’)=L=S(S2)-1;
CONS160(S3(J))… F(‘3’)=L=S(S3)-1;
CONS161(S4(J))… F(‘4’)=L=S(S4)-1;
CONS162(S5(J))… F(‘5’)=L=S(S5)-1;
CONS163(S6(J))…F(‘6’)=L=S(S6)-1;
CONS164(S7(J))… F(‘7’)=L=S(S7)-1;
CONS165(S8(J))… F(‘8’)=L=S(S8)-1;
CONS166(S9(J))… F(‘9’)=L=S(S9)-1;
CONS167(S10(J))… F(‘10’)=L=S(S10)-1;
CONS168(S11(J))… F(‘11’)=L=S(S11)-1;
CONS169(S12(J))… F(‘12’)=L=S(S12)-1;
CONS170(S13(J))… F(‘13’)=L=S(S13)-1;
CONS171(S14(J))… F(‘14’)=L=S(S14)-1;
CONS172(S15(J))… F(‘15’)=L=S(S15)-1;
CONS173(S16(J))… F(‘16’)=L=S(S16)-1;
CONS174(S17(J))… F(‘17’)=L=S(S17)-1;
CONS175(S18(J))… F(‘18’)=L=S(S18)-1;
CONS176(S19(J))… F(‘19’)=L=S(S19)-1;
CONS177(S20(J))… F(‘20’)=L=S(S20)-1;
CONS178(S21(J))… F(‘21’)=L=S(S21)-1;
CONS179(S22(J))… F(‘22’)=L=S(S22)-1;
CONS180(S23(J))… F(‘23’)=L=S(S23)-1;
CONS181(S24(J))… F(‘24’)=L=S(S24)-1;
CONS182(S25(J))… F(‘25’)=L=S(S25)-1;
CONS183(S26(J))… F(‘26’)=L=S(S26)-1;
CONS184(S27(J))… F(‘27’)=L=S(S27)-1;
CONS185(S28(J))… F(‘28’)=L=S(S28)-1;
CONS186(S29(J))… F(‘29’)=L=S(S29)-1;
CONS187(S30(J))… F(‘30’)=L=S(S30)-1;
CONS188(S31(J))… F(‘31’)=L=S(S31)-1;
CONS189(S32(J))… F(‘32’)=L=S(S32)-1;
CONS190(S33(J))… F(‘33’)=L=S(S33)-1;
CONS191(S34(J))… F(‘34’)=L=S(S34)-1;
CONS192(S35(J))… F(‘35’)=L=S(S35)-1;
CONS193(S36(J))… F(‘36’)=L=S(S36)-1;
CONS194(S37(J))… F(‘37’)=L=S(S37)-1;
CONS195(S38(J))… F(‘38’)=L=S(S38)-1;
CONS196(S39(J))… F(‘39’)=L=S(S39)-1;
CONS197(S40(J))… F(‘40’)=L=S(S40)-1;
CONS198(S41(J))… F(‘41’)=L=S(S41)-1;
CONS199(S42(J))… F(‘42’)=L=S(S42)-1;
CONS200(S43(J))… F(‘43’)=L=S(S43)-1;
CONS201(S44(J))… F(‘44’)=L=S(S44)-1;
CONS202(S45(J))… F(‘45’)=L=S(S45)-1;
CONS203(S46(J))… F(‘46’)=L=S(S46)-1;
CONS204(S47(J))… F(‘47’)=L=S(S47)-1;
CONS205(S48(J))… F(‘48’)=L=S(S48)-1;
CONS206(S49(J))… F(‘49’)=L=S(S49)-1;
CONS207(S50(J))… F(‘50’)=L=S(S50)-1;
CONS208(S51(J))… F(‘51’)=L=S(S51)-1;
CONS209(RP,T)… SUM(J,SUM(M,RPC(J,M,RP)*X(J,M,T)))=L=RPA(RP,T);
CONS210(RV)… SUM(J,SUM(M,SUM(T,RVC(J,M,RV)*X(J,M,T))))=L=RVA(RV);
MODEL MRCPSP /ALL/;
SOLVE MRCPSP USING MIP MINIMIZING Z;
DISPLAY S.L,S.M;

On 8/13/11, Fatemeh Faghih Mohammadi
wrote:

Hi, I also have a MRCPSP model that doesn’t work, because of being
integer – infeasible. could you please have a look at it? thank you.
Do you think it has anything to do with the fact that I chose Cplex as
my solver?

Solving MRCPSP Problem - set used: J501_1
SETS
J/1
52/
M/13/
T/1
500/
RP/12/
RV/1
2/
Time1(T)/11/
Time2(T)/1
7/
Time3(T)/15/
Time4(T)/1
7/
Time5(T)/17/
Time6(T)/1
10/
Time7(T)/110/
Time8(T)/1
5/
Time9(T)/110/
Time10(T)/1
9/
Time11(T)/711/
Time12(T)/4
11/
Time13(T)/111/
Time14(T)/1
11/
Time15(T)/112/
Time16(T)/7
11/
Time17(T)/113/
Time18(T)/1
11/
Time19(T)/111/
Time20(T)/1
12/
Time21(T)/412/
Time22(T)/1
11/
Time23(T)/212/
Time24(T)/10
13/
Time25(T)/1112/
Time26(T)/12
13/
Time27(T)/713/
Time28(T)/6
13/
Time29(T)/314/
Time30(T)/11
13/
Time31(T)/813/
Time32(T)/10
16/
Time33(T)/713/
Time34(T)/6
13/
Time35(T)/416/
Time36(T)/2
13/
Time37(T)/1318/
Time38(T)/14
18/
Time39(T)/1218/
Time40(T)/12
18/
Time41(T)/1118/
Time42(T)/11
18/
Time43(T)/918/
Time44(T)/10
18/
Time45(T)/1118/
Time46(T)/9
18/
Time47(T)/1218/
Time48(T)/7
18/
Time49(T)/718/
Time50(T)/10
18/
Time51(T)/1118/
Time52(T)/18
18/
S1(J)/2 3 4 5 6 7 8 9 10 13 14 15 17 18 19 20 22/
S2(J)/50 49 48 36 33 31 27 23 16 11/
S3(J)/51 49 48 46 41 36 35 34 33 31 30 26 12/
S4(J)/50 49 48 46 44 43 35 32 28 27 24 11/
S5(J)/49 48 33 31 27 16 11/
S6(J)/51 50 49 48 47 45 44 41 34 32 30 28 26 24/
S7(J)/50 48 46 45 43 41 34 32 30 24 21/
S8(J)/49 48 46 43 41 35 26 12/
S9(J)/48 46 44 43 42 41 31 30 28 25 24/
S10(J)/45 44 41 40 39 29 27 26/
S11(J)/51 45 42 41 39 30 25/
S12(J)/50 45 44 42 32 24/
S13(J)/48 44 42 32 26 24/
S14(J)/47 46 45 43 39 31 30/
S15(J)/47 41 39 33 31 26/
S16(J)/44 42 30 26 24/
S17(J)/51 50 46 43 42 41 39 38/
S18(J)/46 43 41 40 39 38 30/
S19(J)/42 41 39 30 27 26/
S20(J)/47 43 31 26/
S21(J)/49 31 26/
S22(J)/51 39 38 34/
S23(J)/43 32 26/
S24(J)/40 39 38 37/
S25(J)/47 26/
S26(J)/38 37/
S27(J)/38 37/
S28(J)/40 39/
S29(J)/46 42/
S30(J)/37/
S31(J)/40/
S32(J)/38/
S33(J)/37/
S34(J)/37/
S35(J)/38/
S36(J)/43/
S37(J)/52/
S38(J)/52/
S39(J)/52/
S40(J)/52/
S41(J)/52/
S42(J)/52/
S43(J)/52/
S44(J)/52/
S45(J)/52/
S46(J)/52/
S47(J)/52/
S48(J)/52/
S49(J)/52/
S50(J)/52/
S51(J)/52/;
PARAMETERS
time(T);
time(T)=Ord(T);
TABLE
P(J,M)
1 2 3
1 0 0 0
2 1 8 8
3 1 3 7
4 1 2 6
5 6 6 7
6 5 9 10
7 3 4 6
8 3 6 7
9 5 6 9
10 2 5 8
11 4 7 10
12 6 8 9
13 1 4 10
14 3 7 8
15 3 4 9
16 2 4 7
17 1 5 5
18 8 9 10
19 3 3 4
20 7 8 10
21 2 3 4
22 5 7 10
23 1 4 8
24 2 7 8
25 1 2 7
26 1 2 9
27 2 5 10
28 3 5 10
29 5 5 7
30 2 5 6
31 1 3 4
32 4 6 7
33 1 4 9
34 2 7 10
35 2 4 4
36 1 2 7
37 5 6 7
38 2 3 10
39 4 4 9
40 5 5 6
41 4 5 8
42 2 4 4
43 5 7 9
44 5 9 10
45 4 7 10
46 4 9 10
47 5 6 8
48 4 6 8
49 2 7 10
50 3 5 10
51 5 5 8
52 0 0 0;
Parameter
RVA(RV)
/1 71
2 71/;
table
RPA(RP,T)
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31 32 33 34
35 36 37 38 39 40 41
42 43 44 45 46 47 48
49 50 51 52 53 54 55
56 57 58 59 60 61 62
63 64 65 66 67 68 69
70 71 72 73 74 75 76
77 78 79 80 81 82 83
84 85 86 87 88 89 90
91 92 93 94 95 96 97
98 99 100 101 102 103 104
105 106 107 108 109 110 111
112 113 114 115 116 117 118
119 120 121 122 123 124 125
126 127 128 129 130 131 132
133 134 135 136 137 138 139
140 141 142 143 144 145 146
147 148 149 150 151 152 153
154 155 156 157 158 159 160
161 162 163 164 165 166 167
168 169 170 171 172 173 174
175 176 177 178 179 180 181
182 183 184 185 186 187 188
189 190 191 192 193 194 195
196 197 198 199 200 201 202
203 204 205 206 207 208 209
210 211 212 213 214 215 216
217 218 219 220 221 222 223
224 225 226 227 228 229 230
231 232 233 234 235 236 237
238 239 240 241 242 243 244
245 246 247 248 249 250 251
252 253 254 255 256 257 258
259 260 261 262 263 264 265
266 267 268 269 270 271 272
273 274 275 276 277 278 279
280 281 282 283 284 285 286
287 288 289 290 291 292 293
294 295 296 297 298 299 300
301 302 303 304 305 306 307
308 309 310 311 312 313 314
315 316 317 318 319 320 321
322 323 324 325 326 327 328
329 330 331 332 333 334 335
336 337 338 339 340 341 342
343 344 345 346 347 348 349
350 351 352 353 354 355 356
357 358 359 360 361 362 363
364 365 366 367 368 369 370
371 372 373 374 375 376 377
378 379 380 381 382 383 384
385 386 387 388 389 390 391
392 393 394 395 396 397 398
399 400 401 402 403 404 405
406 407 408 409 410 411 412
413 414 415 416 417 418 419
420 421 422 423 424 425 426
427 428 429 430 431 432 433
434 435 436 437 438 439 440
441 442 443 444 445 446 447
448 449 450 451 452 453 454
455 456 457 458 459 460 461
462 463 464 465 466 467 468
469 470 471 472 473 474 475
476 477 478 479 480 481 482
483 484 485 486 487 488 489
490 491 492 493 494 495 496
497 498 499 500
1 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30 30 30 30
30 30 30 30
2 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27 27 27 27
27 27 27 27;
table
RPC(J,M,RP)
1 2
1.1 0 0
1.2 0 0
1.3 0 0
2.1 0 8
2.2 6 0
2.3 5 0
3.1 3 0
3.2 0 5
3.3 0 2
4.1 0 6
4.2 5 0
4.3 0 3
5.1 6 0
5.2 6 0
5.3 6 0
6.1 0 8
6.2 4 0
6.3 0 7
7.1 0 4
7.2 6 0
7.3 0 2
8.1 6 0
8.2 6 0
8.3 0 9
9.1 0 8
9.2 7 0
9.3 7 0
10.1 7 0
10.2 0 7
10.3 0 6
11.1 0 4
11.2 5 0
11.3 0 1
12.1 0 8
12.2 0 6
12.3 0 5
13.1 8 0
13.2 7 0
13.3 0 6
14.1 3 0
14.2 3 0
14.3 0 4
15.1 0 1
15.2 0 1
15.3 2 0
16.1 0 6
16.2 5 0
16.3 0 5
17.1 5 0
17.2 4 0
17.3 0 3
18.1 5 0
18.2 4 0
18.3 4 0
19.1 4 0
19.2 0 3
19.3 0 1
20.1 10 0
20.2 0 5
20.3 7 0
21.1 7 0
21.2 0 7
21.3 0 6
22.1 0 5
22.2 5 0
22.3 0 3
23.1 0 8
23.2 6 0
23.3 0 8
24.1 0 4
24.2 5 0
24.3 4 0
25.1 0 9
25.2 0 4
25.3 0 1
26.1 0 6
26.2 0 4
26.3 0 4
27.1 0 9
27.2 0 5
27.3 0 3
28.1 0 5
28.2 2 0
28.3 2 0
29.1 0 8
29.2 0 8
29.3 0 8
30.1 7 0
30.2 0 2
30.3 0 2
31.1 0 3
31.2 7 0
31.3 0 1
32.1 0 6
32.2 0 4
32.3 1 0
33.1 0 7
33.2 2 0
33.3 2 0
34.1 6 0
34.2 0 8
34.3 6 0
35.1 3 0
35.2 0 3
35.3 3 0
36.1 0 8
36.2 0 7
36.3 7 0
37.1 0 7
37.2 0 7
37.3 0 5
38.1 0 6
38.2 2 0
38.3 0 4
39.1 0 3
39.2 0 2
39.3 0 2
40.1 6 0
40.2 0 9
40.3 6 0
41.1 3 0
41.2 2 0
41.3 0 4
42.1 0 7
42.2 9 0
42.3 0 2
43.1 0 7
43.2 0 5
43.3 2 0
44.1 10 0
44.2 10 0
44.3 0 1
45.1 0 6
45.2 0 4
45.3 3 0
46.1 5 0
46.2 3 0
46.3 0 8
47.1 0 4
47.2 7 0
47.3 0 3
48.1 8 0
48.2 7 0
48.3 2 0
49.1 5 0
49.2 4 0
49.3 0 6
50.1 0 9
50.2 7 0
50.3 7 0
51.1 5 0
51.2 0 9
51.3 0 9
52.1 0 0
52.2 0 0
52.3 0 0;
table
RVC(J,M,RV)
1 2
1.1 0 0
1.2 0 0
1.3 0 0
2.1 0 3
2.2 0 2
2.3 5 0
3.1 0 8
3.2 0 7
3.3 0 3
4.1 4 0
4.2 3 0
4.3 3 0
5.1 8 0
5.2 0 8
5.3 5 0
6.1 0 7
6.2 0 4
6.3 2 0
7.1 0 6
7.2 7 0
7.3 0 5
8.1 0 2
8.2 0 1
8.3 1 0
9.1 0 2
9.2 3 0
9.3 1 0
10.1 0 1
10.2 0 1
10.3 5 0
11.1 7 0
11.2 4 0
11.3 1 0
12.1 0 4
12.2 4 0
12.3 0 1
13.1 8 0
13.2 0 7
13.3 5 0
14.1 0 9
14.2 0 5
14.3 0 5
15.1 0 8
15.2 3 0
15.3 0 7
16.1 7 0
16.2 0 3
16.3 0 2
17.1 6 0
17.2 5 0
17.3 0 2
18.1 6 0
18.2 6 0
18.3 0 3
19.1 8 0
19.2 0 7
19.3 2 0
20.1 6 0
20.2 0 8
20.3 2 0
21.1 0 6
21.2 8 0
21.3 0 5
22.1 0 5
22.2 0 5
22.3 0 3
23.1 10 0
23.2 6 0
23.3 0 3
24.1 0 7
24.2 0 5
24.3 0 3
25.1 0 7
25.2 0 5
25.3 0 2
26.1 0 8
26.2 4 0
26.3 2 0
27.1 0 5
27.2 0 5
27.3 2 0
28.1 0 6
28.2 0 4
28.3 3 0
29.1 0 8
29.2 5 0
29.3 0 4
30.1 3 0
30.2 0 4
30.3 0 1
31.1 7 0
31.2 0 4
31.3 5 0
32.1 0 7
32.2 0 7
32.3 5 0
33.1 8 0
33.2 0 4
33.3 8 0
34.1 0 6
34.2 7 0
34.3 0 1
35.1 0 6
35.2 0 2
35.3 0 2
36.1 7 0
36.2 0 6
36.3 2 0
37.1 7 0
37.2 5 0
37.3 4 0
38.1 5 0
38.2 4 0
38.3 3 0
39.1 5 0
39.2 0 3
39.3 0 2
40.1 0 3
40.2 4 0
40.3 0 2
41.1 8 0
41.2 7 0
41.3 5 0
42.1 0 6
42.2 7 0
42.3 0 1
43.1 0 8
43.2 3 0
43.3 2 0
44.1 0 2
44.2 0 1
44.3 0 1
45.1 6 0
45.2 6 0
45.3 0 6
46.1 4 0
46.2 3 0
46.3 0 7
47.1 0 6
47.2 0 6
47.3 2 0
48.1 7 0
48.2 4 0
48.3 4 0
49.1 2 0
49.2 2 0
49.3 0 1
50.1 5 0
50.2 0 7
50.3 1 0
51.1 5 0
51.2 0 6
51.3 1 0
52.1 0 0
52.2 0 0
52.3 0 0;
VARIABLES
Z
BINARY VARIABLES
X(J,M,T)
Y(J,M);
INTEGER VARIABLES
S(J)
F(J);
EQUATIONS
OBJECTIVE
CONS1(J)
CONS2(M)
CONS3(M)
CONS4(M)
CONS5(M)
CONS6(M)
CONS7(M)
CONS8(M)
CONS9(M)
CONS10(M)
CONS11(M)
CONS12(M)
CONS13(M)
CONS14(M)
CONS15(M)
CONS16(M)
CONS17(M)
CONS18(M)
CONS19(M)
CONS20(M)
CONS21(M)
CONS22(M)
CONS23(M)
CONS24(M)
CONS25(M)
CONS26(M)
CONS27(M)
CONS28(M)
CONS29(M)
CONS30(M)
CONS31(M)
CONS32(M)
CONS33(M)
CONS34(M)
CONS35(M)
CONS36(M)
CONS37(M)
CONS38(M)
CONS39(M)
CONS40(M)
CONS41(M)
CONS42(M)
CONS43(M)
CONS44(M)
CONS45(M)
CONS46(M)
CONS47(M)
CONS48(M)
CONS49(M)
CONS50(M)
CONS51(M)
CONS52(M)
CONS53(M)
CONS54(M,T)
CONS55(M,T)
CONS56(M,T)
CONS57(M,T)
CONS58(M,T)
CONS59(M,T)
CONS60(M,T)
CONS61(M,T)
CONS62(M,T)
CONS63(M,T)
CONS64(M,T)
CONS65(M,T)
CONS66(M,T)
CONS67(M,T)
CONS68(M,T)
CONS69(M,T)
CONS70(M,T)
CONS71(M,T)
CONS72(M,T)
CONS73(M,T)
CONS74(M,T)
CONS75(M,T)
CONS76(M,T)
CONS77(M,T)
CONS78(M,T)
CONS79(M,T)
CONS80(M,T)
CONS81(M,T)
CONS82(M,T)
CONS83(M,T)
CONS84(M,T)
CONS85(M,T)
CONS86(M,T)
CONS87(M,T)
CONS88(M,T)
CONS89(M,T)
CONS90(M,T)
CONS91(M,T)
CONS92(M,T)
CONS93(M,T)
CONS94(M,T)
CONS95(M,T)
CONS96(M,T)
CONS97(M,T)
CONS98(M,T)
CONS99(M,T)
CONS100(M,T)
CONS101(M,T)
CONS102(M,T)
CONS103(M,T)
CONS104(M,T)
CONS105(M,T)
CONS106(M,T)
CONS107(M,T)
CONS108(M,T)
CONS109(M,T)
CONS110(M,T)
CONS111(M,T)
CONS112(M,T)
CONS113(M,T)
CONS114(M,T)
CONS115(M,T)
CONS116(M,T)
CONS117(M,T)
CONS118(M,T)
CONS119(M,T)
CONS120(M,T)
CONS121(M,T)
CONS122(M,T)
CONS123(M,T)
CONS124(M,T)
CONS125(M,T)
CONS126(M,T)
CONS127(M,T)
CONS128(M,T)
CONS129(M,T)
CONS130(M,T)
CONS131(M,T)
CONS132(M,T)
CONS133(M,T)
CONS134(M,T)
CONS135(M,T)
CONS136(M,T)
CONS137(M,T)
CONS138(M,T)
CONS139(M,T)
CONS140(M,T)
CONS141(M,T)
CONS142(M,T)
CONS143(M,T)
CONS144(M,T)
CONS145(M,T)
CONS146(M,T)
CONS147(M,T)
CONS148(M,T)
CONS149(M,T)
CONS150(M,T)
CONS151(M,T)
CONS152(M,T)
CONS153(M,T)
CONS154(M,T)
CONS155(M,T)
CONS156(M,T)
CONS157(M,T)
CONS158(S1)
CONS159(S2)
CONS160(S3)
CONS161(S4)
CONS162(S5)
CONS163(S6)
CONS164(S7)
CONS165(S8)
CONS166(S9)
CONS167(S10)
CONS168(S11)
CONS169(S12)
CONS170(S13)
CONS171(S14)
CONS172(S15)
CONS173(S16)
CONS174(S17)
CONS175(S18)
CONS176(S19)
CONS177(S20)
CONS178(S21)
CONS179(S22)
CONS180(S23)
CONS181(S24)
CONS182(S25)
CONS183(S26)
CONS184(S27)
CONS185(S28)
CONS186(S29)
CONS187(S30)
CONS188(S31)
CONS189(S32)
CONS190(S33)
CONS191(S34)
CONS192(S35)
CONS193(S36)
CONS194(S37)
CONS195(S38)
CONS196(S39)
CONS197(S40)
CONS198(S41)
CONS199(S42)
CONS200(S43)
CONS201(S44)
CONS202(S45)
CONS203(S46)
CONS204(S47)
CONS205(S48)
CONS206(S49)
CONS207(S50)
CONS208(S51)
CONS209(RP,T)
CONS210(RV);
OBJECTIVE… Z=E=F(‘52’);
CONS1(J)… SUM(M,Y(J,M))=E=1;
CONS2(M)… SUM(T$Time1(T),X(‘1’,M,T))-P(‘1’,M)*Y(‘1’,M)=E=0;
CONS3(M)… SUM(T$Time2(T),X(‘2’,M,T))-P(‘2’,M)*Y(‘2’,M)=E=0;
CONS4(M)… SUM(T$Time3(T),X(‘3’,M,T))-P(‘3’,M)*Y(‘3’,M)=E=0;
CONS5(M)… SUM(T$Time4(T),X(‘4’,M,T))-P(‘4’,M)*Y(‘4’,M)=E=0;
CONS6(M)… SUM(T$Time5(T),X(‘5’,M,T))-P(‘5’,M)*Y(‘5’,M)=E=0;
CONS7(M)… SUM(T$Time6(T),X(‘6’,M,T))-P(‘6’,M)*Y(‘6’,M)=E=0;
CONS8(M)… SUM(T$Time7(T),X(‘7’,M,T))-P(‘7’,M)*Y(‘7’,M)=E=0;
CONS9(M)… SUM(T$Time8(T),X(‘8’,M,T))-P(‘8’,M)*Y(‘8’,M)=E=0;
CONS10(M)… SUM(T$Time9(T),X(‘9’,M,T))-P(‘9’,M)*Y(‘9’,M)=E=0;
CONS11(M)… SUM(T$Time10(T),X(‘10’,M,T))-P(‘10’,M)*Y(‘10’,M)=E=0;
CONS12(M)… SUM(T$Time11(T),X(‘11’,M,T))-P(‘11’,M)*Y(‘11’,M)=E=0;
CONS13(M)… SUM(T$Time12(T),X(‘12’,M,T))-P(‘12’,M)*Y(‘12’,M)=E=0;
CONS14(M)… SUM(T$Time13(T),X(‘13’,M,T))-P(‘13’,M)*Y(‘13’,M)=E=0;
CONS15(M)… SUM(T$Time14(T),X(‘14’,M,T))-P(‘14’,M)*Y(‘14’,M)=E=0;
CONS16(M)… SUM(T$Time15(T),X(‘15’,M,T))-P(‘15’,M)*Y(‘15’,M)=E=0;
CONS17(M)… SUM(T$Time16(T),X(‘16’,M,T))-P(‘16’,M)*Y(‘16’,M)=E=0;
CONS18(M)… SUM(T$Time17(T),X(‘17’,M,T))-P(‘17’,M)*Y(‘17’,M)=E=0;
CONS19(M)… SUM(T$Time18(T),X(‘18’,M,T))-P(‘18’,M)*Y(‘18’,M)=E=0;
CONS20(M)… SUM(T$Time19(T),X(‘19’,M,T))-P(‘19’,M)*Y(‘19’,M)=E=0;
CONS21(M)… SUM(T$Time20(T),X(‘20’,M,T))-P(‘20’,M)*Y(‘20’,M)=E=0;
CONS22(M)… SUM(T$Time21(T),X(‘21’,M,T))-P(‘21’,M)*Y(‘21’,M)=E=0;
CONS23(M)… SUM(T$Time22(T),X(‘22’,M,T))-P(‘22’,M)*Y(‘22’,M)=E=0;
CONS24(M)… SUM(T$Time23(T),X(‘23’,M,T))-P(‘23’,M)*Y(‘23’,M)=E=0;
CONS25(M)… SUM(T$Time24(T),X(‘24’,M,T))-P(‘24’,M)*Y(‘24’,M)=E=0;
CONS26(M)… SUM(T$Time25(T),X(‘25’,M,T))-P(‘25’,M)*Y(‘25’,M)=E=0;
CONS27(M)… SUM(T$Time26(T),X(‘26’,M,T))-P(‘26’,M)*Y(‘26’,M)=E=0;
CONS28(M)… SUM(T$Time27(T),X(‘27’,M,T))-P(‘27’,M)*Y(‘27’,M)=E=0;
CONS29(M)… SUM(T$Time28(T),X(‘28’,M,T))-P(‘28’,M)*Y(‘28’,M)=E=0;
CONS30(M)… SUM(T$Time29(T),X(‘29’,M,T))-P(‘29’,M)*Y(‘29’,M)=E=0;
CONS31(M)… SUM(T$Time30(T),X(‘30’,M,T))-P(‘30’,M)*Y(‘30’,M)=E=0;
CONS32(M)… SUM(T$Time31(T),X(‘31’,M,T))-P(‘31’,M)*Y(‘31’,M)=E=0;
CONS33(M)… SUM(T$Time32(T),X(‘32’,M,T))-P(‘32’,M)*Y(‘32’,M)=E=0;
CONS34(M)… SUM(T$Time33(T),X(‘33’,M,T))-P(‘33’,M)*Y(‘33’,M)=E=0;
CONS35(M)… SUM(T$Time34(T),X(‘34’,M,T))-P(‘34’,M)*Y(‘34’,M)=E=0;
CONS36(M)… SUM(T$Time35(T),X(‘35’,M,T))-P(‘35’,M)*Y(‘35’,M)=E=0;
CONS37(M)… SUM(T$Time36(T),X(‘36’,M,T))-P(‘36’,M)*Y(‘36’,M)=E=0;
CONS38(M)… SUM(T$Time37(T),X(‘37’,M,T))-P(‘37’,M)*Y(‘37’,M)=E=0;
CONS39(M)… SUM(T$Time38(T),X(‘38’,M,T))-P(‘38’,M)*Y(‘38’,M)=E=0;
CONS40(M)… SUM(T$Time39(T),X(‘39’,M,T))-P(‘39’,M)*Y(‘39’,M)=E=0;
CONS41(M)… SUM(T$Time40(T),X(‘40’,M,T))-P(‘40’,M)*Y(‘40’,M)=E=0;
CONS42(M)… SUM(T$Time41(T),X(‘41’,M,T))-P(‘41’,M)*Y(‘41’,M)=E=0;
CONS43(M)… SUM(T$Time42(T),X(‘42’,M,T))-P(‘42’,M)*Y(‘42’,M)=E=0;
CONS44(M)… SUM(T$Time43(T),X(‘43’,M,T))-P(‘43’,M)*Y(‘43’,M)=E=0;
CONS45(M)… SUM(T$Time44(T),X(‘44’,M,T))-P(‘44’,M)*Y(‘44’,M)=E=0;
CONS46(M)… SUM(T$Time45(T),X(‘45’,M,T))-P(‘45’,M)*Y(‘45’,M)=E=0;
CONS47(M)… SUM(T$Time46(T),X(‘46’,M,T))-P(‘46’,M)*Y(‘46’,M)=E=0;
CONS48(M)… SUM(T$Time47(T),X(‘47’,M,T))-P(‘47’,M)*Y(‘47’,M)=E=0;
CONS49(M)… SUM(T$Time48(T),X(‘48’,M,T))-P(‘48’,M)*Y(‘48’,M)=E=0;
CONS50(M)… SUM(T$Time49(T),X(‘49’,M,T))-P(‘49’,M)*Y(‘49’,M)=E=0;
CONS51(M)… SUM(T$Time50(T),X(‘50’,M,T))-P(‘50’,M)*Y(‘50’,M)=E=0;
CONS52(M)… SUM(T$Time51(T),X(‘51’,M,T))-P(‘51’,M)*Y(‘51’,M)=E=0;
CONS53(M)… SUM(T$Time52(T),X(‘52’,M,T))-P(‘52’,M)*Y(‘52’,M)=E=0;
CONS54(M,T)$Time1(T)… Time(T)*X(‘1’,M,T)=L=F(‘1’);
CONS55(M,T)$Time2(T)… Time(T)*X(‘2’,M,T)=L=F(‘2’);
CONS56(M,T)$Time3(T)… Time(T)*X(‘3’,M,T)=L=F(‘3’);
CONS57(M,T)$Time4(T)… Time(T)*X(‘4’,M,T)=L=F(‘4’);
CONS58(M,T)$Time5(T)… Time(T)*X(‘5’,M,T)=L=F(‘5’);
CONS59(M,T)$Time6(T)… Time(T)*X(‘6’,M,T)=L=F(‘6’);
CONS60(M,T)$Time7(T)… Time(T)*X(‘7’,M,T)=L=F(‘7’);
CONS61(M,T)$Time8(T)… Time(T)*X(‘8’,M,T)=L=F(‘8’);
CONS62(M,T)$Time9(T)… Time(T)*X(‘9’,M,T)=L=F(‘9’);
CONS63(M,T)$Time10(T)… Time(T)*X(‘10’,M,T)=L=F(‘10’);
CONS64(M,T)$Time11(T)… Time(T)*X(‘11’,M,T)=L=F(‘11’);
CONS65(M,T)$Time12(T)… Time(T)*X(‘12’,M,T)=L=F(‘12’);
CONS66(M,T)$Time13(T)… Time(T)*X(‘13’,M,T)=L=F(‘13’);
CONS67(M,T)$Time14(T)… Time(T)*X(‘14’,M,T)=L=F(‘14’);
CONS68(M,T)$Time15(T)… Time(T)*X(‘15’,M,T)=L=F(‘15’);
CONS69(M,T)$Time16(T)… Time(T)*X(‘16’,M,T)=L=F(‘16’);
CONS70(M,T)$Time17(T)… Time(T)*X(‘17’,M,T)=L=F(‘17’);
CONS71(M,T)$Time18(T)… Time(T)*X(‘18’,M,T)=L=F(‘18’);
CONS72(M,T)$Time19(T)… Time(T)*X(‘19’,M,T)=L=F(‘19’);
CONS73(M,T)$Time20(T)… Time(T)*X(‘20’,M,T)=L=F(‘20’);
CONS74(M,T)$Time21(T)… Time(T)*X(‘21’,M,T)=L=F(‘21’);
CONS75(M,T)$Time22(T)… Time(T)*X(‘22’,M,T)=L=F(‘22’);
CONS76(M,T)$Time23(T)… Time(T)*X(‘23’,M,T)=L=F(‘23’);
CONS77(M,T)$Time24(T)… Time(T)*X(‘24’,M,T)=L=F(‘24’);
CONS78(M,T)$Time25(T)… Time(T)*X(‘25’,M,T)=L=F(‘25’);
CONS79(M,T)$Time26(T)… Time(T)*X(‘26’,M,T)=L=F(‘26’);
CONS80(M,T)$Time27(T)… Time(T)*X(‘27’,M,T)=L=F(‘27’);
CONS81(M,T)$Time28(T)… Time(T)*X(‘28’,M,T)=L=F(‘28’);
CONS82(M,T)$Time29(T)… Time(T)*X(‘29’,M,T)=L=F(‘29’);
CONS83(M,T)$Time30(T)… Time(T)*X(‘30’,M,T)=L=F(‘30’);
CONS84(M,T)$Time31(T)… Time(T)*X(‘31’,M,T)=L=F(‘31’);
CONS85(M,T)$Time32(T)… Time(T)*X(‘32’,M,T)=L=F(‘32’);
CONS86(M,T)$Time33(T)… Time(T)*X(‘33’,M,T)=L=F(‘33’);
CONS87(M,T)$Time34(T)… Time(T)*X(‘34’,M,T)=L=F(‘34’);
CONS88(M,T)$Time35(T)… Time(T)*X(‘35’,M,T)=L=F(‘35’);
CONS89(M,T)$Time36(T)… Time(T)*X(‘36’,M,T)=L=F(‘36’);
CONS90(M,T)$Time37(T)… Time(T)*X(‘37’,M,T)=L=F(‘37’);
CONS91(M,T)$Time38(T)… Time(T)*X(‘38’,M,T)=L=F(‘38’);
CONS92(M,T)$Time39(T)… Time(T)*X(‘39’,M,T)=L=F(‘39’);
CONS93(M,T)$Time40(T)… Time(T)*X(‘40’,M,T)=L=F(‘40’);
CONS94(M,T)$Time41(T)… Time(T)*X(‘41’,M,T)=L=F(‘41’);
CONS95(M,T)$Time42(T)… Time(T)*X(‘42’,M,T)=L=F(‘42’);
CONS96(M,T)$Time43(T)… Time(T)*X(‘43’,M,T)=L=F(‘43’);
CONS97(M,T)$Time44(T)… Time(T)*X(‘44’,M,T)=L=F(‘44’);
CONS98(M,T)$Time45(T)… Time(T)*X(‘45’,M,T)=L=F(‘45’);
CONS99(M,T)$Time46(T)… Time(T)*X(‘46’,M,T)=L=F(‘46’);
CONS100(M,T)$Time47(T)… Time(T)*X(‘47’,M,T)=L=F(‘47’);
CONS101(M,T)$Time48(T)… Time(T)*X(‘48’,M,T)=L=F(‘48’);
CONS102(M,T)$Time49(T)… Time(T)*X(‘49’,M,T)=L=F(‘49’);
CONS103(M,T)$Time50(T)… Time(T)*X(‘50’,M,T)=L=F(‘50’);
CONS104(M,T)$Time51(T)… Time(T)*X(‘51’,M,T)=L=F(‘51’);
CONS105(M,T)$Time52(T)… Time(T)*X(‘52’,M,T)=L=F(‘52’);
CONS106(M,T)$Time1(T)…
Time(T)X(‘1’,M,T)+1000000(1-X(‘1’,M,T))=G=S(‘1’);
CONS107(M,T)$Time2(T)…
Time(T)X(‘2’,M,T)+1000000(1-X(‘2’,M,T))=G=S(‘1’);
CONS108(M,T)$Time3(T)…
Time(T)X(‘3’,M,T)+1000000(1-X(‘3’,M,T))=G=S(‘1’);
CONS109(M,T)$Time4(T)…
Time(T)X(‘4’,M,T)+1000000(1-X(‘4’,M,T))=G=S(‘1’);
CONS110(M,T)$Time5(T)…
Time(T)X(‘5’,M,T)+1000000(1-X(‘5’,M,T))=G=S(‘1’);
CONS111(M,T)$Time6(T)…
Time(T)X(‘6’,M,T)+1000000(1-X(‘6’,M,T))=G=S(‘1’);
CONS112(M,T)$Time7(T)…
Time(T)X(‘7’,M,T)+1000000(1-X(‘7’,M,T))=G=S(‘1’);
CONS113(M,T)$Time8(T)…
Time(T)X(‘8’,M,T)+1000000(1-X(‘8’,M,T))=G=S(‘1’);
CONS114(M,T)$Time9(T)…
Time(T)X(‘9’,M,T)+1000000(1-X(‘9’,M,T))=G=S(‘1’);
CONS115(M,T)$Time10(T)…
Time(T)X(‘10’,M,T)+1000000(1-X(‘10’,M,T))=G=S(‘1’);
CONS116(M,T)$Time11(T)…
Time(T)X(‘11’,M,T)+1000000(1-X(‘11’,M,T))=G=S(‘1’);
CONS117(M,T)$Time12(T)…
Time(T)X(‘12’,M,T)+1000000(1-X(‘12’,M,T))=G=S(‘1’);
CONS118(M,T)$Time13(T)…
Time(T)X(‘13’,M,T)+1000000(1-X(‘13’,M,T))=G=S(‘1’);
CONS119(M,T)$Time14(T)…
Time(T)X(‘14’,M,T)+1000000(1-X(‘14’,M,T))=G=S(‘1’);
CONS120(M,T)$Time15(T)…
Time(T)X(‘15’,M,T)+1000000(1-X(‘15’,M,T))=G=S(‘1’);
CONS121(M,T)$Time16(T)…
Time(T)X(‘16’,M,T)+1000000(1-X(‘16’,M,T))=G=S(‘1’);
CONS122(M,T)$Time17(T)…
Time(T)X(‘17’,M,T)+1000000(1-X(‘17’,M,T))=G=S(‘1’);
CONS123(M,T)$Time18(T)…
Time(T)X(‘18’,M,T)+1000000(1-X(‘18’,M,T))=G=S(‘1’);
CONS124(M,T)$Time19(T)…
Time(T)X(‘19’,M,T)+1000000(1-X(‘19’,M,T))=G=S(‘1’);
CONS125(M,T)$Time20(T)…
Time(T)X(‘20’,M,T)+1000000(1-X(‘20’,M,T))=G=S(‘1’);
CONS126(M,T)$Time21(T)…
Time(T)X(‘21’,M,T)+1000000(1-X(‘21’,M,T))=G=S(‘1’);
CONS127(M,T)$Time22(T)…
Time(T)X(‘22’,M,T)+1000000(1-X(‘22’,M,T))=G=S(‘1’);
CONS128(M,T)$Time23(T)…
Time(T)X(‘23’,M,T)+1000000(1-X(‘23’,M,T))=G=S(‘1’);
CONS129(M,T)$Time24(T)…
Time(T)X(‘24’,M,T)+1000000(1-X(‘24’,M,T))=G=S(‘1’);
CONS130(M,T)$Time25(T)…
Time(T)X(‘25’,M,T)+1000000(1-X(‘25’,M,T))=G=S(‘1’);
CONS131(M,T)$Time26(T)…
Time(T)X(‘26’,M,T)+1000000(1-X(‘26’,M,T))=G=S(‘1’);
CONS132(M,T)$Time27(T)…
Time(T)X(‘27’,M,T)+1000000(1-X(‘27’,M,T))=G=S(‘1’);
CONS133(M,T)$Time28(T)…
Time(T)X(‘28’,M,T)+1000000(1-X(‘28’,M,T))=G=S(‘1’);
CONS134(M,T)$Time29(T)…
Time(T)X(‘29’,M,T)+1000000(1-X(‘29’,M,T))=G=S(‘1’);
CONS135(M,T)$Time30(T)…
Time(T)X(‘30’,M,T)+1000000(1-X(‘30’,M,T))=G=S(‘1’);
CONS136(M,T)$Time31(T)…
Time(T)X(‘31’,M,T)+1000000(1-X(‘31’,M,T))=G=S(‘1’);
CONS137(M,T)$Time32(T)…
Time(T)X(‘32’,M,T)+1000000(1-X(‘32’,M,T))=G=S(‘1’);
CONS138(M,T)$Time33(T)…
Time(T)X(‘33’,M,T)+1000000(1-X(‘33’,M,T))=G=S(‘1’);
CONS139(M,T)$Time34(T)…
Time(T)X(‘34’,M,T)+1000000(1-X(‘34’,M,T))=G=S(‘1’);
CONS140(M,T)$Time35(T)…
Time(T)X(‘35’,M,T)+1000000(1-X(‘35’,M,T))=G=S(‘1’);
CONS141(M,T)$Time36(T)…
Time(T)X(‘36’,M,T)+1000000(1-X(‘36’,M,T))=G=S(‘1’);
CONS142(M,T)$Time37(T)…
Time(T)X(‘37’,M,T)+1000000(1-X(‘37’,M,T))=G=S(‘1’);
CONS143(M,T)$Time38(T)…
Time(T)X(‘38’,M,T)+1000000(1-X(‘38’,M,T))=G=S(‘1’);
CONS144(M,T)$Time39(T)…
Time(T)X(‘39’,M,T)+1000000(1-X(‘39’,M,T))=G=S(‘1’);
CONS145(M,T)$Time40(T)…
Time(T)X(‘40’,M,T)+1000000(1-X(‘40’,M,T))=G=S(‘1’);
CONS146(M,T)$Time41(T)…
Time(T)X(‘41’,M,T)+1000000(1-X(‘41’,M,T))=G=S(‘1’);
CONS147(M,T)$Time42(T)…
Time(T)X(‘42’,M,T)+1000000(1-X(‘42’,M,T))=G=S(‘1’);
CONS148(M,T)$Time43(T)…
Time(T)X(‘43’,M,T)+1000000(1-X(‘43’,M,T))=G=S(‘1’);
CONS149(M,T)$Time44(T)…
Time(T)X(‘44’,M,T)+1000000(1-X(‘44’,M,T))=G=S(‘1’);
CONS150(M,T)$Time45(T)…
Time(T)X(‘45’,M,T)+1000000(1-X(‘45’,M,T))=G=S(‘1’);
CONS151(M,T)$Time46(T)…
Time(T)X(‘46’,M,T)+1000000(1-X(‘46’,M,T))=G=S(‘1’);
CONS152(M,T)$Time47(T)…
Time(T)X(‘47’,M,T)+1000000(1-X(‘47’,M,T))=G=S(‘1’);
CONS153(M,T)$Time48(T)…
Time(T)X(‘48’,M,T)+1000000(1-X(‘48’,M,T))=G=S(‘1’);
CONS154(M,T)$Time49(T)…
Time(T)X(‘49’,M,T)+1000000(1-X(‘49’,M,T))=G=S(‘1’);
CONS155(M,T)$Time50(T)…
Time(T)X(‘50’,M,T)+1000000(1-X(‘50’,M,T))=G=S(‘1’);
CONS156(M,T)$Time51(T)…
Time(T)X(‘51’,M,T)+1000000(1-X(‘51’,M,T))=G=S(‘1’);
CONS157(M,T)$Time52(T)…
Time(T)X(‘52’,M,T)+1000000(1-X(‘52’,M,T))=G=S(‘1’);
CONS158(S1(J))… F(‘1’)=L=S(S1)-1;
CONS159(S2(J))… F(‘2’)=L=S(S2)-1;
CONS160(S3(J))… F(‘3’)=L=S(S3)-1;
CONS161(S4(J))… F(‘4’)=L=S(S4)-1;
CONS162(S5(J))… F(‘5’)=L=S(S5)-1;
CONS163(S6(J))…F(‘6’)=L=S(S6)-1;
CONS164(S7(J))… F(‘7’)=L=S(S7)-1;
CONS165(S8(J))… F(‘8’)=L=S(S8)-1;
CONS166(S9(J))… F(‘9’)=L=S(S9)-1;
CONS167(S10(J))… F(‘10’)=L=S(S10)-1;
CONS168(S11(J))… F(‘11’)=L=S(S11)-1;
CONS169(S12(J))… F(‘12’)=L=S(S12)-1;
CONS170(S13(J))… F(‘13’)=L=S(S13)-1;
CONS171(S14(J))… F(‘14’)=L=S(S14)-1;
CONS172(S15(J))… F(‘15’)=L=S(S15)-1;
CONS173(S16(J))… F(‘16’)=L=S(S16)-1;
CONS174(S17(J))… F(‘17’)=L=S(S17)-1;
CONS175(S18(J))… F(‘18’)=L=S(S18)-1;
CONS176(S19(J))… F(‘19’)=L=S(S19)-1;
CONS177(S20(J))… F(‘20’)=L=S(S20)-1;
CONS178(S21(J))… F(‘21’)=L=S(S21)-1;
CONS179(S22(J))… F(‘22’)=L=S(S22)-1;
CONS180(S23(J))… F(‘23’)=L=S(S23)-1;
CONS181(S24(J))… F(‘24’)=L=S(S24)-1;
CONS182(S25(J))… F(‘25’)=L=S(S25)-1;
CONS183(S26(J))… F(‘26’)=L=S(S26)-1;
CONS184(S27(J))… F(‘27’)=L=S(S27)-1;
CONS185(S28(J))… F(‘28’)=L=S(S28)-1;
CONS186(S29(J))… F(‘29’)=L=S(S29)-1;
CONS187(S30(J))… F(‘30’)=L=S(S30)-1;
CONS188(S31(J))… F(‘31’)=L=S(S31)-1;
CONS189(S32(J))… F(‘32’)=L=S(S32)-1;
CONS190(S33(J))… F(‘33’)=L=S(S33)-1;
CONS191(S34(J))… F(‘34’)=L=S(S34)-1;
CONS192(S35(J))… F(‘35’)=L=S(S35)-1;
CONS193(S36(J))… F(‘36’)=L=S(S36)-1;
CONS194(S37(J))… F(‘37’)=L=S(S37)-1;
CONS195(S38(J))… F(‘38’)=L=S(S38)-1;
CONS196(S39(J))… F(‘39’)=L=S(S39)-1;
CONS197(S40(J))… F(‘40’)=L=S(S40)-1;
CONS198(S41(J))… F(‘41’)=L=S(S41)-1;
CONS199(S42(J))… F(‘42’)=L=S(S42)-1;
CONS200(S43(J))… F(‘43’)=L=S(S43)-1;
CONS201(S44(J))… F(‘44’)=L=S(S44)-1;
CONS202(S45(J))… F(‘45’)=L=S(S45)-1;
CONS203(S46(J))… F(‘46’)=L=S(S46)-1;
CONS204(S47(J))… F(‘47’)=L=S(S47)-1;
CONS205(S48(J))… F(‘48’)=L=S(S48)-1;
CONS206(S49(J))… F(‘49’)=L=S(S49)-1;
CONS207(S50(J))… F(‘50’)=L=S(S50)-1;
CONS208(S51(J))… F(‘51’)=L=S(S51)-1;
CONS209(RP,T)… SUM(J,SUM(M,RPC(J,M,RP)*X(J,M,T)))=L=RPA(RP,T);
CONS210(RV)… SUM(J,SUM(M,SUM(T,RVC(J,M,RV)*X(J,M,T))))=L=RVA(RV);
MODEL MRCPSP /ALL/;
SOLVE MRCPSP USING MIP MINIMIZING Z;
DISPLAY S.L,S.M;

On 8/10/11, Muhajir wrote:

Sorry Keks again

The sum on resource constraint should go like this:

resource (t,r)… sum ((j,m),k(j,m,r) * sum
(b$[ord(b)=(ord(t)-d(j,m)+1)],
x(j,m,b)))

I am not an expert in PM but I think the last equation should be
formulated
as follows to include the duration of the task (d(j,m)).

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

You should compare and validate the output with small and already solved
problem first.

Best

On Wed, Aug 10, 2011 at 1:35 PM, Muhajir wrote:

Hello Keks
You have to use ORD function to operate set order values with
parameters.
I have a rough look at the model and here are some suggestions.
++++++
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
due_date (j) ensures due 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 ((m,t),x(i,m,t)*(ord(t)+d(i,m)))

=l=

                               sum ((m,t),x(j,m,t)*ord(t)) ;


 resource (t,r).. sum ((j,m),k(j,m,r) * sum (b$(ord(t)-d(j,m)+1),

x(j,m,b)))

                  =l= UK(r)   ;

due_date(j)..   sum ((m,t),x(j,m,t)* ord(t)) =l= DD   ;


Model transport /all/ ;

Solve transport using MIP minimize TC ;

+++++++

Hope this helps you out!

Best

On Wed, Aug 10, 2011 at 12:09 PM, “Frank Kähler”
wrote:

Hi Muhajir,

thanks a lot, my litte CPM is working now. So, today I tried my second
approach to GAMS with an more advanced RIP Modell (A new heuristic for
the
multi mode resource investment problem by Hsu and Kim), but no wonder
i
am
of course struggeling again.

→ three generel errors occured: 133, 148, 149

→ One big problem I have, is that I don’t know how to sum about a
specific part of a set that is dynamic (Problem for the resource
equation)

→ I think the 148 error occured because t is an indice and also
multiplied sometimes → but I don’t how to solve it

The coding is the following → if you still interested so take a
look
:slight_smile:

start:

3
Modell by HSU and Kim (2004)

8
9 Sets
10
11 j jobs / Dummy_1, Design, Structure, Basics, Cabin,
Service,
12 Components,Dummy_2 /
13
14 Alias (i,j);
15
16
17 Set m modes /Standard, Fast/
18
19 r resources /Painter /
20
21 t time index /1*16 /
22
23 Alias (t,b)
24 ;
25
26
27
28
29 Set path (i,j) /
30 Dummy_1.Design
31 Dummy_1.Structure
32 Dummy_1.Basics
33 Design. Cabin
34 Structure. Cabin
35 Structure. Service
36 Basics. Service
37 Cabin. Components
38 Service. Dummy_2
39 Components. Dummy_2 / ;
40
41
42
43 Parameters
44
45 c (r) Costs per resource
46 /Painter 1/
47
48 d(j,m) duration for job from i executed in mode m
49
50 / Dummy_1.Standard 0
51 Design.Standard 2
52 Structure.Standard 3
53 Basics.Standard 1
54 Cabin.Standard 4
55 Service.Standard 2
56 Components.Standard 1
57 Dummy_2.Fast 0
58 Design.Fast 1
59 Structure.Fast 2
60 Basics.Fast 1
61 Cabin.Fast 2
62 Service.Fast 1
63 Components.Fast 1
64 /
65
66
67 k (j,m,r) /Dummy_1.Standard.Painter 0
68 Design.Standard. Painter 3
69 Structure.Standard. Painter 1
70 Basics.Standard. Painter 2
71 Cabin.Standard. Painter 2
72 Service.Standard. Painter 3
73 Components.Standard. Painter 3
74 Dummy_2.Standard. Painter 0
75 Dummy_1.Fast. Painter 0
76 Design.Fast. Painter 4
77 Structure.Fast. Painter 2
78 Basics.Fast. Painter 4
79 Cabin.Fast. Painter 4
80 Service.Fast. Painter 4
81 Components.Fast. Painter 4
82 Dummy_2.Fast. Painter 0 / ;
83
84 Scalar DD due date /12/;
85
86 Variables
87 x(j,m,t) 1 if task j is done in t and executed in m
88 UK (r) units of resources required
89 TC Total Costs
90 binary Variable x ;
91
92 Equations
93 cost define objective function
94 each_job (j) ens. that j is done only in
one
t
and m
95 precedence (i,j) ensures the precendence
relationship
96 resource (t,r) prevents resource overuse
97 due_date ensures due date ;
98
99 cost … TC =e= sum(r, (c (r)UK (r))) ;
100
101 each_job(j) …sum ((m,t),x(j,m,t))=e= 1 ;
102
103 precedence (i,j)$path(i,j)… sum ((m,t),x(i,m,t)
(t+d(i,m)))
=l=
**** $148
$133
104 sum ((m,t),x(j,m,t)*t) ;
**** 148 105 106 resource (t,r).. sum ((j,m),k(j,m,r)) * sum (b(t-d(j,m)+1),
x(j,m,b))


$148$149,149,133,133,14
9,149
107 =l= UK(r) ;
108
109 due_date … sum ((m,t),x(j,m,t)* t) =l= DD ;
**** $149 $148
110
111 Model transport /all/ ;
112
113 Solve transport using MIP minimize TC ;
**** $257
114
115
116
Error Messages

133 Incompatible operands for addition
148 Dimension different - The symbol is referenced with more/less
indices as declared
149 Uncontrolled set entered as constant
257 Solve statement not checked because of previous errors


Von: “Muhajir Tadesse”
Gesendet: 08-Aug-2011 10:51:19

An: gamsworld@googlegroups.com
Betreff: Re: MRCPSP + anyone with a RCPSP in Gams language?

Sorry Keks,

Here is what I mean.

Path (i,j) should be defined after defining the alias. GAMS will not
understand set “j” unless first you define it in the alias.

The other was my mistake, ‘m’ was to mean ‘path’ !, It goes like this

order(i,j)$path(i,j) … S(j) - S(i) =g= d(i,j) ;

sorry for the mistake

I hope it will be OK now!

*******************************Rearrange the modes
as

Sets
10
11 i activities / Dummy_1, Design, Structure, Basics,
Cabin, Serv
ice, Components, Dummy_2 /
12
24 Alias (i,j) ;
**** $406,158
25
13 i,j path
14 / Dummy_1. Design
15 Dummy_1. Structure
16 Dummy_1. Basics
17 Design. Cabin
18 Structure. Cabin
19 Structure. Service
20 Basics. Service
21 Cabin. Components
22 Service. Dummy_2
23 Components. Dummy_2 /
26 Parameters
27
28 d(i,j) path duration from i to j
**** $122
29 / Dummy_1. Design 0
30 Dummy_1. Structure 0
31 Dummy_1. Basics 0
32 Design. Cabin 2
33 Structure. Cabin 3
34 Structure. Service 3
35 Basics. Service 1
36 Cabin. Components 4
37 Service. Dummy_2 2
38 Components. Dummy_2 1
39 / ;
40
41 Variables
42 S(i) start time of activity i
43 T total time
44
45 Positive Variable S ;
46
47 Equations
48 time define objective function
49 order (i,j) ensures the technical order
restrictions
**** $122
50 start (i) ensures beginning at point 0 ;
51
52 time … T =e= S(‘Dummy_2’) ;
53
54 order(i,j)$path(i,j) … S(j) - S(i) =g= d(i,j) ;
**** $148,140 $171,148 $148
55
56 start(I) … S(‘Dummy_1’)=e= 0 ;
57
58 Model transport /all/ ;
59
60 Solve transport using lp minimizing T ;


            $257

Von: “Muhajir Tadesse”
Gesendet: 07-Aug-2011 16:02:38
An: gamsworld@googlegroups.com
Betreff: Re: MRCPSP + anyone with a RCPSP in Gams language?

Hi Keks,

The infeasibility is becuase you defined the order(i,j) constraint
for
every combination of i and j.
You could try to define task precedents (the project path) using
dynamic
sets and define the constraint order (i,j) over this dynamic set
only.

*** Creating dyaminc set
Set path(i,j) /
Dummy_1. Design
Dummy_1. Structure
Dummy_1. Basics
Design. Cabin
Structure. Cabin
Structure. Service
Basics. Service
Cabin. Components
Service. Dummy_2
Components. Dummy_2
/
**** definig equation over dynamic set
order(i,j)$m(i,j) … S(j) - S(i) =g= d(i,j) ;

I hope this solves the infeasiblity!

Just an opinoin: if you are minimizing the total project time, I
think
you must include the duration of each task.

Good luck

On Sun, Aug 7, 2011 at 1:14 PM, Keks wrote:

Hello together,

I am absolutely new in GAMS progamming and programming in generel
(just a little bit Xpress so far).

For a practical Project scheduling Problem I would like to implement
a
so called Multi Mode Resource Constrained Project Scheduling
Problem.
To get into the GAMS environment my idea was to start with a basic
CPM
Modell and after it to expand the Modell through a RCPSP and after
it
to a MRCPSP.

But l am struggeling already at the beginning with the CPM
implementation. I dont know how to code precedence relationships between tasks. I tried to connect them with a d(i,j) = time lag between activity i and j but just because I dont know a better way to code them.

It seems that all syntax errors are eliminated from my first model
but
the output isn`t that pretty → infeasible

My first little model is coded as the following:

Sets

     i activities   / Dummy_1, Design, Structure, Basics, Cabin,

Service, Components, Dummy_2 /

Alias (i,j) ;

Parameters

  d(i,j)  time lag between activity i and j
    /    Dummy_1. Design       0,
         Dummy_1. Structure    0,
         Dummy_1. Basics       0,
         Design. Cabin         2,
         Structure. Cabin      3,
         Structure. Service    3,
         Basics. Service       1,
         Cabin. Components     4,
         Service. Dummy_2      2,
         Components. Dummy_2   1   /  ;

Variables
S(i) start time of activity i
T total time

Positive Variable S ;

Equations
time define objective function
order (i,j) ensures the technical order
restrictions
start (i) ensures beginning at point 0 ;

time … T =e= S(‘Dummy_2’) ;

order(i,j) … S(j) - S(i) =g= d(i,j) ;

start(i) … S(‘Dummy_1’)=e= 0 ;

Model transport /all/ ;

Solve transport using lp minimizing T ;

→ the infeasibality occured in row (order Design, Cabin): 0 >= 2

→ it seems that the starting points of the activities were`t
calculated

→ Please help :wink: + If anyone has a basic RCPSP in GAMS language I
am highly interested in it.

Best regards

Keks


You received this message because you are subscribed to the Google
Groups “gamsworld” group.
To post to this group, send email to gamsworld@googlegroups.com.
To unsubscribe from this group, send email to
gamsworld+unsubscribe@googlegroups.com.
For more options, visit this group at
http://groups.google.com/group/gamsworld?hl=en.


You received this message because you are subscribed to the Google
Groups
“gamsworld” group.
To post to this group, send email to gamsworld@googlegroups.com.
To unsubscribe from this group, send email to
gamsworld+unsubscribe@googlegroups.com.
For more options, visit this group at
http://groups.google.com/group/gamsworld?hl=en.

Schon gehört? WEB.DE hat einen genialen Phishing-Filter in die
Toolbar eingebaut!
http://produkte.web.de/go/toolbar

You received this message because you are subscribed to the Google
Groups
“gamsworld” group.
To post to this group, send email to gamsworld@googlegroups.com.
To unsubscribe from this group, send email to
gamsworld+unsubscribe@googlegroups.com.
For more options, visit this group at
http://groups.google.com/group/gamsworld?hl=en.


You received this message because you are subscribed to the Google
Groups
“gamsworld” group.
To post to this group, send email to gamsworld@googlegroups.com.
To unsubscribe from this group, send email to
gamsworld+unsubscribe@googlegroups.com.
For more options, visit this group at
http://groups.google.com/group/gamsworld?hl=en.

Schon gehört? WEB.DE hat einen genialen Phishing-Filter in die
Toolbar eingebaut!
http://produkte.web.de/go/toolbar


You received this message because you are subscribed to the Google
Groups
“gamsworld” group.
To post to this group, send email to gamsworld@googlegroups.com.
To unsubscribe from this group, send email to
gamsworld+unsubscribe@googlegroups.com.
For more options, visit this group at
http://groups.google.com/group/gamsworld?hl=en.


You received this message because you are subscribed to the Google
Groups
“gamsworld” group.
To post to this group, send email to gamsworld@googlegroups.com.
To unsubscribe from this group, send email to
gamsworld+unsubscribe@googlegroups.com.
For more options, visit this group at
http://groups.google.com/group/gamsworld?hl=en.


\