Unread Parameter in AIMMS


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 27 May 2024, 17:05

View original

3 replies


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.


Userlevel 5
Badge +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.)


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