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.

Optimieren durch Selektion –
Die Evolution im Algorithmus Teil 1

Bei der Lösung von Problemen lässt sich die Informatik häufig von anderen Wissenschaften inspirieren. Man denke nur an Neu­ronale Netze und die Möglichkeiten, die sich mit diesen eröff­nen. Doch während diese aufwendig angelernt werden müssen, bietet Darwin mit seiner Evolutionstheorie eine interessante und leicht umsetzbare Lösung für eine Vielzahl von Optimie­rungsproblemen. Wie man sich das Ganze vorstellen kann, soll diese Kolumne näher beleuchten.

Jeder ist sicher schon einmal auf Optimierungsprobleme gestoßen und hat überlegt, wie man diese algorithmisch lösen könnte. Ein Beispiel hierfür ist Ressourcenplanung. Dabei sollen Tasks in zeitlicher Begrenzung eine Menge von Ressourcen zugewiesen werden, um diese unter Beachtung verschiedener Gesichtspunkte, beispielsweise den entstehenden Kosten oder der benötigten Zeit, abzuarbeiten. Dies ist ganz klar ein Optimierungsproblem. Doch sind ausgefeilte, hochgradig spezialisierte Algorithmen oder Brute-Force die einzige Möglichkeit zur Lösung solch komplexer Optimierungsprobleme?

Dieser Artikel ist im Magazin JavaSPEKTRUM Ausgabe 01/2018 erschienen. Lesen Sie den vollständigen Artikel im Magazin oder hier:
Download Optimieren durch Selektion – Die Evolution im Algorithmus Teil 1 (PDF, 1 MB)

Der Artikel stellt den ersten von zwei Teilen zum Thema „Die Evolution im Algorithmus“ dar. Der zweite Teil beschäftigt sich mit multikriterieller Optimierung und automatisierter Architekturerkennung durch genetische Algorithmen. Er ist ins unserem Blog und im Magazin JavaSPEKTRUM Ausgabe 03/2018 (Veröffentlichungstermin: 25. Mai 2018) erschienen.

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