

![0_image_0.png](0_image_0.png)

one course and all students can attend at least one **of the courses for which they bid.**
The models we used have variables Li **representing which course is taught by lecturer** i and variables Sj representing one of the courses student j wants to attend. D(Li**) contains** all courses lecturer i can teach except those that received less than 5 bids. D(Sj **) contains**
all courses student j has bid for, except those that received less than 5 bids. We put a constraint Uses([L1, . . . , Ln], [S1, . . . , Sm]) and a constraint **AllDifferent**(Li1
**, . . . , L**ip)
where {Li1, . . . , Lip } = P**. Model** range decomposes Uses with Range**, and model**
decomp decomposes Uses **with primitive constraints as described in Section 7.2.1.**
In the only instance we could obtain from the university, year-2008, there are 50 lecturers, 26 professors, 53 courses, and 177 students. We solved year-2008, both with model decomp **and with model** range**. Both models could find a solution in a few**
milliseconds.

We modified the two models so that the satisfaction of the students **is improved.**