Coursedog

Submit a ticket My Tickets
Welcome
Login  Sign up

14. Section Optimizer

14.1 Overview

The Coursedog Section Optimizer is used to automatically make the best time and room assignments for an academic schedule. The optimizer is most commonly used to assign only rooms, however with the proper setup, it can be used to assign meeting times as well. Once the optimizer is run, custom optimizer reports appear in the dashboard to examine the results. Additionally, all optimizer assignments will be stored as a separate schedule, which can be ultimately merged into the existing class schedule.

Note: When running the optimizer, please give yourself a 10 day buffer from the time your schedule must be finalized to make any necessary adjustments. 

Note: The Optimizer only loads in data from a single term and cannot conflict check over multiple terms. If you have overlapping terms, make sure to create 'Parts of Term' within a single term to store all these sections. This article provides guidance on creating parts of terms.



14.2 Optimizer Preparation

The optimizer pulls information from a variety of different sources. It is important to review all this information before running the optimizer, to ensure that you are providing the optimizer with a clean set of data.

The optimizer pulls the following information:

  1. Current Academic Schedule (Sections)
  2. Rooms & Buildings
  3. Instructors
  4. Time blocks
  5. Section Relationships


14.2.1 Sections: An academic section is the base unit of data that is used within the optimizer. For every section brought into the optimizer, it will examine the section’s place in the schedule, along with any preferences or constraints attached to the section, and determine the best room (and/or time) to assign that particular section (without creating any conflicts or violating any predefined rules).


Each Section has a “Meeting Patterns & Rooms” data attribute (example shown below):

The information in this data attribute is what the optimizer will attempt to assign. When a section enters the optimizer it can be in one of four preset states in regards to its meeting & room information. The following lists those states and outlines how these states will impact the optimizer when it runs on those sections. 

Preset State
Details
No Meeting Times & No Rooms
  • If you are running the time optimizer, a single meeting time will be assigned to this section
  • If you are running both the time and room optimizer together, a single meeting time and a single room will be assigned to this section
  • If you are running just the room optimizer, no room will be assigned because a meeting time is required for the room optimizer
One Meeting Time and No Room
  • If you are running the time optimizer, the preset meeting time will not be changed 
  • If you are running the room optimizer, a room will be assigned 
Multiple Meeting Times and No Rooms
  • If you are running the time optimizer, the preset meeting times will not be changed
  • If you are running the room optimizer, a room will be assigned to each meeting time
Meeting Times with Rooms
  • Given that both times and rooms are pre-assigned, the optimizer will not assign times nor rooms to this section 


In addition to the Meeting Times and Rooms attributes, the enrollment capacity (maximum enrollment)  attribute is used by the optimizer. This attribute will be used to determine the minimum capacity of the room that can possibly be assigned to this section via the optimizer. For example if the section has an enrollment capacity of 15, then the optimizer WILL be allowed to assign a room with a capacity of 15, but WILL NOT be allowed to assign a room with a capacity of less than 15. 


Lastly, you can assign specific room preferences to each section within the Section Editor. 

These preferences are used to determine the best-fit rooms for each section. You can specify the importance of each of these preferences in the Optimizer Settings page (see below).

These preferences are used to determine the best-fit rooms for each section. You can specify the importance of each of these preferences in the Optimizer Settings page (see 14.5 Optimizer Advanced Settings).


14.2.2 Rooms & Buildings: All the rooms & buildings within the Coursedog system are also by default brought into the optimizer. For each room, the following attributes are used by the optimizer:

Attribute
Description
Room Capacity
  • The room capacity must be greater than or equal to a section’s enrollment capacity for the optimizer to assign the room to the section
  • Additionally, if a section has a Preferred Room Capacity preference, a room will be considered a better fit by the optimizer if the room capacity is close to the section’s preferred capacity
Room Features
  • This attribute is only used if a section has its preferred room features attribute populated. If for example, a section has Preferred Room Features set as “Microphone, Whiteboard," the optimizer will consider a room a better fit it contains either a microphone or whiteboard. If it contains both a microphone and whiteboard, it will be considered an even better fit
Room Type
  • This attribute is only used if a section has its preferred room type attribute populated. If so, the optimizer will consider a room a better fit if the room’s type is equivalent to the section’s preferred room type
Building
  • This attribute is only used if a section has its preferred building attribute populated. If so, the optimizer will consider a room a better fit if the room’s building is equivalent to the section’s preferred building
Exclude from Optimizer
  • This attribute is used to exclude a room from the optimizer. If set to true, a room will not be assigned to any section via the optimizer
Status
  • This field is used to determine a room’s availability for scheduling. It functions similarly to “Exclude From Optimizer” - if the status is set to Inactive, the room will not be assigned to any sections via the optimizer. Additionally, the room will not be assignable manually within the Section Editor either
Effective Start & End Date
  • These fields are used to define a range of dates where a room is active. This may be used if rooms are only available for a specific part of term
  • If a room has an effective start date of 1/20/2020 and an effective end date of 3/20/2020, and a section within the optimizer is set to a part of term with dates 1/20/2020 - 3/20/2020, then this room will be allowed to be assigned to that section
  • If the section has a part of term with dates 2/25/2020 - 4/18/2020, then that room will not be allowed to be assigned to that section


Below is a sample room settings page, within which all these settings can be modified:


14.2.3 Instructors are brought into the optimizer only if there are time and/or room preferences associated with that Instructor. Instructor preferences can be collected via Preference forms, or by directly editing the Instructor’s preferences within the Section Editor (Section Editor > Instructors > *click on Instructor name* > Edit Settings):


For more information on instructor preferences, please see the following article.


Instructors can have the following preferences:

Preference
Used in Time Optimizer
Used in Room Optimizer
Preferred Times
x

Conflict Times
x

Meeting Length
x

Preferred Rooms

x
Preferred Room Features

x
Preferred Room Type

x
Preferred Room Capacity

x
Preferred Building

x


Instructors with preferences that are assigned to sections included in the optimizer will have their preferences appended to any section preferences that have already been defined.

Here are two examples of how the optimizer uses the instructor preference information. Let’s say Instructor John Doe is assigned to Section A

Example 1: 

Section A has a Preferred Room Type of “Seminar”, and Instructor John Doe has a Preferred Building of “Green Hall”, then the optimizer will look for a “Seminar” room in “Green Hall.”

Example 2:

Section A has a Preferred Room Type of “Seminar”, and Instructor John Doe has a Preferred Room Type of “Lecture”, then the optimizer will look for a “Seminar” or “Lecture” room. 


Each Instructor can also have an “Optimizer Priority”. This attribute determines how highly an Instructor’s preferences are weighted inside the optimizer. To set an instructor's 'Optimizer Priority,' go to Section Editor > Instructors > *click on Instructor name* > Edit Settings:


14.2.3 Standard Meeting Patterns are a set of pre-defined meeting patterns, and the time optimizer will only assign meeting times to sections if such a meeting time is defined as a Standard Meeting Pattern. Standard meeting patterns can be found via Settings > Standard Meeting Patterns (for more details on setting up Standard Meeting Patterns, you may consult this article). 


Each meeting pattern is associated with a meeting pattern group. Often groups are divided along section types (i.e. a group for lab sections, a group for lecture sections), but this is not always the case. See example of a meeting pattern group below:


To edit a meeting pattern group, click on the blue 'Group Info' pencil button on the top right of the group card. Within the editing modal, each group can be associated with a specific subset of sections using the 'Allowed Sections' input. The Allowed Sections input defines what sections are allowed to use meeting patterns contained within this meeting pattern group. If the Meeting Pattern Group “Lab Meetings” has allowed sections defined as “Section Type contains Lab”, then the time optimizer will only assign meeting patterns from the “Lab Meetings” group to sections where “Section Type” contains the word “Lab”. 


14.2.4 Section Relationships (Linked Sections): Sections can have specific scheduling relationships with other sections that the optimizer can take into account while making time and room assignments. These relationships are called “Linked Sections”. They can be set in two places:

  1. Within the Section Editor, there is an input called Linked Sections (see this article for more details, 2.8.1 Section Relationships)
  2. Within the Settings > Relationships page, there is the ability to add/edit existing relationships (see this article for more details)

The following relationships have an impact on optimizer assignments:

RelationshipImpact on the Optimizer
Same Time - used by time optimizerThe Optimizer will try to assign meeting times to sections with this relationship so the sections meet at the same time of day
Same Day - used by time optimizerThe Optimizer will try to assign meeting times to sections with this relationship so the sections meet on the same days of the week
Same Time and Day - used by time optimizerThe Optimizer will try to assign meeting times to sections with this relationship so the sections meet at the same time of day and on the same days. Sections with this relationship will also have their Double Booked Instructor conflicts ignored
Non-overlapping - used by time optimizerThe Optimizer will try to assign meeting times to sections with this relationship so the meeting times do not overlap with one another (meaning the meeting times will have different times and/or different days)
Different Time - used by time optimizerThe Optimizer will try to assign meeting times to sections with this relationship so the sections meet at different times of day
Different Day - used by time optimizerThe Optimizer will try to assign meeting times to sections with this relationship so the sections meet on different days of the week
Same Room (shared space) - used by room optimizerThe Optimizer will try to assign sections with this relationship to be in the same room. The optimizer will ignore any double-booked room conflicts if the sections happen to meet during overlapping times
Same Time Same Day Same Room - used by time and room optimizerIf time optimizer and room optimizer is running, then time optimizer will first try to assign to meeting times to sections with this relationship so the sections meet on the same days of the week and at the same time. Then, if meeting times were able to be assigned, the room optimizer will try to assign the same room to these sections. If only the room optimizer is running, and times have been pre-assigned the optimizer will try to assign the same room to all sections with this relationship if and only if the sections already are meeting at the same time and on the same days of the week. Sections with this relationship will also have their Double Booked Instructor conflicts ignored


14.3 Viewing the Optimizer

To prepare for your Optimizer Run, select 'Optimizer' from the left navigation, select the term for which you want to create a run for, and click on '+ Optimizer Run.'

The optimizer has many settings that will define the behavior of the optimizer. The settings are divided between General and Advanced settings. General settings are commonly adjusted settings, while advanced settings are less commonly adjusted and relate to more nuanced preferences and constraints. These settings are defined in the optimizer settings page, shown below.


14.4 Optimizer General Settings


The optimizer has the following settings under General Settings:

Setting NameDescription
Optimizer Run NameThe name of the Optimizer
Academic departmentsWhich academic departments will be included in the optimizer. Default is to “All Departments,” however, the optimizer can be run for specific departments if needed
Send Email NotificationsCoursedog will send you an email notification when the optimizer run finishes
Assign RoomsA Yes/No input used to indicate if the optimizer should perform Room Optimization, assigning the best-fit rooms to sections
Minimum Seat UtilizationA percentage input that indicates the minimum enrollment capacity to room capacity ratio allowed. For example, if the Minimum Seat Utilization is set to 50%, then a section with an enrollment capacity of 20 can be in a room with a capacity of 40, but a section with an enrollment capacity of 19 cannot be in a room with a capacity of 40. See below for an example
Assign TimesA Yes/No input used to indicate if the optimizer should perform Time Optimization, assigning the best-fit meeting patterns to sections
Back To Back Sections DurationIf two sections are intended to have back to back meeting patterns, what is the maximum length of time between two meeting patterns before they are not considered back to back?


Here is an example of how the optimizer uses the minimum seat utilization setting: let’s say a course, Course X, has a maximum capacity of 20 and minimum seat utilization is set to 50%. The optimizer has 3 rooms to select from, Room S 237, Room S 238, and Room S 313, with room capacities of 25, 42, and 12, respectively. The optimizer will not assign Room S 313 as it cannot accommodate the maximum capacity for the course. The optimizer will not assign Room S 238 as seat utilization would be less than 50% (only 48% of the seats would be occupied by students in Course X). The optimizer will assign Room S 237 as it can accommodate the maximum capacity for the course and seat utilization would be greater than 50%.

14.5 Optimizer Advanced Settings

Advanced settings are used to define/modify additional constraints and weights for the optimizer. There are the following advanced settings:


Advanced Setting NameDescription
Standard Meeting Pattern PreferencesPrioritize the room preferences of sections that use standard meeting patterns, as opposed to custom times
Section Length PreferencePrioritize the room preferences of sections that meet for an amount of time equal to or greater than the specified value
Section Meeting Day PreferencePrioritize the room preferences of sections that meet for a number of days per week equal to or greater than the specified value
Enrollment PreferencePrioritize the room and time preferences of sections that have an enrollment equal to or greater than the specified value
Preferred Times WeightThe weight of satisfying any preferred time preferences that have been provided by instructors
Preferred Meeting LengthThe weight of satisfying any preferred meeting length preferences that have been provided by instructors
Conflict Times WeightThe weight of satisfying any conflict time preferences that have been provided by instructors
Back to Back Sections WeightThe weight of satisfying any Back-To-Back-Sections preference that have been provided by instructors
Time Interval Between Sections WeightThe weight for satisfying any Time-Interval-Between-Sections preferences that have been provided by instructors
Preferred Room WeightThe weight for satisfying any preferred room preferences provided by instructors or set on specific sections
Preferred Room Type WeightThe weight for satisfying any preferred room type preferences provided by instructors or set on specific sections
Preferred Room Features WeightThe weight for satisfying any preferred room features preferences provided by instructors or set on specific sections
Preferred Room Capacity WeightThe weight for satisfying any preferred room capacity preferences provided by instructors or set on specific sections
Preferred Building WeightThe weight for satisfying any preferred building preferences provided by instructors or set on specific sections
Linked Sections WeightThe weight for abiding to any linked section relationships
Department Rooms WeightThe weight for prioritizing department-owned rooms when assigning rooms to sections

The weights range from 0-10. A value of 0 indicates the preference should have no relevance on the output of the optimizer, and resultantly can be ignored. A value of 10 indicates a hard constraint, meaning that the optimizer has to satisfy that preference otherwise no room and/or time assignments will be made.

14.6 Running the Optimizer

 On the top of the page will be a progress bar that contains the following elements:


Element NameDescription
General SettingsContains all optimizer settings
Section ConflictsDisplays all section-level conflicts that might impact optimizer performance
Room BottlenecksDisplays all potential room bottlenecks that might impact optimizer performance
OptimizeContains the “Run Optimizer” button - intended to be clicked after all settings are defined, and conflicts/bottlenecks have been resolved.


Additionally, each page contains a “To Do” checklist, indicating what needs to be accomplished on each page before moving forward. 


Once you have created an optimizer run, and defined the optimizer settings, you will be presented with two pages that are intended to help identify issues that may negatively impact optimizer performance and results: Section Conflicts and Room Bottlenecks.


Section Conflicts lists all conflicts in the current academic schedule that relate to optimization. The conflict types listed are:

Conflict TypeDescription
Section With No Max Enrollment CapacityThis conflict affects the room optimizer because the enrollment capacity is used to determine if a section - room assignment violates the minimum seat utilization setting. Sections with no enrollment capacity will not be assigned rooms
Sections With Double Booked RoomsThe optimizer treats double booking rooms as a hard constraint - in other words, it will never double book a room. As a result, if sections provided to the optimizer have a pre-existing room double booking, the optimizer will not be able to successfully make any room assignments, and will likely fail. To resolve this, please assign all sections with room double bookings a “Same Room” relationship, which informs the optimizer that the double bookings are allowed and intended
Sections With Double Booked InstructorsThis conflict is similar to the Double Booked Rooms conflict, except only applies when running the time optimizer. The time optimizer will not assign meeting times to a section that results in a double-booked instructor, and this is treated as a hard constraint. If any sections come into the optimizer with pre-assigned times and a double-booked instructor conflict, the Same Time & Same Day relationship must be assigned to those sections to inform the optimizer that the conflicts should be ignored


The second page lists all potential room bottlenecks that have been calculated in the current academic schedule. There are two types of room bottlenecks that will be detected:

Bottleneck TypeDescription
No room with the required capacityThis is detected when a section has an enrollment capacity greater than the capacity of any room in the system
Not enough rooms with the required capacityThis is detected when a section requires a room with a minimum capacity, but multiple other sections require that same room at the same time


Once all conflicts/bottlenecks have been resolved, you may proceed to the 'Run Optimizer' page. Click the 'Optimize!' button and the optimizer will start immediately. You will be shown a progress bar to check in on the progress of the run:

While the optimizer is finding the best solution, you can view initial results by clicking ‘Click here to view these temporary results.’ Once the run is completed, the progress bar will reach 100% and you will be redirected to the Optimizer Results dashboard.


Note, the optimizer creates a copy of the section data that can be found in the Section Editor. As a result, running the optimizer will not impact the existing schedule, and the optimizer can be run multiple times until the desired result is reached. Once you have completed an optimizer run with a satisfactory result, you can merge the results back into your existing schedule (see below for details on merging). 


14.7 Optimizer Results Dashboard


The Optimizer results dashboard is used to view the result of optimizer assignments, reports, conflicts, and merge the results back into your current schedule. 

The dashboard consists of the following pages:

Page NameDescription
OverviewThis tab shows optimizer-related reports
ResultsThis tab lists all sections provided to the optimizer and their time/room assignments
ConflictsThis tab lists all conflicts that exist in the optimizer output
ExportThis tab allows you to download CSV reports for the optimizer output
BottlenecksThis tab lists all room bottlenecks that exist in the optimizer output
Input SettingsThis tab allows you to view the input settings that were defined before the optimizer run


The results tab lists all the sections contained in the optimizer run in a view similar to the 'Section Editor.' You can view the results by individual sections, or grouped together in courses. You can additionally filter between:

  1. All sections scheduled successfully by the optimizer
  2. All sections not scheduled by the optimizer
  3. All sections scheduled but have preference conflicts
  4. All sections excluded from the optimizer 

Next to each section, there will be an icon indicating one of the following three statuses:

  1. Checkbox - Optimizer successfully made all time and/or room assignments (or this section was intended to be excluded from the optimizer)
  2. Warning - Optimizer made time and/or room assignments, however, those assignments violate some soft constraints due to preferences
  3. Not Scheduled - Optimizer was not able to assign times/rooms. The likely cause of this issue is if either 1) the input schedule contained a Double Booked Instructor or Double Booked Room Conflict, or 2) there was a room bottleneck issue that prevented the optimizer from assigning all sections to a room that would not violate the minimum seat utilization


14.8 Merging Results

Once the optimizer has completed, you can merge the results of the optimizer back into the main schedule when are you ready. This merge will take only the room & time assignments made by the optimizer, and push those changes into the schedule found in the Section Editor. No other fields associated with the section will be changed. 


When you are merging results, you have two choices: Bulk Merge or Single Merge. Bulk Merge will merge results for all sections at once. A bulk merge can be accomplished by clicking the 'Merge Results' button on the top right of the 'Results' page. Clicking that button will open up a confirm modal to ensure you want to perform this action. On the other hand, a Single Merge will merge results for a single section. A single merge can be performed by clicking on the 'Merge Section' button in the section row, on the left.

 

14.9 Exporting Results

If you would like to export your results, there are three options.


Option 1: Course Sections List Report. This report creates a CSV that is a direct copy of the Course Sections List in the Reporting Dashboard, however, all the data is populated from the optimizer. This will include all optimizer time and room assignments, but will also include many other section fields, and will include sections that the optimizer was not able to make assignments for.


Option 2: Room Bottleneck lists. This report lists all room bottlenecks that are still present in the optimizer output results.


Option 3: Optimizer Assignments. This report only lists sections that the optimizer made assignments to, and only includes information on Course Code, Section Number, Times, and Rooms.

14.10 Optimizer FAQs

Q: Can double booked rooms exist in the schedule before running the optimizer?

A: The optimizer will never double book a room. As a result, it is advised to not include in the optimizer input any double booked rooms. As a solution, please create linked section relationship between sections with double booked rooms. If you must run the optimizer with double booked rooms, but cannot create section relationships between them, please contact our team before running the optimizer. 


Q: What happens if users make changes to the schedule while the optimizer is running?

A: If users make changes to the schedule while the optimizer is running, and then you decide to merge the optimizer results back into the schedule, changes those users made to the times/rooms of a section will be overwritten by the optimizer results. 


Q: What happens if the optimizer fails?

A: If the optimizer fails, first check that your schedule has a max enrollment for every section and contains no double booked rooms. If that is the case, and it still fails, please contact Coursedog through our support channel. 


C
Coursedog is the author of this solution article.

Did you find it helpful? Yes No

Send feedback
Sorry we couldn't be helpful. Help us improve this article with your feedback.