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