Dieses Repository enthält eine Implementierung eines Constraint Satisfaction Problems (CSP) zur Erstellung eines Stundenplans für verschiedene Module. Ziel ist es, jedem Modul einen Termin (Wochentag und Uhrzeit) zuzuweisen, wobei bestimmte Einschränkungen beachtet werden müssen.
Das Skript nutzt Backtracking-Suche zur Lösung des CSP, indem es Module und ihre möglichen Zeitfenster zufällig generiert und nach einer zulässigen Zuweisung sucht.
- Module: Liste von Modulen mit Angaben zu Dozenten, Raum und Semester.
- Tage: Mo - Fr
- Zeiten: 8, 10, 12, 14, 16 Uhr
- Erstsemester-Module (Semester 1) dürfen nicht am Freitag stattfinden.
- Drittsemester-Module (Semester 3) dürfen nicht am Montag stattfinden.
- Fünftsemester-Module (Semester 5) dürfen nicht am Donnerstag stattfinden.
- Ein Modul kann nicht zur gleichen Zeit mit demselben Raum, Dozenten oder Semester stattfinden.
- Kein Modul kann doppelt zur gleichen Zeit im Plan stehen.
-
CSP-Klasse:
- Initialisiert Variablen und Domänen.
- Generiert mögliche Zeitfenster für Module.
- Zufällige Anordnung der Domänen.
-
Backtracking-Suche:
- Wählt nächste Variable (Modul).
- Prüft Konsistenzbedingungen.
- Testet mögliche Zuweisungen rekursiv.
- Beendet Suche, wenn eine gültige Lösung gefunden wurde.
Das Skript kann direkt ausgeführt werden:
python script.py
Es gibt eine gültige Stundenplan-Zuweisung aus, sofern eine gefunden wurde.
- Python 3
- Erweiterung der Constraints (z. B. feste Zeiten für bestimmte Module).
- GUI zur Visualisierung des Stundenplans.
- Nutzung anderer CSP-Lösungsstrategien zur Effizienzsteigerung.