Optimierung von Fließkomma-Problemen mit Genetischen Algorithmen
Genetische Algorithmen wurden ursprünglich mit Bits oder zumindest kleinen Integer-Zahlen verwendet, obwohl es von Anfang an auch Ansätze gab, direkt Fließkomma-Zahlen zu verwenden (ein früher Ansatz aus den 60er Jahren war die "Evolutionsstrategie" von Rechenberg).
Möchte man heute direkt Fließkomma-Probleme mit Genetischen Algorithmen optimieren, bietet sich Differential Evolution [1, 2, 3] an.
Der Vortrag gibt eine Einführung in die Optimierung von Fließkomma-Problemen anhand von Beispielen aus der Elektrotechnik sowie der Optimierung von Kurvenformen zur Ansteuerung von piezoelektrischen Inkjet Druckern. Bei diesen Druckern hängt die Form des gejetteten Tropfens stark von der zur Ansteuerung verwendeten Kurvenform ab.
Für die Software verwende ich die Python Bindings PGAPy [4] für das ursprünglich an den Argonne National Laboratories entwickelte "Parallel Genetic Algorithm Package" PGAPack [5]. Beide Open Source Pakete maintaine ich seit einigen Jahren. Unter anderem wurden diverse Algorithmen wie Differential Evolution und Strategien zur Optimierung von Multi-Objective Optimization (also Problemen mit mehreren Zielfunktionen) neu implementiert.
[1] Rainer Storn and Kenneth Price. Differential evolution -- a simple
and efficient adaptive scheme for global optimization over
continuous spaces. Technical Report TR-95-012, International
Computer Science Institute (ICSI), March 1995.
[2] Rainer Storn and Kenneth Price. Differential evolution -- a simple
and efficient heuristic for global optimization over continuous
spaces. Journal of Global Optimization, 11(4):341–359, December 1997.
[3] Kenneth V. Price, Rainer M. Storn, and Jouni A. Lampinen.
Differential Evolution: A Practical Approach to Global Optimization.
Springer, Berlin, Heidelberg, 2005.
[4] https://github.com/schlatterbeck/pgapack
[5] https://github.com/schlatterbeck/pgapy
Ralf Schlatterbeck
Dr. Ralf Schlatterbeck
Seit 2004 selbständig "Open Source Consulting". Schwerpunkte
Security, Telefonie-Projekte und Sprachkommunikation (Asterisk, ISDN),
Web-Anwendungen (Bug-Tracking mit Roundup, Open Source Zeiterfassung)
und nicht zuletzt Technische-Wissenschaftliche Anwendungen.