/Time-Table-Generator

Generates an optimized time table with given data.

Primary LanguagePython

Time-Table-Generator

A customized heuristic solution to the famous TimeTable problem involving the concepts of combinatorial optimization using Genetic Algorithms and Fuzzy Logic methodologies in the form of an application. This would be made with the intention of actually reducing the time taken by our school for the timetable-making process. The timetabling problem involves fixing a sequence of classes between professors and students in a given period, satisfying a set of different constraints. The constraints can be categorized as hard or soft based on their priorities. As the algorithm will be customized for the School of Computer Science and Engineering, We would survey our faculties to get an overview of the required constraints. This can also be further improved by making it generalized for broader userbase.

Project Objectives

The following are the objectives of this project:- – 1. Minimizing the conflicts between constraints in Time-Table scheduling. – 2. Automating and Optimizing the Time-Table generation processes cus- tomized for the School of Computer Science and engineering, XIM Uni- versity with the purpose of reducing the time taken in the manual process. – 3. Hard Constraints or any other critical constraints should not be viol- ated and soft constraints should be applied as much as possible. – 4. Creating a usable GUI to provide input and view the time-tables.

Courses.csv and Falculty.csv are the inputs and Year 1,2,3,4 are some example outputs.

Input :- Courses.csv For every batch the ”Courses.csv” file should contain

– Course ID - The respective ID of the courses.
– Course Name - The respective name of the course
– Course Code - The respective code of the course
– Semester - The Semester to which the course is taught to
– Faculty ID - The respective ID’s given to the faculties.
– NOCW - Number of credit hours of the course
– Type - Lab or Lectures.
∗ Workshops are considered as lectures as they are conducted in classrooms itself.

Input :- Faculty.csv For every faculty the ”Faculty.csv” file should contain

– ID - The respective ID of the faculty.
– Faculty Name - The respective name of the Faculty
– Visiting - If the corresponding Faculty is a visiting faculty or not
The input would be taken with the help of a form format. • Output : Four tables, One for each batch, satisfying some predefined con- straints in the form of a structured timetable.

Constraints: The constraints for the timetable problem are as follows.

– A time slot cannot have more than one course of the same batch.
– Courses taught by a single faculty cannot exist simultaneously in the
same time slot for different batches as a faculty member cannot take 2 courses at the same time.
– Lab classes should not clash within batches.
– If one course has 2 time-slots in a day then the slots have to be consec- utive.
– Number of occupied time slots in a day cannot be more than 5. – Lab classes are held in the second half.
– Consecutive days cannot have the same courses.
The constraints are ordered in the decreasing order of priority.

image image image