Modeling Optimizer Simulations in X25 Analytics

X25 Analytics uses a version of the Schedule25 Optimizer algorithm to model class placement in hypothetical scenarios. You can use this feature to simulate the effects of changes to your classes or classrooms, such as:

  • Moving all classes to a standardized schedule of time blocks
  • Decreasing the capacity of all classrooms in a single building by 20%
  • A 10% enrollment growth in one department and a 10% decline in another
  • Remodeling a building to meet ADA requirements
  • Giving a higher placement priority to classes above a certain size
Prepare Organization Partition Preferences First!

Modeling works on the same principles as running the Optimizer in X25 Analytics, so it uses the same organization partition preferences configured there. For best results, prepare your partition preferences before creating a snapshot in X25 Analytics. 

Models, Simulations, and Runs

Each instance of Optimizer modeling is called a "simulation" because it is made up of one or more Optimizer runs using data for hypothetical purposes only, not for use in production.

Image: An Optimizer simulation with three runs. 

Simulation Settings

At the top of a modeling simulation are four options that affect how each of the runs behaves:

  • Use Expected Headcount: If selected, placements will be made based on sections' expected headcounts rather than the number of registered students.
  • Sum Cross-Listed: Bound events which overlap (typically representing cross-listed sections) will have their headcounts summed together for the purposes of finding a room.
  • Use Layout: If selected, location capacity will be calculated using the default layout rather than the maximum capacity.
  • Ignore Blackouts: Allows placements to be made during blackout days if there are no other conflicts.

Run Settings

Each Optimizer run in a simulation has two parts, which you can see by expanding the Settings link in the lower right of the run details:

  • Event and location lists - These are subsets of the total event and location data in the snapshot. They serve the same role as event and location searches do in the Schedule25 Optimizer, except you can select multiple lists in a single run. The algorithm will only look for a room for classes within the selected event list(s), and only within the selected location list(s). You can also make changes – "transformations" –  to your event and location list data to test the effects of these changes on placement without altering snapshot data (see Optimizer Simulation Transformations).
  • Optimizer settings 
    • Minimum Fill Ratio: This value indicates the minimum fill ratio required for the Optimizer to place a class in a location. For example, if you set the value to 0.4 (40%), a class would have to have a minimum headcount of 40 before the Optimizer would place it in a location with a capacity of 100. If a location has its own fill ratio, that number overrides the default specified here.
    • Default Headcount: If a section has no headcount data, this value will be used instead so that the Optimizer doesn't try to find a room for 0 students.

    • Time Padding: This is the number of minutes (if any) you want the Optimizer to add internally to the finish time of each class when making placements.

Each simulation can contain as many Optimizer runs as you want. Each run must have its own event list(s), room list(s), and Optimizer settings. (Multiple runs can use the same lists.) When the simulation is performed, each of its runs is performed in sequential order. All placements from Run 1 are accepted before moving on to Run 2, and so on.

Modeling Results

After each simulation run, the displayed graphic shows the placement results of that run in these categories:

  • Placed - The number of classes placed by the Optimizer.
  • Not placed - The number of classes not placed by the Optimizer because of competition for space with classes that were placed.
  • Impossible - The number of classes that due to headcount restrictions or feature/partition requirements could never be placed by the Optimizer. 
  • Remaining - The number of classes that were not part of the run's event list(s) but are present in other runs in the simulation. Including these classes in the run results makes it easier to compare the results of multiple simulations.

The results at the bottom of the page represent the final status of the entire simulation (all runs) after the last run is performed. It tells you how many classes needed a room and how many were preassigned, and of those needing a room how many were placed, not placed, or impossible to place. If a class was part of an event list included in multiple runs, it is only counted once in these totals, using the result from the most recent run. For example, if a class was Impossible to Place during Run 1 and Not Placed in Run 2, it is counted in the Not Placed total.

Multiple modeling runsImage: Each step within each simulation can place courses.

When running multiple simulations (chaining), you can see what was placed in each step by looking for the simulation column after generating a list table.

Generated modeling listImage: The last column in the generated list table shows which simulation an item was placed.

Running an Optimizer Simulation

1. Create Event and Room Lists

2. Add a Simulation Run

  • Click Model on the left sidebar, then click Add simulation run +.
  • Select Use Expected Headcount if you want the Optimizer to use the expected headcount of each class in the placement process. If left unselected, the Optimizer will use the defined default enrollment for all classes.
  • Select Sum Cross-Listed if you want the enrollments of cross-listed classes to be summed for the Optimizer placement process. If left unselected, the Optimizer will treat the enrollment of each class in a cross-listed group separately for placement purposes.

3. Configure Your Settings

  • Click the Settings down arrow.  
  • Select the event list(s) and location list(s) you want to be used for this run.
  • Change the Optimizer settings as needed for this run. See Optimizer settings above.
  • Repeat steps 5-7 as needed to add more runs to the simulation.

4. Run the Simulation and View the Results

  • Click Simulate above to run the simulation.
  • View the summary of the results below.
  • Optimizer results can be downloaded as a spreadsheet or converted into a snapshot for further analysis.

Further Analyzing Your Modeling Results

Image: Optimizer results and analysis options. 

Once you have completed a simulation, you can explore its results in more detail in two ways. Both methods reflect all the simulation's transformations and new placements.

  • Click Generate Snapshot to make a new snapshot that reflects how the current snapshot was altered by your modeling. The entire snapshot is included, not just the events that were part of the Optimizer lists.
  • Click Generate List to see the new snapshot in a table format, similar to the Table page of a snapshot with a few exceptions:
    • The Outcome column indicates whether the Optimizer placed a class.
    • The Optimized box (which is checked by default) limits the view to just the results that were part of the Optimizer lists.

When viewing a generated list, you may download these results as a CSV file (openable in Excel) by clicking the Export button.