# Class Scheduling Optimization for a Trade School

We are exploring ways to model, simulate, and optimize class scheduling for a trade school, focusing on addressing the complex dynamics of managing class schedules for apprentices. Below is an overview of the context, rules, and challenges involved. I am hoping for some direction to solve the puzzle described below.

Originally posted this to Mathematics Stack Overflow, but it was closed for being too unfocused. Looking for any advice on how to begin to solve a problem like this. Thanks in advance. https://math.stackexchange.com/questions/4873603/given-these-constraints-is-class-scheduling-forecasting-impossible

## Context

• We have approximately 1000 active apprentices at any time, distributed across four levels:
• Level 1: 250 apprentices
• Level 2: 250 apprentices
• Level 3: 250 apprentices
• Level 4: 250 apprentices
• New apprentices are added at irregular intervals, in varying numbers (e.g., 25 or 15).

## Rules of Apprentice Scheduling

• Apprentices can start the program at any time, allowing for continuous enrollment.
• New apprentices immediately take 1 or 2 introductory classes.

### Progressing Through the Program

• Classes are available 52 weeks of the year.
• Each apprentice must complete 4 classes each year, with classes spaced 3 months apart.
• Each class lasts one week, Monday to Friday, totaling 35 hours.
• Classes within a level can be completed in any order.
• Ideally, each class section accommodates exactly 12 students.

Apprentices advance to the next pay level/grade (1 through 4) upon meeting three criteria:

1. Passing their anniversary (12 months from initiation or last upgrade date).
2. Completing the required 4 on-level classes.
3. Meeting a minimum number of work hours. (Levels: 1=Freshman, 2=Sophomore, 3=Junior, 4=Senior)

Apprentices graduate after completing approximately 16 classes over 4 years.

## Example Curriculum

• Level 1: GC101, GC102, GC103, GC104
• Level 2: GC201, GC202, GC203, GC204
• Level 3: GC301, GC302, GC303, GC304
• Level 4: GC401, GC402, GC403, GC404

Classes can be taken in any order within a level, but apprentices should generally complete all classes at their current level before advancing.

## Scheduling Challenge

The main question is determining how many sections of each course to offer annually and scheduling each section to meet all students' progression needs while optimizing instructor allocation.

### Real-life Problem

Offering two 35-hour classes with 6 students each requires 70 instructor hours, whereas one 12-student class requires only 35 instructor hours. We aim to mitigate such inefficiencies.

Given the fluid progression of apprentices through levels, it's challenging to determine a precise count of apprentices at each level for a given year, complicating the scheduling of appropriate numbers of class sections.

## Objective

Our goal is to develop a scheduling model that accommodates the dynamic nature of apprentice enrollment and progression, ensuring efficient allocation of resources and meeting educational requirements.

• A general approach to optimization modeling looks like this. Start by identifying what decisions you have to make, and create a variable for each. Next, figure out what you are trying to optimize and express it as a function (hopefully linear) of the decision variables. After that, think about what restricts your decisions (things you have to do, things you cannot do, resources that limit you) and turn those into constraints (again, hopefully linear). The process is a bit iterative -- you might think of variables you missed while writing the objective or constraints.
– prubin
Commented Mar 2 at 23:18