Programme züchten mit Evolution Künstliche Intelligenz (KI) und maschinelles Lernen (ML) dringen in immer mehr Anwendungsbereiche und unser tägliches Leben vor. Bei vielen Beispielen liefern die Methoden, die meist auf neuronalen Netzen basieren gute Ergebnisse. Problematisch sind hingegen Aufgabenstellungen, für die keine oder nur wenige Trainingsdaten vorliegen. Aber auch für diese Herausforderungen gibt es neuere Ansätze, wie Reinforcement Learning (RL) und Simulierte Evolution (SE). Dieser Vortrag zeigt, wie man mit simulierter Evolution Lösungen züchtet und über Belohnung bzw. Bestrafung optimiert. Hierfür führt er kurz in die Grundlagen der Evolution ein und überträgt die wesentlichen Elemente, der biologischen Evolution in einen generischen und simulierbaren Prozess. Zusätzlich stellt der Vortrag die wichtigsten genetischen Operationen, wie zum Beispiel Mutation, Rekombination und Inversion in ihrer Wirkung und Implementierung vor. Evolution funktioniert nur, wenn Lösungsversuche bewertet und verglichen werden können. Dazu ist eine effiziente Fitness-Funktion unabdingbar. Kern des Vortrags ist die Anwendung simulierter Evolution an konkreten Live-Beispielen: Das erste Beispiel formulierte eine schematische Steuerung eines Haushaltsroboters vor, der sich in einer Umwelt orientieren muss. Konkret wird mit simulierter Evolution ein Steuerprogramm in einer einfachen Programmiersprache gezüchtet und in einer Umwelt simuliert. Dabei streift der Vortrag den Bereich der Software-Qualität der gezüchteten Programme: Wie züchtet man effiziente und "lesbare" Programme? Das zweite Beispiel führt die Teilnehmer zurück in das Jahr 1969 und zeigt wie man mit neuronalen Netzen und Evolution die NASA bei der Mondlandung unterstützen könnte. Die Steuerung einer simulierten Landefähre wird optimiert. Dazu stellt der Vortrag die Prinzipien des Reinforcement Learning vor. Je nach vorhandener Zeit können die konkreten Implementierungen der Beispiele im Source Code (Java und Python) an Stichpunkten mit den Teilnehmern diskutiert werden. Links zu Frameworks: http://jenetics.io/ https://sourceforge.net/projects/jgap/ https://gym.openai.com/ https://www.tensorflow.org/ https://github.com/PytLab/gaft https://github.com/deap/deap Den kreativen Prozess der Natur nutzen - Einstieg in die simulierte Evolution mit Java Informatik Aktuell, 2023/01 https://www.informatik-aktuell.de/entwicklung/programmiersprachen/einstieg-in-die-simulierte-evolution-mit-java.html Einführung und Abgrenzung zu klassischen Ansätzen des maschinellen Lernens: Machine Learning mit Apache Spark 2, Heiko Spindler, 2017 https://www.heise.de/developer/artikel/Machine-Learning-mit-Apache-Spark-2-3657735.html Erscheinen als Print-Ausgabe in: "Machine Learning": iX-Developer-Sonderheft, 2018