An automated time table generator using genetic algorithms in Java with JavaFX application using MVC architecture pattern.
The timetabling problems are essentially the problems that deal with effective distribution of resources. During the timetabling process many constraints have to be considered. Resources are usually limited and no two tasks should occupy one particular resource at the same time. For most of the timetabling problems it has been shown that they are NP-hard, and that they can not be solved in polynomial time using a deterministic algorithm. Hence, genetic algorithms could provide us with a feasible solution in a reasonable time.
Genetic algorithms are belonging to guided random search techniques, which try to find the global optimum. Genetic algorithms are working with the set of potential solutions, which is called population. Each solution item (individual) is measured by fitness function. The fitness value represents the quality measure of an individual, so the algorithm can select individuals with better genetic material for producing new individuals and further generations.