4 (Population-Based) Optimization (14pts)
Einleitung:
Diese Aufgabe befasst sich mit population-basierter Optimierung. Es wird eine spezielle Art der Optimierung vorgestellt, die als simplified firefly optimization (vereinfachte Glühwürmchen-Optimierung) bekannt ist. Im Folgenden werden die Definitionen erklärt, bevor konkrete Fragen dazu beantwortet werden.
Definition 6 (Optimization (shortened)):
Sei ein beliebiger Zustandsraum und eine Zielmenge mit totaler Ordnung . Eine totale Funktion wird als target function bezeichnet. Optimierung (Minimierung/Maximierung) bedeutet, nach einem zu suchen, sodass optimal (minimal/maximal) ist. Wenn nichts anderes angegeben ist, wird von einer Minimierung ausgegangen.
Ein Optimierungslauf der Länge ist eine Sequenz von Zuständen , wobei für alle ist.
Sei eine möglicherweise randomisierte oder nicht-deterministische Funktion, sodass der Optimierungslauf durch wiederholtes Anwenden von aufgerufen wird:
wobei extern gegeben ist (z.B. ) oder zufällig ausgewählt wird (z.B. ). Ein Optimierungsprozess ist das Tupel .
Definition 7 (Population-based optimization):
Sei ein Zustandsraum. Sei eine Zielmenge mit totaler Ordnung . Sei eine Ziel-Funktion. Ein Tupel ist ein population-basierter Optimierungsprozess, wenn eine Population von Individuen ist und eine möglicherweise randomisierte, nicht-deterministische oder weiter parametrisierte Funktion ist, sodass der Optimierungsprozess durch wiederholtes Aufrufen von ausgeführt wird:
wobei extern gegeben ist oder zufällig ausgewählt wird.
Algorithm 1 (Simplified Firefly Optimization):
Die vereinfachte Glühwürmchen-Optimierung basiert auf der Beobachtung, dass Glühwürmchen vom Licht anderer Glühwürmchen angezogen werden. Hierbei bedeutet ein stärkeres Licht, dass ein Glühwürmchen eine bessere Fitness oder Qualität hat. Glühwürmchen bewegen sich also in Richtung der “helleren” Glühwürmchen, um bessere Lösungen zu finden.
Algorithmus:
Sei ein population-basierter Optimierungsprozess. Wir nehmen an und für die Minimierung. Für nehmen wir an, dass ist. Der Prozess folgt der vereinfachten Glühwürmchen-Optimierung, wenn definiert ist als:
wobei die Positionen von Glühwürmchen zur Zeit sind, ein fixer Schrittweitenparameter (), und das beste Individuum zur Zeit ist, d.h.:
(a) Erklärung:
Frage: Algorithm 1 basiert auf der Beobachtung, dass Glühwürmchen vom Licht anderer Glühwürmchen angezogen werden. Es wird angenommen, dass Glühwürmchen sich stärker in Richtung der helleren Glühwürmchen bewegen. Wie wird dieses Verhalten im Algorithmus dargestellt und welcher Wert im Algorithmus entspricht (vielleicht umgekehrt) der Lichtintensität? (4pts)
Antwort:
Die Anziehung zu stärkerem Licht wird durch den Positions-Update-Term dargestellt:
Hierbei wird die Stärke durch den Parameter reguliert. Die Lichtintensität ist dabei umgekehrt proportional zum Zielwert , d.h. Glühwürmchen bewegen sich in Richtung niedrigerer -Werte, weil niedrigere -Werte (bei einem Minimierungsproblem) eine bessere Fitness darstellen, was gleichbedeutend mit einer höheren Lichtintensität ist.
(b) Berechnung der Firefly Optimierung:
Frage: Sei die Ziel-Funktion . Angenommen, wir haben die Startpositionen und den Schrittweitenparameter . Führe die simplified firefly optimization für zwei Zeitschritte aus (d.h. berechne und ). Gib das globale Optimum von an und ob es innerhalb von zwei Optimierungsschritten erreicht wird. (10pts)
Berechnung:
-
Startpositionen :
- Firefly 1: mit
- Firefly 2: mit
- Firefly 3: mit
-
Wähle das beste Glühwürmchen: Das beste Glühwürmchen , da der niedrigste Wert ist.
Schritt 1 (Berechnung von ):
- Firefly 1 und Firefly 2 bleiben an ihren Positionen, da .
- Firefly 3 bewegt sich in Richtung Firefly 1:
Neue Positionen :
Schritt 2 (Berechnung von ):
- Firefly 1 bewegt sich in Richtung Firefly 3:
- Firefly 2 bewegt sich in Richtung Firefly 3:
\cdot (3 - 4) = 3.5 $$
- Firefly 3 bleibt an seiner Position, da der beste Wert ist.
Neue Positionen :
Ergebnis:
Das globale Optimum wird für erreicht. Allerdings erreichen wir dieses Optimum nicht innerhalb der zwei Optimierungsschritte. Der beste Wert nach zwei Schritten ist bei .
Erklärung der Schritte:
- Startpositionen: Zunächst werden die Startpositionen der Glühwürmchen berechnet und ihre Fitness-Werte basierend auf der Ziel-Funktion bestimmt.
- Wähle das beste Glühwürmchen: Das Glühwürmchen mit dem niedrigsten Fitness-Wert wird als das beste Glühwürmchen gewählt. Dies ist das Glühwürmchen, zu dem sich alle anderen Glühwürmchen bewegen.
- Positionsupdate: Jedes Glühwürmchen, das nicht das beste ist, bewegt sich in Richtung des besten Glühwürmchens basierend auf der Formel für das Positionsupdate.
- Zweite Iteration: Der Prozess wird wiederholt, und das Ergebnis wird erneut berechnet.
Zusammenfassend zeigt diese Simulation, dass das globale Optimum nicht innerhalb von zwei Optimierungsschritten erreicht wurde, aber die Glühwürmchen haben sich dem Optimum angenähert.
6 Evolutionary Computing (12pts)
In dieser Aufgabe betrachten wir ein evolutionäres Optimierungsproblem. Wir verwenden ein parallelogrammförmiges Gehege für Emus, das mithilfe eines evolutionären Algorithmus optimiert werden soll. Zuerst betrachten wir die Definition eines population-basierten Optimierungsalgorithmus und gehen dann zu einer speziellen Optimierungsaufgabe über.
Algorithm 2 (typical evolutionary algorithm):
Ein evolutionärer Algorithmus ist ein population-basierter Optimierungsprozess. Gegeben sei als population-based optimization process. Dieser Prozess verwendet folgende Operatoren:
- Selection: Es gibt zwei Selektionsfunktionen:
- : Wählt Individuen aus, die überleben.
- : Wählt Eltern-Individuen aus, die für die Rekombination verwendet werden.
- Mutation: Die Mutationsfunktion verändert ein Individuum zufällig.
- Recombination: Kombiniert zwei Eltern-Individuen, um ein neues Kind-Individuum zu erzeugen.
- Migration: Ein optionaler Schritt, bei dem neue Individuen zur Population hinzugefügt werden.
Der Prozess setzt sich durch eine typische evolutionäre Optimierung fort, wenn definiert ist als:
wobei die Anzahl der Mutanten, die Anzahl der Kinder und die Anzahl der Migranten in jeder Generation ist.
Aufgabenbeschreibung:
Wir starten einen Emu-Farm. Unsere Zoologen haben herausgefunden, dass Emus es vorziehen, in parallelogrammförmigen Gehegen zu leben. Wir haben 1000 Zaunstücke zur Verfügung, um ein ideales Parallelogramm zu bauen. Unser Ziel ist es, ein parallelogrammförmiges Gehege zu entwerfen, das sowohl das Vorliebenmodell der Emus als auch die physischen Einschränkungen berücksichtigt (z.B. die Anzahl der verfügbaren Zaunstücke).
Unsere Zoologen haben uns eine Funktion bereitgestellt, die die Emu-Präferenz für ein bestimmtes Parallelogramm berechnet:
- : Die Länge einer Seite des Parallelogramms in Zaunstücken.
- : Die Länge der anderen Seite des Parallelogramms in Zaunstücken.
- : Der Winkel zwischen den Seiten (in Grad).
- gibt die Zufriedenheit der Emus in diesem Gehege an.
(a) Target function:
Frage: Gib eine totale Ziel-Funktion an, die die Präferenz der Emus maximiert, aber gleichzeitig Lösungen bestraft, die nicht genug Zaunstücke verwenden, um ein gültiges Parallelogramm zu bauen. Gib an, ob maximiert oder minimiert wird. (6pts)
Lösung:
Um ein gültiges Parallelogramm zu bauen, müssen die Längen , und der Winkel bestimmten Bedingungen entsprechen. Die Gesamtanzahl der Zaunstücke darf maximal 1000 betragen. Die Ziel-Funktion maximiert die Präferenz der Emus, bestraft aber ungültige Konfigurationen durch negative Werte:
- Die Bedingung stellt sicher, dass das Parallelogramm innerhalb der verfügbaren Zaunstücke gebaut wird.
- Wenn diese Bedingung erfüllt ist, maximieren wir , die Emu-Präferenz.
- Wenn die Bedingung nicht erfüllt ist, wird gesetzt, um diese Lösung unbrauchbar zu machen.
Interpretation:
- Die Funktion wird maximiert, da wir die Emu-Präferenz maximieren wollen.
- Wenn ein Parallelogramm mit gültigen Maßen gebaut werden kann, maximieren wir .
- Wenn die Lösung ungültig ist, wird sie durch bestraft.
(b) Beautiful recombination function:
Frage: Gib eine “schöne” Rekombinationsfunktion an, die auf zwei Lösungskandidaten aufgerufen werden kann und die folgenden Eigenschaften besitzt: (6pts)
- Das erzeugte Kind enthält Informationen von beiden Eltern.
- Jede Information im Kind hat die gleiche Chance, von einem der beiden Elternteile zu stammen.
- Wenn beide Eltern gültige Parallelogramme darstellen, dann ist auch das Kind ein gültiges Parallelogramm.
Lösung:
Die Rekombination kombiniert die Seitenlängen und sowie den Winkel der beiden Eltern zufällig, um ein Kind zu erzeugen, das gültig bleibt, wenn die Eltern gültige Parallelogramme darstellen.
wobei:
- ,
- , , .
Interpretation:
- Die Seitenlängen und sowie der Winkel werden zufällig aus den beiden Eltern gewählt, sodass jede Eigenschaft die gleiche Wahrscheinlichkeit hat, von einem der Eltern zu stammen.
- Wenn beide Eltern valide Parallelogramme darstellen (d.h. sie verwenden insgesamt nicht mehr als 1000 Zaunstücke), dann bleibt auch das Kind ein valides Parallelogramm.
Warum ist diese Rekombination “schön”?
- Elterninformationen: Das Kind enthält Informationen von beiden Eltern, da , und aus verschiedenen Elternteilen zufällig ausgewählt werden.
- Zufälligkeit: Jede Eigenschaft des Kindes hat die gleiche Chance, von einem der Eltern zu stammen, da , und zufällig von den Eltern übernommen werden.
- Gültigkeit: Wenn beide Eltern valide Parallelogramme darstellen, bleibt auch das Kind ein valides Parallelogramm, da die Rekombination sicherstellt, dass die Seitenlängen und der Winkel von den Eltern übernommen werden.
Zusammenfassung:
Diese Aufgabe behandelt den Aufbau eines parallelogrammförmigen Geheges für Emus mithilfe eines evolutionären Algorithmus. Die Ziel-Funktion maximiert die Zufriedenheit der Emus, während sie gleichzeitig Lösungen bestraft, die nicht die richtige Anzahl an Zaunstücken verwenden. Die Rekombinationsfunktion kombiniert Eigenschaften der Eltern, um sicherzustellen, dass das Kind sowohl valide als auch eine Mischung aus den Elterninformationen ist.
7 Mix-Up: Optimization for Soups (8pts)
Diese Aufgabe behandelt die Optimierung einer Suppe mithilfe eines simulierten Annealing-Algorithmus. Wir betrachten eine Situation, in der ein optimaler Zustand für die Suppe gefunden werden muss, und verwenden dazu das Konzept der Nachbarschaftsfunktion und eines simulierten Abkühlungsprozesses.
Algorithm 3 (Simulated Annealing):
Ein Simulated Annealing (SA) Algorithmus wird verwendet, um Optimierungsprobleme zu lösen. Gegeben sei als Optimierungsprozess. Wir definieren die Nachbarschaft , die eine Menge von Nachbarn eines Zustands liefert.
Zusätzlich wird eine Temperaturfunktion eingeführt, die die Temperatur für jeden Zeitschritt bestimmt. Eine Funktion liefert die Akzeptanzwahrscheinlichkeit, gegeben durch zwei Zielwerte und eine Temperatur. Typischerweise verwenden wir:
wobei die Temperatur ist. Der Prozess setzt sich mittels Simulated Annealing fort, wenn definiert ist als:
wobei zufällig ausgewählt wird und zufällig für jeden Aufruf von gezogen wird.
(a) Aufgabe:
Gegeben ist die Suppe aus Aufgabe 5b. Für eine Australien-Ausstellung in unserem Zoo möchten wir einen optimalen Anfangszustand der Suppe wählen, sodass alle Aspekte der australischen Tierwelt (wie durch definiert) gezeigt werden können. Die Präferenzen für die Ausstellung sind in einer Ziel-Funktion kodiert, die minimiert werden soll.
Lösung:
Um minimale Lösungen für zu finden, möchten wir einen Optimierungsprozess verwenden, der mittels Simulated Annealing fortgesetzt wird. Wir geben den Zustandsraum für das Simulated Annealing und eine geeignete Funktion an, sodass potenziell jeden möglichen Anfangszustand der Suppe aus jedem Anfangssuppenkandidaten erreichen kann, mit der richtigen Anzahl an Iterationen und Wahl der Parameter.
Die Nachbarschaftsfunktion ist definiert als:
Erklärung:
- Die Nachbarschaftsfunktion enthält drei Möglichkeiten:
- Entfernen eines Elements aus : Dies hilft, Kandidatenlösungen zu reduzieren.
- Hinzufügen eines Elements zu : Dies hilft, neue Elemente in die Lösung aufzunehmen.
- Hinzufügen eines “Kängurus” zur Suppe (rekursives Hinzufügen von Varianten): Dies fügt speziell australische Tiere hinzu, die für das Szenario von Bedeutung sind.
Diese Nachbarschaftsfunktion erlaubt es uns, über genügend Iterationen jeden möglichen Zustand zu erreichen, indem Elemente hinzugefügt oder entfernt werden.
(b) Nachbarschaftsfunktion und Komplexität:
Frage: Erkläre kurz, warum es viel komplexer ist, eine einfach ausführbare Nachbarschaftsfunktion für Suppen im künstlichen Chemieprozess aus Aufgabe 5b zu geben, als für die Suppen im künstlichen Chemieprozess aus Aufgabe 5a. (2pts)
Lösung:
Der Zustandsraum ist unendlich, daher ist das Sampling daraus (wie es im Simulated Annealing notwendig ist) nicht praktikabel oder sehr ineffizient (es würde beispielsweise viele Varianten von rekursiven Kängurus erzeugen). Im Vergleich dazu ist ein sehr kleiner, endlicher Zustandsraum, was das Sampling und die Anwendung der Nachbarschaftsfunktion viel einfacher und schneller macht.
Zusammenfassung:
- In Teil (a) haben wir eine Nachbarschaftsfunktion definiert, die es ermöglicht, im Zustandsraum zu navigieren und potenziell jeden möglichen Suppenzustand zu erreichen.
- In Teil (b) wurde die Komplexität des künstlichen Chemieprozesses im Vergleich zu erläutert. Der unendliche Zustandsraum von erschwert die einfache Anwendung der Nachbarschaftsfunktion, während durch seine Endlichkeit wesentlich einfacher zu handhaben ist.