Slide 1

Slide 1 text

Evolution im Computer

Slide 2

Slide 2 text

Stephan Pirnbaum @spirnbaum Junior-Consultant @buschmais Steffen Gemkow @SteffenGemkow Geschäftsführer @ObjectFab

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

Infinite-Monkey Theorem ● Man nehme: ○ Unendliche Anzahl Affen ○ Je Affe eine Schreibmaschine ○ Unendlich Zeit ● Man erhalte: ○ Shakespeares Werke ○ Ressourcenproblem ○ Problem mit den Tierschützern https://www.theinfinitemonkeytheorem.com/

Slide 5

Slide 5 text

Methinks it is like a weasel ● Gedankenexperiment von Richard Dawkins ○ Tastatur mit 26 + 1 Tasten (Buchstaben + Space) ○ Einen Fehler-machenden Copy-Paste-Affen ○ Eine Ausgangstextsequenz (Zufällig, Länge 28) https://www.worldatlas.com/articles/what-are-the-differences-between-a-stoat-and-a-weasel.html

Slide 6

Slide 6 text

Evolutionäre was?

Slide 7

Slide 7 text

Darwins Evolutionstheorie ● 3 Grundthesen ○ Alles Leben hat sich im Laufe der Zeit entwickelt ○ Die Weiterentwicklung von Arten erfolgt durch natürliche Selektion ○ Arten passen sich an die Natur an https://www.dkfindout.com/uk/science/famous-scientists/charles-darwin/

Slide 8

Slide 8 text

Darwins Evolutionstheorie - Grundbegriffe ● Individuum ○ Ein einzelnes Lebewesen oder Ding ● Population ○ Menge aller Individuen einer Art, die untereinander genetisch, physiologisch und räumlich fähig sind, sich fortzupflanzen ● Generation ○ Menge aller Individuen, die den gleichen Abstand zu ihren gemeinsamen Vorfahren haben

Slide 9

Slide 9 text

Darwins Evolutionstheorie - Grundbegriffe ● Selektion ○ Auslese der stärksten bzw. angepasstesten Individuen einer Generation ● Kreuzung ○ Kombination der Erbanlagen zweier Individuen zur Fortpflanzung ● Mutation ○ Zufällige Änderung von Teilen der Erbanlagen

Slide 10

Slide 10 text

Darwins Evolutionstheorie - Algorithmus 1: population = Initiale Population (Generation 0) 2: while (true) do 3: selektion = selektiere ( population ) 4: population = mutiere ( kreuze ( selektion ) )

Slide 11

Slide 11 text

Darwins Evolutionstheorie ist ein Algorithmus zur Optimierung

Slide 12

Slide 12 text

Evolution, aber wie?

Slide 13

Slide 13 text

Evolution, aber wie? Schritt 1: Das Problem

Slide 14

Slide 14 text

Das Problem - Anforderungen ● Optimierungsproblem o Mehrere mögliche Lösungen ○ Lösungen kodierbar ○ Lösungen bewertbar ○ Bereitschaft, auf die BESTE Lösung zu verzichten

Slide 15

Slide 15 text

Evolution, aber wie? Schritt 2: Die Kodierung

Slide 16

Slide 16 text

Die Kodierung ● Lineare Repräsentation ○ z.B. Array ● Baum-Repräsentation ○ z.B. Syntaxbaum

Slide 17

Slide 17 text

Die Kodierung - Genotyp vs. Phänotyp ● Genotyp ist das Erbbild eines Merkmals ● Phänotyp ist das Erscheinungsbild (Ausprägung) eines Merkmals ● Genetische Algorithmen: Genotyp != Phänotyp ● Evolutionsstrategie: Genotyp = Phänotyp

Slide 18

Slide 18 text

Die Kodierung ● “Methinks it is like a weasel” ○ Lineare Repräsentation → Evolutionsstrategie da Genotyp = Phänotyp

Slide 19

Slide 19 text

Evolution, aber wie? Schritt 3: Die Selektion

Slide 20

Slide 20 text

Die Selektion ● Qualität einer Lösung im Kontext des Problems ● Höhere Qualität = Höhere Wahrscheinlichkeit für “Vermehrung” ● Ein oder mehrere Kriterien, Skalarisierung möglich ● Fitnessfunktion

Slide 21

Slide 21 text

Die Selektion - Single vs. Multi Objective ● Single Objective Optimization ○ Lösungsqualität ist von einer skalarisierbaren Eigenschaft abhängig ■ Direkte Nutzung dieser zur Bewertung ○ Lösungsqualität ist von mehreren skalarisierbaren Eigenschaften abhängig ■ Kombination aller Eigenschaften zu einem Skalar notwendig ■ Gewichtung der Eigenschaften spielt große Rolle für Resultat ○ (normalisierter) Skalar entspricht der Wahrscheinlichkeit für die Auswahl zur Weiterentwicklung

Slide 22

Slide 22 text

Die Selektion - Single vs. Multi Objective ● Multi Objective Optimization ○ Lösungsqualität ist von mehreren skalarisierbaren Eigenschaften Abhängig ■ Bei n Eigenschaften → n-dimensionaler Bewertungsraum ■ Pareto-Front enthält gleich-gute Lösungen ■ Auswahl aus Pareto-Front gleichwahrscheinlich

Slide 23

Slide 23 text

Evolution, aber wie? Schritt 4: Kreuzung und Mutation

Slide 24

Slide 24 text

Die Kreuzung ● Rekombination des Erbmaterials zweier Lösungen ● Dient der breiten Exploration des Suchraums ● Auswahl zweier Lösungen aus der aktuellen Population ○ Basierend auf deren Wahrscheinlichkeit (Fitness) ● Rekombination beider Lösungen durch Teilen und Zusammensetzen ○ Mittig oder an zufälliger Position

Slide 25

Slide 25 text

Die Kreuzung

Slide 26

Slide 26 text

Die Mutation ● Zufällige Veränderung von Werten abhängig von der Mutationsrate ● Höhere Mutationsrate → Mehr Werte werden geändert ● Zufällige Auswahl des neuen Werte

Slide 27

Slide 27 text

● Mutationsrate: 10% ● Verbesserung, Verschlechterung und keine Veränderung möglich Die Mutation

Slide 28

Slide 28 text

Evolution, und wozu?

Slide 29

Slide 29 text

SARF - Evolutionäre Architekturrecovery ● Problem: ○ Über Jahre gewachsene, stark errodierte Softwaresysteme ○ Undokumentierte bzw. von Dokumentation abweichende Architektur ● Ziel: ○ Restrukturierung der Anwendung anhand fachlicher Gesichtspunkte ● Frage: ○ Wie sollte das Softwaresystem strukturiert sein?

Slide 30

Slide 30 text

SARF - Evolutionäre Architekturrecovery

Slide 31

Slide 31 text

SARF - Evolutionäre Architekturrecovery ● Gesucht: ○ Sinnvolle Dekomposition des Systems in Komponenten ■ Dekomposition = Systemzerlegung ■ Komponente = Menge von Klassen ■ Kodierung = ? ■ Sinnvoll = ?

Slide 32

Slide 32 text

SARF - Evolutionäre Architekturrecovery ● Kodierbarkeit von Lösungen ○ Zuordnung von Klassen zu Komponenten ■ Klasse => Identifiziert durch ID ■ Komponente => Identifiziert durch ID

Slide 33

Slide 33 text

SARF - Evolutionäre Architekturrecovery ● Kodierbarkeit von Lösungen

Slide 34

Slide 34 text

SARF - Evolutionäre Architekturrecovery ● Bewertbarkeit von Lösungen ○ Single-Responsibility Principle => Hohe Kohäsion ○ Separation of Concerns => Geringe Kopplung 2 Objectives

Slide 35

Slide 35 text

SARF - Evolutionäre Architekturrecovery ● Bewertbarkeit von Lösungen ○ Single- vs. Multi-Objective Optimization ■ Konkurrierende Objectives, schwer zu gewichten ■ “Die eine Lösung” existiert nicht Multi-Objective Optimization

Slide 36

Slide 36 text

SARF - Evolutionäre Architekturrecovery ● Umsetzung mit Jenetics ○ Open Source Java Bibliothek ○ EvolutionStream als Grundlage ■ Verschiedene vordefinierte Kodierungsarten und Datentypen ■ Verschiedene Crossover- und Mutationsoperatoren ■ SOO- und MOO-Unterstützung ■ Parallelisierbar und umfangreiche Statistiken

Slide 37

Slide 37 text

SARF - Evolutionäre Architekturrecovery ● Optimierungen ○ Optimierende Mutatoren ○ Optimiertes Startindividuum

Slide 38

Slide 38 text

TTBN - Evolutionäre Befahrbarkeitsprüfung ● Schwertransporte planen und genehmigen ● Frage: ○ Kann der Transport durch die Engstelle fahren? ● Ziel: ○ Nachweis §§ © Fotolia 6674750

Slide 39

Slide 39 text

TTBN - Evolutionäre Befahrbarkeitsprüfung ● Das Fahrzeug startet von definierter Position und Ausrichtung ● Das Fahrzeug folgt einer Leitlinie zum Ziel ● Die Leitlinie ist eine Sequenz von X/Y Paaren und damit das GENOM ● Eine Leitlinie pro Individuum

Slide 40

Slide 40 text

TTBN - Evolutionäre Befahrbarkeitsprüfung ● Bewertbarkeit (Teilaspekte) ○ Keine Kollisionen mit Hindernissen (KO-Kriterium) ○ Alle Räder sind auf Fahrbahn (KO-Kriterium) ○ Eingehaltene Fahrzeugparameter (KO-Kriterium) ○ Streckenlänge ○ Lenkmanöver ○ Ausrichtung an der Zielposition

Slide 41

Slide 41 text

TTBN - Evolutionäre Befahrbarkeitsprüfung ● Bewertbarkeit von Lösungen (Fitness) ○ Gewichtete Summe aus der Bewertung von Teilaspekten ● Selektion von Lösungen ○ Anhand der Fitness in Relation zur Summe aller Fitnesswerte ○ Anhand der Position in der nach Fitness sortierten Liste ○ Selektion des unfittesten Individuums muss möglich sein

Slide 42

Slide 42 text

TTBN - Evolutionäre Befahrbarkeitsprüfung ● Umsetzung mit eigener Implementierung ○ volle Flexibilität ○ Klassen wie: Evolution, Population, Individual, Gene, ... ○ Methoden wie: evolve, select, mutate, crossOver, … ● Realisierung mit AWS Lambda (bis zu 32 Threads gleichzeitig) ○ Hierarchie und Sequenz von Lambda-Prozessen

Slide 43

Slide 43 text

TTBN - Evolutionäre Befahrbarkeitsprüfung ● Achtung Sub-Optima! ○ Simulated Annealing ○ Mehrere Populationen

Slide 44

Slide 44 text

No content

Slide 45

Slide 45 text

Evolutionäre vs. Hochspezialisierte Algorithmen ● Evolutionäre Algorithmen sind generischer ○ Liefern möglicherweise weniger gute Ergebnisse ○ Brauchen teilweise länger als spezielle Algorithmen ○ Aber: Nicht für jedes Problem existiert ein passender Optimierungsalgorithmus

Slide 46

Slide 46 text

Wer mag (und kann) das berechnen?

Slide 47

Slide 47 text

EA als Ergänzung ML und AI ● Big Data treibt ML und AI voran ○ Gute und umfangreiche Lern- und Prüfdaten notwendig ○ Schwierig anpassbar, wenn Ergebnisse “gefühlt” nicht passen ● Hohe Komplexität von ML und AI ○ Für Machbarkeits-Untersuchungen ungeeignet

Slide 48

Slide 48 text

Evolutionäre Algorithmen eignen sich für viele Probleme. Es kommt auf deren Kodierung an!

Slide 49

Slide 49 text

Evolution, und weiter? ● Stetige Analyse und Optimierung wichtig ○ Mutationsrate, Populationsgröße, Anzahl explorierte Generationen ○ Fitnessfunktion ■ SOO vs. MOO ■ Neue Einflussfaktoren ■ Gewichtung der Kriterien ○ Performanz und Logging

Slide 50

Slide 50 text

Affen können Shakespeare schreiben.

Slide 51

Slide 51 text

Vielen Dank! http://simpsons.wikia.com/wiki/The_Monkey_Suit