Skip to main content

Hi, I’ve been doing my project on course scheduling. However, I’ve encountered problem listed below:

  • My obtained result did not follow my parameter and constraint.

Figure below shows the parameter for Group_Classes, for instances, MDA3033_G1_1, MDA3033_G1_2, MDA3033_G1_B1, MDA3033_G1_B2, and MDA3033_G1_B3 are belong to students group under program Analytic Data (Year 2). So i ticked all the boxes that belong to the students group respectively. Then, my on the second figure, it shows my constraint for Conflict_Student. But, when I executed AIMMS, it gave me results like Figure 3. As u can see, in Figure 3, MDA3033_G1 and MDA3044_G1 shared the same students group. So there’s still conflicts between those two subjects. MDA3033_G1_1 & MDA3033_G1_2 are assigned to t=45,46, meanwhile MDA3044_G1_B1 , MDA3044_G1_B2 & MDA3044_G1_B3 are assigned at t=46,47,48. The conflicts occurred at t=46. Can anyone explain to me which part did i do wrong?

Figure 1
Figure 2
Figure 3

 

Hi ​@sarah rohaizad. In situations like this it is always good to check which constraints AIMMS actually generates. You can check this by using the Math Program Inspector or printing the constraint listing (see the Solvers General option 'Constraint listing’).

The way you defined the constraint you get separated restrictions for each year (y). The classes MDA3033* and MDA3044* "belong” to different years and therefore they will not end up in the same restriction. So, the constraint Conflict_Students does not forbid that one of the MDA3033* classes ends up with one of the MDA3044* classes in the same t. Maybe it is resolved by removing the 'y’ from the index domain of the constraint and adding it to the sum in its definition.


Reply


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

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