All Projects → pranavkhurana → Time Table Scheduler

pranavkhurana / Time Table Scheduler

Time Table generation using Genetic Algorithms ( Java-Struts2)

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Time Table Scheduler

Job-Shop-Scheduling-Genetic-Algorithm
Job Shop Scheduling Solver using Genetic Algorithyms
Stars: ✭ 48 (-46.67%)
Mutual labels:  genetic-algorithm, scheduling
Flow-Shop-Scheduling
Genetic Algorithm for Flow Shop Scheduling
Stars: ✭ 19 (-78.89%)
Mutual labels:  genetic-algorithm, scheduling
Super Mario Neat
This program evolves an AI using the NEAT algorithm to play Super Mario Bros.
Stars: ✭ 64 (-28.89%)
Mutual labels:  genetic-algorithm
Cross Adaptive Audio
Evolving Artificial Neural Networks for Cross-Adaptive Audio Effects
Stars: ✭ 82 (-8.89%)
Mutual labels:  genetic-algorithm
Mealpy
A collection of the state-of-the-art MEta-heuristics ALgorithms in PYthon (mealpy)
Stars: ✭ 72 (-20%)
Mutual labels:  genetic-algorithm
Avr Cheat Sheet
AVR cheat sheet for the ATmega328p
Stars: ✭ 64 (-28.89%)
Mutual labels:  eclipse
Rl Course Experiments
Stars: ✭ 73 (-18.89%)
Mutual labels:  genetic-algorithm
Traceshark
This is a tool for Linux kernel ftrace and perf events visualization
Stars: ✭ 63 (-30%)
Mutual labels:  scheduling
Attemper
Distributed,multi-tenancy,job-flow scheduling application(分布式多租户的支持流程编排的任务调度平台) QQ群:1029617143
Stars: ✭ 86 (-4.44%)
Mutual labels:  scheduling
Tempus Fugit
A scheduling and time utilities module that doesn't waste your time
Stars: ✭ 70 (-22.22%)
Mutual labels:  scheduling
Emfjson Jackson
JSON Binding for Eclipse Modeling Framework
Stars: ✭ 79 (-12.22%)
Mutual labels:  eclipse
Path planning
This repository contains path planning algorithms in C++ for a grid based search.
Stars: ✭ 70 (-22.22%)
Mutual labels:  genetic-algorithm
Radiate
Radiate is a parallel genetic programming engine capable of evolving solutions to many problems as well as training learning algorithms.
Stars: ✭ 65 (-27.78%)
Mutual labels:  genetic-algorithm
Google Cloud Eclipse
Google Cloud Platform plugin for Eclipse
Stars: ✭ 75 (-16.67%)
Mutual labels:  eclipse
Frame Scheduling
Asynchronous non-blocking running many tasks in JavaScript. Demo https://codesandbox.io/s/admiring-ride-jdoq0
Stars: ✭ 64 (-28.89%)
Mutual labels:  scheduling
Android Support V7 Appcompat
Eclipse library project based on Android support appcompat-v7 AAR releases.
Stars: ✭ 83 (-7.78%)
Mutual labels:  eclipse
Mgo
Purely functional genetic algorithms for multi-objective optimisation
Stars: ✭ 63 (-30%)
Mutual labels:  genetic-algorithm
Rhine
Haskell Functional Reactive Programming framework with type-level clocks
Stars: ✭ 69 (-23.33%)
Mutual labels:  scheduling
Ansi Econsole
Eclipse plugin that understands ANSI escape sequences to color the Eclipse console output.
Stars: ✭ 72 (-20%)
Mutual labels:  eclipse
Genetic Algorithm Montage
genetic algorithm for self-referential image approximation.
Stars: ✭ 86 (-4.44%)
Mutual labels:  genetic-algorithm

AUTOMATED TIME-TABLE SCHEDULER
(Using Genetic Algorithms)

preview

Introduction

Time Table Scheduling is an NP-hard problem and hence polynomial time verifiable using genetic algorithms. It a typical scheduling problem that appears to be a tedious job in every academic institute once or twice a year. In earlier days, time table scheduling was done manually with a single person or some group involved in task of scheduling it manually, which takes a lot of effort and time. Planning timetables is one of the most complex and error-prone applications. Timetabling is the task of creating a timetable while satisfying some constraints. There are basically two types of constraints, soft constraints and hard constraints. Soft constraints are those if we violate them in scheduling, the output is still valid, but hard constraints are those which if we violate them; the timetable is no longer valid. The search space of a timetabling problem is too vast, many solutions exist in the search space and few of them are not feasible. Feasible solutions here mean those which do not violate hard constraints and as well try to satisfy soft constraints. We need to choose the most appropriate one from feasible solutions. Most appropriate ones here mean those which do not violate soft constraints to a greater extent. In this project hard-constraints have been taken care of strictly and it has been ensured that soft-constraints are as well followed as much as possible.

Soft-constraints (flexible):

• More or less equal load is given to all faculties

• Required time (hours per week) is given to every Batch

Hard-constraints (rigid):

• There should not be any single instance of a faculty taking two classes simultaneously

• A class group must not have more than one lectures at the same time

Getting Started

Instructions to use this project :

This project is configured in eclipse and is a simple implementation

  • Clone this repository.

  • Import the project in Eclipse ( you can even copy the package into a new project if you use a different IDE / If import of Eclipse project doesnt work well with that IDE )

  • Import users.sql file in your database

  • Set your database credendtials in line no 10-11 in UserDao.java

  Class.forName("com.mysql.jdbc.Driver");
  con = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "", "");
  • Put the input.txt file anywhere in the drive and give its location in inputdata.java at line no 33
  File file = new File("c:\\test\\input.txt");

Cheers !

PS : Contributing back to this project will be appreciated.

Prerequisites

  • Java 8

  • Eclipse(compatible with Enterprise Edition)

  • Tomcat (or any other) Local Server

  • MySql Database

Running the tests

Click 'Get Started with us today' on homepage

Login (username: pranav password: khurana)

Click on 'Test with custom input'

Deployment

You need to load the required jar files to make this project run

Built With

  • Struts - The web framework used
  • Bootstrap - Mobile first Frontend Framework
  • JSP
  • Servlets
  • Ajax
  • JavaScript
  • HTML
  • CSS
  • MySQL (database)

Test Run

Input

Input form is made using Ajax and displays as many fields as the no specified.

input1 input2

Output

out1 out2

Console

For the ease of testing and tracking, a lot of information is printed on the console itself. It involves input information, slots generated, few chromosomes from each generation of chromosome, fitness of these chromosomes, maximum fitness in a generation and final selected chromosome.

console

Conclusion and Further Work

Conclusion

The process of Time Table generation has been fully automated with this software. This web app can now cater to multiple colleges, universities and schools which can rely on it for their Time Table scheduling which earlier had to be done by hand.

Evaluation

Using Genetics Algorithm, a number of trade-off solutions, in terms of multiple objectives of the problem, could be obtained very easily. Moreover, each of the obtained solutions has been found much better than a manually prepared solution which is in use.

Further Work

• Though this web-app serves as a basic time table generator, there is a lot more which could be done to make this project even better in terms of consideration of soft constraints like professor giving preference to particular class.

• The up-gradations I look up to currently will be Classroom size considerations, lab facility consideration and multiple subject selection for faculty. I will try to bring the following up-gradations very soon.

• More features such as schedule print for individual faculty etc. would also be involved to make this more useful as a final product.

Author

Pranav Khurana

PS: Project Report(in pdf) is available in root folder as AutomatedTimeTableScheduler.pdf

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].