Agenda
description
Transcript of Agenda
20.04.23 1
Abschlusspräsentation
Studienprojekt:
Stundenplanerstellungmit evolutionären Algorithmen
Abt. Formale KonzepteStudiengang Softwaretechnik SS 2000 und WS 2000/2001
20.04.23 2
Agenda
Zielsetzung Stundenplanerstellung als
Optimierungsproblem Evolutionäre Algorithmen Problemlösung mit evol. Algorithmen Erfahrungsaustausch
20.04.23 3
Zielsetzung
Kunde (K. Weicker): Optimierung mit einem
evolutionärem Algorithmus Portabilität
(Plattformunabhängigkeit) Multilinguale Benutzeroberfläche Festpreisprojekt (495.200,- DM) Produktvision
Erstellung von Veranstaltungsplänen
20.04.23 4
Zielsetzung
Projekteigentümer (Prof. V. Claus): Experimentierplattform für weitere
Forschungsarbeiten im Bereich EA
Erstellung von Universitätsstundenplänen
20.04.23 5
Zielsetzung
Zielgruppe (Schulen): Hohe Qualität der Stundenpläne Kontrollmöglichkeiten Manuelle Manipulation
Erstellung von Schulstundenplänen
20.04.23 6
Zielsetzung
Projektteam: Erfahrungen im
Softwareengineering:u.a. kommerzielles Prozessmodell
Einhaltung der Planung Hohe Qualität der Stundenpläne Wirtschaftliches Produkt
Erstellung von Veranstaltungsplänen? Universitätsstundenplänen? Schulstundenplänen?
20.04.23 7
»Stammdaten«Lehrer, Klassen, Räume
feste Termine
Lehrauftrag
Oberfläche zurDateneingabe
Problembeschreibung(XML-Datei)
Visualisierung
Stundenplan
Stundenplan(XML-Datei)
Automatische Optimierung
Manuelle Manipulation
Systemüberblick
20.04.23 8
»Stammdaten«Lehrer, Klassen, Räume
feste Termine
Lehrauftrag
Oberfläche zurDateneingabe
Problembeschreibung(XML-Datei)
Visualisierung
Stundenplan
Stundenplan(XML-Datei)
Automatische Optimierung
Manuelle Manipulation
Systemüberblick
20.04.23 9
»Stammdaten«Lehrer, Klassen, Räume
feste Termine
Lehrauftrag
Oberfläche zurDateneingabe
Problembeschreibung(XML-Datei)
Visualisierung
Stundenplan
Stundenplan(XML-Datei)
Automatische Optimierung
Manuelle Manipulation
Systemüberblick
20.04.23 10
»Stammdaten«Lehrer, Klassen, Räume
feste Termine
Lehrauftrag
Oberfläche zurDateneingabe
Problembeschreibung(XML-Datei)
Visualisierung
Stundenplan
Stundenplan(XML-Datei)
Automatische Optimierung
Manuelle Manipulation
Systemüberblick
20.04.23 11
Agenda
Zielsetzung Stundenplanerstellung als
Optimierungsproblem Evolutionäre Algorithmen Problemlösung mit evol. Algorithmen Erfahrungsaustausch
20.04.23 12
»Stammdaten«Lehrer, Klassen, Räume
feste Termine
Lehrauftrag
Oberfläche zurDateneingabe
Problembeschreibung(XML-Datei)
Visualisierung
Stundenplan
Stundenplan(XML-Datei)
Automatische Optimierung
Manuelle Manipulation
Ausgangsdaten
20.04.23 13
»Stammdaten«Lehrer, Klassen, Räume
feste Termine
Lehrauftrag
Oberfläche zurDateneingabe
Problembeschreibung(XML-Datei)
Visualisierung
Stundenplan
Stundenplan(XML-Datei)
Automatische Optimierung
Manuelle Manipulation
Ausgangsdaten
20.04.23 14
Lehrauftrag
Fach Wochenstunden
Klasse/Lehrer
M 5 5a/Müller
E 4 5a/Hartwig
… … …
… … …
… … …
20.04.23 15
»Stammdaten«Lehrer, Klassen, Räume
feste Termine
Lehrauftrag
Oberfläche zurDateneingabe
Problembeschreibung(XML-Datei)
Visualisierung
Stundenplan
Stundenplan(XML-Datei)
Automatische Optimierung
Manuelle Manipulation
Ausgangsdaten
20.04.23 16
Stundenplanerstellung
5a 5b 5c 5d
Mo 8.00
D102
E105
M103
M104
Mo9.00
M102
D105
SpTH1
SpTH2
Mo.10.00
E103
R104
Mu110
Mu111
Lehrauftrag Verplante StundenFach WoStd
.Klasse/Lehrer
M 5 5a/Müller
E 4 5a/Hartwig
...ein kombinatorisches Optimierungsproblem
20.04.23 17
Stundenplanerstellung
Fach
WoStd.
Klasse/Lehrer
Verletzung harter Bedingungen
Verl. weicher Bedingungen (Güte)
Status
M 5 5a/Müller Ja 1.3 Verplant
E 4 5a/Hartwig nein 4.0 Teilweise verplant(2/4)
… … … … … …
… … … … … …
...ein kombinatorisches Optimierungsproblem
20.04.23 18
Randbedingungen
Harte Randbedingungen beachten: Lehrer nur an einem Ort zur selben Zeit Klasse nur an einem Ort zur selben Zeit Raumgröße ausreichend für Klasse Lehrer verfügbar Klasse verfügbar ...
Verletzung dieser Bedingungen führt zu ungültigem Stundenplan
20.04.23 19
Randbedingungen
Weiche Randbedingungen beachten: Minimierung von Hohlstunden für Klassen Minimierung von Hohlstunden für Lehrer Minimale / maximale Anzahl von
Doppelstunden Freie Tage für Teilzeitlehrkräfte Verteilung der Veranstaltungen ...
Verletzung dieser Bedingungen reduziert Qualität des Stundenplans
20.04.23 20
Verteilung der Veranstaltungen
Mo Di Mi Do Fr
8.00 Ek
9.00
10.00
11.00
12.00 Ek
20.04.23 21
Verteilung der Veranstaltungen
Mo Di Mi Do Fr
8.00 Ek
9.00
10.00
11.00
12.00 Ek
Mo Di Mi Do Fr
8.00 Ek
9.00
10.00
11.00
12.00 Ek
20.04.23 22
Verteilung der Veranstaltungen
Mo Di Mi Do Fr
8.00 Ek
9.00
10.00
11.00
12.00 Ek
Mo Di Mi Do Fr
8.00 Ek
9.00
10.00
11.00
12.00 Ek
Mo Di Mi Do Fr
8.00
9.00 Ek
10.00
11.00 Ek
12.00
20.04.23 23
Verteilung der Veranstaltungen
Mo Di Mi Do Fr
8.00 Ek
9.00
10.00
11.00
12.00 Ek
Mo Di Mi Do Fr
8.00 Ek
9.00
10.00
11.00
12.00 Ek
Mo Di Mi Do Fr
8.00
9.00 Ek
10.00
11.00 Ek
12.00
20.04.23 24
Varianz und Standardabweichung
Mo Di Mi Do Fr
8.00 Ek
9.00
10.00
11.00
12.00 Ek
Mo Di Mi Do Fr
8.00 Ek
9.00
10.00
11.00
12.00 Ek
Mo Di Mi Do Fr
8.00
9.00 Ek
10.00
11.00 Ek
12.00
Qualität: 1.0 Qualität: 2.0
Qualität: 4.5
5a 5b
5c
20.04.23 25
Aufbau einer Veranstaltung
<event id=”xxx” constraints... >
<section id=”xx” name=”abcde” size=””>
<involvedTeachers />
<involvedClasses />
<requiredRoomFeatures />
<preferredRoomFeatures />
</section>
<section id=”xy” name=”fghij” size=””>
...
</section>
</event>
20.04.23 26
Aufbau einer Veranstaltung
<event id=”378” hoursPerWeek=”5” minDouble=”0”
maxDouble=”1” borderPlacement=”prefer”
fortnightPlacement=”forbid”
noonBreakPlacement=”forbid” concurrentEvent=”233”>
...
</event>
<event id=”xxx” constraints... >
<section id=”xx” name=”abcde” size=””>
<involvedTeachers />
<involvedClasses />
<requiredRoomFeatures />
<preferredRoomFeatures />
</section>
<section id=”xy” name=”fghij” size=””>
...
</section>
</event>
20.04.23 27
Aufbau einer Veranstaltung
<section id=”1” name=”kath. Rel.” size=”17”>
<involvedTeachers />
<involvedClasses />
<requiredRoomFeatures />
<preferredRoomFeatures />
</section>
<event id=”xxx” constraints... >
<section id=”xx” name=”abcde” size=””>
<involvedTeachers />
<involvedClasses />
<requiredRoomFeatures />
<preferredRoomFeatures />
</section>
<section id=”xy” name=”fghij” size=””>
...
</section>
</event>
20.04.23 28
Aufbau einer Veranstaltung
<involvedTeachers>
<involvedTeacher teacher-ref=”We” />
<involvedTeacher teacher-ref=”Hu” />
</involvedTeachers>
<involvedClasses>
<involvedClass class-ref=”5a” />
<involvedClass class-ref=”5b” />
<involvedClass class-ref=”5c” />
</involvedClasses><event id=”xxx” constraints... >
<section id=”xx” name=”abcde” size=””>
<involvedTeachers />
<involvedClasses />
<requiredRoomFeatures />
<preferredRoomFeatures />
</section>
<section id=”xy” name=”fghij” size=””>
...
</section>
</event>
20.04.23 29
Aufbau einer Veranstaltung
<requiredRoomFeatures>
<feature id=”Klassenzimmer” />
<feature id=”Unterstufe” />
</requiredRoomFeatures>
<preferredRoomFeatures>
<feature id=”Musik” />
<feature id=”Tommelwirbel” />
</preferedRoomFeatures>
<event id=”xxx” constraints... >
<section id=”xx” name=”abcde” size=””>
<involvedTeachers />
<involvedClasses />
<requiredRoomFeatures />
<preferredRoomFeatures />
</section>
<section id=”xy” name=”fghij” size=””>
...
</section>
</event>
20.04.23 30
Aufbau einer Veranstaltung<event id=”378” hoursPerWeek=”5” minDouble=”0” maxDouble=”1” borderPlacement=”prefer”
fortnightPlacement=”forbid” noonBreakPlacement=”forbid” concurrentEvent=”233”>
<section id=”1” name=”kath. Rel.” size=”17”>
<involvedTeachers>
<involvedTeacher teacher-ref=”Fi” />
</involvedTeachers>
<involvedClasses>
<involvedClass class-ref=”5a” />
<involvedClass class-ref=”5c” />
</involvedClasses>
<requiredRoomFeatures>
<feature name=”Klassenzimmer” />
</requiredRoomFeatures>
</section>
<section id=”2” name=”ev. Rel.” size=”34”>
<involvedTeachers>
<involvedTeacher teacher-ref=”We” />
</involvedTeachers>
<involvedClasses>
<involvedClass class-ref=”5c” />
</involvedClasses>
<requiredRoomFeatures>
<feature id=”Klassenzimmer” />
</requiredRoomFeatures>
<preferredRoomFeatures>
<feature id=”Musik” />
</preferedRoomFeatures>
</section>
</event>
20.04.23 31
Lösungen des Stundenplanproblems
• Vielzahl von möglichen Lösungen
• deterministischer Algorithmus schwer zu entwickeln
Anwendung eines evolutionären Ansatzes
20.04.23 32
Demonstration
20.04.23 33
Agenda
Zielsetzung Stundenplanerstellung als
Optimierungsproblem Evolutionäre Algorithmen Problemlösung mit evol. Algorithmen Erfahrungsaustausch
20.04.23 34
Evolutionärer Ansatz
Idee: Orientierung an der Evolution der Natur
Anpassung von Individuen an die natürliche Umwelt
20.04.23 35
Ablauf der Evolution
Selektion Rekombination
Bewertung
Mutation
Initialpopulation
20.04.23 36
Population
• Besteht aus Individuen
• Initialpopulation kann zufällig gewählt werden
AE
C
Evolution der Individuen
B D
20.04.23 37
Rekombination
Kreuzung zweier Individuen
Vater
Kind
Mutter
20.04.23 38
Mutation
Veränderung der einzelnen Individuen
1 2 3 4 1 3 2 4
Individuum A Individuum A´
20.04.23 39
Bewertung und Selektion
6
4
1
2
8
3
7
5
6
8
7
5
Generation n Generation n+1
20.04.23 40
Ablauf der Evolution
Selektion Rekombination
Bewertung
Mutation
Initialpopulation
20.04.23 41
Agenda
Zielsetzung Stundenplanerstellung als
Optimierungsproblem Evolutionäre Algorithmen Problemlösung mit evol. Algorithmen Erfahrungsaustausch
20.04.23 42
V M V M
Repräsentationsformen
Genotyp
Phänotyp
V M V M
Vererbungsveranlagungen der Eltern
Augenfarbe des Kindes
20.04.23 43
Ausgangsstundenplan
Fach WoStd.
Klasse/Lehrer
Verletzung harter Bedingungen
Verletzung weicher Bedingungen
Status
Schwimmen
2 13/Landspergis
--- --- Verplant
Veranstaltungsschlange (Event Queue)
= Genotyp
Stundenplantabelle
= Phänotyp
20.04.23 44
Prinzipieller Ablauf der Optimierung
Ausgangsstundenplan Population erstellen Initialisierung der Stundenpläne
Mutation und Rekombination
Bewertung
Selektion
20.04.23 45
Population erstellen
Ausgangsstundenplan
Population
20.04.23 46
Initialisierung der Stundenpläne
Population Initialisierung
20.04.23 47
Initialisierung durch Veranstaltungsschlange
Klassen
Zeit
TimeTableBuilder
Sport 5aBergmiller2 WoStd.
… … …Gk 13Doil2 WoStd.
RaumlisteBedingungen
20.04.23 48
Initialisierung durch Veranstaltungsschlange
5a ... ... 7b … … … 11d
Mo8.00
Mo9.00
Mo.10.00
TimeTableBuilder
Engl. 5aMüller5 WoStd.
Franz. 7bTrestil5 WoStd.
Ek 11dKautsch2 WoStd.
Bio 5bGertz3 WoStd.
Gesch. 8aLatech2 WoStd.
20.04.23 49
Initialisierung durch Veranstaltungsschlange
5a ... ... 7b … … … 11d
Mo8.00
Mo9.00
Mo.10.00
Engl.
103
Franz. 7bTrestil5 WoStd.
Ek 11dKautsch2 WoStd.
Bio 5bGertz3 WoStd.
Gesch. 8aLatech2 WoStd.
TimeTableBuilder
Engl. 5aMüller5 WoStd.
20.04.23 50
Initialisierung durch Veranstaltungsschlange
5a ... ... 7b … … … 11d
Mo 8.00
Mo9.00
Mo.10.00
Engl.
103
Ek 11dKautsch2 WoStd.
Bio 5bGertz3 WoStd.
Gesch. 8aLatech2 WoStd.
Fr.
207
TimeTableBuilder
Engl. 5aMüller5 WoStd.
Franz. 7bTrestil5 WoStd.
20.04.23 51
Initialisierung durch Veranstaltungsschlange
5a ... ... 7b … … … 11d
Mo 8.00
Mo9.00
Mo.10.00
Engl.
103
Bio 5bGertz3 WoStd.
Gesch. 8aLatech2 WoStd.
Ek
633
Fr.
207
TimeTableBuilder
Franz. 7bTrestil5 WoStd.
Engl. 5aMüller5 WoStd.
Ek 11dKautsch2 WoStd.
20.04.23 52
Genotypmutation
vertauschen
Engl. 5aMüller5 WoStd.
Franz. 7bTrestil5 WoStd.
Ek 11dKautsch2 WoStd.
Bio 5bGertz3 WoStd.
Gesch. 8aLatech2 WoStd.
20.04.23 53
Genotypmutation
Engl. 5aMüller5 WoStd.
Franz. 7bTrestil5 WoStd.
Ek 11dKautsch2 WoStd.
Bio 5bGertz3 WoStd.
Gesch. 8aLatech2 WoStd.
Franz. 7bTrestil5 WoStd.
Bio 5bGertz3 WoStd.
20.04.23 54
Genotypmutation
Engl. 5aMüller5 WoStd.
Franz. 7bTrestil5 WoStd.
Ek 11dKautsch2 WoStd.
Bio 5bGertz3 WoStd.
Gesch. 8aLatech2 WoStd.
Franz. 7bTrestil5 WoStd.
Bio 5bGertz3 WoStd.
20.04.23 55
Phänotypmutation
Phänotyp-Mutatoren:
Verschieben von Stunden
Entfernen von Stunden
Platzieren von Stunden
20.04.23 56
Engl. 5aMüller5 WoStd.
Franz. 7bTrestil5 WoStd.
Gk 12Bergmiller3 WoStd.
Geschi 9aWieland2 WoStd.
Ek 11dGeiger2 WoStd.
Bio 5bSchöning3 WoStd.
Gesch. 8aLatech2 WoStd.
Engl. 5aMüller5 WoStd.
Franz. 7bTrestil5 WoStd.
Ek 11dGeiger2 WoStd.
Bio 5bSchöning3 WoStd.
Gesch. 8aLatech2 WoStd.
Rekombination
Ek 12Linneweber2 WoStd.
Religion 6cDoil2 WoStd.
Sport 8aBartsch2 WoStd.
20.04.23 57
Bewertung
Unverplante /teilweise verplanteVeranstaltungen
Score
ConstraintWatcher
Randbedingung 1
Randbedingung 2
Randbedingung n
Standardabweichung 1
Standardabweichung 2
Standardabweichung n
20.04.23 58
Selektion
Verletzungen 137 102 193
20.04.23 59
Selektion
Verletzungen 137 102 193
137 102 102Verletzungen
20.04.23 60
Ergebnis
20.04.23 61
Demonstration
20.04.23 62
Agenda
Zielsetzung Stundenplanerstellung als
Optimierungsproblem Evolutionäre Algorithmen Problemlösung mit evol. Algorithmen Erfahrungsaustausch
20.04.23 63
Projektverlauf und Erfahrungen
Ist/Soll-Daten
Probleme
Tips
Verbesserungsmöglichkeiten
20.04.23 64
Ist-Daten: Grösse
Entwicklung der Produktgrösse
0
2000
4000
6000
8000
10000
12000
14000
16000
6.6.
00
21.6
.00
19.7
.00
20.1
0.00
17.1
1.00
8.1.
01
23.1
.01
10.2
.01
19.2
.01
Ende I1 Ende I2 EndeE1
EndeE2
EndeC1
n/a EndeC2
EndeC3
EndeT1
Zeit
LO
C
Total Product Size
Custom Component Size
Test Driver Size
COTS Size
Polynomisch (Total Product Size)
20.04.23 65
Produktgrösse nach Metaklasse
0,00
2000,00
4000,00
6000,00
8000,00
10000,00
12000,00
14000,00
16000,00
6.6.00 21.6.00 19.7.00 20.10.00 17.11.00 8.1.01 23.1.01 10.2.01 19.2.01
Ende I1 Ende I2 Ende E1 Ende E2 Ende C1 n/a Ende C2 Ende C3 Ende T1
Zeit
LO
C
COTS
TestDriver
Import
EA
EAPhenotypeMutator
Model
ConstraintWatcher
CacheObject
FrameworkClass
View
Dialog
BP
Ist-Daten: LOC / MetaClass
20.04.23 66
Entwicklung der Produktkomplexität
0
50
100
150
200
250
6.6
.00
21
.6.0
0
19
.7.0
0
20
.10
.00
17
.11
.00
8.1
.01
23
.1.0
1
10
.2.0
1
19
.2.0
1Ende I1 Ende I2 Ende
E1Ende
E2Ende
C1n/a Ende
C2Ende
C3Ende T1
Zeit
An
zah
l Kla
ss
en
Number of custom classes
Polynomisch (Number of customclasses)
Ist-Daten: Komplexität
20.04.23 67
Mittlere Anzahl Zeilen pro Metaklasse
0,00
50,00
100,00
150,00
200,00
250,00
6.6.00 21.6.00 19.7.00 20.10.00 17.11.00 8.1.01 23.1.01 10.2.01 19.2.01
Ende I1 Ende I2 Ende E1 Ende E2 Ende C1 n/a Ende C2 Ende C3 Ende T1
Zeit
LO
C
BP
Dialog
View
FrameworkClass
CacheObject
ConstraintWatcher
Model
EAPhenotypeMutator
EA
Import
TestDriver
COTS
Avg. LOC / MetaClass
20.04.23 68
Ist-Daten: Aufwand
Aufwand geschätzt 495200,00 DMentspricht 2476,00 hbei Stundenlohn 200,00 DM/h
Kosten Stand 15.02.2001 503566,67 DMentspricht 2517,83 hDifferenz 1,69 %
Produktivität geschätzt 7,78 LOC/hProduktivität Ist 5,56 LOC/hDifferenz 39,90 %
20.04.23 69
IST-Daten: Arbeitsauslastung
Arbeitsauslastung:
durchschnittliche Arbeitszeit 314,73 h
Standardabweichung 113,25 h
20.04.23 70
Ist-Daten: Verteilung
Gesam t Verte ilung
0,00
200,00
400,00
600,00
800,00
1000,00
1200,00
Aufwand
20.04.23 71
Technische Probleme
Speicherbedarf pro Individuum ca. 1,3 MB
20.04.23 72
Personelle Probleme
-200
-150
-100
-50
0
50
100
150
200
250
Mai 00 Jun 00 Jul 00 Aug 00 Sep 00 Okt 00 Nov 00
Assessmnetteam's workloadunderrun [h]
Projectmanagementteam's workloadunderrun [h]
EA team'sworkloadunderrun [h]
Developmentteam's workloadunderrun [h]
milestonelatenesssumme(daysdelay)/#Milestone this month
20.04.23 73
Strategien zur Bewältigung von Problemen
Problem Strategie
Ressourcenverfügbarkeit Fix Jours, Max. Anzahl Fehltage definieren
Planbarkeit Vor Urlauben Arbeit ableisten und Arbeit im Team präsentieren, von Betreuer bestätigen lassen.
Prozess- oder Produktqualität zu gering Iterative Entwicklung
Symtom: „Am Anfang muss ja nicht jeder so viel machen“
Teams sind zu groß für Koordination Zwei Teil-Teams - Informatik-Problem- Anwendungsoberfläche
20.04.23 74
Problem Strategie
Qualitätssicherung funktioniert nicht von Anfang an Tester integrieren
Simultanes arbeiten nicht möglich Architekturbeschreibungen und Meta-Modelle ermöglichen Transparenz und verteiltes Arbeiten
Strategien zur Bewältigung von Problemen
20.04.23 75
Tip: Beschreiben der Entwicklungs- und der Zielorganisationen
KenntnisseWeiterbildungswünscheErwartungen einzelner an das Projekt / das Team
Entwicklungsorganisation
ZielorganisationVorkenntnisse
20.04.23 76
Tip: Organisation
20.04.23 77
Tip: Arbeitsumgebung(1)
MS PoolWerkzeuge
CVSMS Office 2000JBuilder 4.0Together J
RUP: Dokumentenvorlagen, Arbeitsanleitungen Dokumentenablagesystem
20.04.23 78
Tip: Arbeitsumgebung(2)
20.04.23 79
Tip: Arbeitsumgebung(3)
20.04.23 80
Tip: Zeitplanung
Semesterferien frei – als Pufferzeit ca. 40 Stunden/Arbeitsmonat
Inkrementelle Auslieferung Datenmodell, Import, EA globale Suche Visualisierung, EA lokale Suche Manipulation, EA Tuning
20.04.23 81
Bitte Bitte nicht!
Verbesserung der Vorbildung * Iterative Prozessmodelle
* OOA* OOD* OOP* Werkzeugverwendung
Java-Technologien zu stark forcieren
(Ressourcenbedarf)
Forderungen (1)
20.04.23 82
Forderungen (2)
Bitte Bitte nicht!
Verbesserung der Infrastruktur - Assessments- Projektmanagementwerkzeuge- zentrale Zeiterfassung-Testwerkzeuge- Prozessmodellbeschreibungen- Konfigurationsmanagement
-Zwei Gruppen wieder zusammenführen
- verbessern der VorbildungIterative Prozessmodelle
OOAOODOOPWerkzeugverwendung
20.04.23 83
Offene Punkte bei der Projektdurchführung
Projektabbruch Umgang mit
„Keine Zeit Syndrom“ und „Projektmoral“ Verantwortung und Macht Fix-Jours Nachweise über Arbeitspakete
Bewertung schwierig und nicht transparent