Hard Constraints

The most common and important hard constraint is what is sometimes referred to as an <#300#>edge<#300#> constraint between two events, which simply states that a given pair of events (#tex2html_wrap_inline1572#) must not overlap in time. The name is due to the similarity of any simple timetabling problem with <#301#>vertex coloring<#301#> in graph theory [#21##1#, #22##1#]. Events that must not overlap in time include:
  • classes taught by the same professor,
  • classes held in the same room,
  • a class and a recitation or a lab of the same class,
  • classes with students in common.
Other examples of hard constraints are
  • <#306#>Room constraint<#306#>: a class cannot be assigned to a particular room unless the capacity of the room #tex2html_wrap_inline1574# is greater than or equal to the class enrollment #tex2html_wrap_inline1576#. The smaller the difference between these two sizes, the better the assignment. This constraint is implemented using a non-linear function for the cost #tex2html_wrap_inline1578# associated with the room size:

    #equation1468#

    In our experiments, the parameters #tex2html_wrap_inline1580# and #tex2html_wrap_inline1582# were set to 0.5 and 0.8, respectively.

  • <#314#>Exclusion constraint<#314#>: deals with any violation to the given list of classes that cannot be scheduled at the same time or have any overlap in the scheduled times. Here is how the exclusion cost #tex2html_wrap_inline1588# is obtained from this constraint: #tex2html_wrap_inline1590# such that #tex2html_wrap_inline1592#, let #tex2html_wrap_inline1594# denote class(i), #tex2html_wrap_inline1596# denotes class(j), #tex2html_wrap_inline1598# is the starting time of #tex2html_wrap_inline1600#, #tex2html_wrap_inline1602# is the end time of #tex2html_wrap_inline1604#, #tex2html_wrap_inline1606# is the duration of #tex2html_wrap_inline1608#, #tex2html_wrap_inline1610# is some chosen constant, and #tex2html_wrap_inline1612# is the relative length between #tex2html_wrap_inline1614# and #tex2html_wrap_inline1616# as defined below. Also, the same notation applies to class #tex2html_wrap_inline1618#.

    #equation1479#

    #equation1493#