Stundenplanung an HochschulenStundenplanung an Hochschulenhttp://www.ti.et-inf.uni-siegen.de/Stundenplanung/http://www.ti.et-inf.uni-siegen.de/Stundenplanung/
Klaus Quibeldey-Cirkel
Uni-GH Siegen, Technische Informatik
2
ÜberblickÜberblick Stundenplanung Stundenplanung –– ein Problem? ein Problem?
– Was sagt die Konkurrenz, was die Informatik?Was sagt die Konkurrenz, was die Informatik? UniPlaner: PrototypUniPlaner: Prototyp
– Dialoge & Web-ClientDialoge & Web-Client UniPlaner: NextGenerationUniPlaner: NextGeneration
– Neue FunktionenNeue Funktionen Interessenten gesucht!Interessenten gesucht!
– Alpha- & Beta-KundenAlpha- & Beta-Kunden Offene Fragen Offene Fragen
Stundenplanung – ein Problem?Stundenplanung – ein Problem?
Web-Planspiel Web-Planspiel
4
ÜberblickÜberblick
Stundenplanung am BeispielStundenplanung am Beispiel Lösungsansatz: Brute-Force-MethodeLösungsansatz: Brute-Force-Methode Lösungsansatz: Constraint-TechnikLösungsansatz: Constraint-Technik
5
StundenplanungStundenplanung
GegebenGegebenVeranstaltungen, Räume, Beschränkungen
ZielZielVerteilung der Veranstaltungen auf die Räume über der Zeit unter Berücksichtigung der Beschränkungen.
Salvador Dali: „Zerrinnende Zeit“ (1931)
6
Beispiel: Räume & ZeitfensterBeispiel: Räume & Zeitfenster
Raum 1 Raum 2
Mo Di Mi Mo Di Mi
08.00 - 10.00
10.00 - 12.00
TagZeit
7
Angebotene VeranstaltungenAngebotene Veranstaltungen
Dozent Fach Veranstaltung Ausschlußzeit
Dozent X A VL A nur Mi
Dozent Y BC
VL BVL C1, Ü C2 nicht Mo
Dozent Z DE
VL DVL E1, Ü E2 nicht Mo 8-10
8
StudienordnungStudienordnung
2 Pflichtfächer (C 2 Pflichtfächer (C E) E) 1 Pflichtfach nach Wahl (A 1 Pflichtfach nach Wahl (A D) D) Wahlfach BWahlfach B
Pflichtbelegungen:(C ) (C E D)
9
NebenbedingungenNebenbedingungen
Dozenten: (Unteilbarkeit der Person)Dozenten: (Unteilbarkeit der Person) Dozent Y: (B C1) (B C2) (C1 C2) Dozent Z: (D E1) (D E2) (E1 E2)
Studienordnung:Studienordnung: (CEA) (C E) (C A) (E A) (CED) (C E) (C D) (E D)
Ausschlußzeiten:Ausschlußzeiten: Fach A: nur mittwochs Fächer B, C: nicht montags Fächer D, E: nicht montags 8 - 10 Uhr
10
Brute-Force-MethodeBrute-Force-Methode
Naiver Lösungsansatz:systematisches Testen aller möglichen Verteilungen
der Veranstaltungen auf die Räume
11
Raum 1 Raum 2
Mo Di Mi Mo Di Mi
08.00 - 10.00
10.00 - 12.00
Dozent Fach Veranstaltung Ausschlußzeit
Dozent X A VL A nur Mi
Dozent Y BC
VL BVL C1, Ü C2 nicht Mo
Dozent Z DE
VL DVL E1, Ü E2 nicht Mo 8-10
12
Raum 1 Raum 2
Mo Di Mi Mo Di Mi
08.00 - 10.00 A C1 D E1
10.00 - 12.00 B C2 E2
Schritt: 1
Nicht erfüllte Nebenbedingung:
Dozent X: Vorlesung A nur mittwochs
13
Raum 1 Raum 2
Mo Di Mi Mo Di Mi
08.00 - 10.00 A C1 D E1 E2
10.00 - 12.00 B C2
Schritt: 2
Nicht erfüllte Nebenbedingung:
Dozent X: Vorlesung A nur mittwochs
14
Raum 1 Raum 2
Mo Di Mi Mo Di Mi
08.00 - 10.00 A C1 D E1
10.00 - 12.00 B C2 E2
Schritt: 3
Nicht erfüllte Nebenbedingung:
Dozent X: Vorlesung A nur mittwochs
Ein wenig später...
16
Raum 1 Raum 2
Mo Di Mi Mo Di Mi
08.00 - 10.00 B A D
10.00 - 12.00 E1 C1 E2 C2
Schritt: 657.103
Nicht erfüllte Nebenbedingung:
Vorlesung E1 nicht zeitgleich mit Übung E2
17
Raum 1 Raum 2
Mo Di Mi Mo Di Mi
08.00 - 10.00 B A E2 D
10.00 - 12.00 E1 C1 C2
Schritt: 657.104
Alle Nebenbedingungen erfüllt!
18
Mögliche VerteilungenMögliche Verteilungen
zu plazierendeVeranstaltung A B C1 C2 D E1 E2
noch freieTermine 11 10 9 8 7 6 5
Insgesamt:Insgesamt:
1110 9 8 7 6 5 114
1111 7 1663200 !
!!
( )! . .
19
VergleichszahlenVergleichszahlen
230 Veranstaltungen auf 250 freie Termine: 230 Veranstaltungen auf 250 freie Termine: 1010474474 verschiedene Verteilungen verschiedene Verteilungen
Schachspiel: 10Schachspiel: 10120120 Partien Partien Weltall: 10Weltall: 107777 Atome Atome Lotto 6 aus 49: 10Lotto 6 aus 49: 1077 Zahlenkombinationen Zahlenkombinationen
20
Stundenplanung in Siegen Stundenplanung in Siegen (FB 12)(FB 12)
Verteilungs-Möglichkeiten: 10Verteilungs-Möglichkeiten: 10474474
Virtueller Rechner: Virtueller Rechner: Test von 1 Billion (Test von 1 Billion (10101212) Kombinationen ) Kombinationen pro Sekundepro Sekunde
Warten auf Ergebnis: max. 10Warten auf Ergebnis: max. 10454 454 JahreJahre
21
Constraint-TechnikConstraint-Technik
Vorgehensweise:ausgehend von den Beschränkungen wird im voraus ein Großteil der Kombinationenausgeschlossen
22
VL A
VL B
VL C1
Ü C2
VL D
VL E1
Ü E2
Ausschlußzeiten:Fach A nur mittwochsFächer B, C nicht montagsFächer D, E nicht montags 8-10
Raum 1 Raum 2
23
VL A
VL B
VL C1
Ü C2
VL D
VL E1
Ü E2
Ausschlußzeiten:Fach A nur mittwochsFächer B, C nicht montagsFächer D, E nicht montags 8-10
Raum 1 Raum 2
24
Constraints:A {C1, C2, E1, E2}B {C1, C2}C1 {A, B, C2, D, E1, E2}C2 {A, B, C1, D, E1, E2}D {C1, C2, E1, E2}E1 {A, C1, C2, D, E2}E2 {A, C1, C2, D, E1}
VL A
VL B
VL C1
Ü C2
VL D
VL E1
Ü E2
Raum 1 Raum 2
25
Constraints:A {C1, C2, E1, E2}B {C1, C2}C1 {A, B, C2, D, E1, E2}C2 {A, B, C1, D, E1, E2}D {C1, C2, E1, E2}E1 {A, C1, C2, D, E2}E2 {A, C1, C2, D, E1}
VL A
AVL B
AVL C1
AÜ C2
AVL D
AVL E1
AÜ E2
Raum 1 Raum 2 Schritt: 1
26
Constraints:A {C1, C2, E1, E2}B {C1, C2}C1 {A, B, C2, D, E1, E2}C2 {A, B, C1, D, E1, E2}D {C1, C2, E1, E2}E1 {A, C1, C2, D, E2}E2 {A, C1, C2, D, E1}
VL A
AVL B
A AVL C1
A AÜ C2
AVL D
A AVL E1
A AÜ E2
Raum 1 Raum 2 Schritt: 1
27
Constraints:A {C1, C2, E1, E2}B {C1, C2}C1 {A, B, C2, D, E1, E2}C2 {A, B, C1, D, E1, E2}D {C1, C2, E1, E2}E1 {A, C1, C2, D, E2}E2 {A, C1, C2, D, E1}
VL A
AVL B
A AVL C1
A AÜ C2
AVL D
A AVL E1
A AÜ E2
Raum 1 Raum 2 Schritt: 1
28
Constraints:A {C1, C2, E1, E2}B {C1, C2}C1 {A, B, C2, D, E1, E2}C2 {A, B, C1, D, E1, E2}D {C1, C2, E1, E2}E1 {A, C1, C2, D, E2}E2 {A, C1, C2, D, E1}
VL A
VL B
B A B AVL C1
B A B AÜ C2
B AVL D
B A AVL E1
B A AÜ E2
Raum 1 Raum 2 Schritt: 2
A
29
Constraints:A {C1, C2, E1, E2}B {C1, C2}C1 {A, B, C2, D, E1, E2}C2 {A, B, C1, D, E1, E2}D {C1, C2, E1, E2}E1 {A, C1, C2, D, E2}E2 {A, C1, C2, D, E1}
VL A
VL B
VL C1
B A B AC1 C1Ü C2
B AC1 C1VL D
B A AC1 C1VL E1
B A AC1 C1Ü E2
Raum 1 Raum 2 Schritt: 3
A
B A B A
30
Constraints:A {C1, C2, E1, E2}B {C1, C2}C1 {A, B, C2, D, E1, E2}C2 {A, B, C1, D, E1, E2}D {C1, C2, E1, E2}E1 {A, C1, C2, D, E2}E2 {A, C1, C2, D, E1}
VL A
VL B
VL C1
Ü C2
B AC1 C1 C2VL D
B A AC1 C1 C2VL E1
B A AC1 C1 C2Ü E2
Raum 1 Raum 2 Schritt: 4
A
B A B A
B A B AC1 C1
31
Constraints:A {C1, C2, E1, E2}B {C1, C2}C1 {A, B, C2, D, E1, E2}C2 {A, B, C1, D, E1, E2}D {C1, C2, E1, E2}E1 {A, C1, C2, D, E2}E2 {A, C1, C2, D, E1}
VL A
VL B
VL C1
Ü C2
VL D
B A AD C1 D C1 C2VL E1
B A AD C1 D C1 C2Ü E2
Raum 1 Raum 2 Schritt: 5
A
B A B A
B A B AC1 C1
B AC1 C1 C2
32
Constraints:A {C1, C2, E1, E2}B {C1, C2}C1 {A, B, C2, D, E1, E2}C2 {A, B, C1, D, E1, E2}D {C1, C2, E1, E2}E1 {A, C1, C2, D, E2}E2 {A, C1, C2, D, E1}
VL A
VL B
VL C1
Ü C2
VL D
B A AD C1 D C1 C2VL E1
B A E1 AD C1 D C1 C2Ü E2
Die Veranstaltung E2 kann nichtplaziert werden Backtracking!
Raum 1 Raum 2 Schritt: 6
A
B A B A
B A B AC1 C1
B AC1 C1 C2
33
Constraints:A {C1, C2, E1, E2}B {C1, C2}C1 {A, B, C2, D, E1, E2}C2 {A, B, C1, D, E1, E2}D {C1, C2, E1, E2}E1 {A, C1, C2, D, E2}E2 {A, C1, C2, D, E1}
VL A
VL B
VL C1
Ü C2
VL D
B A AD C1 D C1 C2VL E1
B A AD C1 D C1 C2Ü E2
Die Veranstaltung E1 kann nichtplaziert werden Backtracking!
Raum 1 Raum 2 Schritt: 6
A
B A B A
B A B AC1 C1
B AC1 C1 C2
34
Constraints:A {C1, C2, E1, E2}B {C1, C2}C1 {A, B, C2, D, E1, E2}C2 {A, B, C1, D, E1, E2}D {C1, C2, E1, E2}E1 {A, C1, C2, D, E2}E2 {A, C1, C2, D, E1}
VL A
VL B
VL C1
Ü C2
B AC1 C1 C2VL D
B A AC1 C1 C2VL E1
B A AC1 C1 C2Ü E2
Raum 1 Raum 2 Schritt: 6
A
B A B A
B A B AC1 C1
35
Constraints:A {C1, C2, E1, E2}B {C1, C2}C1 {A, B, C2, D, E1, E2}C2 {A, B, C1, D, E1, E2}D {C1, C2, E1, E2}E1 {A, C1, C2, D, E2}E2 {A, C1, C2, D, E1}
VL A
VL B
VL C1
Ü C2
VL D
B A AD C1 D C1 C2VL E1
B A AD C1 D C1 C2Ü E2
Raum 1 Raum 2 Schritt: 7
A
B A B A
B A B AC1 C1
B AC1 C1 C2
36
Constraints:A {C1, C2, E1, E2}B {C1, C2}C1 {A, B, C2, D, E1, E2}C2 {A, B, C1, D, E1, E2}D {C1, C2, E1, E2}E1 {A, C1, C2, D, E2}E2 {A, C1, C2, D, E1}
VL A
VL B
VL C1
Ü C2
VL D
VL E1
B A E1 AD C1 D C1 C2Ü E2
Die Veranstaltung E2 kann nichtplaziert werden Backtracking!
Raum 1 Raum 2 Schritt: 8
A
B A B A
B A B AC1 C1
B AC1 C1 C2
B A AD C1 D C1 C2
37
Constraints:A {C1, C2, E1, E2}B {C1, C2}C1 {A, B, C2, D, E1, E2}C2 {A, B, C1, D, E1, E2}D {C1, C2, E1, E2}E1 {A, C1, C2, D, E2}E2 {A, C1, C2, D, E1}
VL A
VL B
VL C1
Ü C2
VL D
B A AD C1 D C1 C2VL E1
B A AD C1 D C1 C2Ü E2
Die Veranstaltung E1 kann nichtplaziert werden Backtracking!
Raum 1 Raum 2 Schritt: 8
A
B A B A
B A B AC1 C1
B AC1 C1 C2
38
Constraints:A {C1, C2, E1, E2}B {C1, C2}C1 {A, B, C2, D, E1, E2}C2 {A, B, C1, D, E1, E2}D {C1, C2, E1, E2}E1 {A, C1, C2, D, E2}E2 {A, C1, C2, D, E1}
VL A
VL B
VL C1
Ü C2
B AC1 C1 C2VL D
B A AC1 C1 C2VL E1
B A AC1 C1 C2Ü E2
Raum 1 Raum 2 Schritt: 8
A
B A B A
B A B AC1 C1
39
Constraints:A {C1, C2, E1, E2}B {C1, C2}C1 {A, B, C2, D, E1, E2}C2 {A, B, C1, D, E1, E2}D {C1, C2, E1, E2}E1 {A, C1, C2, D, E2}E2 {A, C1, C2, D, E1}
VL A
VL B
VL C1
Ü C2
VL D
B A D AC1 C1 C2VL E1
B A D AC1 C1 C2Ü E2
Raum 1 Raum 2 Schritt: 9
A
B A B A
B A B AC1 C1
B AC1 C1 C2
40
Constraints:A {C1, C2, E1, E2}B {C1, C2}C1 {A, B, C2, D, E1, E2}C2 {A, B, C1, D, E1, E2}D {C1, C2, E1, E2}E1 {A, C1, C2, D, E2}E2 {A, C1, C2, D, E1}
VL A
VL B
VL C1
Ü C2
VL D
VL E1
B A D AE1 C1 E1 C1 C2Ü E2
Die Veranstaltung E2 kann nichtplaziert werden Backtracking!
Raum 1 Raum 2 Schritt: 10
A
B A B A
B A B AC1 C1
B AC1 C1 C2
B A D AC1 C1 C2
41
Constraints:A {C1, C2, E1, E2}B {C1, C2}C1 {A, B, C2, D, E1, E2}C2 {A, B, C1, D, E1, E2}D {C1, C2, E1, E2}E1 {A, C1, C2, D, E2}E2 {A, C1, C2, D, E1}
VL A
VL B
VL C1
Ü C2
VL D
B A D AC1 C1 C2VL E1
B A D AC1 C1 C2Ü E2
Raum 1 Raum 2 Schritt: 10
A
B A B A
B A B AC1 C1
B AC1 C1 C2
42
Constraints:A {C1, C2, E1, E2}B {C1, C2}C1 {A, B, C2, D, E1, E2}C2 {A, B, C1, D, E1, E2}D {C1, C2, E1, E2}E1 {A, C1, C2, D, E2}E2 {A, C1, C2, D, E1}
VL A
VL B
VL C1
Ü C2
VL D
VL E1
B A D AE1 C1 E1 C1 C2Ü E2
Die Veranstaltung E2 kann nichtplaziert werden Backtracking!
Raum 1 Raum 2 Schritt: 11
A
B A B A
B A B AC1 C1
B AC1 C1 C2
B A D AC1 C1 C2
43
Constraints:A {C1, C2, E1, E2}B {C1, C2}C1 {A, B, C2, D, E1, E2}C2 {A, B, C1, D, E1, E2}D {C1, C2, E1, E2}E1 {A, C1, C2, D, E2}E2 {A, C1, C2, D, E1}
VL A
VL B
VL C1
Ü C2
VL D
B A D AC1 C1 C2VL E1
B A D AC1 C1 C2Ü E2
Die Veranstaltung E1 kann nichtplaziert werden Backtracking!
Raum 1 Raum 2 Schritt: 11
A
B A B A
B A B AC1 C1
B AC1 C1 C2
44
Constraints:A {C1, C2, E1, E2}B {C1, C2}C1 {A, B, C2, D, E1, E2}C2 {A, B, C1, D, E1, E2}D {C1, C2, E1, E2}E1 {A, C1, C2, D, E2}E2 {A, C1, C2, D, E1}
VL A
VL B
VL C1
Ü C2
B AC1 C1 C2VL D
B A AC1 C1 C2VL E1
B A AC1 C1 C2Ü E2
Raum 1 Raum 2 Schritt: 11
A
B A B A
B A B AC1 C1
45
Constraints:A {C1, C2, E1, E2}B {C1, C2}C1 {A, B, C2, D, E1, E2}C2 {A, B, C1, D, E1, E2}D {C1, C2, E1, E2}E1 {A, C1, C2, D, E2}E2 {A, C1, C2, D, E1}
VL A
VL B
VL C1
Ü C2
B AC1 C1 C2VL D
B A DC1 C1 C2VL E1
B A DC1 C1 C2Ü E2
Raum 1 Raum 2 Schritt: 12
A
B A B A
B A B AC1 C1
46
Constraints:A {C1, C2, E1, E2}B {C1, C2}C1 {A, B, C2, D, E1, E2}C2 {A, B, C1, D, E1, E2}D {C1, C2, E1, E2}E1 {A, C1, C2, D, E2}E2 {A, C1, C2, D, E1}
VL A
VL B
VL C1
Ü C2
VL D
VL E1
B A DE1 C1 E1 C1 C2Ü E2
Raum 1 Raum 2 Schritt: 13
A
B A B A
B A B AC1 C1
B AC1 C1 C2
B A DC1 C1 C2
47
Constraints:A {C1, C2, E1, E2}B {C1, C2}C1 {A, B, C2, D, E1, E2}C2 {A, B, C1, D, E1, E2}D {C1, C2, E1, E2}E1 {A, C1, C2, D, E2}E2 {A, C1, C2, D, E1}
VL A
VL B
VL C1
Ü C2
VL D
VL E1
B A DE1 C1 E1 C1 C2Ü E2
Raum 1 Raum 2 Schritt: 13
A
B A B A
B A B AC1 C1
B AC1 C1 C2
B A DC1 C1 C2
48
Ein Stundenplan Ein Stundenplan nach nur 13 Schritten!nach nur 13 Schritten!
Raum 1 Raum 2
Mo Di Mi Mo Di Mi
08.00 - 10.00 YB
XA
ZE2
ZD
10.00 - 12.00 ZE1
YC1
YC2
TagZeit
49
Web-Planspiel
UniPlaner-Prototyp:UniPlaner-Prototyp:Dialoge & Web-ClientDialoge & Web-Client
Klaus Quibeldey-Cirkel
Uni-GH Siegen, Technische Informatik
(eingesetzt im FB 12 der Uni-GH Siegen seit WS 1996/97)
51
Raum-Raum-VerzeichnisVerzeichnis
52
Dozenten-VerzeichnisDozenten-Verzeichnis
53
Erhebungsbogen IErhebungsbogen I
54
Erhebungsbogen IIErhebungsbogen II
55
Erhebungsbogen IIIErhebungsbogen III
56
PrioritätenlistePrioritätenliste
57
Web-ClientWeb-Client
Erhebungsbögen Erhebungsbögen im Internetim Internet– Kennwort-SchutzKennwort-Schutz– Erster Einsatz im SS 1999Erster Einsatz im SS 1999
Rückmeldungen per E-MailRückmeldungen per E-Mail– Aktuelle ErhebungsdatenAktuelle Erhebungsdaten– DozentenpläneDozentenpläne
Demo: Java-AppletDemo: Java-Applet
58
UniPlaner NextGeneration:UniPlaner NextGeneration:Neue FunktionenNeue Funktionen
Klaus Quibeldey-Cirkel
Uni-GH Siegen, Technische Informatik
60
CeBIT-FeedbackCeBIT-Feedback
Flexible VoreinstellungenFlexible Voreinstellungen– Zeitfenster, Veranstaltungstage, StudiengängeZeitfenster, Veranstaltungstage, Studiengänge
Manuelles Einplanen von Manuelles Einplanen von Ad-hoc-Ad-hoc-VeranstaltungenVeranstaltungen– Anzeigen der konfliktfreien ZeitfensterAnzeigen der konfliktfreien Zeitfenster
Frei konfigurierbare ReportsFrei konfigurierbare Reports– SQL-DatenabfragenSQL-Datenabfragen
Web-PublikationWeb-Publikation– Semesterpläne, VorlesungsverzeichnisSemesterpläne, Vorlesungsverzeichnis
61
Look `n` FeelLook `n` Feel
62
63
64
Neuer ArbeitsmodusNeuer Arbeitsmodus
65
66
Interessentenliste Interessentenliste „UniPlaner NextGeneration“„UniPlaner NextGeneration“
Hochschule Ansprech-partner
Telefon E-Mail