840 likes | 987 Views
Abschlusspräsentation Studienprojekt: Stundenplanerstellung mit evolutionären Algorithmen Abt. Formale Konzepte Studiengang Softwaretechnik SS 2000 und WS 2000/2001. Agenda. Zielsetzung Stundenplanerstellung als Optimierungsproblem Evolutionäre Algorithmen
E N D
Abschlusspräsentation Studienprojekt:Stundenplanerstellungmit evolutionären AlgorithmenAbt. Formale KonzepteStudiengang Softwaretechnik SS 2000 und WS 2000/2001
Agenda • Zielsetzung • Stundenplanerstellung als Optimierungsproblem • Evolutionäre Algorithmen • Problemlösung mit evol. Algorithmen • Erfahrungsaustausch
Zielsetzung • Kunde (K. Weicker): • Optimierung mit einemevolutionärem Algorithmus • Portabilität (Plattformunabhängigkeit) • Multilinguale Benutzeroberfläche • Festpreisprojekt (495.200,- DM) • Produktvision • Erstellung von Veranstaltungsplänen
Zielsetzung • Projekteigentümer (Prof. V. Claus): • Experimentierplattform für weitere Forschungsarbeiten im Bereich EA • Erstellung von Universitätsstundenplänen
Zielsetzung • Zielgruppe (Schulen): • Hohe Qualität der Stundenpläne • Kontrollmöglichkeiten • Manuelle Manipulation • Erstellung von Schulstundenplänen
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?
Agenda • Zielsetzung • Stundenplanerstellung als Optimierungsproblem • Evolutionäre Algorithmen • Problemlösung mit evol. Algorithmen • Erfahrungsaustausch
Stundenplanerstellung ...ein kombinatorisches Optimierungsproblem Lehrauftrag Verplante Stunden
Stundenplanerstellung ...ein kombinatorisches Optimierungsproblem
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
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
Varianz und Standardabweichung 5a Qualität: 1.0 5b Qualität: 2.0 5c Qualität: 4.5
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>
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>
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>
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>
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>
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>
Lösungen des Stundenplanproblems • Vielzahl von möglichen Lösungen • deterministischer Algorithmus schwer zu entwickeln Anwendung eines evolutionären Ansatzes
Agenda • Zielsetzung • Stundenplanerstellung als Optimierungsproblem • Evolutionäre Algorithmen • Problemlösung mit evol. Algorithmen • Erfahrungsaustausch
Evolutionärer Ansatz Idee: Orientierung an der Evolution der Natur Anpassung von Individuen an die natürliche Umwelt
Ablauf der Evolution Initialpopulation Selektion Rekombination Bewertung Mutation
Population • Besteht aus Individuen • Initialpopulation kann zufällig gewählt werden C D B A E Evolution der Individuen
Rekombination Kreuzung zweier Individuen Vater Kind Mutter
Mutation Veränderung der einzelnen Individuen Individuum A´ Individuum A 1 2 3 4 1 3 2 4
Bewertung und Selektion Generation n Generation n+1 1 6 6 8 8 4 7 7 2 3 5 5
Ablauf der Evolution Initialpopulation Selektion Rekombination Bewertung Mutation
Agenda • Zielsetzung • Stundenplanerstellung als Optimierungsproblem • Evolutionäre Algorithmen • Problemlösung mit evol. Algorithmen • Erfahrungsaustausch
Repräsentationsformen Vererbungsveranlagungen der Eltern Genotyp V M V M V M V M Phänotyp Augenfarbe des Kindes
Ausgangsstundenplan Veranstaltungsschlange (Event Queue) = Genotyp Stundenplantabelle = Phänotyp
Prinzipieller Ablauf der Optimierung Ausgangsstundenplan Population erstellen Initialisierung der Stundenpläne Mutation und Rekombination Bewertung Selektion
Population erstellen Ausgangsstundenplan Population
Initialisierung der Stundenpläne Population Initialisierung
Initialisierung durch Veranstaltungsschlange TimeTableBuilder Bedingungen Raumliste
Initialisierung durch Veranstaltungsschlange TimeTableBuilder
Initialisierung durch Veranstaltungsschlange TimeTableBuilder Engl. 103
Initialisierung durch Veranstaltungsschlange TimeTableBuilder Engl. 103 Fr. 207