Automatic Time Table Management System: A Project Report ON
Automatic Time Table Management System: A Project Report ON
PROJECT REPORT
ON
SUBMITTED BY
ANKIT KUMAR (E-9464/16)
DEEPAK KUMAR MAURYA (E-9468/16)
SUMIT KUMAR (E-9480/16)
RAJAN SINGH YADAV (E-9478/16)
ASHUTOSH RAJ (E-9466/16)
SUBMITTED TO
MAHAMAYA COLLEGE OF AGRICULTURAL ENGINEERING
&
TECHNOLOGY
AKBARPUR, AMBEDKARNAGER (U.P.) 224122
A.N.D. UNIVERSITY OF AGRICULTURE &
TECHNOLOGY KUMARGANJ, AYODHYA
JUNE,2020
CERTIFICATE-l
This is to certify that the project report entitled “ Time Table Management System ”
submitted in the partial fulfillment for the award of degree of “Bachelor of Technology in
(Computer Science and Engineering)” to the Acharya Narendra Deva University of
Agriculture and Technology, Kumarganj, Ayodhya is a bonafide work carried out by
Ankit Kumar (E9464/16), Rajan Singh Yadav (E-9478/16), Deepak Kumar Maurya
(E-9468/16), Sumit Kumar (E-9480/16), Ashutosh Raj (E-9466/16), under my
supervision and guidance and the result embodied in this report have not been submitted to
other University or Institute for the award of any degree of diploma.
This assistance and help rendered during the course of investigation have been fully
acknowledged.
Advisor June,2020
ii
CERTIFICATE-II
This is to certify that the project entitled “Time Table Management System” submitted by
Ankit Kumar (E-9464/16), Rajan Singh Yadav (E-9478/16), Deepak Kumar Morya (E-
9468/16), Sumit Kumar (E-9480/16), Ashutosh Raj (E-9466/16), to the Acharya Narendra
Deva University of Agricultural Engineering and Technology, Kumarganj, Ayodhya in the
partial fulfillment for the award of degree of “Bachelor of Technology(Computer Science &
Engineering)” has been approved by the advisory committee and examiner after an oral
examination.
Examiner
Advisory Committee
iii
ACKNOWLEDGEMENT
The success and final outcome of this project required a lot of guidance and assistance from
many people and we are extremely privileged to have the opportunity to thank them for
completion of our project.
We thank Er. Ritika Yaduvanshi, our supervisor for providing us an opportunity to do the
project work in “Time table management system” and giving us all support and guidance in
spite of his busy schedule.
We owe our deep gratitude to our project supervisor and guide Er. Ritika Yaduvanshi, who
took keen interest in our project work and guided us all along,
We would also like to give our sincere gratitude to the Dr. R.K. Mehta for his support and
presence in times of need.
We would also like to give our sincere gratitude to the Dr. S.K. Pandey for his support and
presence in times of need.
We are thankful and fortunate enough to get constant encouragement, support and guidance
from all teachers of CSE Department for their constant help and support at any time
throughout the day. Also, we would like to extend our sincere esteems to all staff in laboratory
for their timely support.
iv
ABSTRACT
Scheduling course timetables for a large array of courses is a very complex problem which
often has to be solved manually by the center staff even though results are not always fully
optimal. Timetabling being a highly constrained combinatorial problem, this work attempts to
put into play the effectiveness of evolutionary techniques based on Darwin’s theories to solve
the timetabling problem if not fully optimal but near optimal. Genetic Algorithm is a popular
meta-heuristic that has been successfully applied to many hard combinatorial optimization
problems which includes timetabling and scheduling problems. In this work, the course sets,
halls and time allocations are represented by a multidimensional array on which a local search
is performed and a combination of the direct representation of the timetable with heuristic
crossover is made to ensure that fundamental constraints are not violated. Finally, the genetic
algorithm was applied in the development of a viable timetabling system which was tested to
demonstrate the variety of possible timetables that can be generated based on user specified
constraint and requirements.
v
TABLES OF CONTENTS
PAGE No.
vi
LIST OF FIGURES
Sr. No. Particulars Page No.
Figure- 3.1 Use Case Diagram 16
Figure- 3.2 Class Diagram 18
Figure- 3.3 Sequence Diagram 20
Figure- 3.4 Activity Diagram 22
Figure- 3.5 State Diagram 24
Figure- 3.6 Collaboration Diagram 25
Figure- 3.7 Component Diagram 26
Figure- 3.8 Hall File Processing Diagram 27
Figure- 3.9 Program File Processing Diagram 28
Figure- 3.10 Building File Processing Diagram 28
Figure- 3.11 Lecture File Processing Diagram 29
Figure- 3.12 Department File Processing Diagram 30
Figure- 3.13 Course File Processing Diagram 31
Figure- 3.14 Diagram of Program trees used in genetic programming 36
Figure- 3.15 Diagram to show the effect of mutation in a population 38
Figure- 3.16 Diagram to show the effect single-point crossover in a population 38
Figure- 3.17 Diagram depicting the Hybrid Genetic Algorithm 46
vii
LIST OF TABLES
Table No. Table Name Page No.
Table 3.1 Hall Table 27
Table 3.2 Programs Table 28
Table 3.3 Buildings Table 28
Table 3.4 Lecturers Table 29
Table 3.5 Buildings Table 30
Table 3.6 Buildings Table 30
viii
CHAPTER 1
INTRODUCTION
1.1. BACKGROUND STATEMENT
Timetabling concerns all activities with regard to making a timetable that must be subjective
to different constraints. According to Collins Concise Dictionary (4th Edition) “a timetable is
a table of events arranged according to the time when they take place.”
A critical factor in running a university or essentially an academic environment is the need for
a well-planned and clash-free timetable. Back in the times when technology was not in wide
use, academic timetables were manually created by the educational center staff.
Every year, MCAET face the rigorous task of drawing up timetables that satisfies the various
courses and their respective examinations being offered by the different department. The
difficulty is due to the great complexity of the construction of timetables for lectures and
exams, due to the scheduling size of the lectures and examinations periods and the high
number of constraints and criteria of allocation, usually circumvented with the use of little
strict heuristics, based on solutions from previous years.
A timetable management system is designed and created to handle as much course data as fed
while ensuring the avoidance of redundancy. An educational timetable must meet a number
of requirements and should satisfy the desires of all entities involved simultaneously as well
as possible. The timing of events must be such that nobody has more than one event at the
same time.
The proposed timetabling system is designed to handle events of course lectures offered at
MCAET.
Based on the above event, the system would have only one module which is the Course
Lecture Timetable Module.
1.2. PROBLEMSTATEMENT
The systems available currently can build or generate a set of timetables, but still have issues
with generating a clash-free and complete timetable. The tedious tasks of data introduction
and revision of usually incomplete solutions are the bottleneck in these cases. MCAET (most
educational institutions) have resorted to manual generation of their timetables which
according to statistics takes over a month to get completed and optimal. Even at the optimal
1
stage of the manually generated timetable, there are still a few clashes and it is the lecturer
that takes a clashing course that works out the logistics of the course so as to avoid the clash.
1.3. OBJECTIVE
The literature on and implementation of educational timetabling problems is quite scattered.
Different research papers that have been brought out on timetabling may refer to the same
type of institution but they mostly deal with different kinds of assignments, i.e., decisions like
the timing of events, sectioning students into groups, or assigning events to locations.
Moreover, each institution has its own characteristics which are reflected in the problem
definition. Yet, there have been no leveling grounds for developing a system that can work
for most of these institutions.
The aim of this work is the generation of course schedules while demonstrating the possibility
of building these schedules automatically through the use of computers in such a way that
they are optimal and complete with little or no redundancy through the development of a
viable lecture timetabling software.
The primary objective is to be able to optimize the algorithm used in today’s timetable
systems to generate the best of timetabling data with fewer or no clashes.
The secondary objective is to expand the scope of timetable automation systems by making it
generic thereby bringing about uniformity in the creation of timetables as it applies to
different universities or educational institutions i.e. will be able to generate timetables that fit
the requirements of any academic institution.
2
As a result of the large data input a timetable management system is supposed to handle, a
linear method or algorithm cannot be employed to handle such validation and generation,
hence the usage of a heuristic method. The heuristic method to be used in this study is the
genetic algorithm. The genetic algorithm is one that seeks to find the most optimal solutions
where the search space is great and conventional methods is inefficient.; it works on a basis
of the Darwinian evolution theory.
1.7. LIMITATIONS
Below are some of the limitations that may hinder the functionalities of the system:
• Unserious collaborative work from staffs in the various departments.
• Incomplete data from data collaborators.
3
• Wrong data input by technical user: the system will only work with data supplied;
hence wrong data input might have to be edited manually.
• Wrong constraints specification.
• Low system memory capacity.
4
CHAPTER 2
REVIEW OF RELEVANT
LITERATURE
2.1. INTRODUCTION
A Timetable or schedule is an organized list, usually set out in tabular form, providing
information about a series of arranged events: in particular, the time at which it is planned
these events will take place. They are applicable to any institution where activities have to be
carried out by various individuals in a specified time frame. From the time schools became
organized environments, timetables have been the framework for all school’s activities. As a
result, schools have devoted time, energy and human capital to the implementation of nearly
optimal timetables which must be able to satisfy all requirements constraints as specified by
participating entities.
The class lecture timetabling problem is a typical scheduling problem that appears to be a
tedious job in MCAET twice a year. The problem involves the scheduling of classes, students,
teachers and rooms at a fixed number of time-slots, subject to a certain number of constraints.
An effective timetable is crucial for the satisfaction of educational requirements and the
efficient utilization of human and space resources, which make it an optimization problem.
Traditionally, the problem is solved manually by trial and hit method, where a valid solution
is not guaranteed. Even if a valid solution is found, it is likely to miss far better solutions.
These uncertainties have motivated for the scientific study of the problem, and to develop an
automated solution technique for it. The problem is being studied for last more than four
decades, but a general solution technique for it is yet to be formulated.
The automated timetabling and scheduling is one of the hardest problem areas already proven
to be NP-Complete and it is worthy of note is that as educational institutions are challenged to
grow in number and complexity, their resources and events are becoming harder to schedule,
hence the choice of this project topic which entails investigating the performance of Genetic
Algorithm on the optimality of timetabling problems under predefined constraints.
5
be solved in view of the availability of more powerful computing facilities and advancement
of information technology.
The problem was first studied by Gotlieb (1962), who formulated a class-teacher timetabling
problem by considering that each lecture contained one group of students, one teacher, and
any number of times which could be chosen freely. Since then the problem is being
continuously studied using different methods under different conditions. Initially it was
mostly applied to schools. Since the problem in schools is relatively simple because of their
simple class structures, classical methods, such as linear or integer programming approaches
could be used easily. However, the gradual consideration of the cases of higher secondary
schools and universities, which contain different types of complicated class-structures, is
increasing the complexity of the problem. As a result, classical methods have been found
inadequate to handle the problem, particularly the huge number of integer and/or real
variables, discrete search space and multiple objective functions.
This inadequacy of classical methods has drawn the attention of the researchers towards the
heuristic-based non-classical techniques. Worth mentioning non-classical techniques that are
being applied to the problem are genetic algorithms, neural network and tabular search
algorithm. However, compared to other non-classical methods, the widely used are the
genetic/evolutionary algorithms (GAs/EAs). The reason might be their successful
implementation in a wider range of applications. Once the objectives and constraints are
defined, EAs appear to offer the ultimate free lunch scenario of good solutions by evolving
without a problem solving strategy.
Since 1995, a large amount of timetabling research has been presented in the series of
international conferences on Practice and Theory of Automated Timetabling (PATAT). Papers
on this research have been published in conference proceedings, see e.g., (Burke & Carter,
1997) and (Burke & Erben, 2000), and three volumes of selected papers in the Lecture
Notes in Computer Science series, see (Burke & Ross, 1996), (Burke & Carter, 1998), and
(Burke &Erben, 2001). Additionally, there is a EURO working group on automated timetabling
(EURO-WATT) which meets once a year regularly sends out a digest via e-mail, and maintains
a website with relevant information on timetabling problems, e.g., a bibliography and several
benchmarks.
6
Fang (1994), in his doctoral thesis, investigates the use of genetic algorithms to solve a group
of timetabling problems. He presents a framework for the utilization of genetic algorithms in
solving of timetabling problems in the context of learning institutions. This framework has
the following important points, which give you considerable flexibility: a declaration of the
specific constraints of the problem and use of a function for evaluation of the solutions,
advising the use of a genetic algorithm, since it is independent of the problem, for its
resolution.
Gröbner (1997), presents an approach to generalize all the timetabling problems, describing
the basic structure of this problem. Gröbner proposes a generic language that can be used to
describe timetabling problems and its constraints.
Chan (1997), discusses the implementation of two genetic algorithms used to solve
classteacher timetabling problem for small schools.
Oliveira (Oliveira and Reis, 2000) presents a language for representation of the timetabling
problem, the UniLang intends to be a standard suitable as input language for any timetabling
system. It enables a clear and natural representation of data, constraints, quality measures and
solutions for different timetabling (as well as related) problems, such as school timetabling,
university timetabling and examination scheduling.
Eley (2006), in PATAT'06 presents a solution to the exam timetable problem, formulating it
as a problem of combinatorial optimization, using algorithms Ant, to solve.
Analyzing the results obtained by the various works published, we can say what the automatic
generation of schedules is capable of achieving. Some works show that when compared with
the schedules manuals in institutions of learning real, the times obtained by the algorithms for
solving the class-teacher timetabling problem are of better quality, since, uses some function
of evaluation.
7
There are two main problems in timetabling. The first one is related to the combinatorial
nature of the problems, where it is difficult to find an optimal solution because it is
impossible to enumerate all nodes in such a large search space. The second one is related to
the dynamic nature of the problems where variables and constraints are changing in
accordance with the development of MCAET. Therefore, a timetabling system must be
flexible, adaptable and portable, otherwise the users will not use the system optimally or even
as decision aids such as for storing, retrieving, and printing timetables, when the timetable
planning decisions are made manually. In addition, MCAET has adopted a semester system
which gives freedom to students to choose subjects provided that all pre-requisites are
satisfied. This situation further complicates the construction of a timetable.
Various techniques have been proposed to solve timetabling problems. These techniques are
neural networks, heuristics, graph coloring, integer programming, genetic algorithms,
knowledge-based, and constraint logic programming. The models formulated by some of
these techniques cannot be easily reformulated or customized to support changes, hence the
selection of the genetic algorithm for the implementation of this project.
8
some more desirable than others) is called search space (also state space). Each point in the
search space represents one feasible solution which can be "marked" by its value or fitness for
the problem. The solution is usually one point in the search space.
As a result of comparative fact finding and exhaustive study of existing systems, Genetic
Algorithms have been the most prominently used in generating near-optimal solutions to
timetabling problems, hence its usage in the implementation of this project.
The next important development in the field came in 1966, when L.J. Fogel, A.J. Owens and
M.J. Walsh introduced in America a technique they called evolutionary programming. In this
method, candidate solutions to problems were represented as simple finite-state machines;
like Rechenberg's evolution strategy, their algorithm worked by randomly mutating one of
these simulated machines and keeping the better of the two (Mitchell, 1996; Goldberg, 1989).
Also like evolution strategies, a broader formulation of the evolutionary programming
technique is still an area of ongoing research today. However, what was still lacking in both
these methodologies was recognition of the importance of crossover.
9
As early as 1962, John Holland's work on adaptive systems laid the foundation for later
developments; most notably, Holland was also the first to explicitly propose crossover and
other recombination operators. However, the seminal work in the field of genetic algorithms
came in 1975, with the publication of the book Adaptation in Natural and Artificial Systems.
Building on earlier research and papers both by Holland himself and by colleagues at the
University of Michigan, this book was the first to systematically and rigorously present the
concept of adaptive digital systems using mutation, selection and crossover, simulating
processes of biological evolution, as a problem-solving strategy. The book also attempted to
put genetic algorithms on a firm theoretical footing by introducing the notion of schemata.
That same year, Kenneth De Jong's important dissertation established the potential of GAs by
showing that they could perform well on a wide variety of test functions, including noisy,
discontinuous, and multimodal search landscapes).
10
CHAPTER 3
MATERIALS AND METHODS
3.1. INTRODUCTION
System Analysis is the study of a business problem domain to recommend improvements and
specify the business requirements and priorities for the solution. It involves the analyzing and
understanding a problem, then identifying alternative solutions, choosing the best course of
action and then designing the chosen solution.
It involves determining how existing systems work and the problems associated with existing
systems. It is worthy to note that before a new system can be designed, it is necessary to study
the system that is to be improved upon or replaced, if there is any.
These courses are usually taught by varied lecturers in different departments who may also
wish to specify some timing constraints on their courses. Given all the courses and course
details, the academic staff is charged with the responsibility of creating a near optimal
timetable which would serve as a guide for academic activities in the university.
The traditional manual timetabling system is time-consuming, resource-intensive, involves
many steps and requires re-processing the same data several times.
13
UML offers ten different diagrams to model a system. These diagrams are listed below:
• Use case diagram
• Class diagram
• Object diagram
• Sequence diagram
• Collaboration diagram
• State diagram
• Activity diagram
• Component diagram
• Deployment diagram
• Package Diagram
In this project, the Use case diagram, Class diagram, Sequence diagram, Activity diagram,
Collaboration diagram, Component diagram and State diagram will be used for system
modelling.
14
• Random Generation and Course Allocations
• Write To External File
15
Input Courses
«uses»
«uses»
User
«uses»
Input Departments
«uses»
Input Programs
Input Halls
Specify Constraints
«uses»
Crossover
Course
«uses» Allocaton
«uses»
Random Generaton&
Course Allocaton
«extends»
Write To External
File
Figure 3.1.: Use Case Diagram to show the interaction between the timetabling
system and user.
16
3.5.1.2. Class Diagram
A class diagram is an organization of related objects. It gives an overview of a system by
showing its classes and the relationships among them. Class diagrams only display what
interacts but not what happens during the interaction hence they are static diagrams.
CLASSES
• Lecturers
• Buildings
• Halls
• Programs
• Courses
• Levels
• Allocations
• Front End Staff
• Generator Module
• File Writer
17
Figure 3.2.: Class Diagram to show the relationships between the different classes associated
with the system
18
3.5.1.3. Sequence Diagram
A sequence graphically depicts how objects interact with each other via messages in the
execution of a use case or operation. They illustrate how messages are sent and received
between objects and the sequence of message transfer. It also details how operations are
carried out according to the time of operation.
CLASSES
• Front End Staff
• Interface
• Course Allocation
• Generator Module
• Timetable Writer
MESSAGES
• Invoke
• Specify Input
• Input Buildings
• Input Halls
• Input Departments
• Input Programs
• Input Lecturers
• Input Courses
• Specify Timing Constraints
• Specify Other Constraints
• Add Input
• Set. allocations
• Generate Timetable
• Send Generated Timetable
• Print Out Generated Timetable
19
Front End Staf Interface
Invoke
Specify Input
Input Buildings
Input Halls
Input Department
Input Programs Course Allocaton Generator Module
Input Lecturers
Input Courses
Specify Timing Constraints
Specify Other Constraints
Add Input
Set Allocatons
Generate
Timetable
Timetable Writer
Send Generated
Timetable
Figure 3.3.: Sequence Diagram to show how the different objects interact during
the execution of the system
20
3.5.1.4. Activity Diagram
Activity diagrams graphically depict the sequential flow of activities of either a business
process or a use case. They can also be used to model actions that will be performed when an
operation is executed as well as the results of those actions. They focus on the flow of
activities involved in a single process. The activity diagram shows the how those activities
depend on one another.
SWIMLANES
• Front End User
• Interface
• Timetable Generator Module
• Writer
STATES
• Specify Input
• Specify Constraints
• Collate Input
• Collate Constraints
• Generate Timetable
• Verify Input and Constraints
• Output Timetable to File
GUARD EXPRESSIONS
• Constraints not Satisfied
• Constraints Satisfied
21
Interface
Front End User
Timetable Generator Mo Writer
dule
Generate Timetable
[Constraints Satsfied]
[Constraints Not Satsfied]
Figure 3.4.: Activity Diagram to model the actions and the output of those actions when
an operation is carried out in the system
22
3.5.1.5 State Diagram
State diagrams are used to model the dynamic behavior of a particular object. They illustrate
an object’s life cycle i.e. the various states that an object can assume and the events that cause
the object to move from one state to another.
STATES
• Input
• Randomize
• Crossed
• Mutated
• Verify
• Group
• Output
TRANSITIONS
• User Enters Inputs & Constraints
• Randomize Input
• Verify Input with Constraints
• Crossover Allocations
• Verify Allocations
• Mutate Allocations
• Confirm Allocations
• Write Allocations to File
23
[Mutateocato]
Mutat
[Verifyocato]
[User Enters &Constrt ]
[Write ons o ]
Alocate Outp
Figure 3.5.: State Diagram to depict the different states of the system during its execution
24
3.5.1.6. Collaboration Diagram
Collaboration diagrams are similar to sequence diagram but do not focus on the timing or
sequence of messages. Instead they present the interaction between objects in a network format.
2: Invoke Course
1: Start Interface Randomizer
<<Boundary>> <<Control>>
<<Control>>
<<Control>> <<Control>>
Writer Module
Mutaton Module Crossover Module
3: Verify
2.2: Mutate Course
Allocatons
Allocatons
3: Verify
Allocatons
<<Control>>
<<Entty>>
File
Figure 3.6.: Collaboration Diagram showing the interaction between the objects in the system
Figure 3.7.: Component Diagram to show the connection between the various software
modules in the system
• Halls File: contains the name of the Halls/Rooms that are used in the course
allocations within the program. See Table 3.1.
26
Table 3.1.: Hall Table
This table stores the information about each hall used in the timetable allocations.
Field Type
Hall Name String
Hall Capacity Int
Hall Input/output
Timetabling System
Hall Data
File
Figure 3.8.: Hall File Processing Diagram showing how the hall configuration file is
accessed by the system.
• Programs File: contains the different programs in the university entered at input. See
Table 3.2.
27
Table 3.2.: Programs Table
This table stores the program names used in the timetable allocations.
Field Type
Program Name String
Program Input/output
Timetabling System
Programs
Data File
Figure 3.9.: Program File Processing Diagram showing how the programs configuration file is
accessed by the system.
• Buildings File: contains the names of the building existing in the school for which the
timetable is to be generated. See Table 3.3.
Building Input/output
Timetabling System
28
Buildings
Data File
Figure 3.10.: Building File Processing Diagram showing how the buildings configuration file is
accessed by the system.
• Lecturers File: contains the names of the Lecturers in the school. See Table 3.4.
Lecturer Input/output
Timetabling System
Lecturers
Data File
Figure 3.11.: Lecturer File Processing Diagram showing how the lecturer’s configuration file is
accessed by the system.
• Departments File: contains all the department names in the university. See Table 3.5.
29
Department Input/output
Timetabling System
Department
Data File
Figure 3.12.: Departments File Processing Diagram showing how the department’s
configuration file is accessed by the system.
• Course Codes File: contains all the course codes being offered in the school including
their titles and units. See Table 3.6.
Field Type
Course Code String
Unit Integer
Title String
Course Input/output
Timetabling System
Course Data
File
30
Figure 3.13.: Course File Processing Diagram showing how the course configuration file is
accessed by the system.
The next important development in the field came in 1966, when L.J. Fogel, A.J. Owens and
M.J. Walsh introduced in America a technique they called evolutionary programming. In this
method, candidate solutions to problems were represented as simple finite-state machines;
like Rechenberg's evolution strategy, their algorithm worked by randomly mutating one of
these simulated machines and keeping the better of the two. Also like evolution strategies, a
broader formulation of the evolutionary programming technique is still an area of ongoing
research today. However, what was still lacking in both these methodologies was recognition
of the importance of crossover.
As early as 1962, John Holland's work on adaptive systems laid the foundation for later
developments; most notably, Holland was also the first to explicitly propose crossover and
other recombination operators. However, the seminal work in the field of genetic algorithms
31
came in 1975, with the publication of the book Adaptation in Natural and Artificial Systems.
Building on earlier research and papers both by Holland himself and by colleagues at the
University of Michigan, this book was the first to systematically and rigorously present the
concept of adaptive digital systems using mutation, selection and crossover, simulating
processes of biological evolution, as a problem-solving strategy. The book also attempted to
put genetic algorithms on a firm theoretical footing by introducing the notion of schemata.
That same year, Kenneth De Jong's important dissertation established the potential of GAs by
showing that they could perform well on a wide variety of test functions, including noisy,
discontinuous, and multimodal search landscapes.
32
applied to a wider range of problems unlike most procedural approaches. Genetic algorithms
help to solve practical problems on a daily basis. The algorithms are simple to understand and
the required computer code easy to write. The Genetic Algorithm (GA) technique has never
attracted much attention like the artificial neural networks, hill climbing, simulate annealing
amongst many others although it has a growing number of disciples. The reason for this is
certainly not because of any inherent limits it has or its lack of powerful metaphors. The
phenomenon that evolution is the concept resulting in the bio-diversity we see around us
today is a powerful and inspiring paradigm for solving any complex problem. The use of GAs
has been evident from the very beginning characterized by examples of computer scientists
having visions of systems that mimics and duplicate one or more of the attributes of life. The
idea of using a population of solutions to solve practical engineering optimization problems
was considered several times during the 1950's and 1960's. However, the concept of GAs was
essentially invented by one man—John Holland—in the 1960's. His reasons for developing
such algorithms were to solve problems of generalized concerns. He itemized this concept in
his book in 1975, Adaptation in Natural and Artificial Systems (recently re-issued with
additions) which is particularly worth reading for its visionary approach. Its application has
proven it to be more than just a robust method for estimating a series of unknown parameters
within a model of a physical system.
However, its robustness cuts across many different practical optimization problems especially
those that concern us most like the timetable problem in the context of this project.
Concisely stated, a genetic algorithm is a programming technique that mimics biological evolution
as a problem-solving strategy. Given a specific problem to solve, the input to the GA is a set of
potential solutions to that problem, encoded in some fashion, and a metric called a fitness function
that allows each candidate to be quantitatively evaluated. These candidates may be
33
solutions already known to work, with the aim of the GA being to improve them, but more often
they are generated at random.
The GA then evaluates each candidate according to the fitness function. In a pool of
randomly generated candidates, of course, most will not work at all, and these will be deleted.
However, purely by chance, a few may hold promise - they may show activity, even if only
weak and imperfect activity, toward solving the problem.
These promising candidates are kept and allowed to reproduce. Multiple copies are made of them,
but the copies are not perfect; random changes are introduced during the copying process. These
digital offspring then go on to the next generation, forming a new pool of candidate solutions, and
are subjected to a second round of fitness evaluation. Those candidate solutions which were
worsened, or made no better, by the changes to their code are again deleted; but again, purely by
chance, the random variations introduced into the population may have improved some
individuals, making them into better, more complete or more efficient solutions to the problem at
hand. Again these winning individuals are selected and copied over into the next generation with
random changes, and the process repeats. The expectation is that the average fitness of the
population will increase each round, and so by repeating this process for hundreds or thousands of
rounds, very good solutions to the problem can be discovered.
As astonishing and counterintuitive as it may seem to some, genetic algorithms have proven
to be an enormously powerful and successful problem-solving strategy, dramatically
demonstrating the power of evolutionary principles. Genetic algorithms have been used in a
wide variety of fields to evolve solutions to problems as difficult as or more difficult than
those faced by human designers. Moreover, the solutions they come up with are often more
efficient, more elegant, or more complex than anything comparable a human engineer would
produce. In some cases, genetic algorithms have come up with solutions that baffle the
programmers who wrote the algorithms in the first place.
34
• Another, similar approach is to encode solutions as arrays of integers or decimal
numbers, with each position again representing some particular aspect of the solution.
This approach allows for greater precision and complexity than the comparatively
restricted method of using binary numbers only and often "is intuitively closer to the
problem space”.
The advantage of the three methods above is that they make it easy to define
operators that cause the random changes in the selected candidates: flip a 0 to a 1 or
vice versa, add or subtract from the value of a number by a randomly chosen amount,
or change one letter to another.
Figure 3.14.: Three simple program trees of the kind normally used in genetic programming.
The mathematical expression that each one represents is given underneath it.
35
It is important to note that evolutionary algorithms do not necessarily represent candidate
solutions as data strings of fixed length. Though some represent them this way, but others do
not; e.g. Kitano's grammatical encoding discussed above can be efficiently scaled to create
large and complex neural networks, and Koza's genetic programming trees can grow
arbitrarily large as necessary to solve whatever problem they are applied to.
• Fitness-proportionate selection: More fit individuals are more likely, but not certain,
to be selected.
• Scaling selection: As the average fitness of the population increases, the strength of
the selective pressure also increases and the fitness function becomes more
discriminating. This method can be helpful in making the best selection later on when
all individuals have relatively high fitness and only small differences in fitness
distinguish one from another.
36
• Tournament selection: Subgroups of individuals are chosen from the larger
population, and members of each subgroup compete against each other. Only one
individual from each subgroup is chosen to reproduce.
• Rank selection: Each individual in the population is assigned a numerical rank based on
fitness, and selection is based on this ranking rather than absolute difference in fitness.
The advantage of this method is that it can prevent very fit individuals from gaining
dominance early at the expense of less fit ones, which would reduce the population's
genetic diversity and might hinder attempts to find an acceptable solution.
• Generational selection: The offspring of the individuals selected from each generation
become the entire next generation. No individuals are retained between generations.
• Steady-state selection: The offspring of the individuals selected from each generation
go back into the pre-existing gene pool, replacing some of the less fit members of the
previous generation. Some individuals are retained between generations.
37
Figure3.15. Diagram showing the effect of mutation on an individual in a population of 8-bit
strings where mutation occurs at position 4, changing the 0 at that position in its genome to a 1
• The second method is called crossover, and entails choosing two individuals to swap
segments of their code, producing artificial "offspring" that are combinations of their
parents. This process is intended to simulate the analogous process of recombination
that occurs to chromosomes during sexual reproduction .Common forms of crossover
include single-point crossover, in which a point of exchange is set at a random
location in the two individuals' genomes, and one individual contributes all its code
from before that point and the other contributes all its code from after that point to
produce an offspring, and uniform crossover, in which the value at any given location
in the offspring's genome is either the value of one parent's genome at that location or
the value of the other parent's genome at that location, chosen with 50/50 probability.
Refer to Figure 2.2.
38
multiple directions at once. If one path turns out to be a dead end, they can easily
eliminate it and continue work on more promising avenues, giving them a greater
chance each run of finding the optimal solution.
• However, the advantage of parallelism goes beyond this. Consider the following: All the
8-digit binary strings (strings of 0's and 1's) form a search space, which can be
represented as ******** (where the * stands for "either 0 or 1"). The string 01101010 is
one member of this space. However, it is also a member of the space 0*******, the space
01******, the space 0******0, the space 0*1*1*1*, the space 01*01**0, and so on. By
evaluating the fitness of this one particular string, a genetic algorithm would be sampling
each of these many spaces to which it belongs. Over many such evaluations, it would
build up an increasingly accurate value for the average fitness of each of these spaces,
each of which has many members. Therefore, a GA that explicitly evaluates a small
number of individuals is implicitly evaluating a much larger group of individuals - just as
a pollster who asks questions of a certain member of an ethnic, religious or social group
hopes to learn something about the opinions of all members of that group, and therefore
can reliably predict national opinion while sampling only a small percentage of the
population. In the same way, the GA can "home in" on the space with the highest-fitness
individuals and find the overall best one from that group. In the context of evolutionary
algorithms, this is known as the Schema Theorem, and is the "central advantage" of a GA
over other problem-solving methods.
• Due to the parallelism that allows them to implicitly evaluate many schemas at once,
genetic algorithms are particularly well-suited to solving problems where the space of all
potential solutions is truly huge - too vast to search exhaustively in any reasonable
amount of time. Most problems that fall into this category are known as "nonlinear". In a
linear problem, the fitness of each component is independent, so any improvement to any
one part will result in an improvement of the system as a whole. Needless to say, few
real-world problems are like this. Nonlinearity is the norm, where changing one
component may have ripple effects on the entire system, and where multiple changes that
individually are detrimental may lead to much greater improvements in fitness when
combined. Nonlinearity results in a combinatorial explosion: the space of 1,000-digit
binary strings can be exhaustively searched by evaluating only 2,000 possibilities if the
problem is linear, whereas if it is nonlinear, an exhaustive search requires
39
evaluating 21000 possibilities - a number that would take over 300 digits to write out
in full.
• Another notable strength of genetic algorithms is that they perform well in problems
for which the fitness landscape is complex - ones where the fitness function is
discontinuous, noisy, changes over time, or has many local optima. Most practical
problems have a vast solution space, impossible to search exhaustively; the challenge
then becomes how to avoid the local optima - solutions that are better than all the
others that are similar to them, but that are not as good as different ones elsewhere in
the solution space. Many search algorithms can become trapped by local optima: if
they reach the top of a hill on the fitness landscape, they will discover that no better
solutions exist nearby and conclude that they have reached the best one, even though
higher peaks exist elsewhere on the map.
40
population, casting a "net" over the fitness landscape compares this to an army of
parachutists dropping onto the landscape of a problem's search space, with each one
being given orders to find the highest peak.) Small mutations enable each individual
to explore its immediate neighborhood, while selection focuses progress, guiding the
algorithm's offspring uphill to more promising parts of the solution space.
• However, crossover is the key element that distinguishes genetic algorithms from
other methods such as hill-climbers and simulated annealing. Without crossover, each
individual solution is on its own, exploring the search space in its immediate vicinity
without reference to what other individuals may have discovered. However, with
crossover in place, there is a transfer of information between successful candidates -
individuals can benefit from what others have learned, and schemata can be mixed
and combined, with the potential to produce an offspring that has the strengths of both
its parents and the weaknesses of neither. This point is illustrated in Koza et. al.
(1999), where the authors discuss a problem of synthesizing a low pass filter using
genetic programming. In one generation, two parent circuits were selected to undergo
crossover; one parent had good topology (components such as inductors and
capacitors in the right places) but bad sizing (values of inductance and capacitance for
its components that were far too low). The other parent had bad topology, but good
sizing. The result of mating the two through crossover was an offspring with the good
topology of one parent and the good sizing of the other, resulting in a substantial
improvement in fitness over both its parents.
• The problem of finding the global optimum in a space with many local optima is also
known as the dilemma of exploration vs. exploitation, "a classic problem for all
systems that can adapt and learn”. Once an algorithm (or a human designer) has found
a problem-solving strategy that seems to work satisfactorily, should it concentrate on
making the best use of that strategy, or should it search for others? Abandoning a
proven strategy to look for new ones is almost guaranteed to involve losses and
degradation of performance, at least in the short term. But if one sticks with a
particular strategy to the exclusion of all others, one runs the risk of not discovering
better strategies that exist but have not yet been found. Again, genetic algorithms have
shown themselves to be very good at striking this balance and discovering good
solutions with a reasonable amount of time and computational effort.
41
• Another area in which genetic algorithms excel is their ability to manipulate many
parameters simultaneously. Many real-world problems cannot be stated in terms of a
single value to be minimized or maximized, but must be expressed in terms of
multiple objectives, usually with tradeoffs involved: one can only be improved at the
expense of another. GAs are very good at solving such problems: in particular, their
use of parallelism enables them to produce multiple equally good solutions to the
same problem, possibly with one candidate solution optimizing one parameter and
another candidate optimizing a different one and a human overseer can then select one
of these candidates to use. If a particular solution to a multi-objective problem
optimizes one parameter to a degree such that that parameter cannot be further
improved without causing a corresponding decrease in the quality of some other
parameter, that solution is called Pareto optimal or non-dominated.
• Finally, one of the qualities of genetic algorithms which might at first appear to be a
liability turns out to be one of their strengths: namely, GAs know nothing about the
problems they are deployed to solve. Instead of using previously known
domainspecific information to guide each step and making changes with a specific eye
towards improvement, as human designers do, they are "blind watchmakers", they
make random changes to their candidate solutions and then use the fitness function to
determine whether those changes produce an improvement.
• The virtue of this technique is that it allows genetic algorithms to start out with an open
mind, so to speak. Since its decisions are based on randomness, all possible search
pathways are theoretically open to a GA; by contrast, any problem-solving strategy that
relies on prior knowledge must inevitably begin by ruling out many pathways a priority,
therefore missing any novel solutions that may exist there. Lacking preconceptions based
on established beliefs of "how things should be done" or what "couldn't possibly work",
GAs do not have this problem. Similarly, any technique that relies on prior knowledge
will break down when such knowledge is not available, but again, GAs are not adversely
affected by ignorance. Through their components of parallelism, crossover and mutation,
they can range widely over the fitness landscape, exploring regions which intelligently
produced algorithms might have overlooked, and potentially uncovering solutions of
startling and unexpected creativity that might never have
42
occurred to human designers. One vivid illustration of this is the rediscovery, by genetic
programming, of the concept of negative feedback - a principle crucial to many important
electronic components today, but one that, when it was first discovered, was denied a
patent for nine years because the concept was so contrary to established beliefs.
Evolutionary algorithms, of course, are neither aware nor concerned whether a solution
runs counter to established beliefs - only whether it works.
• The first, and most important, consideration in creating a genetic algorithm is defining
a representation for the problem. The language used to specify candidate solutions
must be robust; i.e., it must be able to tolerate random changes such that fatal errors or
nonsense do not consistently result.
• The problem of how to write the fitness function must be carefully considered so that
higher fitness is attainable and actually does equate to a better solution for the given
problem. If the fitness function is chosen poorly or defined imprecisely, the genetic
algorithm may be unable to find a solution to the problem, or may end up solving the
wrong problem. (This latter situation is sometimes described as the tendency of a GA
to "cheat", although in reality all that is happening is that the GA is doing what it was
told to do, not what its creators intended it to do.) This is not a problem in nature,
however. In the laboratory of biological evolution there is only one fitness function,
which is the same for all living things - the drive to survive and reproduce, no matter
what adaptations make this possible. Those organisms which reproduce more
abundantly compared to their competitors are fitter; those which fail to reproduce are
unfit.
• In addition to making a good choice of fitness function, the other parameters of a GA - the
size of the population, the rate of mutation and crossover, the type and strength of
selection - must be also chosen with care. If the population size is too small, the genetic
43
algorithm may not explore enough of the solution space to consistently find good
solutions. If the rate of genetic change is too high or the selection scheme is chosen
poorly, beneficial schema may be disrupted and the population may enter error
catastrophe, changing too fast for selection to ever bring about convergence.
• One type of problem that genetic algorithms have difficulty dealing with are problems
with "deceptive" fitness functions, those where the locations of improved points give
misleading information about where the global optimum is likely to be found. For
example, imagine a problem where the search space consisted of all eight-character
binary strings, and the fitness of an individual was directly proportional to the number
of 1s in it - i.e., 00000001 would be less fit than 00000011, which would be less fit
than 00000111, and so on - with two exceptions: the string 11111111 turned out to
have very low fitness, and the string 00000000 turned out to have very high fitness. In
such a problem, a GA (as well as most other algorithms) would be no more likely to
find the global optimum than random search.
44
3.7.7. APPLICATION OF GENETIC ALGORITHMS IN THIS RESEARCH
Having considered the basis for a genetic algorithm, the outline below highlights the
applications of the proposed system in generating timetables.
The timetabling problem is a combinatorial optimization problem (COP) and in order to find a
very comprehensive mathematical framework to describe it (and also tackle its NPhardness),
hence the introduction of a highly abstract concept of heuristics (genetic algorithms). The basic
property of the timetable problem is the attempt of the genetic algorithm to optimize a function
over a discrete structure with many independent variables. The relation between the choices made
in the discrete domain and the effects on the objective function value are usually complex and
frequently not easy to trace. The unifying framework for COP’s is the Constraint Satisfaction
Problem (CSP) in conjunction with the optimization of an objective function. It is worthy of note
that even though the timetabling problem is treated as an optimization problem, there is actually
no fixed objective function, the function that exists is used as an arbitrary measure to check for
optimized solutions and degree of constraints satisfaction. Once the objectives and constraints are
specified, genetic algorithms offer the ultimate scenarios of good timetable solutions through
evolution processes even though the complexity of assignment is totally dependent on the number
of instances and number of constraints.
Hence the algorithm considered for use in the proposed system is a scaled down version of
the Hybrid Genetic algorithm for the construction of examination timetables developed for
the University of Nottingham. The concept though developed for examination timetabling,
can be adapted to fit the construction of course timetables. The genetic algorithm employed
combines two heuristic algorithms, the first finding a non-conflicting set of exams and the
second assigning the selected exam to rooms. The process is repeated until all exams have
been scheduled without conflicts.
45
Figure 3.17.: Diagram depicting the Hybrid Genetic Algorithm used in University of Nottingham.
Like every other genetic algorithms, this algorithm can quickly produce large populations of
random feasible exam timetables. Uniquely, the process takes each member of the course
population and assigns it to the first period in which the exam may be placed without conflict.
The mutation and crossover procedures are then applied to the population so that constraints
associated with each course in the assignment are satisfied. The timetables generated by the
algorithm with a starting population size of 200 had an average fitness of 0.986.
46
CHAPTER 4
SYSTEM IMPLEMENTATION
4.1. INTRODUCTION
The system implementation defines the construction, installation, testing and delivery of the
proposed system. After thorough analysis and design of the system, the system
implementation incorporates all other development phases to produce a functional system.
4.5. DOCUMENTATION
47
The above excel sheet shows us the time tale which has been generated by our software.
48
CHAPTER 5
5.1. SUMMARY
This study was carried out as is to reduce the intense manual effort being put into creating
and developing university timetables. The timetable automation system currently is a
conceptual work in progress but has the capability to generate near optimal timetables based
on two unit courses with minimized course constraints.
5.2. CONCLUSION
Timetabling problem being the hard combinatorial problem that it is would take more than just
the application of only one principle. The timetabling problem may only be solved when the
constraints and allocations are clearly defined and simplified thoroughly and more than one
principle is applied to it i.e. a hybrid solution (a combination of different solution techniques).
This research has been able to actualize a sub-implementation of a genetic algorithm which can
be applied to input of 2-units courses.
5.3. RECOMMENDATIONS
In furtherance of this work, the following are recommended:
• The timetable system developed as the outcome of this project should be made open
to avid students of computing who can collaborate and improve on the techniques and
ideas inherent in this project.
• Further works on developing a timetabling system should be based on this research
work so as to utilize the incremental model of software development.
• A collaborative model of timetabling system which utilizes a computer network can
also be built which entails different departments and entities allocating courses and
constraints concurrently while the system threads and reports clashes.
50
REFERENCES
➢ A. Cornelissen, M.J. Sprengers and B.Mader (2010). "OPUS-College Timetable
Module Design Document" Journal of Computer Science 1(1), 1-7.
➢ Abramson D. & Abela J. (1992). "A parallel genetic algorithm for solving the
school timetabling problem." In Proceedings of the 15th Australian Computer Science
Conference, Hobart, 1-11.
➢ Bufe M., Fischer T., Gubbels H., Hacker C., Hasprich O., Scheibel C., Weicker
K., Weicker N., Wenig M., & Wolfangel C. (2001). Automated solution of a highly
constrained school timetabling problem - preliminary results. EvoWorkshops,Italy.
➢ Carrasco M.P.& Pato M.V.(2001). "A multiobjective genetic algorithm for the
class/teacher timetabling problem." In Proceedings of the Practice and Theory of
Automated Timetabling (PATAT'00), Lecture Notes in Computer Science, Springer,
2079, 3-17.
➢ Datta D., Deb K., & Fonseca, C.M.(2006). Multi-objective evolutionary algorithm
for university class timetabling problem, In Evolutionary Scheduling, Springer-Verlag Press.
➢ David A Coley (1999). An Introduction to Genetic Algorithms for
Scientists and
Engineers, 1st ed. World Scientific Publishing Co. Pte. Ltd.
51
➢ Dawkins Richard (1996). The Blind Watchmaker: Why the Evidence of
Evolution Reveals a Universe Without Design. W.W. Norton.
➢ Deb K., Agarwal S., Pratap A., & Meyarivan T. (2002). "A fast and elitist multi-
objective genetic algorithm: NSGA-II." IEEE Transactions on Evolutionary
Computation, 6(2), 182-197.
➢ Eley M. (2006). "Ant Algorithms for the Exam Timetabling Problem." 6th
International Conference on the Practice and Theory of Automated Timetabling,
PATAT'06.
52
APPENDIX
APPENDIX A: PROGRAM LISTINGS
53
allocations[j][k][10] := allocations[j][k][10] + 2;
end
else
begin
allocations[j][k][l] := allocations[day][hall][time];
allocations[j][k][l+1] := allocations[j][k][l];
allocations[day][hall][time] := 0; allocations[day][hall]
[time+1] :=0; allocations[day][hall][10] :=
allocations[day][hall][10]-2; allocations[j][k][10] :=
allocations[j][k][10] + 2;
end;
end;
end
else
begin
if (time mod 2<>0) then
begin
if (l mod 2 <> 0) then
begin
temp := allocations[j][k][l];
allocations[j][k][l] := allocations[day][hall][time];
allocations[j][k][l-1] := allocations[j][k][l];
allocations[day][hall][time] := temp;
allocations[day][hall][time-1] :=temp;
end
else
begin
temp := allocations[j][k][l];
allocations[j][k][l] := allocations[day][hall][time];
allocations[j][k][l+1] := allocations[j][k][l];
allocations[day][hall][time] := temp;
allocations[day][hall][time-1] :=temp;
end;
end
else
begin
if (l mod 2 <> 0) then
begin
temp := allocations[j][k][l];
allocations[j][k][l] := allocations[day][hall][time];
allocations[j][k][l-1] := allocations[j][k][l];
allocations[day][hall][time] := temp;
allocations[day][hall][time+1] :=temp;
end
else
begin
temp := allocations[j][k][l];
allocations[j][k][l] := allocations[day][hall][time];
allocations[j][k][l+1] := allocations[j][k][l];
54
allocations[day][hall][time] := temp;
allocations[day][hall][time+1] :=temp;
end;
end;
end;
end;
55