Conference scheduling
Problem description
Assign each conference talk to a timeslot and a room, after the talks have been accepted.
Timeslots can overlap. It reads/writes to/from an *.xlsx
file that can be edited with LibreOffice or Excel.
Built-in hard constraints:
-
Talk type of timeslot: The type of a talk must match the timeslot’s talk type.
-
Room unavailable timeslots: A talk’s room must be available during the talk’s timeslot.
Hard constraints (unless configured otherwise):
-
Room conflict: Two talks can’t use the same room during overlapping timeslots.
-
Speaker unavailable timeslots: Every talk’s speaker must be available during the talk’s timeslot.
-
Speaker conflict: Two talks can’t share a speaker during overlapping timeslots.
-
Talk prerequisite talks: A talk must be scheduled after all its prerequisite talks.
-
Talk mutually-exclusive-talks tags: Talks that share such tags must not be scheduled in overlapping timeslots.
-
Consecutive talks pause: A speaker who has more than one talk must have a break between them.
-
Generic purpose timeslot and room tags
-
Speaker required timeslot tags: If a speaker has a required timeslot tag, then all his/her talks must be assigned to a timeslot with that tag.
-
Speaker prohibited timeslot tags: If a speaker has a prohibited timeslot tag, then all his/her talks cannot be assigned to a timeslot with that tag.
-
Talk required timeslot tags: If a talk has a required timeslot tag, then it must be assigned to a timeslot with that tag.
-
Talk prohibited timeslot tags: If a talk has a prohibited timeslot tag, then it cannot be assigned to a timeslot with that tag.
-
Speaker required room tags: If a speaker has a required room tag, then all his/her talks must be assigned to a room with that tag.
-
Speaker prohibited room tags: If a speaker has a prohibited room tag, then all his/her talks cannot be assigned to a room with that tag.
-
Talk required room tags: If a talk has a required room tag, then it must be assigned to a room with that tag.
-
Talk prohibited room tags: If a talk has a prohibited room tag, then it cannot be assigned to a room with that tag.
-
Medium constraints (unless configured otherwise):
-
Published timeslot: A published talk must not be scheduled at a different timeslot than currently published. If a hard constraint’s input data changes after publishing (such as speaker unavailability), then this medium constraint will be minimally broken to attain a new feasible solution.
Soft constraints (unless configured otherwise):
-
Published room: Minimize the number of talks scheduled in different rooms than published ones.
-
Theme track conflict: Minimize the number of talks that share a same theme tag during overlapping timeslots.
-
Theme track room stability: Talks with common theme track tag should be scheduled in the same room throughout the day.
-
Sector conflict: Minimize the number of talks that share a same sector tag during overlapping timeslots.
-
Content audience level flow violation: For every content tag, schedule the introductory talks before the advanced talks.
-
Audience level diversity: For every timeslot, maximize the number of talks with a different audience level.
-
Language diversity: For every timeslot, maximize the number of talks with a different language.
-
Same day talks: All talks that share a theme track tag or content tag should be scheduled in the minimum number of days (ideally in the same day).
-
Popular talks: Talks with higher
favoriteCount
should be scheduled in larger rooms. -
Crowd control: Talks with higher
crowdControlRisk
should be scheduled in pairs at the same timeslot to avoid having most participants going to the same room. -
Generic purpose timeslot and room tags
-
Speaker preferred timeslot tag: If a speaker has a preferred timeslot tag, then all his/her talks should be assigned to a timeslot with that tag.
-
Speaker undesired timeslot tag: If a speaker has an undesired timeslot tag, then all his/her talks should not be assigned to a timeslot with that tag.
-
Talk preferred timeslot tag: If a talk has a preferred timeslot tag, then it should be assigned to a timeslot with that tag.
-
Talk undesired timeslot tag: If a talk has an undesired timeslot tag, then it should not be assigned to a timeslot with that tag.
-
Speaker preferred room tag: If a speaker has a preferred room tag, then all his/her talks should be assigned to a room with that tag.
-
Speaker undesired room tag: If a speaker has an undesired room tag, then all his/her talks should not be assigned to a room with that tag.
-
Talk preferred room tag: If a talk has a preferred room tag, then it should be assigned to a room with that tag.
-
Talk undesired room tag: If a talk has an undesired room tag, then it should not be assigned to a room with that tag.
-
Every constraint can be configured to use a different score level (hard/medium/soft) or a different score weight.
Problem size
18talks-6timeslots-5rooms has 18 talks, 6 timeslots and 5 rooms with a search space of 10^26.
36talks-12timeslots-5rooms has 36 talks, 12 timeslots and 5 rooms with a search space of 10^64.
72talks-12timeslots-10rooms has 72 talks, 12 timeslots and 10 rooms with a search space of 10^149.
108talks-18timeslots-10rooms has 108 talks, 18 timeslots and 10 rooms with a search space of 10^243.
216talks-18timeslots-20rooms has 216 talks, 18 timeslots and 20 rooms with a search space of 10^552.