Ce problème est plus difficile qu'il n'y paraît.
Comme d'autres l'ont fait remarquer, il s'agit d'un problème NP-complet, mais analysons ce que cela signifie.
En gros, cela signifie que vous devez examiner toutes les combinaisons possibles.
Mais "regarder" ne vous dit pas grand-chose sur ce que vous devez faire.
Il est facile de générer toutes les combinaisons possibles. Cela peut produire une énorme quantité de données, mais vous ne devriez pas avoir trop de problèmes pour comprendre les concepts de cette partie du problème.
Le deuxième problème est celui de juger si une combinaison possible donnée est bonne, mauvaise ou meilleure que la "bonne" solution précédente.
Pour cela, il faut plus qu'un simple "est-ce une solution possible".
Par exemple, le même enseignant travaille-t-il 5 jours par semaine pendant X semaines consécutives ? Même si cette solution fonctionne, elle n'est peut-être pas meilleure que l'alternance entre deux personnes, de sorte que chaque enseignant travaille une semaine chacune. Vous n'avez pas pensé à cela ? N'oubliez pas que vous avez affaire à des personnes, et pas seulement à un problème d'allocation de ressources.
Même si un enseignant pouvait travailler à temps plein pendant 16 semaines d'affilée, cela pourrait être une solution sous-optimale par rapport à une solution où l'on essaie d'alterner entre les enseignants, et ce type d'équilibre est très difficile à intégrer dans un logiciel.
En résumé, trouver une bonne solution à ce problème aura une grande valeur pour de nombreuses personnes. Il ne s'agit donc pas d'un problème facile à décomposer et à résoudre. Soyez prêt à fixer des objectifs qui ne sont pas à 100 % et à les qualifier de "suffisamment bons".
3 votes
Merci pour toutes les réponses. Il semble que l'algorithme nécessite une étude plus approfondie. Je le considérerais comme un bon sujet pour une thèse de master ou une petite application commerciale. Si j'en écris une, je vous le ferai savoir ici ;)
11 votes
Comme l'a dit Ian Ringrose de StackOverflow à une autre question, "il y a encore beaucoup de doctorats à obtenir dans le domaine des logiciels de planification".