Hi
As Renger already said: a few seconds. The equation Yedec is declared but not specified. Also looking at
Sbt1… sum((i,k),XD(i,k)) =g= 5;
Sbt11… sum((i,k),XD(i,k)) =g= 3;
I assume that one of them is obsolete (the second) or do you mean with the first one =l= 5
All beginning is difficult but spend some time understanding the errors you get. Your current problem is a very small one and things will become more difficult when the problem get a more real live size…
Greetings
Wietse
From: gamsworld@googlegroups.com [mailto:gamsworld@googlegroups.com] On Behalf Of sengul can
Sent: Thursday, March 3, 2016 21:06
To: gamsworld
Subject: Re: Gams nurse scheduling urgent help
Dear Ranger,
I have examinated it since four days, but i can’t find what problem is.
if you say me about it i will be pleased.
Sincerely.
3 Mart 2016 Perşembe 13:36:44 UTC+2 tarihinde Renger van Nieuwkoop yazdı:
Check your code more carefully. Claudio gave enough information to find the problem. With just one glance I saw an equation without a symbolic declaration…
Renger
Sent from my Samsung Note 4
-------- Original message --------
From: sengul can
Date: 3/3/2016 12:26 (GMT+01:00)
To: gamsworld
Subject: Re: Gams nurse scheduling urgent help
Hi Claudio,
Thank you for your precious answer,
In my gams code, Amac is declare as equation and z is declare as variable. i couldn’t understand very well.
My all gams code is as follow; what is wrong? please help me again.
Sincerely
sets
k hemÅŸire indisi /h1,h2,h3,h4,h5,h6,h7,h8,h9,h10,h11,12/
n gün sayısı /28/
m hemşire sayısı /12/
i gün indisi /n1,n2,n3,n4,n5,n6,n7,n8,n9,n10,n11,n12,n13,n14,n15,n16,n17,n18,n19,n20,n21,n22,n23,n24,n25,n26,n27,n28/
j vardiyalar /Di,Ni/
Di gündüz vardiyası hemşire sayısı /5/
Ni gece vardiyasındaki hemşire sayısı /3/
h hatasonu günleri /6,7,13,14,20,21,27,28/
variables
XD(i,k)
XN(i,k)
XR(i,k)
z;
equations
Sbt1
Sbt11
Sbt2
Sbt3
Sbt4
DKisit1
DKisit2
DKisit3
DKisit33
DKisit4
DKisit5
DKisit6
DKisit66
DKisit7
DKisit8
DKisit88
DKisit9
Yedek
Amac;
Amac… z =e= sum((i,k), XD(i,k) + XN(i,k) + XR(i,k));
Sbt1… sum((i,k),XD(i,k)) =g= 5;
Sbt11… sum((i,k),XD(i,k)) =g= 3;
Sbt2(i,k)… XD(i,k) + XN(i,k) + XR(i,k) =l=1;
Sbt3(i,k)… XD(i+1,k)+ XN(i,k) =e= 1;
Sbt4(i,k)… XN(i,k)+XN(i+1,k) =e= 1;
DKisit1(i,k)$(ord(i) eq 6 or ord(i) eq 7 or ord(i) eq 13 or ord(i) eq 14 or ord(i) eq 20 or ord(i) eq 21 or ord(i) eq 27 or ord(i) eq 28)… XR(i,k) =g= 4;
DKisit2(i,k)$(ord(i) eq 6 or ord(i) eq 13 or ord(i) eq 20 or ord(i) eq 27)… XR(i,k)+XR(i+1,k) =l= 1;
DKisit3(i,k)… XD(i,k)+XN(i,k) =g= 15;
DKisit33(i,k)… XD(i,k)+XN(i,k) =l= 18;
DKisit4… sum((i,k),XD(i,k)) =g= 6;
DKisit5… sum((i,k),XD(i,k)) - sum((i,k),XN(i,k)) =g= 0;
DKisit6… sum((i,k)$(ord(k) eq 3 or ord(k) eq 4 or ord(k) eq 5 or ord(k) eq 6),XD(i,k)) =g= 1;
DKisit66… sum((i,k)$(ord(k) eq 3 or ord(k) eq 4 or ord(k) eq 5 or ord(k) eq 6),XR(i,k)) =g= 1;
DKisit7(i,k)$(ord(k) eq 1 or ord(k) eq 2)… XD(i,k) + XR(i,k) =l= 28;
DKisit8… sum((i,k)$(ord(k) eq 1),XN(i,k)) =e= 0;
DKisit88… sum((i,k)$(ord(k) eq 2),XN(i,k)) =e= 0;
DKisit9(i,k)… XR(i,k) + XR(i+1,k) + XR(i+2,k) =l=2;
model nurseproblem /all/;
solve nurseproblem using lp minimizing z;
3 Mart 2016 Perşembe 09:16:05 UTC+2 tarihinde Claudio Delpino yazdı:
Sengul: as the error states, you are declaring that an equation exists but not any symbolic structure for it.
Example:
Equations
A, b;
A(i)… foo =e= bar;
Will produce the same error, because there is no symbolic declaration for b.
If you add it, i e:
b… foo2=l=bar2
It will solve the error.
regards!
Claudio
El 02/03/2016 18:07, “sengul can” escribió:
Dear Claudio,
Thank you for your. Now my equation working true.
Bu i have another problem, my solve statement has an error.
Amac… sum((i,k), XD(i,k) + XN(i,k) + XR(i,k)) =e=z;
but i have new problem my solve line:
model nurseproblem /all/;
solve nurseproblem minimizing z using MIP;
i have an error this line. my error : the symbol shown has been declared as an equation, but no symbolic equation (…) was found.
if you can help i will greateful.
26 Şubat 2016 Cuma 14:35:56 UTC+2 tarihinde Claudio Delpino yazdı:
Sengul:
That is because the correct syntax for that is what I wrote:
DKisit2(i,k)$(ord(i) eq 6 or ord(i) eq 13 or ord(i) eq 20 or ord(i) eq 27)… XR(i,k)+XR(i+1,k) =l= 1;
Where you declare
​that particular declaration of ​
equation DKisit2 to be indexed over set k and set i, with some conditions on the i index.
If you’re working from the gamside, look at the output .lst file. It has a section called “Equation Listing”. Look into that and you will understand what limrow is for. You will see that only a certain amount of equations are shown per block, limrow allows to change that cutoff value, so that you can look at a complete block if needed. Anyway, it’s always nice to see what the model is actually made of, so check out that part of the .lst.
On Thu, Feb 25, 2016 at 6:12 PM, sengul can wrote:
Hi Claudio,
thank you for your quick reply.
i’m using sum function because i want check for all k value, and for only i=6,13,20,17
if i dont use sum, my syntax is
DKisit2… 1 =l= ((i,k)$(ord(i) eq 6 or ord(i) eq 13 or ord(i) eq 20 or ord(i) eq 27),XR(i,k)+XR(i+1,k));
and then i got this error : Dimension Different , ) expected etc.
i searched LIMROW but i didn’t understood very well. Ä°s this function verification my gams code?
Thank you for your help.
Sincerely.
25 Şubat 2016 Perşembe 17:39:58 UTC+2 tarihinde Claudio Delpino yazdı:
Sengul:
No. Why are you using sum ?
DKisit2(i,k)$(ord(i) eq 6 or ord(i) eq 13 or ord(i) eq 20 or ord(i) eq 27)…XR(i,k)+XR(i+1,k) =l= 1;
Best way to check, the “Equation Listing” section of the listing file (.lst). If you don’t get to see what you need, you can tune the number shown using Limrow.
Regards!
Claudio
On Wed, Feb 24, 2016 at 5:14 PM, sengul can wrote:
Hi again,
thanks for your help.
however, i have other question.
My mathematical model is as follow;
ð—ð‘ð¢,ð¤ + ð—ð‘ð¢+ðŸ,ð¤ ≤ 1, i= 6, 13, 20, 27 for all k
and part of my gams code;
n number of day /28/
m number of nurse /12/
i index of day /n1,n2,n3,n4,n5,n6,n7,n8,n9,n10,n11,n12,n13,n14,n15,n16,n17,n18,n19,n20,n21,n22,n23,n24,n25,n26,n27,n28/
k index of nurse /h1,h2,h3,h4,h5,h6,h7,h8,h9,h10,h11,12/
j shift /Di,Ni/
Di number of nurse in working day shift /5/
Ni number of nurse in working day at night shift /3/
h weekend days into mount /6,7,13,14,20,21,27,28/
equations
DKisit2;
DKisit2… sum((i,k)$(ord(i) eq 6 or ord(i) eq 13 or ord(i) eq 20 or ord(i) eq 27),XR(i,k)+XR(i+1,k)) =l= 1;
For my mathematical model, this syntax is true?
Sincerely.
24 Şubat 2016 Çarşamba 10:37:22 UTC+2 tarihinde Renger van Nieuwkoop yazdı:
Hi Sengüel
If you put the k set as the first set in your declarion, it works fine.
Sets
k …
n…
…
This has to do with the UEL (search the documentation for this or the mailing list).
Cheers
Renger
From: gams...@googlegroups.com [mailto:gams...@googlegroups.com] On Behalf Of sengul can
Sent: Dienstag, 23. Februar 2016 21:33
To: gamsworld
Subject: Re: Gams nurse scheduling urgent help
Hi Dear Claudio,
first thank you for your helps.
I am developing code yet and have another question.
My gams code is as following;
sets
n number of day /28/
m number of nurse /12/
i index of day /n1,n2,n3,n4,n5,n6,n7,n8,n9,n10,n11,n12,n13,n14,n15,n16,n17,n18,n19,n20,n21,n22,n23,n24,n25,n26,n27,n28/
k index of nurse /h1,h2,h3,h4,h5,h6,h7,h8,h9,h10,h11,12/
j shift /Di,Ni/
Di number of nurse in working day shift /5/
Ni number of nurse in working day at night shift /3/
h weekend days into mount /6,7,13,14,20,21,27,28/
variables
XD(i,k)
XN(i,k)
XR(i,k)
z;
equations
Sbt1
Sbt11
Sbt2
Sbt3
Sbt4
DKisit1
DKisit2
DKisit3
DKisit33
DKisit4
DKisit5
DKisit6
DKisit66
DKisit7
DKisit8
DKisit88
DKisit9
Amac;
Sbt1… sum((i,k),XD(i,k)) =g= 5;
Sbt11… sum((i,k),XD(i,k)) =g= 3;
Sbt2… sum((i,k),XD(i,k))+sum((i,k),XN(i,k))+sum((i,k),XR(i,k)) =l= 1;
Sbt3… sum((i(i+1),k),XD(i,k))+sum((i,k),XN(i,k)) =e= 1;
Sbt4… sum((i,k),XN(i,k))+sum((i(i+1),k),XN(i,k)) =e= 1;
DKisit1… sum((i,k)$(ord(i) eq 6 or ord(i) eq 7 or ord(i) eq 13 or ord(i) eq 14 or ord(i) eq 20 or ord(i) eq 21 or ord(i) eq 27 or ord(i) eq 28),XR(i,k)) =g= 4;
DKisit2… sum((i,k)$(ord(i) eq 6 or ord(i) eq 13 or ord(i) eq 20 or ord(i) eq 27),XR(i,k)+XR(i+1,k)) =l= 1;
DKisit3… sum((i,k),XD(i,k)+XN(i,k)) =g= 15;
DKisit33… sum((i,k),XD(i,k)+XN(i,k)) =l= 18;
DKisit4… sum((i,k),XD(i,k)) =g= 6;
DKisit5… sum((i,k),XD(i,k)) - sum((i,k),XN(i,k)) =g= 0;
Dkisit6… sum((i,k)(ord(k) eq 3 or ord(k) eq 4 or ord(k) eq 5 or ord(k) eq 6),XD(i,k)) =g= 1;
\
\
\
model nurseproblem /all/;
\
\
\
\
\
this line
\
\
\
Dkisit6.. sum((i,k)(ord(k) eq 3 or ord(k) eq 4 or ord(k) eq 5 or ord(k) eq 6),XD(i,k)) =g= 1;
shows a error indicating “Set used in ‘ord’ or lag is not ordered.” in which my mathematical model is Σð—ðƒð¢,ð¤ ≥ 1, k= 3, 4, 5, 6
here, i want that it sum XDi,k for all i and k=3,4,5,6
Finally, my question is that my code line is true and how can i make it correctly for this line?
if you help me about this subject ı will be pleased.
Sincerely,
Şengül
19 Şubat 2016 Cuma 17:16:15 UTC+2 tarihinde Claudio Delpino yazdı:
Sengul: If you have no restriction on which terms should be summed, you don’t need any conditional $ operator.
Sbt1… sum ((i,k), XD(i,k) ) =g= Di;
Regards!
Claudio
On Fri, Feb 19, 2016 at 11:12 AM, sengul can wrote:
Hi,
i’m new on gams optimization programming. i trying to solve nurse scheduling problem bu it doesn’t work.
it doesnt complete. but this statement has error:
Sbt1… sum ( (k,i)$( ord(k) ord(i) ), XD(i,k) ) =g= Di;
sets
n /28/
m /12/
i /1*28/
k /1*12/
Di /5/
Ni /3/;
variables
XD(i,k)
XN(i,k)
XR(i,k);
equations
Sbt1
Sbt1… sum ( (k)$( ord(k) ord(i) ), XD(i,k) ) =g= Di;
model nurseproblem /all/;
solve nurseproblem minimizing z using MIP;
for now i only want sum XDi,k for all i
how can do this. please help.
To unsubscribe from this group and stop receiving emails from it, send an email to gamsworld+...@googlegroups.com.
To post to this group, send email to gams...@googlegroups.com.
Visit this group at https://groups.google.com/group/gamsworld.
For more options, visit https://groups.google.com/d/optout.
To unsubscribe from this group and stop receiving emails from it, send an email to gamsworld+...@googlegroups.com.
To post to this group, send email to gams...@googlegroups.com.
Visit this group at https://groups.google.com/group/gamsworld.
For more options, visit https://groups.google.com/d/optout.
–
To unsubscribe from this group and stop receiving emails from it, send an email to gamsworld+...@googlegroups.com.
To post to this group, send email to gams...@googlegroups.com.
Visit this group at https://groups.google.com/group/gamsworld.
For more options, visit https://groups.google.com/d/optout.
<<
–
To unsubscribe from this group and stop receiving emails from it, send an email to gamsworld+unsubscribe@googlegroups.com.
To post to this group, send email to gamsworld@googlegroups.com.
Visit this group at https://groups.google.com/group/gamsworld.
For more options, visit https://groups.google.com/d/optout.
–
To unsubscribe from this group and stop receiving emails from it, send an email to gamsworld+unsubscribe@googlegroups.com.
To post to this group, send email to gamsworld@googlegroups.com.
Visit this group at https://groups.google.com/group/gamsworld.
For more options, visit https://groups.google.com/d/optout.