Dieses Problem ist schwieriger als es scheint.
Wie andere angedeutet haben, ist dies ein NP-vollständiges Problem, aber analysieren wir, was das bedeutet.
Grundsätzlich bedeutet dies, dass Sie alle möglichen Kombinationen prüfen müssen.
Aber "gucken" sagt dir nicht viel, was du tun musst.
Das Generieren aller möglichen Kombinationen ist einfach. Es kann eine große Datenmenge erzeugen, aber Sie sollten keine großen Probleme haben, die Konzepte dieses Teils des Problems zu verstehen.
Das zweite Problem besteht darin, zu beurteilen, ob eine bestimmte mögliche Kombination gut, schlecht oder besser ist als die vorherige "gute" Lösung.
Dafür brauchen Sie mehr als nur "ist es eine mögliche Lösung".
Arbeitet zum Beispiel derselbe Lehrer 5 Wochen lang 5 Tage die Woche? Selbst wenn dies eine funktionierende Lösung ist, ist es möglicherweise keine bessere Lösung, als zwischen zwei Personen zu wechseln, sodass jeder Lehrer jeweils eine Woche lang arbeitet. Oh, darüber hast du nicht nachgedacht? Denken Sie daran, dass es sich um Personen handelt, mit denen Sie zu tun haben, und nicht nur um ein Problem bei der Ressourcenzuweisung.
Selbst wenn ein Lehrer 16 Wochen lang Vollzeit arbeiten könnte, könnte dies eine suboptimale Lösung sein, verglichen mit einer Lösung, bei der Sie versuchen, zwischen Lehrern zu wechseln, und diese Art des Ausgleichs ist sehr schwer in Software zu integrieren.
Zusammenfassend lässt sich sagen, dass es für viele, viele Menschen viel wert ist, eine gute Lösung für dieses Problem zu finden. Daher ist es kein leichtes Problem, es zu lösen und zu lösen. Seien Sie bereit, einige Ziele abzustecken, die nicht 100% sind, und nennen Sie sie "gut genug".