








Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
Community
Ask the community for help and clear up your study doubts
Discover the best universities in your country according to Docsity users
Free resources
Download our free guides on studying techniques, anxiety management strategies, and thesis advice from Docsity tutors
The development of a university timetabling system using evolution strategies and simulated annealing algorithms. The system takes teacher schedules and student survey data as input and optimizes the assignment of time slots to classes based on constraints. Two types of constraints, strict and generous, are introduced to optimize the score. The document also includes sample results and algorithms for both evolution strategies and simulated annealing.
Typology: Study notes
1 / 14
This page cannot be seen from the preview
Don't miss anything!
EDS PLM Solutions Troy, MI USA Endi.wu@ugs.com
Submitted to Dr. Chan-Jin Chung, LTU/MCS Department, in partial fulfillment of the requirements for MCS 7033 Collaborative Research Project II class in Fall 2001
1. System Input Format
There are two files needed to create for scheduling. One is teacher schedule file that includes time slots, room available, and teacher’s preference for the class. The other is student survey data that includes time preferred by student for classes. The structure of two files as follows:
Teacher schedule file:
Class taught time, * means can be taught at any time, otherwise, this class can be taught at only that specific time
Rooms available at one time slot
Time slots available
Student survey file:
Class ID
Preferable Time
Student ID
2. Algorithm
Timetabling is the assignment of time slots to a set of events, subject to constraints on these assignments. The NP-complete classes and time slots that bring highest score is a constraint satisfaction problem after evaluating student preferable time. Here I introduce two algorithms with different kinds of constraints to optimize the score.
2.1 Evolutionary Algorithm, 1 plus 1 Basic algorithm is initialize one schedule, using this schedule to generate another schedule by random method, compare two schedule, higher score schedule will survive and generate next schedule until no generate can be produced. During the reproducing, a legal schedule needs to be found such that no room is expected to accommodate more than one class at a time. The constraints for this problem can be hard (strict) or generous.
2.1.1 Strict rule Strict constraints are usually constraints that physically cannot be violated. This includes events that must not overlap in time, such as: Class must be taught by the specified time appointed by professor One class taught by only one time
Algorithm
Schedule(parent)=Initialize schedule (init file )
For gen=1 to Maximum generation do Schedule(child) = generate(Schedule(parent)) While HardConstraint(Schedule(child) return ture If ( Score(Schedule(child) ) < Score(Schedule(parent)) ) Schedule(parent) = Schdule(child) End for
2.1.2 Generous rule Generous constraints are usually constraints that can be violated in certain range. Because sometime illegal schedule will be adjusted to good result
Algorithm
Schedule(parent) = Initialize schedule (init file )
For gen=1 to Maximum generation
Schedule(child)=generate(Schedule(parent))
if (GeneralConstraint(Schedule(child))
2.2.1 Strict rule
Algorithm
Initialize T
Generate random configuration X (^) old
WHILE T > T (^) min DO FOR i = 1 to Nc DO
generate new configuration, X (^) new
IF (! HighContraint(X (^) new ) ) IF (inRange) X (^) old = X (^) new ENDIF ELSE continues
ENDIF ELSE
calculate new score, E (^) new
calculate E = E (^) new – E (^) old IF E < 0 or random < prob = e - E/T^ THEN
X (^) old = X (^) new E (^) old = E (^) new END IF END FOR
reduce T END WHILE
2.2.2 Generous rule
Algorithm
Initialize T
Generate random configuration X (^) old
WHILE T > T (^) min DO FOR i = 1 to Nc DO
generate new configuration, X (^) new
IF (! HighContraint(X (^) new ) ) Break; ENDIF ELSE
calculate new score, E (^) new
calculate E = E (^) new – E (^) old IF E < 0 or random < prob = e - E/T^ THEN
X (^) old = X (^) new E (^) old = E (^) new END IF END FOR
reduce T END WHILE
3. Sample Result
Sample Result Include
Large number of classes
Medium number of classes
Small number of classes
Class Assignment using program:
C0 T C1 T Score: 20
2. EC Generous with 2 classes, 43 preferable time Result:
C0 T C1 T Score: 20
C0 T C1 T Score: 20
C0 T C1 T Score: 20
Class assignment using manual calculation
C0 C
T0 T0 6+5 = T0 T1 6+10= T0 T2 6+7= T1 T0 5+5= T1 T1 5+10= T1 T2 5+7 = T2 T0 10+5= T2 T1 10+10= T2 T2 10+7=
So result:
C0 T C1 T Maximum Score = 20
4. Summary Results 1. Evolution Strategies (ES) with 1/5 rule performs better than Simulated Annealing (SA) according to the graph result from large to medium size of classes. 2. Generous rule is approach to handle illegal schedules, which works fine with both ES and SA. 3. ES with Generous rule once gave the best result ever found before while I was testing the system. For 150 classes, it gave about 460.