Solving timetabling problems using genetic algorithms

The paper describes techniques that can be applied to a different scheduling and timetabling problems. The problems are characterized as constraints satisfaction problems. The solution methodology uses genetic algorithms to minimize the total penalty for constraint violation. Encoding, genetic operators and fitness evaluation are implemented. To solve this problem, a genetic algorithm maintains a population of chromosomes, each of which represents a possible solution (timetable). In every generation, a new population of chromosomes is created using bits and pieces of the fittest of the old generation. The main tasks of applying a genetic algorithm to solve a problem are: encoding the solution as chromosomes; developing a fitness evaluation function; choosing genetic operators and run parameters. The genetic algorithm includes the following functions: initialize, evaluate, select, crossover, mutate, create new population. Our genetic algorithm proposes a solution which consists of a number of tuples, one for each class. The timetabling constraints are classified: unary constraints, binary constraints; k-nary constraints. The fitness function is a linear combination of a cost function and a penalty function. The goal is that all constraints be satisfied. We use a constraint propagation approach. There are experimental results.