Ich arbeite an einer einfachen Anwendung, die Zeittabelle (Tagesplaner) für Schulen generieren wird. Ich habe die Grundlagen der Algorithmen gelesen, bin aber nicht sicher, wo ich anfangen soll.
Welcher Algorithmus zum Generieren der Zeittabelle für Schulen verwendet wird
Das Problem:
Weisen Lehrer Klassen unter Berücksichtigung eine Menge von Einschränkungen wie:
1) Thema
2) Expertise von Lehrern
3) Nicht mehr als 2 Klassen kontinuierlich .. etc
Es versteht sich von selbst, dass es keine Überschneidungen geben sollte. Grundsätzlich muss ich N Lehrer zu M Klassen mit einer festen Anzahl von Arbeitsstunden jeden Tag zuweisen (8).
Die Eingänge:
1) Gesamtzahl der Klassen
2) Lehrer zusammen mit ihrer Fachkompetenz
3) Themen/Kurse für jede Klasse
4) Anzahl der Vorträge pro Klasse pro Tag
5) Andere flexible Einschränkungen wie minimale/maximale Arbeitszeit für einen Lehrer pro Tag, pro Woche Gesamtarbeitsstunden pro Lehrer, etc
Meine Fragen:
1) Ist es richtig, um es als ein Zuweisungsproblem mit mehreren Einschränkungen zu betrachten?
2) Welchen Algorithmus sollte ich verwenden? (Ungarischer Algorithmus?)
3) Sollte ich anfangen, indem ich die ganze Menge von Zwängen auf einmal bekomme, und dann die Tabelle erzeuge, oder sollte es in Zwischenschritten gemacht werden?
Ich bin ein Anfänger zum Lernen/Implementieren von Algorithmen, so dass jede Hilfe, um mich in die richtige Richtung zu zeigen, geschätzt! Vielen Dank.
Ich habe eine PostScript-Datei gefunden, die über einen ** Tabu Search ** (http://en.wikipedia.org/wiki/Tabu_search) -Algorithmus für die Zuordnung von Lehrern zu Klassen spricht (http://www.uv.es/sestio) /TechRep/tr01-01.ps). Es ist hauptsächlich mathematische Heuristiken. Ich hoffe, es gibt dir eine Richtung. –
Dies ist ein Duplikat. Ich habe diese Frage vor ein paar Wochen beantwortet: http://stackoverflow.com/questions/2177836/algorithm-for-creating-a-school-timetable –
@Stefano, unschätzbarer Link! Vielen Dank – Checksum