Conference scheduling

Problem description

Assign each conference talk to a timeslot and a room, after the talks have been accepted.

conferenceSchedulingMilestonesTimeline

Timeslots can overlap. It reads/writes to/from an *.xlsx file that can be edited with LibreOffice or Excel.

conferenceSchedulingProblem

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.

conferenceSchedulingConstraints

Value proposition

conferenceSchedulingValueProposition

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.

Architecture

conferenceSchedulingArchitecture

Domain model

conferenceSchedulingClassDiagram

Search space

conferenceSchedulingOptimalIsImperfect
conferenceSchedulingSearchSpace