07.06.2023

Genetische Algorithmen lösen Optimierungsprobleme

Propulate ist eine Software, die ganz allgemeine Optimierungsprobleme mit Hilfe von genetischen Algorithmen löst. Sie ist speziell für High-Performance-Systeme ausgelegt, einfach zu bedienen und steht der Allgemeinheit zur Verfügung.

Die quelloffene Software Propulate wurde am SCC entwickelt und implementiert genetische Algorithmen zur Lösung von Optimierungsaufgaben

Mit Propulate stellt das SCC eine Software zur Verfügung die Optimierungsproblemen mit Hilfe von genetischen Algorithmen löst. Propulate ist speziell für High-Performance-Systeme ausgelegt und steht zur allgemeinen Nutzung zur Verfügung und ist einfach zu benutzen. Propulate ist schneller und sogar akkurater als ein herkömmlicher Algorithmus, in typischen Benchmarks meist eine ganze Größenordnung. 

Propulate ist von der Natur und speziell von der genetischen Auslese in der Evolution inspiriert. Die Evolution beginnt in der Regel mit einer Population von zufällig erzeugten Lösungskandidaten und ist ein iterativer Prozess. Die Population in jeder Iteration wird als Generation bezeichnet. In jeder Generation wird die Fitness jedes einzelnen Individuums in der Population bewertet. Die Gene der fittesten Kandidaten gehen in die neue Generation ein. Wie in der Natur warten wir nicht ab, bis alle Recheneinheiten fertig sind. Stattdessen kommunizieren die Recheneinheiten untereinander und bearbeiten das Problem mit der momentanen Gesamtpopulation sofort weiter. Damit wird im Vergleich zu anderen Ansätzen eine Lastimbalance vermieden (s. Erklärvideo). 

Jeder Knoten ist für die Berechnung eines Lösungskandidaten zuständig. Das Ergebnis dieser Rechnung ist ein neuer Kandidat, der aus Genen und einem dazugehörendem Fitnesslevel besteht. Die Gene sind dabei die Attribute, die den Lösungskandidaten vollständig beschreiben, der Fitnesslevel ist ein Maß mit dem sich die Kandidaten vergleichen lassen. Diese Informationen werden dann an alle Recheneinheiten weitergegeben.  

Wenn eine Recheneinheit die Evaluierung eines Kandidaten abgeschlossen hat, benutzt sie die Fitnesswerte der gesamten bisherigen Population um einen neuen Lösungskandidaten zu erzeugen. Das Verfahren kann zur Neural Architecture Search oder ganz allgemein zur Hyperparametersuche verwendet werden. Damit ist Propulate ein Werkzeug, um die Suche nach passenden Netzen zu ermöglichen. Anwendungen, in denen Propulate bereits zum Einsatz gekommen ist, sind beispielsweise elektrische Netzlastvorhersage, Satellitenfernerkundung, und molekulare Strukturbiologie.

 

Weitere Informationen:

 

Kontakt am SCC: Dr. Marie Weiel, Oskar Taubert

 

Achim Grindler