Skip to main content
Solved

Unread Parameter in AIMMS

  • May 23, 2024
  • 3 replies
  • 60 views

sarah rohaizad
Forum|alt.badge.img+2

Hello, I have a question regarding AIMMS. I plan to do lab scheduling that will assign classes to a lab venue at a time. Each class will be taught by a different demonstrator, which I already specified in the parameter (Demo_Lab) as shown in the picture. However, whenever I included it in a constraint named Demo_Gap with an index domain (l,t), AIMMS did not follow the Demo_Lab parameter. AIMMS gave the results with a demonstrator randomly assigned to any class (you can refer to the final image). May I know how this is possible to happen? 

The parameter
The data.

 

The demo gap constraint
The result shows AIMMS just assign demo to any classes without consider the mentioned parameter 

 

Best answer by Marcel Hunting

Hi @sarah rohaizad. If Demo_Lab(c,l) equals 0 then X(c,l,t,v) and X(c,l,t+1,v) will not be included in the Demo_Gap constraint and therefore they will not be limited/restricted by this constraint. In other words, the Demo_Gap constraint only defines a limitation/restriction for those X(c,l,t,v) for which Demo_Lab(c,l) equals 1.

Please note that if you want X(c,l,t,v) to be 0 whenever Demo_Lab(c,l) equals 0 then you could change the index domain of the variable X(c,l,t,v) into: (c,l,t,v) | Demo_Lab(c,l) . (But your constraint AssignDemo already enforces X(c,l,t,v) to be 0 whenever Demo_Lab(c,l) equals 0.)

3 replies

sarah rohaizad
Forum|alt.badge.img+2

Since AIMMS could not read the Demo_Lab parameter in Demo_Gap constraint, I added one more constraint which shown below. Then, only AIMMS could read the parameter and gave the results like I intended to do.

 


Marcel Hunting
AIMMSian
Forum|alt.badge.img+4

Hi @sarah rohaizad. If Demo_Lab(c,l) equals 0 then X(c,l,t,v) and X(c,l,t+1,v) will not be included in the Demo_Gap constraint and therefore they will not be limited/restricted by this constraint. In other words, the Demo_Gap constraint only defines a limitation/restriction for those X(c,l,t,v) for which Demo_Lab(c,l) equals 1.

Please note that if you want X(c,l,t,v) to be 0 whenever Demo_Lab(c,l) equals 0 then you could change the index domain of the variable X(c,l,t,v) into: (c,l,t,v) | Demo_Lab(c,l) . (But your constraint AssignDemo already enforces X(c,l,t,v) to be 0 whenever Demo_Lab(c,l) equals 0.)


sarah rohaizad
Forum|alt.badge.img+2

I understand now. Thank you.


Didn't find what you were looking for? Try searching on our documentation pages:

AIMMS Developer & PRO | AIMMS How-To | AIMMS SC Navigator