Je travaille sur une application simple qui va générer des horaires (planificateur journalier) pour les écoles. J'ai lu les bases des algorithmes, mais je ne sais pas par où commencer.
Quel algorithme utiliser pour générer un tableau de temps pour les écoles?
Le problème:
Allouer enseignants aux classes prenant en compte un grand nombre de contraintes comme:
1) Sujet
2) Expertise de l'enseignant
3) Pas plus de 2 classes en continu .. etc
Il va sans dire qu'il ne devrait pas y avoir de chevauchement. Fondamentalement, j'ai besoin d'affecter N enseignants à M classes avec un nombre fixe d'heures de travail tous les jours (8).
Les entrées:
1) Nombre total de classes
2) Les enseignants ainsi que leur sujet expertise
3) Sujets/Cours pour chaque classe
4) Nombre de cours par classe par jour
5) d'autres contraintes flexibles comme les heures de travail minimum/maximum pour un enseignant par jour, les heures de travail au total par enseignant par semaine, etc.
Mes questions: 1)
Est-il juste le considérer comme un problème d'affectation avec plusieurs contraintes?
2) Quel algorithme dois-je utiliser? (Algorithme hongrois?)
3) Dois-je commencer par obtenir l'ensemble des contraintes en une seule fois, puis générer la table, ou devrait-elle être faite dans les étapes intermédiaires? Je suis un débutant pour apprendre/implémenter des algorithmes, donc toute aide pour me diriger dans la bonne direction est appréciée! Merci.
J'ai trouvé un fichier PostScript parlant d'un algorithme ** Tabu Search ** (http://en.wikipedia.org/wiki/Tabu_search) pour affecter des professeurs à des classes (http://www.uv.es/sestio /TechRep/tr01-01.ps). C'est surtout l'heuristique mathématique. J'espère que cela vous donne une direction. –
Ceci est un doublon. J'ai répondu à cette question il y a quelques semaines: http://stackoverflow.com/questions/2177836/algorithm-for-creating-a-school-timetable –
@Stefano, un lien précieux! Merci – Checksum