Genetische Algorithmen - Programmierung und Anwendung

Werbung
Institut für Thermodynamik
der Luft- und Raumfahrt
Software-Engineering und Optimierungsanwendungen in der
Thermodynamik
Optimierung
5 Genetische Algorithmen - Programmierung und Anwendung
© Prof. Dr. Rolf Dornberger
Optimization: 2 Genetic Algorithms
18.07.2006
1
Institut für Thermodynamik
der Luft- und Raumfahrt
5 Genetische Algorithmen - Programmierung und Anwendung
5 Genetische Algorithmen - Programmierung und Anwendung
– 5.1 Wiederholung
– 5.2 GA in Java
– 5.3 Beispiele
– 5.4 Ausblick
© Prof. Dr. Rolf Dornberger
Optimization: 2 Genetic Algorithms
18.07.2006
2
Institut für Thermodynamik
der Luft- und Raumfahrt
5.1 Wiederholung
1010101010101001010 0111101101010100110101
Chromosom 1
1101010011110110100 1010101010101101010101
Generation 1
Chromosom 2
Gen 1
Gen 2
Individuum: Lebewesen > Lösungskandidat
Chromosom: DNS-Histon-Protein-Strang > Zeichenkette
Gen: Teilstück eines Chromosoms > Zeichen
Allel: Ausprägung eines Gens > Zeichenwert
Locus: Ort eines Gens > Position eines Zeichens
Population: Menge von Lebewesen > Menge von Chromosomen
Generation: Population zu einem Zeitpunkt > Population zu einem Zeitpunkt
Fitness: Tauglichkeit > Bewertung eines Lösungskandidaten
© Prof. Dr. Rolf Dornberger
Optimization: 2 Genetic Algorithms
18.07.2006
3
Institut für Thermodynamik
der Luft- und Raumfahrt
5.1 Wiederholung
Die Grundelemente eines genetischen Algorithmus sind:
Kodierungsvorschrift für die Lösungskandidaten
– Problemspezifisch
Anfangspopulation zu erzeugen
– Meistens zufällige Zeichenketten
Bewertungsfunktion (Fitnessfunktion) für die Individuen
– Meist ist die Bewertungsfunktion mit der zu optimierenden Funktion identisch.
Auswahlmethode (Selektion) auf der Grundlage der Fitnessfunktion
– Welche Individuen werden zur Erzeugung von Nachkommen verwendet.
– Welche unverändert in die nächste Generation gelangen.
© Prof. Dr. Rolf Dornberger
Optimization: 2 Genetic Algorithms
18.07.2006
4
Institut für Thermodynamik
der Luft- und Raumfahrt
5.1 Wiederholung
Mutations-Funktion: zufällige Veränderung einzelner Gene
Crossover-Funktion: Rekombination von Chromosomen
© Prof. Dr. Rolf Dornberger
Optimization: 2 Genetic Algorithms
18.07.2006
5
Institut für Thermodynamik
der Luft- und Raumfahrt
5.2 GA in Java
Flussdiagramm GA
© Prof. Dr. Rolf Dornberger
Mögliches Klassendiagramm GA
Optimization: 2 Genetic Algorithms
18.07.2006
6
Institut für Thermodynamik
der Luft- und Raumfahrt
5.2 GA in Java
Eclipse-Projekt
– GA1.zip auspacken
– Projekt (oder
Filesystem) in Eclipse
importieren
© Prof. Dr. Rolf Dornberger
Optimization: 2 Genetic Algorithms
18.07.2006
7
Institut für Thermodynamik
der Luft- und Raumfahrt
5.2 GA in Java
Klassendiagramm GA
© Prof. Dr. Rolf Dornberger
Optimization: 2 Genetic Algorithms
18.07.2006
8
Institut für Thermodynamik
der Luft- und Raumfahrt
5.2 GA in Java
Klassendiagramm GA
© Prof. Dr. Rolf Dornberger
Optimization: 2 Genetic Algorithms
18.07.2006
9
Institut für Thermodynamik
der Luft- und Raumfahrt
5.2 GA in Java
Klassendiagramm GA
© Prof. Dr. Rolf Dornberger
Optimization: 2 Genetic Algorithms
18.07.2006
10
Institut für Thermodynamik
der Luft- und Raumfahrt
5.2 GA in Java
Klassendiagramm GA
© Prof. Dr. Rolf Dornberger
Optimization: 2 Genetic Algorithms
18.07.2006
11
Institut für Thermodynamik
der Luft- und Raumfahrt
5.2 GA in Java
main-Methode GA
© Prof. Dr. Rolf Dornberger
Optimization: 2 Genetic Algorithms
18.07.2006
12
Institut für Thermodynamik
der Luft- und Raumfahrt
5.2 GA in Java
Verschiedene Parameter
– Anzahl der Gene (Population.main.NUMBEROFGENES)
– Größe eines Gens (Population.main.LENGTHOFGENES)
– Chromosomgröße = Anzahl der Gene * Größe eines Gens (abgeleitete Größe)
– Allel, Ausprägung eines Genes, Zahlensystem, Kodierungsvorschrift (Population.main.VALUESYSTEM)
– Populationsgröße, Anzahl Individuen pro Generation (Population.main.NUMBEROFINDIVIDUALS)
– Maximalanzahl von Generationen (Population.main.NUMBEROFGENERATIONS)
–
–
–
–
–
Selektionsschema (Population.main.SELECTIONSCHEME)
Crossover-Wahrscheinlichkeit (Population.main.CROSSOVERPROBABILITY)
Crossover-Schema (Population.main.CROSSOVERSCHEME)
Mutationswahrscheinlichkeit (Population.main.MUTATIONPROBABILITY)
Mutationsschema (Population.main.MUTATIONSCHEME)
– Verbose-Level (Zusätzliche Ausgaben auf Konsole mit zunehmenden Werten von 0 bis 3)
Abbruchkriterien
– Maximalanzahl von Generationen
– Anzahl von Generationen, in denen es keine Verbesserung gab
– Mindestlösungsgüte wurde erreicht
© Prof. Dr. Rolf Dornberger
Optimization: 2 Genetic Algorithms
18.07.2006
13
Institut für Thermodynamik
der Luft- und Raumfahrt
5.2 GA in Java
© Prof. Dr. Rolf Dornberger
Optimization: 2 Genetic Algorithms
18.07.2006
14
Institut für Thermodynamik
der Luft- und Raumfahrt
5.3 Beispiele
Optimiere y = (x-3)^2-1
y = (x-3)^2-1
y = (x-3)^2-1
150
130
110
y
70
y = f(x)
y = f(x)
90
50
-1
30
10
-10 -9 -8 -7 -6 -5 -4 -3 -2 -10
-1 0
1
2
3
4
5
6
7
8
9 10
10
9
8
7
6
5
4
3
2
1
0
-1 0
-2
-3
-4
-5
1
2
3
4
5
x
x
© Prof. Dr. Rolf Dornberger
y
Optimization: 2 Genetic Algorithms
18.07.2006
15
Institut für Thermodynamik
der Luft- und Raumfahrt
5.3 Beispiele
Optimiere y = (x-3)^2-1
© Prof. Dr. Rolf Dornberger
Optimization: 2 Genetic Algorithms
18.07.2006
16
-20
© Prof. Dr. Rolf Dornberger
Optimization: 2 Genetic Algorithms
1111110000
1111000110
1110011100
1101110010
1101001000
1100011110
1011110100
1011001010
1010100000
1001110110
1001001100
1000100010
0111111000
0111001110
0110100100
0101111010
0101010000
0100100110
0011111100
0011010010
0010101000
0001111110
0001010100
0000101010
9.71
8.89
8.06
7.24
6.42
5.6
4.78
3.96
3.14
2.32
1.5
0.67
-0.1
-1
-1.8
-2.6
-3.4
-4.3
-5.1
-5.9
-6.7
-7.5
-8.4
-9.2
-10
-20
0000000000
y-Werte = fitness
y-Werte = fitness
Institut für Thermodynamik
der Luft- und Raumfahrt
5.3 Beispiele
Funktion y=(x-3)^2-1
180
160
140
120
100
80
Funktion y=(x-3)^2-1
60
40
20
0
x-Werte
Funktion y=(x-3)^2-1
180
160
140
120
100
80
60
Funktion y=(x-3)^2-1
40
20
0
chromosom
18.07.2006
17
Institut für Thermodynamik
der Luft- und Raumfahrt
5.3 Beispiele
Optimiere y = (0.5*x-1)^4-10*(0.5*x-1.1)^2+10
y = (0.5*x-1)^4-10*(0.5*x-1.1)^2+10
150
140
130
120
110
100
90
80
70
60
50
40
30
20
10
0
-10 -9 -8 -7 -6 -5 -4 -3 -2 -10
-1 0
-20
-30
30
20
10
y
y = f(x)
y = f(x)
y = (0.5*x-1)^4-10*(0.5*x-1.1)^2+10
0
-5
-4
-3
-2
y
0
1
2
3
4
5
6
7
8
-10
-20
1
2
3
4
5
6
7
8
9 10
-30
x
© Prof. Dr. Rolf Dornberger
-1
x
Optimization: 2 Genetic Algorithms
18.07.2006
18
Institut für Thermodynamik
der Luft- und Raumfahrt
5.3 Beispiele
Optimiere y = (0.5*x-1)^4-10*(0.5*x-1.1)^2+10
© Prof. Dr. Rolf Dornberger
Optimization: 2 Genetic Algorithms
18.07.2006
19
Institut für Thermodynamik
der Luft- und Raumfahrt
5.3 Beispiele
Optimiere y = (0.5*x-1)^4-10*(0.5*x-1.1)^2+10
© Prof. Dr. Rolf Dornberger
Optimization: 2 Genetic Algorithms
18.07.2006
20
Institut für Thermodynamik
der Luft- und Raumfahrt
5.4 Ausblick
Programm
– Parameter des GA an einer Stelle zusammenfassen
– Einführung einer Basisklasse, von der alle anderen Klassen abgeleitet sind
–
Anwendung
– Anstelle mathematischer Testfunktion „thermodynamisches Problem“ einfügen
–
Optimierung
– Best Practices für Einsatz des GA aufstellen: Mit welchen Parametern konvergiert der GA
am schnellsten, am robustesten usw.
– Abbruchkriterien
– Mehrfachoptimierung desselben Problems
– Mehrere Minima / Maxima
–
© Prof. Dr. Rolf Dornberger
Optimization: 2 Genetic Algorithms
18.07.2006
21
Institut für Thermodynamik
der Luft- und Raumfahrt
Lernziele
Funktionsweise eines Genetischen Algorithmus erklären können.
Elemente eines Genetischen Algorithmus benennen können.
Programmtechnische Umsetzung nachvollziehen können.
Schwierigkeiten bei der Optimierung erkennen und diskutieren können.
© Prof. Dr. Rolf Dornberger
Optimization: 2 Genetic Algorithms
18.07.2006
22
Herunterladen