Coursedog

Submit a Ticket My Tickets
Welcome
Login  Sign up

OPTIMIZER: Section Optimizer FAQs & Troubleshooting

Table of Contents

FAQs
Troubleshooting
Related Articles

 

FAQs

Bottlenecks | Conflicts | Departments | Double-Booked Rooms | Merges
Miscellaneous | Order of Operations
 | Rule Exceptions

Bottlenecks

Should room bottlenecks take into account the start and end date of the sections, or is it only taking into account the day/time of the meeting pattern?

Bottlenecks do not recognize the start and end dates of a section, but the optimizer will. In other words, if X room is booked for half of the term on Wednesday from 1-2pm, the optimizer will acknowledge it is available for the other half of the term on Wednesday from 1-2pm and be able to make an assignment even if a bottleneck was flagged. 

 

Conflicts

Do pre-existing conflicts impact optimization of classes without a room assignment?

Yes. Pre-assignment with double bookings breaks a hard constraint in the optimizer (the hard constraint being each room is only being used once during a specific time). While there are workarounds, ultimately it makes it much harder for the optimizer to function correctly and will likely slow it down and potentially cause failures. Our suggestion is to make sure section relationships are built to allow for double bookings in the schedule.

 

Departments

How are departments in the department dropdown ordered in the Optimizer?

The departments are ordered according to Department ID rather than department name. 

 

Double-Booked Rooms

Can you run the Optimizer with double-booked rooms? 

The Optimizer will not double book a room unless you have properly created a linked relationship between the sections in question. If you must run the Optimizer with double-booked rooms but cannot create a relationship between the sections first, please contact your Coursedog team before running the Optimizer.

 

Can I set a hard constraint so the Optimizer respects existing section relationships and double books rooms when necessary? 

The Optimizer treats relationships as a “preference” rather than a hard constraint, in which case the Optimizer might still assign linked sections to different rooms. You can change this from a “preference” to a “hard constraint” by increasing the weight under Optimizer > General Settings > Advanced Settings. Keep in mind that hard constraints make the Optimizer more likely to fail.

 

Merges

Will the room optimizer trigger a real-time merge? 

We do not support real-time SIS merges following any Section Optimizer merges back to Scheduling. Any changes made through the optimizer will be handled in the nightly merge.


Miscellaneous

How long does the Optimizer take to complete?

The Optimizer run time depends on a variety of factors such as the amount of sections and constraints (Optimizer settings, Room “Allowed Sections”, etc.). It's possible that the same number of sections could vary in Optimizer runtime depending on these different constraints imposed. As a general rule of thumb, the Optimizer should complete within 24 hours.

 

Order of Operations

What happens if a user changes the schedule while the Optimizer is running? 

Their results will stick unless you decide to merge the Optimizer results back into the schedule. In that case, changes the user made will be overwritten by the Optimizer.

 

Rule Exceptions

When we create a section rule exception, are those exceptions taken into account for room assignment by the Optimizer? For example, if the Double Booked Room rule has an exception for spring break sections, would the Optimizer double book spring break sections?  

Section rule exceptions are not taken into account by the Optimizer. In this example, the Optimizer would still avoid double booking rooms.

 

Troubleshooting

Optimizer Fails to Run | Section Flagged as “Infeasible” | Section Flagged as “Not Scheduled”
Room Cannot Be Assigned | 
Scheduled with Issues Due to a Preferred Building Conflict

Optimizer Fails to Run

General Solution

If the optimizer fails to run, look into the following potential issues and then correct them. 

  1. Do all sections have a max enrollment set?

  2. Are there any double-booked rooms?

  3. Do sections have meeting patterns?

  4. Is the field “optimize rooms” set to “yes” in the sections themselves?

  5. Are relationships set up correctly?

  6. Are there enough allowed rooms with “exclude from optimizer” set to “No”?

  7. Check your Optimizer Run Settings:

    1. If there are any advanced setting weights set to 10, that is a hard constraint that can cause the optimizer to fail.

    2. Are there any filters on the run? Should “And” be “Or” instead?

 

If None of the Above Solutions Worked

You can also try: 

  • Removing all filters.

  • Removing all advanced weight settings.

  • Run the Optimizer in staging; remove one or two of the relationships; and then run the optimizer again.

 

If none of the above solutions work, please submit a support ticket.

 

Section Flagged as “Infeasible”

This means there is no possible solution given the constraints. To resolve, relax as many constraints as possible. Options to consider:

  • Lower the weight on any “Advanced Settings” set to 10.

  • Change maximum enrollment values for sections, if possible.

  • Change the Minimum Seat Utilization value, if possible.

  • Run the Optimizer in batches, with only a few sections at a time.

  • If all else fails, exclude linked sections from the Optimizer run.

 

Section Flagged as “Not Scheduled”

“Not scheduled” sections tend align with the rooms identified as bottlenecks prior to running the optimizer and typically have one of the following issues: 

 

  • There are no rooms left with a high enough capacity to fit the enrollment capacity of the section.

  • Room capacity is far greater than the section capacity and violates the seat utilization ratio configured in Optimizer settings.

  • The section has an enrollment capacity of “blank” or “0”.

 

You should assign rooms/times manually for these sections. Consider changing times if that helps. 

 

Room Cannot Be Assigned 

If a section that seems to have no room assignment in Academic Scheduling was not assigned a room by the Optimizer, you should: 

  1. Confirm that the section truly has no room assigned on the backend (i.e. rule out "bad data"). You can reach out to our Support team for assistance confirming this. If a room is assigned on the backend, but the room does not exist in Academic Scheduling, the Optimizer will NOT assign this section a room, since an assignment already exists. In Coursedog, you will see these sections display “N/A” for the room assignment in the section's locked view (if the edit buttons are not enabled), as displayed below.

  2. Ensure your SIS uses Max Enrollment. Some SISs, like Jenzabar EX, use Course Capacity instead; reach out to your Customer Success rep for guidance; they might need to submit a wiring ticket with integrations engineering so that the maxEnrollment is parallel to courseCapacity or make action that that IF courseCapacity = X then maxEnrollment = X.

Scheduled with Issues Due to a Preferred Building Conflict

If the Optimizer results are flagging that a given section's building preferences are not being met in instances where the section does not have a “Preferred Buildings” field value specified – or you see the conflict even when the Optimizer seems to have assigned the section a room in the correct Preferred Buildings – this may be due to your Section Template configuration history. If your institution transitioned from using the single-select “Preferred Building” field (which has since been deprecated) to utilizing the multi-select “Preferred Buildings” field, the old values stored for “Preferred Building” will still be present on the backend and inform our algorithm even if the field has been removed from the Section Template. If this is occurring, you can clear the values for “Preferred Building” (deprecated field) by running a Sections merge where “Preferred Building” is set to have a Default Source of Truth of “Always Institution”. Assuming this field is not mapped in the integration, it will be cleared on the backend through this process.

 

Related Articles

Did you find it helpful? Yes No

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