I am trying to resolve the MMJS (multi-mode blocking job shop) problem, I am new at gams and I am a student in the university right now I am trying to figure out how to define the sets for the multi-mode resource implemented in the problem I don't know if I have to use a loop or this could be done with sets or dynamic sets, hope someone can help me to figure this out, also I don't know if this goes here or in syntax sorry in advance.
This is the problem:
And this is what I got so far, code:
Hope some one can help me
Code: Select all
Set M 'Set of resources' /A1,A2,N1,N2,N3,OR1,OR2,S1,S2,S3,P1,P2,IC/ I 'Set of operations' /PHU,OR,PACU,ICU/ J 'Set of jobs' /CASE1*CASE10/ R 'Set of indexes of modes' /1*12 / RI(I) 'Set of indexes of modes for operation I' Mri(R,I) 'Mode r for operation i' ; Alias(I,II) SET O(I,II) 'Set of pair of consecutive operations of a job J' / PHU. OR OR. PACU PACU. ICU /; Parameter psu(I) 'Setup time of operation i' /PHU 10, OR 10, PACU 10, ICU 10/ pcli(I) 'Cleanup time of operation i' /PHU 10, OR 10, PACU 10, ICU 10/ b(I) 'Maximum waiting time allowed for operation i before the operation job is moved to a next stage' /PHU 10, OR 10, PACU 10, ICU 10/ jb(I) 'Job to which operation i belongs to' e(R) 'Starting time of the availability interval of mode r' /1 480,2 1920,3 480,4 1920,5 1920, 6 1920,7 480,8 1920,9 480,10 1920,11 480,12 2460/ f(R) 'Ending time of the availability interval of mode r' /1 960,2 2400,3 960,4 2400,5 2400, 6 2400,7 960,8 2400,9 1020,10 2460,11 7200,12 7200/ t 'Dummy operation of zero duration, s is after all operations' /0/; Variable x(I) 'Starting time of operation i' l(I) 'Leaving time of operation i' Scalar H 'Huge number' alpha 'Very small weight factor' /0.01/; Equations