Skip to content

Maurice-L/CSP

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 

Repository files navigation

CSP-basiertes Stundenplan-Problem

Überblick

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.

Funktionsweise

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.

Gegebene Daten

  • Module: Liste von Modulen mit Angaben zu Dozenten, Raum und Semester.
  • Tage: Mo - Fr
  • Zeiten: 8, 10, 12, 14, 16 Uhr

Einschränkungen (Constraints)

  1. Erstsemester-Module (Semester 1) dürfen nicht am Freitag stattfinden.
  2. Drittsemester-Module (Semester 3) dürfen nicht am Montag stattfinden.
  3. Fünftsemester-Module (Semester 5) dürfen nicht am Donnerstag stattfinden.
  4. Ein Modul kann nicht zur gleichen Zeit mit demselben Raum, Dozenten oder Semester stattfinden.
  5. Kein Modul kann doppelt zur gleichen Zeit im Plan stehen.

Code-Struktur

  • 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.

Nutzung

Das Skript kann direkt ausgeführt werden:

python script.py

Es gibt eine gültige Stundenplan-Zuweisung aus, sofern eine gefunden wurde.

Anforderungen

  • Python 3

Erweiterungsmöglichkeiten

  • Erweiterung der Constraints (z. B. feste Zeiten für bestimmte Module).
  • GUI zur Visualisierung des Stundenplans.
  • Nutzung anderer CSP-Lösungsstrategien zur Effizienzsteigerung.

About

Implementierung eines Constraint Satisfaction Problems zur Erstellung eines Stundenplans

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages