Multikriterielle Optimierung und Architekturerkennung – Die Evolution im Algorithmus Teil 2

Genetische Algorithmen haben sich, wie Teil 1 gezeigt hat, als hilfreiches Mittel zur einfachen Umsetzung komplexer Optimie­rungsprobleme erwiesen. Dabei sind die Möglichkeiten, die die Evolutionstheorie der Informatik eröffnet, aber noch wesentlich größer und eigentlich nur von der Fantasie der Entwickler be­grenzt. Dieser Artikel soll zeigen, wie genetische Algorithmen korrekt mit verschiedenen Optimierungszielen umgehen können und wie es sogar möglich ist, diese zur Erkennung von Software­strukturen einzusetzen.

Ein kurzer Rückblick

Der erste Teil in Heft 01/2018 hat gezeigt, wie genetische Algorithmen eingesetzt werden können, um Optimierungsprobleme mit wenig Aufwand zu lösen. Dabei haben wir gelernt, dass solche Algorithmen die Grundprinzipien der Evolution, nämlich Selektion, Vererbung und Mutation, implementieren. Beispielhaft wurde dafür das Ressourcenplanungsbeispiel eingeführt, welches das Ziel hat, Tasks unter Minimierung von Zeit und Kosten Ressourcen zuzuweisen. Wie sich herausstellte, stehen diese zwei Objectives allerdings in Konkurrenz zueinander. Die Single-Objective Optimization (SOO) kombinierte diese konfligierenden Objectives in einer Funktion. Zwar lieferte dieser Ansatz zufrieden stellende und sinnvolle Ergebnisse, wirft jedoch auch eine ganze Reihe von Problemen auf.

Dieser Artikel ist im Magazin JavaSPEKTRUM Ausgabe 03/2018 erschienen. Lesen Sie den vollständigen Artikel im Magazin oder hier:
Download Multikriterielle Optimierung und Architekturerkennung – Die Evolution im Algorithmus Teil 2 (PDF, <1 MB)

Der Artikel stellt den zweiten und damit abschließenden Teil zum Thema „Die Evolution im Algorithmus“ dar. Der erste Teil „Optimieren durch Selektion“ ist in Ausgabe 01/2018 (Veröffentlichungstermin: 26. Januar 2018) erschienen.

Vielen Dank an JavaSPEKTRUM für die Bereitstellung des Artikels als PDF.