This video briefly mentions time optimization, which is no longer offered. You can ignore this reference; the video otherwise walks you through optimizing for rooms.
Table of Contents
Overview
Review & Adjust Configurations
Creating an Optimizer Run
Optimizer Settings
Section Conflicts
Bottlenecks
Running the Optimizer
Optimizer Results Dashboard
Merging Results
Additional Note
Related Links
Overview
The Section Optimizer can be used to automatically make the best room assignments for an academic schedule.
Run the Optimizer 3+ weeks before your schedule must be finalized to make any necessary adjustments.
Once the Optimizer is run, custom Optimizer reports appear in the dashboard to examine results.
All Optimizer assignments will be stored as a separate schedule, which can ultimately be merged into the existing class schedule.
The Optimizer only loads in data from a single term and cannot check for conflicts over multiple terms. If you have overlapping terms, make sure to create “Parts of Term” within a single term to store all these sections. Learn how here.
The Optimizer is currently unable to support the scheduling of classes that require an “Online” room.
The Optimizer ignores sections that already have rooms assigned to them.
Review & Adjust Configurations
Overview | Current Academic Schedule (Sections) | Rooms & Buildings
Instructors | Standard Meeting Patterns | Section Relationships (Linked Sections)
Overview
The Optimizer pulls information from a variety of different sources to help determine the best room assignment.
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 checks against the following information:
Current Academic Schedule (Sections)
Rooms & Buildings
Instructors
Meeting Patterns
Section Relationships
Current Academic Schedule (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 to assign that particular section (without creating any conflicts or violating any predefined rules).
Meeting Patterns & Rooms Data
Preset States | Enrollment Capacity | Room Preferences
Sections That Shouldn’t be Assigned Rooms
Each Section has a “Meeting Patterns & Rooms” data attribute. The information in this data attribute is what the Optimizer will attempt to assign.
Preset States
When a section enters the Optimizer it can be in one of four preset states in regards to its meeting & room information.
The following table lists those states and outlines how these states will impact the Optimizer when it runs on those sections but, in short: If a room is already assigned before you run the Optimizer, the Optimizer will ignore that section and will not change the assignment.
Enrollment Capacity
The Optimizer uses the enrollment capacity, or maximum enrollment, attribute to determine the minimum capacity of the room that can possibly be assigned to this section via the Optimizer.
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. Please note, waitlist capacity does not impact Optimizer results.
Room Preferences
Additionally, you can assign specific room preferences to each section within the section editing modal (accessible in the Section Dashboard).
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.
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.
Sections That Shouldn’t be Assigned Rooms
You may flag certain sections which should not be assigned a room by the Optimizer.
To do so, you need to add the pre-built “Do Room Scheduling” field in the Section Template (Academic Scheduling > Settings > Templates > Section Template).
If this field is set to “No” for a given section, then the Optimizer will not assign a room to this section. If this isn’t set at all (i.e. Neither “Yes” nor “No” is selected), the default behavior is to treat that as “Yes” and for the Optimizer to assign rooms.
Selecting “TBA” within a section's room select modal does count as a room assignment for the purposes of the section Optimizer: If a section has a room assignment of “TBA”, then the Optimizer will not assign this section a room.
[Return to Top of Section / Return to Top of Page]
Rooms & Buildings
Attributes
All the rooms and buildings in Academic Scheduling are also by default brought into the Optimizer. For each room, the following attributes are used by the Optimizer.
Modifying Room Settings
PATH: Academic Scheduling > Rooms > (Click on Room Name)
Below is a sample room settings page, where all the aforementioned attributes can be modified.
[Return to Top of Section / Return to Top of Page]
Instructors
Overview
Instructor preferences factor into room assignments only if there are room preferences associated with that instructor.
Note that the Optimizer does not assign instructors; rather, when an instructor with preferences is assigned to a section that is being run through the Optimizer (for room assignment), those instructor preferences become a factor.
Instructor preferences can be collected via Preference Forms, or by directly editing the Instructor’s preferences at Academic Scheduling > Instructors (Left-Hand Nav) > (click on Instructor name) > (Pencil Icon / “Edit Preferences”).
The Optimizer does not favor or prioritize instructor preferences over section preferences or vice versa.
The Optimizer does not try to meet preferences one by one, it drives to satisfy them all at the same time.
If, ultimately, one preference is satisfied and the other is not, a preference violation will be flagged for admins to highlight what was not met. More detail on preference violations can be found below.
Instructor Preference Options
The following instructor preferences are used by the room optimizer:
Preferred Rooms
Preferred Room Features
Preferred Room Type
Preferred Room Capacity
Examples
Here are two examples of how the Optimizer uses 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.
Optimizer Priority
PATH: Academic Scheduling > Instructors > (Click on Instructor Name) > (Pencil Icon / “Edit Preferences”)
Each Instructor can also have an “Optimizer Priority”. This attribute determines how highly an Instructor’s preferences are weighted inside the Optimizer. You can set an instructor's “Optimizer Priority" at the above path (also shown below).
[Return to Top of Section / Return to Top of Page]
Standard Meeting Patterns
Overview
Standard Meeting Patterns are a set of pre-defined meeting patterns.
Standard meeting patterns can be found at Academic Scheduling > Settings > Standard Meeting Patterns.
You can learn more about setting up Standard Meeting Patterns here.
Meeting Pattern Groups
Overview
Each meeting pattern is associated with a meeting pattern group.
Groups are often 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:
Editing Meeting Pattern Groups
PATH: Academic Scheduling > Settings > Meeting Patterns > Group Info (Pencil Icon) on the Relevant 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.
[Return to Top of Section / Return to Top of Page]
Section Relationships (Linked Sections)
Overview
The Optimizer can take Section Relationships into account while making room assignments. These relationships are called “Linked Sections”. They can be set in two places:
Impact on Optimizer
The following relationships have an impact on room assignments made by the Optimizer.
[Return to Top of Section / Return to Top of Page]
Creating an Optimizer Run
PATH: Academic Scheduling > Optimizer > Section Optimizer
Getting Started
Make sure the correct scheduling term is selected.
Click “+ Optimizer Run” to get started.
Page Overview
The top of the next page will contain a progress bar that will track your progress. It captures the following steps:
General Settings – Contains all Optimizer settings.
Section Conflicts – Displays all section-level conflicts that might impact Optimizer performance.
Room Bottlenecks – Displays all potential room bottlenecks that might impact Optimizer performance.
Optimize – Contains the “Run Optimizer” button, which is intended to be clicked after all settings have been 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.
[Return to Top of Section / Return to Top of Page]
Optimizer Settings
Overview | General Settings | Advanced Settings
Overview
The Optimizer has many settings that will define the behavior of the Optimizer. The settings are divided between General and Advanced. 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 and outlined below.
General Settings
[Return to Top of Section / Return to Top of Page]
Advanced Settings
These optional settings are used to define/modify additional constraints and weights for the Optimizer.
Determining Weights
All 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 assignments will be made.
Avoid setting anything to 10, as this will likely cause the Optimizer to fail.
[Return to Top of Section / Return to Top of Page]
Section Conflicts
Overview
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 might 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.
This conflict check isn’t looking at configurations defined in Section Rules; rather, it shows all conflicts relevant to room optimization.
The Optimizer can run with conflicts, but unresolved RED conflicts will result in a lack of assignment.
Conflict Types
[Return to Top of Section / Return to Top of Page]
Resolving Section Conflicts
Click on the conflict to open the section editing modal.
Adjust settings to resolve the conflict. Some suggestions:
No maximum enrollment capacity – Input a number.
Double-booked rooms – Change the room assignment or assign the “same room” relationship (if applicable).
Save your changes.
Refresh the page.
Hit “Next”
[Return to Top of Section / Return to Top of Page]
Bottlenecks
The third Optimizer page lists all potential room bottlenecks that have been calculated in the current academic schedule.
Types of Bottlenecks
There are two types of room bottlenecks that will be detected:
No Room with the Required Capacity
This 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 Capacity
This is detected when a section requires a room with a minimum capacity, but multiple other sections require that same room at the same time.
[Return to Top of Section / Return to Top of Page]
Resolving Bottlenecks
Click on the bottleneck to review.
Adjust settings as needed to resolve the bottleneck:
Confirm/correct Enrollment Capacity for impacted sections.
Confirm/correct Room Capacity for involved rooms.
Change Section Times to a less popular time.
Save your changes.
Refresh the page.
Hit “Next” to proceed to the “Run Optimizer” page.
[Return to Top of Section / Return to Top of Page]
Running the Optimizer
Things to Keep in Mind
The Optimizer creates a copy of the section data that can be found in the Section Dashboard. 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).
Once the run is completed, the progress bar will reach 100% and you will be redirected to the Optimizer Results dashboard.
How to Do It
Click the “Optimize!” button, and the Optimizer will start immediately.
You will be shown a progress bar that tracks the progress of the run. The estimated time that is displayed will default to 119 minutes, but the optimizer can take anywhere from just a couple minutes to 24 hours to run – it all depends on the number of sections and constraints.
[Return to Top of Section / Return to Top of Page]
Optimizer Results Dashboard
Overview | Finding the Dashboard | Dashboard Contents
Results Page | Conflicts Page | Exporting Results
Overview
The Optimizer Results Dashboard is used to view the result of Optimizer assignments, reports, and conflicts – and merge the results back into your current schedule.
The dashboard is not specific to just Optimizer assignments, but all sections in the schedule.
Finding the Dashboard
If You Received an Email – Click the link in your email.
If You Stayed on the Page – Select “Click here to view the Optimizer results” and then click into the run.
If You Left the Page – Log into Coursedog; visit the Section Optimizer; and click into the run.
Dashboard Contents
The dashboard consists of the following pages:
[Return to Top of Section / Return to Top of Page]
Results Page
The results tab lists all the sections contained in the Optimizer run. You can view the results by individual sections, or grouped together in courses. However, you cannot make changes from this screen (you will need to go to the Section Dashboard to do that). You can additionally filter between:
All sections scheduled successfully by the Optimizer.
All sections not scheduled by the Optimizer.
All sections scheduled but have preference conflicts.
All sections excluded from the Optimizer.
Next to each section, there will be an icon indicating one of the following three statuses:
Checkbox – The Optimizer successfully made all room assignments (or this section was intended to be excluded from the Optimizer).
Warning – Optimizer made room assignments; however, those assignments violate some soft constraints due to preferences.
Not Scheduled – Optimizer was not able to assign 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.
[Return to Top of Section / Return to Top of Page]
Conflicts Page
The “Conflicts” tab provides an overview of all conflicts regardless of whether or not a Section Rule is on or off.
It will show:
Conflicts that resulted from Optimizer assignments and
Conflicts for sections that were excluded from the Optimizer.
The bar at the top captures key data:
Total conflicts & percent sections with conflicts.
Total preference conflicts & percent of preferences satisfied.
You can filter by conflict type via the dropdown.
Click into individual sections to learn more about the conflict.
[Return to Top of Section / Return to Top of Page]
Exporting Results
If you would like to export your results, there are three options.
Course Sections List Report
This report creates a CSV file 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 room assignments, but will also include many other section fields, and will include sections that the Optimizer was not able to make assignments for.
Room Bottleneck List
This report lists all room bottlenecks that are still present in the Optimizer output results.
Optimizer Assignments
This report only lists sections that the Optimizer made assignments to.
It only includes information on Course Code, Section Number, Times, and Rooms.
[Return to Top of Section / Return to Top of Page]
Merging Results
Overview
This merge will take only the room assignments made by the Optimizer, and push those changes into the schedule found in the Section Dashboard.
No other fields associated with the section will be changed.
To Merge Specific Sections (“Single Merge”)
Click into each section.
Select “merge section”.
To Merge All Results (“Bulk Merge”)
Select “merge all results” in the upper right-hand corner of the screen.
Note that when bulk merging all results, any filters currently being applied to the results view are ignored by the merge action. In other words, all sections currently with the status of “Scheduled Successfully” and “Scheduled With Issues” will be merged in bulk, regardless of whether or not the user is currently applying a filter like “Departments Contains Math” or has deselected “Scheduled With Issues”.
[Return to Top of Section / Return to Top of Page]
Additional Note
When optimizing combined sections, the optimizer will reference the Combined Max Enrollment (rather than the sum of all the sections).