200 likes | 383 Views
Using Goal Programming to Optimize an Exam Schedule. John Austin MacDonald and Christopher van Bommel. Remember Goal Programming?. No feasible solution. Treat certain constraints as goals, which may be broken. Minimize by how much goals are broken. Three main methods: Weighted Preemptive
E N D
Using Goal Programming to Optimize an Exam Schedule John Austin MacDonald and Christopher van Bommel
Remember Goal Programming? • No feasible solution. • Treat certain constraints as goals, which may be broken. • Minimize by how much goals are broken. • Three main methods: • Weighted • Preemptive • Minimax
So we were thinking… • We’ve all heard about terrible exam schedules at this university. • How could an exam scheduler be set up, and what improvements could be made? • Could goal programming be used?
NO! Come on guys, there’s obviously a way, or it wouldn’t be the title!
Possible Constraints for an Exam Schedule • Maximum length of the exam period. • Maximum number of allowed conflicts. • Maximum number of exams allowed consecutively for a student. • Maximum length of a student exam schedule. • Certain exams must be held at the same time, or cannot be held at the same time. • Maximum number of exams held at the same time (physical constraints).
Why Goal Programming? • Meeting all of those constraints is next to impossible. • We can use goal programming to assign a penalty to not meeting each of the following goals, and minimize the total penalty.
Wait, why Weighted Goal Programming? • Preemptive will ignore certain constraints completely once the first couple are minimized. • Goals are not comparable to be able to use Minimax. • Weighted allows a trade-off of meeting certain goals.
So, what are the Weights? • Subjective, someone has to decide, someone else will complain no matter what! • Test using small cases to determine effects of different weights. • Or just jump right in and blame the computer…
So, how do we set up the problem? • A constant binary student/course matrix is set up to determine what courses each student is taking. • A binary course/time decision matrix is set up to determine which exam is scheduled during what period. • The sum of each row is one, that is, each exam is scheduled once. • These matrices are multiplied to determine the student/time matrix, which identifies when each students write.
Goal: Minimize Length of Exam Schedule • For each day, the number of exams is found. • A binary variable is set up that is forced to one if at least one exam is on that day. • This value is multiplied by the day number, and the number of days must be at least that number. • This calculates the number of days.
Minimize Conflicts, Consecutives • Determine the number of exams for each student in each desired length period with a sum of columns (at once, two days, three days, etc.). • Set up a binary value for each student/period, which is forced to one if the desired number in each period is exceeded. • The sum of each of the binary variables determines the total number exceeded.
Minimize Length of Student Schedule • The student/time matrix is duplicated as a binary matrix, whose members are forced to one if a student has at least one exam at that time. • This is multiplied by the day index matrix, and the maximum value in each row is the day of the student’s last exam. • Each cell is also multiplied by the day index, plus DAYS+1 times one minus the value, and the smallest value is the student’s first exam. • Subtract these two numbers, and add one to find the length.
Optimization Function • We multiply each of the values found by the associated weight of the goal, and minimize their sum. • Cue Excel file!
Certain Exams at the Same Time • Simple, for each day, whether that exam is held is equal to whether the other exams are held.
Certain Exams not at the Same Time • The sum of each of their time variables must be less than or equal to one.
Maximum Number of Exams at Once • The sum of the number of exams in each time must be less than or equal to the maximum.
Extensions • Can be modified for use in general scheduling problems.
Feasibility with Excel / OpenSolver • Must precisely determine decision variables and constraints. • Must set up, for the most part, cell by cell. • For this reason, difficult to change. • Too slow – our small example takes 15 minutes to solve.