I would like to use DEAP to solve my timetable problem.
I have the following parameters:
- n teachers (around 15)
- m rooms where teachers (around 8) teach some lessons
- 8 hours per day / 5 days per week so 40 hours per room I have many constraints:
- teachers have min, max hours per week per room: min_week, max_week
- teachers have max hours per day: max_day
- not all teachers are assigned to all rooms... it is something like this:
- Room1 : teach1 [from min_week=10 to max_week=12], teach2 [10, 12], teach7[21,22]
- Room2 : teach1[10, 12], teach2[10, 12], teach5[18, 22]
- Room3 : teach3[19, 22], teach4[19, 22] and so on...
There are other constraints but I don't want to make it more difficult. I have seen online example with teachers, classroom, group of students, rooms. I have less elements but maybe more strict contraints, I mean very few solutions among huge amount of combinations (according to my structure). I tried to solve it creating a chromosome composed by 40 integer (that are the total amount of hours per week for each room). Each integer is between 1 and the number of combination of all teachers among rooms. The combinations are genereted avoiding the assignement of a teacher on more than one room. But for each gene I have around 3600 combinations for 40 genes of the chromosome so the space of all possible solutions is around 10^142. If I run my code with a population of 400 individuals and 2000 generations the solution is far from an acceptable one. I think it is due to the weakness of the chromosome structure that takes into consideration a huge amount of unfeasible solutions.
Is a space of 10^142 of possible chromosome too big to be solved by DEAP program? Is there any possible improvement of the chromosome structure in order to make the space of possibile chromosome smaller?