Willkürlich legen wir fest: Akzeptanz schlechterer Werte am Anfang der Iteration: , Akzeptanz schlechterer Werte am Ende der Iteration: 0:05.

Ähnliche Dokumente
Genetische Algorithmen

Genetische und Evolutionäre Algorithmen (Vol. 1)

Optimale Produktliniengestaltung mit Genetischen Algorithmen

Genetische Algorithmen

Warum konvergieren Genetische Algorithmen gegen ein Optimum?

InformatiCup 2009 EvolutionConsole

Genetische Algorithmen

Hauptseminar Repräsentationen für Optimierungsalgorithmen

Synthese Eingebetteter Systeme. Übung 6

Einführung in die Methoden der Künstlichen Intelligenz. Evolutionäre Algorithmen

Genetische Algorithmen

Genetische Algorithmen von der Evolution lernen

Künstliche Intelligenz - Optimierungsprobleme - Suche in Spielbäumen

Nichtlineare Gleichungssysteme

Genetische Algorithmen. Uwe Reichel IPS, LMU München 8. Juli 2008

Optimierung. Optimierung. Vorlesung 2 Optimierung ohne Nebenbedingungen Gradientenverfahren Thomas Brox, Fabian Kuhn

1 Umkehrfunktionen und implizite Funktionen

Inhalt. 8.1 Motivation. 8.2 Optimierung ohne Nebenbedingungen. 8.3 Optimierung unter Nebenbedingungen. 8.4 Lineare Programmierung

9 Optimierung mehrdimensionaler reeller Funktionen f : R n R

Optimieren unter Nebenbedingungen

Inexakte Newton Verfahren

4 Genetische Algorithmen

Dynamisches Huffman-Verfahren

Theoretische Informatik. Exkurs: Komplexität von Optimierungsproblemen. Optimierungsprobleme. Optimierungsprobleme. Exkurs Optimierungsprobleme

Kapitel 4: Nichtlineare Nullstellenprobleme

Computational Intelligence

3 Optimierung mehrdimensionaler Funktionen f : R n R

Der n-dimensionale Raum

Evolutionsstrategien

Survival of the Fittest Optimierung mittels Genetischer Algorithmen

Klausur zur Vorlesung Ausgewählte Kapitel der Ingenieurmathematik

2 Extrema unter Nebenbedingungen

( ) Dann gilt f(x) g(x) in der Nähe von x 0, das heisst. Für den Fehler r(h) dieser Näherung erhält man unter Verwendung von ( )

11. Übung zu Algorithmen I 6. Juli 2016

Exkurs Modelle und Algorithmen

KLAUSUR zur Numerik I mit Lösungen. Aufgabe 1: (10 Punkte) [ wahr falsch ] 1. Die maximale Ordnung einer s-stufigen Quadraturformel ist s 2.

Wenn man den Kreis mit Radius 1 um (0, 0) beschreiben möchte, dann ist. (x, y) ; x 2 + y 2 = 1 }

Allgemeine Betriebswirtschaftslehre Planungs- und Entscheidungstechniken

Probeklausur Optimierung

18.4 Das Newton-Verfahren

Numerische Verfahren zur Lösung unrestringierter Optimierungsaufgaben. Eine kurze Einführung in Quasi Newton Verfahren

7.1 Matrizen und Vektore

Populationsbasierte Suche. Evolutionäre Algorithmen (1)

Heuristische Verfahren

Innere-Punkt-Methoden

Das Trust-Region-Verfahren

3 Lineare Differentialgleichungen

Nichtlineare Gleichungen, mehrere Unbekannte

Fortgeschrittene Mathematik Raum und Funktionen

Genetische Programmierung

ε δ Definition der Stetigkeit.

Fixpunkt-Iterationen

Algorithmen für schwierige Optimierungsprobleme Vorlesung für den Bereich Bachelor Informatik

ANALYSIS I FÜR TPH WS 2016/17 3. Übung Übersicht

1. Inhaltsverzeichnis

ÜBUNGSBLATT 11 LÖSUNGEN MAT121/MAT131 ANALYSIS II FRÜHJAHRSSEMESTER 2011 PROF. DR. CAMILLO DE LELLIS

Diskrete dynamische Systeme in der Populationsgenetik Hofbauer J., und Sigmund K.: Evolutionary Games and Population Dynamics, Cambridge

3.2.5 Dualität der linearen Optimierung I

Genetische Algorithmen

Genetische Algorithmen

1.6 Implizite Funktionen

Viele wichtige Operationen können als lineare Abbildungen interpretiert werden. Beispielsweise beschreibt die lineare Abbildung

Universität Potsdam Institut für Informatik Lehrstuhl Maschinelles Lernen. Clusteranalyse. Tobias Scheffer Thomas Vanck

Arbeit: Page, Brin, Motwani, Winograd (1998). Ziel: Maß für absolute

Hochschule Regensburg. Übung 12_3 Genetische Algorithmen 1. Spezielle Algorithmen (SAL) Lehrbeauftragter: Prof. Sauer

Linsenberechnung mit Evolutionsstrategien

Kapitel 3. Konvergenz von Folgen und Reihen

55 Lokale Extrema unter Nebenbedingungen

3.2 Lineare Optimierung (Entscheidungen unter Sicherheit)

Wissensbasierte Systeme. Kombinatorische Explosion und die Notwendigkeit Heuristischer Suche. Heuristiken und ihre Eigenschaften

8 1. GEOMETRIE DIFFERENZIERBARER MANNIGFALTIGKEITEN

6. ANWENDUNGEN DER ABLEITUNG

Heuristiken Greedy-Algorithmen Lokale Suche Tabu Suche

Kapitel 8: Gewöhnliche Differentialgleichungen 8.1 Definition, Existenz, Eindeutigkeit von Lösungen Motivation: z.b. Newton 2.

8.1 Einleitung. Grundlagen der Künstlichen Intelligenz. 8.1 Einleitung. 8.2 Lokale Suchverfahren. 8.3 Zusammenfassung. Suchprobleme: Überblick

Stetige Funktionen. Definition. Seien (X, d) und (Y, D) metrische Räume und f : X Y eine Abbildung. i) f heißt stetig in x 0 (x 0 D(f)), wenn

Graphische Spiele. M i (p) M i (p[i : p i]) M i (p) + ε M i (p[i : p i])

Rechenoperationen mit Folgen. Rekursion und Iteration.

v R n ist Abstiegsrichtung in x R n wenn f(x) v < 0 v R n ist Abstiegsrichtung in x R n wenn i=1,,d: f i

$Id: linabb.tex,v /01/09 13:27:34 hk Exp hk $

Optimierung und Simulation

2.7 Der Shannon-Fano-Elias Code

Bestimmung einer ersten

Computational Intelligence 1 / 28. Computational Intelligence Evolutionsstrategien 3 / 28

5. Lokale Suchverfahren. Beispiel TSP: k-change Nachbarschaft. Nachbarschaft. k-opt Algorithmus

Der genetische Algorithmus

Seminararbeit zum Thema Genetische Algorithmen

Optimierung. Optimierung. Vorlesung 8 Lineare Programmierung III: Simplex Algorithmus Fabian Kuhn

Teil I. Lineare Optimierung

Bildverarbeitung: Kontinuierliche Energieminimierung. D. Schlesinger BV: () Kontinuierliche Energieminimierung 1 / 9

Grundlagen und Basisalgorithmus

Monte-Carlo Tests. Diplomarbeit. Wiebke Werft. Mathematisches Institut der Heinrich-Heine-Universität Düsseldorf

Kurs über Lineare Gleichungssysteme. PD Dr. Karin Halupczok

Eine Analyse des Effektes von Lernen auf Populationsfitness und Diversität in einer NK-Fitnesslandschaft. Lars Melchior

Analysis I. 1. Beispielklausur mit Lösungen

Abbildung 10.1: Das Bild zu Beispiel 10.1

Gliederung. Kapitel 4. Lokale Suchverfahren. Meta-Heuristiken. Simulated Annealing. Lokale Suchverfahren. Optimierungsalgorithmen

Mathematik für Naturwissenschaftler II SS 2010

Verbesserungsheuristiken

Mathematik für Wirtschaftswissenschaftler

Transkript:

126 Kapitel 4: Non-Standard-Optimierung Willkürlich legen wir fest: Akzeptanz schlechterer Werte am Anfang der Iteration: 1 10 3, Akzeptanz schlechterer Werte am Ende der Iteration: 0:05. Daraus errechnet man einen Wert von T max ß 160000 und von T min ß 50. Folgerung für Abkühlrate r (in Prozent): Da T min von T max aus in N max Schritten exponentiell erreicht werden muss, ergibt sich aus r Nmax T min = T max (126.1) 100 für die Rate r =92%für N max = 100 und r =96%für N max = 200. Im Beispiel kann also die Parametrierung auf Grund der Struktur der Zielfunktion in einem gewissen Rahmen problemangepasst durchgeführt werden. Eine allgemeine Vorgehensweise oder gar eine Parametrierungstheorie gibt es nicht. 4.4.3 Übungen Übung 27 (Lösung Seite 181 ) Bestimmen Sie mit Hilfe einer geeigneten MATLAB-Implementierung des Simulated Annealing Algorithmus eine Lösung der Minimierungsaufgabe unter den nichtlinearen Nebenbedingungen min F (x 1;x 2 ;x 3 )=x 2 1 x + x 2 + x 3 (126.2) 1;x 2;x 32R g 1 (x 1 ;x 2 ;x 3 )=x 2 1 + x2 2 1=0 g 2 (x 1 ;x 2 ;x 3 )=x1 +x 2 + x 3 =0 (126.3) 4.5 Genetische Algorithmen Genetische Algorithmen formalisieren den Prozess der natürlichen Evolution für die Anwendung auf mathematische Optimierungsaufgaben. Diese Klasse von Algorithmen gehört zu den so genannten Evolutionsstrategien. Das Prinzip dieser Heuristiken besteht darin, die natürliche Evolution als Optimierungsverfahren aufzufassen, bei dem eine Population von Individuen an Umweltbedingungen optimal angepasst wird.

4.5 Genetische Algorithmen 127 Die formalisierte Version, also das mathematische Verfahren, ahmt die verschiedenen Mechanismen der Evolution in Form von Operatoren auf Werten des zulässigen Suchraums B (der Population) nach. Die Anpassung von Generation zu Generation (d.h. Iteration zu Iteration) erfolgt durch Änderung der Erbinformation, eine mathematische Codierung der Eigenschaften der Werte des Suchraums. Die Anpassung der Erbinformation erfolgt stochastisch durch Nachahmung des Selektionsprozesses, durch zufällige Vermischung der Information ( Kreuzung ) und zufällige Änderung der Information ( Mutation ). Wie an dieser kurzen Einleitung schon zu erkennen ist, werden bei dieser Algorithmenklasse Begriffe aus der biologischen Evolution mit Begriffen aus der mathematischen Optimierung identifiziert. Die folgende Tabelle stellt zum besseren Verständnis der in den folgenden Abschnitten darzustellenden Theorie eine Auswahl dieser Begriffe gegenüber: Biologischer Begriff Population Individuum Fitness (Anpassung an die Umwelt) Mathematischer Begriff Gruppe von Elementen des zulässigen Suchraums B Element des zulässigen Suchraums B Wert der Zielfunktion (oder einer äquivalenten Funktion, der Fitnessfunktion ) Umweltbedingungen Suchraumgrenzen, Restriktionen, Fitnessfunktion Erbinformation (Chromosom, Gen) Generation Selektion Codierung der Suchraumelemente (Binärcode, reelle Zahl, Vektor) Nummer der Iteration Auswahl von Suchraumelementen in jedem Iterationsschritt gemäß dem Wert der Fitnessfunktion (Zielfunktion) Fortsetzung auf der nächsten Seite

128 Kapitel 4: Non-Standard-Optimierung Biologischer Begriff Kreuzung Mathematischer Begriff stochastische Vermischung der Codierungsinformation der Elemente (Individuen) einer Wertegruppe (Population), Kreuzungsoperator Mutation stochastische Änderung der Codierungsinformation der Elemente (Individuen) einer Wertegruppe (Population), Mutationsoperator Anpassung Wert der Zielfunktion, Optimumsuche Bevor wir die Details des Genetischen Algorithmus beschreiben, sollen zunächst noch einmal die wesentlichen Grundzüge der Theorie der biologischen Evolution in Erinnerung gerufen werden. 4.5.1 Mechanismen der natürlichen Evolution In den Abbildungen 4.11 bis 4.16 sind schematisch an Hand von Symbolen, die Individuen einer Population mit unterschiedlichen Eigenschaften repräsentieren sollen, die grundsätzlichen Vorgänge der natürlichen Evolution dargestellt. Wir gehen zunächst von einer Population von Individuen mit unterschiedlichen Merkmalen, hier symbolisiert durch geometrische Formen und Farben, aus (Abbildung 4.11). Diese Individuen leben in einer gewissen Umwelt und sind den dadurch gegebenen Lebensbedingungen ausgesetzt. Die Lebensbedingungen erzeugen einen sogenannten Selektionsdruck, d.h. einige Individuen überleben die Umweltbedingungen nicht und sterben oder sind nicht fortpflanzungsfähig, andere Individuen sind gut angepasst und verbreiten ihre Erbanlagen (Abbildung 4.12). Dabei werden verschiedene Erbanlagen und damit Eigenschaften im Vermehrungsprozess durch Kreuzung mit Eigenschaften anderer (mehr oder weniger zufällig ausgewählter) Individuen verändert (Abbildung 4.13). Einig wenige Individuen erhalten dabei zufällig, etwa durch radioaktive Einstrahlung oder andere Umwelteinflüsse oder sporadisch auftretende Erbgutveränderungen neue Eigenschaften. Dieser (seltene) Prozess der zufälligen Änderung wird Mutation genannt (Abbildung 4.14).

4.5 Genetische Algorithmen 129 Abbildung 4.11: Population mit unterschiedlichen Merkmalen Abbildung 4.12: Selektionsdruck Abbildung 4.13: Kreuzung Abbildung 4.14: Mutation Abbildung 4.15: Erneuter Selektionsdruck Abbildung 4.16: (besser?) Angepasste Population Die neue Population findet sich dann wieder dem Selektionsdruck ausgesetzt (Abbildung 4.15) und so fort. Oft erhält man durch diesen Prozess besser angepasste Populationen von Individuen (Abbildung 4.16). Zusammenfassend kann man also sagen, dass es sich bei der natürlichen Evolution um eine (iteratives) Optimierungsverfahren handelt, welches von drei zufallsbehafteten Basismechanismen angetrieben wird, nämlich Selektion, Kreuzung

130 Kapitel 4: Non-Standard-Optimierung und Mutation und immerwährend fortschreitet. Diese Basismechanismen werden in der mathematischen Formalisierung des Evolutionsprozesses zu so genannten stochastischen Operatoren und machen den Kern der Genetischen Algorithmen aus. Der Genetische Code Für die Umsetzung dieser Mechanismen in einen brauchbaren mathematischen Algorithmus fehlt jedoch noch ein wichtiger Baustein, nämlich die Codierung des Problems. Es muss die Frage beantwortet werden, wie ein Optimierungsproblem in eine Form gebracht werden kann, die es erlaubt, genetische Operatoren hierauf anzuwenden. Es erscheint klug, zunächst einmal wieder nach der Lösung zu fragen, die die Natur für dieses Problem gefunden hat. Die Information über die Eigenschaften eines Individuums und somit die Fähigkeit, sich an seine Lebensbedingungen anzupassen, sind im genetischen Code festgehalten (Abbildung 4.17 bis 4.19). Abbildung 4.17: Chromosomaufbau Abbildung 4.19: Aminosäuren Gene ψ- Aminosäuren ψ- Triplets ψ- 4-Basen- Alphabet Abbildung 4.18: Codon Die Natur bedient sich hierbei zur Informationscodierung eines Alphabets, bestehend aus den 4 Basen Uracil, Cytosin, Adenin und Guanin, die j eweils in Dreierkombinationen, sogenannten Triplets zusammengefasst eine Aminosäure erzeugen. Diese wiederum formen Sequenzen auf der RNA ( Wörter ) resp. der DNA. Zusammengefaltete DNA-Ketten wiederum respräsentieren die Gene und Chromosomen, die die komplexen Eigenschaften des Individuums festlegen. Wir kön-

4.5 Genetische Algorithmen 131 nen also im weitesten Sinne von einer Informationscodierung auf der Grundlage eines 4-buchstabigen Alphabets sprechen. 4.5.2 Mathematische Formalisierung Diese Tatsache wird nun folgendermaßen für eine Formalisierung herangezogen. Codierung Statt eines 4-buchstabigen Alphabets wird ein binäres Alphabet verwendet. Auch bezüglich der Gene wird eine Vereinfachung durchgeführt. Triplets und Gene werden mit dem Zeichenumfang des binären Alphabets identifiziert. Ein Gen im Sinne des Genetischen Algorithmus entspricht also der kleinsten Informationseinheit. Mit Hilfe der Gene wird die genetische Information in Binären Strings codiert. Die Binären Strings ersetzen die komplexeren natürlichen Chromosomen ebenso wie die sie tragenden Individuen, so dass im letzten Vereinfachungsschritt die Binären Strings als Individuen angesehen werden. Chromosom ff Gene U C A G HY H Φ Φ H H Φ Φ H H Φß Φ Triplets Vereinfachung Vereinfachung Vereinfachung?? Ψ? Binäre Strings ff Gene:f0; 1g ff Binäres Alphabet Der evolutionäre Optimierungsprozess wird somit folgendermaßen zu einer mathematischen Optimierungsaufgabe: die Zielfunktion, welche die Angepasstheit des Individuums an seine Umgebung repräsentiert und im Folgenden als emphd- Fitnessfunktion bezeichnet wird, muss auf Binärstrings 2 definiert werden (reelle Zahlen können zum Beispiel diskretisiert und über einen Binärcode des Index dargestellt werden). Der Suchraum muss entsprechend codiert werden. Wir betrachten also F : U f0; 1g n! R (Fitnessfunktion). (131.1) 2 Es gibt noch andere Codierungsmöglichkeiten, auf die im Rahmen dieses Skriptes nicht eingegangen werden soll. Insofern müssen die Codierungen nicht unbedingt binär sein.

132 Kapitel 4: Non-Standard-Optimierung Gesucht ist dann ~x 0 2 U mit F (~x 0 ) = max ~x2u gegebenenfalls unter Einhaltung von Nebenbedingungen. F (~x) (maximale Fitness ) (132.1) Basismechanismen Der evolutionäre Optimierungsprozess wird dabei durch drei zufallsbehaftete Basismechanismen angetrieben: Selektion Kreuzung Mutation Diese Basismechanismen werden in der mathematischen Formalisierung des Evolutionsprozesses zu Genetischen Algorithmen zu stochastischen Operatoren. Stochastischer Operator (z.b. Roulette-Rad) Population 0 1 0 0 0 0 1 0 0 1 1 1 0 0 0 1 1 0 1 1 Mating-Pool 1 1 0 1 1 1 1 0 1 1 1 1 0 0 0 0 1 0 0 0 Abbildung 4.20: Fitnessproportionale Selektion Die stochastischen Operatoren Selektion, Kreuzung und Mutation werden mit Hilfe des Binärcodes in Anlehnung an die natürlichen Mechanismen realisiert. Die Selektion etwa kann entsprechend der Fitness (Wert der Zielfunktion) der Individuen erfolgen. Im Beispiel aus Abbildung 4.20 wird hierfür ein Roulette-Rad

4.5 Genetische Algorithmen 133 verwendet. In jedem Selektionschritt (der ebenfalls mit einer gewissen vorgegebenen Wahrscheinlichkeit vorgenommen werden kann) wird ein Individuum durch drehen des Rouletterades ausgewählt. Da Individuen mit hoher Fitness auf dem Rad einen proportional größeren Raum einnehmen, haben diese eine höhere Wahrscheinlichkeit ausgewählt zu werden und landen, ggf. mehrfach reproduziert, in einem Heirats-Pool (Mating-Pool). Die Individuen des Mating-Pools haben (wiederum mit einer gewissen Wahrscheinlichkeit) das Recht, sich zu kreuzen und ihre Gene auszutauschen. Dies kann bei binärer Codierung so erfolgen, dass die Binärstrings zweier Individuen an einer Stelle aufgeschnitten und vertauscht werden. Mating-Pool 1 1 0 1 1 1 1 0 1 1 1 1 0 0 0 0 1 0 0 0 Stochastischer Operator Kreuzung (mit Wahrscheinlichkeit p c ) 1 1 j 0 1 1 1 1 j 0 1 1 1 j 1 0 0 0 0 j 1 0 0 0 Population nach Kreuzung 1 1 0 1 1 1 1 0 1 1 1 1 0 0 0 0 1 0 0 0 Zum Abschluss wird die Mutation simuliert. Hierzu kann man mit einer gewissen, i.a. sehr kleinen Wahrscheinlichkeit die Bits der Binärstrings kippen. Stochastischer Operator Mutation (mit i.a. kleiner Wahrscheinlichkeit) 1 1 0 1 1 1 1 01 1 1 1 1 0 0 0 01 1 0 0 0 Man erhält, wie wir später sehen werden, durch diesen Prozess eine Population mit im Schnitt höherer Fitness und ggf. existiert auch ein fitteres Einzelindividuum. Der beschriebene Prozess wird dann, bis zum Erreichen eines noch zu definierenden Endekriteriums, in der beschriebenen Abfolge wiederholt.

134 Kapitel 4: Non-Standard-Optimierung Der Genetische Algorithmus Die generelle Struktur des Genetischen Algorithmus lässt sich nun wie folgt zusammenfassen: (a) Initialisiere Iterationszähler k =0, Startpopulation ~x k 1 ;::: ;~xk n. (b) Stopp, falls Endekriterium erreicht ist (z.b. k >k max ), sonst weiter mit Schritt (c). (c) Bestimme die Fitness (οzielfunktionswert) der Individuen der Population. Wähle mit dem Selektionsoperator (ggf. mehrfach) Individuen ~y k+1 1 ;::: ;~y n k+1 für die Aufnahme in den Mating-Pool aus. (d) Erzeuge mit dem Kreuzungsoperator neue Individuen ~z k+1 1 ;::: ;~z n k+1. (e) Erzeuge mit dem Mutationsoperator daraus eine neue Population ~x k+1 1 ;::: ;~x k+1 n. (f) Fahre bei (b) fort. Der Genetische Algorithmus hat ähnliche Stärken und Schwächen wir der Simulated Annealing Algorithmus. Auch er ist durch den stochastischen Ansatz prinzipiell in der Lage aus suboptimalen Gebieten herauszufinden und selbst für sehr schwierige Zielfunktionen globale Optima oder Suboptima ähnlicher Qualität zu finden. Dagegen steht auch beim Genetischen Algorithmus die generelle Schwierigkeit der Parametrierung. Fragen, die zu beantworten sind, sind u.a. Wahl der Populationsgröße? Wahl der Anzahl der Iterationen (des Endekriteriums)? Wahl des Selektionsverfahrens? Wahl der Kreuzungswahrscheinlichkeit? Wahl der Mutationswahrscheinlichkeit? Generell gibt es, ähnlich wie beim Simulated Annealing Algorithmus, für die Parametrierung keine geschlossene Theorie! Die Parameter müssen experimentell ermittelt werden oder man verlässt sich auf die durch zahlreiche Fallstudien ermittelten und in der Literatur veröffentlichten

4.5 Genetische Algorithmen 135 Erfahrungswerte [5]. So hat sich beispielsweise bei binären Genetischen Algorithmen für die Wahl der Kreuzungswahrscheinlichkeit der Wert p c =0:6 eingebürgert. Für die Mutationswahrscheinlichkeit wird ein kleiner Wert zwischen p m = 0:05 und p m =0:1 bevorzugt, da sich der Algorithmus für deutlich größere Werte wie ein reiner Monte-Carlo Algorithmus verhält. Für die Populationsgrößen haben sich ebenfalls kleinere Werte (4 10) in der Praxis als günstig erwiesen. Als Endekriterium gibt man meist eine Maximalzahl an Iterationen vor, die problemabhängig experimentell ermittelt werden sollte. Wir wollen die Funktionsweise des Genetischen Algorithmus wieder mit Hilfe von MATLAB an dem einfachen Beispiel 4.14 illustrieren, das wir schon beim Simulated Annealing Algorithmus betrachtet haben. 4.16 Beispiel (Genetischen Algorithmus mit MATLAB) Maximiere F (x) =x 2 sin(x) (135.1) im Intervall [ 10; 10]. Zur Lösung dieser Aufgabe verwenden wir folgende MATLAB-Funktionen der Begleitsoftware: ga.m GA1D.m IlluGA1D.m Aufruf_IlluGA1D.m testfunktion1.m Die Datei ga.m entstammt einer inoffiziellen MATLAB-Toolbox für genetische Algorithmen, die an der North Carolina State University [5] entwickelt wurde und über das Internet zu beziehen ist. Die Datei GA1D.m implementiert den binären Genetischen Algorithmus für eine Funktion einer Variablen. Mit IlluGA1D.m kann der Genetische Algorithmus auf beliebige eindimensionale Funktionen angewandt werden. Mit dem Script-File Aufruf_IlluGA1D.m wird das Verfahren für die in testfunktion1.m implementierte Zielfunktion (135.1) angewandt und der Suchvorgang grafisch animiert. Die Animation bei Aufruf von Aufruf_IlluGA1D

136 Kapitel 4: Non-Standard-Optimierung 80 60 (x 2 )*sin(x) Beispiel zum Verfahren Genetischer Algorithmus 63.6288 40 20 f(x) 0 20 40 60 8.0828 80 10 8 6 4 2 0 2 4 6 8 10 x Abbildung 4.21: Abschlussgrafik bei GA-Suche in Beispiel 4.16 zeigt, wie fast der gesamte Suchraum durchforstet wird, bevor der Algorithmus gegen ein (Sub-)Optimum konvergiert. Abbildung 4.21 zeigt die Grafik bei Abschluss des Suche, bei der mit vier Individuen und folgender Parametrierung gearbeitet wurde: GAparams. maxpop = 100; % 100 Schritte (Parameter % für maxgent) GAparams. termfn = maxgent ; % Terminierung nach endlich % vielen Schritten GAparams. selectfn = normgeos ; % Selektionsfunk. NormGeoSelect GAparams. selectops = 0.08; % mit Parameter 0.08 GAparams. xoverfns = simplex ; % einfaches binäres Crossover GAparams. xoverops = 0.6; % mit 0.6 Crossoverwahrscheinl. GAparams. mutfns = binarym ; % Binäre Mutation GAparams. mutops = 0. 1; % mit Mutationswahrschein- % lichkeit 0.1 startwerte = [ 3,2,4,9]; % Anfangspopulation festlegen 4.5.3 Der Fundamentalsatz Im Beispiel 4.16 wurde gezeigt, dass der Genetische Algorithmus zu einer sinnvollen Lösung führen kann.

4.5 Genetische Algorithmen 137 Wir wollen nun etwas näher beleuchten, warum dies so ist und der formalisierte Mechanismus als Optimierungsverfahren geeignet ist. Es soll im Folgenden versucht werden, das zentrale Ergebnis, welches (eine partielle) Antwort auf diese Frage gibt, das so genannte Schema-Theorem, näher zu beleuchten. Das Schema-Theorem Der wesentliche Begriff für das Verständnis des Algorithmus ist der des Schemas. Unter einem Schema versteht man eine Menge von Binärstrings (Individuen), die durch eine gemeinsame fixierte Bitkombination gekennzeichnet sind. Abbildung 4.22 zeigt ein Beispiel. Am besten kann diese Menge durch einen Hyperwürfel im Raum der Bitkombinationen gekennzeichnet werden. So entspricht in dem dargestellten Beispiel das Schema Λ10ΛΛeinem 3-dimensionalen Würfel und das Schema Λ100Λ einem zweidimensionalen Rechteck im 5-dimensionalen Suchraum der Individuen. 1 1 0 1 0 1 1 0 1 1 Beispiel: 0 1 0 0 0 0 1 0 0 1 0 1 0 1 0 1 1 0 0 0 1 1 0 0 1 0 1 0 1 1 1 1 0 0 0 1 1 0 0 1 0 1 0 0 0 0 1 0 0 1 1 1 0 1 0 1 1 0 1 1 Schemata: 0 1 0 0 0 0 1 0 0 1 Abbildung 4.22: Schema als Hyperfläche (-würfel) in [0; 1] n Λ 1 0 Λ Λ Λ 1 0 0 Λ Die Zusammenfassung der Individuen zu Schemata trägt der Funktionsweise Genetischer Algorithmen Rechnung. Die Herleitung der Algorithmen zeigt, dass es keinen Sinn macht, die Entwicklung einzelner Individuen zu verfolgen, sondern nur der ganzen Population. Die Population wiederum repräsentiert eine Vielzahl von Schemata, da ein Individuum einer Vielzahl von Schemata angehört. Im Idealfall stellt die Population einen Schätzer für die Verteilung der (fitten) Schemata dar. Statt also zu fragen, wie einzelne Individuen im Laufe der Evolution verändert werden, macht es mehr Sinn,

138 Kapitel 4: Non-Standard-Optimierung zu fragen, wie die Genetischen Operatoren die Schemata verändern bzw. wie ein Schema im Laufe der Evolution (Iteration) durch die Populationen repräsentiert wird. Es soll nun die Wirkung der Operatoren auf ein Schema genauer betrachtet werden. Wie gezeigt wurde, wird bei der fitnessproportionalen Selektion ein Individuum mit einer Wahrscheinlichkeit p j = f j N f (138.1) ausgewählt. Die Wahrscheinlichkeit, dass ein Individuum eines Schemas H ausgewählt wird, ergibt sich aus der Summe dieser Wahrscheinlichkeiten p(h) = X j2h = 1 f 1 N p j = X j2h X j2h f j : f j N f (138.2) Damit ist die Anzahl der aus einer Population ausgewählten Schema-H-Individuen M M H = N p(h) = 1 f X j2h f j : (138.3) Mit der Anzahl M H der schon vorher zum Schema H gehörenden Individuen ergibt sich daraus MH M = M H 1 1 X f j f M H j2h (138.4) = M H fh f ; so dass die Zahl MH M (n +1)der aus der n-ten Generation in dem Mating-Pool selektierten Individuen gleich M M H (n + 1) =M H(n) fh f (138.5) ist, wobei f H die relative Fitness der Schema-H-Individuen innerhalb der Population bezeichnet. Der Faktor f H f (138.6) repräsentiert somit den auf das Schema ausgewählten Selektionsdruck.

4.5 Genetische Algorithmen 139 Ist die relative Fitness innerhalb eines Schemas eine Zeit lang etwa gleichbleibend hoch und höher als die durchschnittliche Fitness der Population, so wächst der Anteil der Schema-H-Individuen in diesem Zeitraum exponentiell an ( h fh f i k ). Dies kann, wie später an Hand eines Beispiels erläutert werden wird, experimentell nachvollzogen werden und ist ein wesentlicher Punkt, denn dieser Effekt bewirkt, dass es sich bei einem genetischen Algorithmus eben nicht um ein wahlloses Suchverfahren handelt, sonder in gewissem Sinne um eine zielgerichtete Suche, die noch dazu mit (anfangs) exponentieller Geschwindigkeit von statten geht. Dass der Selektionsdruck alleine die Population nicht auf Dauer in einen suboptimalen Bereich treibt, dafür sorgen die anderen beiden genetischen Operatoren. Durch die Kreuzung werden, wie folgenden Beispiele zeigen, Schemata i.a. zerstört, wobei jedoch kurze Schemata offenbar eine bessere Überlebenschance haben, als längere. Λ 1 0 j Λ Λ + + + j + + Λ + j + + + + 1 j 0 Λ Λ? Λ 1 0 j + + + + + j Λ Λ? Λ 1 j 0 Λ Λ + 1 j + + + Es können allerdings auch Schema-Individuen neu entstehen, was wiederum dazu beiträgt, dass weniger erfolgreiche Schemata verlassen und andere Regionen des Suchraums aufgesucht werden können. Ähnlich verhält es sich mit der Mutation. Auch hier werden Schemata i.a. zerstört, wobei jedoch kurze Schemata offenbar eine bessere Überlebenschance haben, als längere. Λ 1 0 Λ Λ # Λ 0 0 Λ Λ Fasst man alle diese Einflüsse auf ein Schema zusammen, so erhält man folgendes Resultat, das so genannte Schema-Theorem welches die Propagation des relativen Anteils P H eines Schemas innerhalb der Population im Laufe der Generationen beschreibt:

140 Kapitel 4: Non-Standard-Optimierung Schema-Theorem: Ist H ein Schema mit der definierenden Länge ffi(h) und mit der Ordnung o(h) in einem binär codierten (klassischen) Genetischen Algorithmus mit Kreuzungs-Wahrscheinlichkeit p c und Mutations- Wahrscheinlichkeit p m. Sei weiter P H (n) der relative Anteil der zum Schema H gehörenden Individuen in einer Population zum Iterationszeitpunkt n. Dann gilt: P H (n +1) P H (n) f H(n) f(n) 1 p ffi(h) c N 1 o(h)p m Zur Illustration dieses Sachverhaltes greifen wir wieder auf das Beispiel 4.16 zurück, an Hand dessen wir unter MATLAB die Funktionsweise der Algorithmen visualisiert haben (Abbildung 4.23 bis 4.26). Der Suchraum wurde in diesem Beispiel für die Anwendung des Genetischen Algorithmus mit einer Genauigkeit von ca. 10 4 diskretisiert und mit 18-Bit-Strings binär codiert. Die beiden Streifen über den Graphen der Zielfunktion in Abbildung 4.23 repräsentieren zwei sehr unterschiedliche Schemata, nämlich ein Schema hoher Fitness in der Nähe des globalen Optimums und ein Schema mit sehr niedriger Fitness in der Nähe des globalen Minimums. Die übrigen Grafiken repräsentieren die durchschnittliche Fitness der Population aus 4 Individuen in einem Lauf und jeweils die (durchschnittliche) Fitness des Schemas und die (durchschnittliche) Anzahl der Schema-Individuen, welche über mehrere Läufe gemittelt wurde. Man erkennt deutlich, dass die Fitness der Population anfangs dramatisch, später leicht ansteigt. Ebenso deutlich erkennt man den exponentiellen Anstieg der durchschnittlichen Schema-Fitness und der Schema-Anzahl für das überdurchschnittliche Schema. Das schlechte Schema hingegen ist von Anfang an so gut wie nicht in der Population vertreten. Konvergenz Genetischer Algorithmen Bezüglich der Konvergenz Genetischer Algorithmen gibt es leider auch wenige theoretische Resultate. Im Falle des Genetischen Algorithmus mit so genannter elitärer Strategie, bei der in jeder Generation auf jeden Fall das beste Individuum in der Population verbleibt, lässt sich jedoch folgendes theoretische Resultat beweisen: Konvergenzsatz: Ist ~x Λ das globale Maximum einer Optimierungsaufgabe max ~x F (~x) und ~x b n das beste Individuum in der n-ten Generation eines Genetischen Algorithmus (Genetischer Algorithmus mit elitärer Strategie ). Dann gilt: lim n!1 P F ~x b n = F (~x Λ ) =1: (140.1)

4.5 Genetische Algorithmen 141 Abbildung 4.23: Testfunktion und Bereiche zweier Schemata Abbildung 4.24: Durchschnittliche Fitness des guten Schemas Abbildung 4.25: Durchschnittliche Fitness der Population Abbildung 4.26: Durchschnittliche Anzahl der Schema-Individuen Dieses Resultat lässt sich so interpretieren, dass im Grenzfall das beste Individuum einer Population mit Wahrscheinlichkeit 1 die Fitness des globalen Optimums hat. (in der Mathematik spricht man von stochastischer Konvergenz)! Allerdings sagt das Resultat nichts über die Zahl der Iterationen, die für eine Konvergenz im obigen Sinne benötigt wird, so dass das Resultat für die praktische Parametrierung des Genetischen Algorithmus nicht herangezogen werden kann. Fazit Die Eigenschaften des die Genetischen Algorithmus können stichwortartig wie folgt zusammengefasst werden: Mittlere Fitness der Populationen steigt an. Fitte Schemata breiten sich (durch den Selektionsdruck) exponentiell aus. Kreuzung und Mutation wirken dem entgegen. Dadurch können fittere Schemata und Individuen gefunden werden.

142 Kapitel 4: Non-Standard-Optimierung Algorithmus durchsucht gleichzeitig viele Hyper flächen des Suchraums (implizite Parallelität der GA). Fitte Schemata mit kleinen Bitblöcken werden bevorzugt durch die Generationen verbreitet (building-block-hypothese). Jede Population ist ein Schätzer für die Fitnessverteilung der Schemata. Die Konvergenz ist nicht gesichert. Die Konvergenzdauer ist i.a. unbekannt und kann meist nur durch Experimente ermittelt werden. Für die Parametrierung gibt es lediglich Faustregeln. Ansonsten muss die richtige Parametrierung experimentell ermittelt werden. Für die Codierung des Suchraums gibt es verschiedene Standardansätze (binäre Codierung, reelle Codierung). Es sind aber auch problemabhängig andere Codierungen möglich. Genetische Algorithmen sind universell anwendbar und liefern oft auch in sehr komplizierten Fällen sehr gute Ergebnisse. Genetische Algorithmen sind in der Lage, Bereiche lokaler Suboptima wieder zu verlassen! 4.5.4 Fallbeispiel Die Leistungsfähigkeit Genetischer Algorithmen soll nun abschließend an einem praxisnahen realistischen Beispiel, einem nichtlinearen Transportproblem (vgl. Beispiel 1.3), demonstriert werden. Nichtlineares Transportproblem Gesucht ist: min F (~x) = min ~x ~x NX MX i=1 j=1 c ij x 2 ij (142.1) mit N = Zahl der Lieferanten (3); M = Zahl der Kunden (4); x ij = Zahl der transportierten Einheiten von Lieferant i zu Kunde j; c ij = Kosten des Transports von Lieferant i zu Kunde j; (142.2)

4.5 Genetische Algorithmen 143 unter den Nebenbedingungen MX j=1 NX i=1 x ij» a i 8i» N =3; x ij b j 8j» M =4; (143.1) mit den Lieferkapazitäten ~a = (50; 100; 70); (143.2) mit den Kundenmindestanforderungen ~ b = (20; 20; 30; 30); (143.3) mit der Transportkostenmatrix C = 0 B @ 10 15 27 3 0 19 31 12 21 16 1 10 1 C A : (143.4) Als zusätzliche Randbedingung ist zu beachten, dass die x ij ganzzahlig sein sollen! Diskussion zweier Lösungsansätze Wir wollen die Lösung des Problems mit einem Genetischen Algorithmus zur besseren Illustration der Leistungsfähigkeit mit einem klassischen Lösungsansatz vergleichen. Zu diesem Zweck soll das Problem auch mit einem Quasi-Newton-Verfahren bearbeitet werden, wobei die geforderte Ganzzahligkeit der Lösung nachträglich berücksichtigt wird. Diese Forderung kann im Genetischen Algorithmus auf Grund der verwendet Binärcodierung dagegen sehr leicht realisiert werden. Quasi-Newton-Lösung: Zur Lösung der Aufgabe mit einem Quasi-Newton- Verfahren verwenden wir folgende MATLAB-Funktionen der Begleitsoftware: GANLTransport_Konventionell.m KostenGANLTransport2.m

144 Kapitel 4: Non-Standard-Optimierung Die Berechnung in GANLTransport_Konventionell.m greift dabei auf die Funktion fmincon.m der Optimization Toolbox zurück, die das Problem unter Verwendung eines Quasi-Newton-Verfahrens löst. Die Lösungen sind auf Grund der großen Zahl von Suboptima sehr stark abhängig vom gewählten Startwert. Bei mehreren Versuchen wurde folgende beste Lösung gefunden: X = 0 B @ 0:00 7:33 1:04 19:35 58:57 5:79 0:90 4:84 0:00 6:87 28:06 5:81 1 C A (144.1) mit dem Kostenminimum 4783:90! Um daraus ganzzahlige Lösungen zu produzieren wurde der Ansatz gewählt, alle benachbarten ganzzahligen Lösungen auszutesten! Dieser Ansatz kann natürlich nur bei kleinen Problemen verfolgt werden, da es hierfür 2 N M Möglichkeiten gibt. Die beste benachbarte ganzzahlige Lösung war X = 0 B @ 0 8 2 20 58 6 1 5 1 7 29 6 1 C A (144.2) mit dem Kostenminimum 5289, den Liefermengen ~a = (30; 70; 43)» (50; 100; 70) und mit den Empfangsmengen ~ b = (59; 21; 32; 31) (20; 20; 30; 30) : Wie die mit dem Genetischen Algorithmus bestimmten Lösungen später zeigten, ist dies im vorliegenden Fall nur eine suboptimale Lösung! Ein weiterer Nachteil dieser Methode ist, dass sie im allgemeinen Fall nicht eingesetzt werden kann, z.b. falls F (~x) nicht stetig differenzierbar ist, wie bei einer stückweise stetigen Kostenfunktion!

4.5 Genetische Algorithmen 145 GA-Lösung: Zur Lösung der Aufgabe mit einem Genetischen Algorithmus verwenden wir folgende MATLAB-Funktionen der Begleitsoftware: ga.m FitGANL_Transport1.m (Fitnessfunktion) GANLTransport.m KostenGANLTransport.m Aufruf_GANLTransport.m ItAufruf_GANLTransport.m Die Datei ga.m entstammt der inoffiziellen MATLAB-Toolbox für genetische Algorithmen der North Carolina State University [5]. Die Datei GANLTransport.m implementiert den binären Genetischen Algorithmus für dieses Problem. Mit Aufruf_GANLTransport.m kann der Genetische Algorithmus das Problem angewandt werden. Mit der Funktion ItAufruf_GANLTransport.m kann das Verfahren mehrmals nacheinander aufgerufen werden. Das beste Ergebnis kann anschließend aus den in einer Datei abgespeicherten Lösungen ausgewählt werden. Für die Codierung der Daten wurde eine 7-Bit-Binärcodierung ausgewählt, da diese zur Darstellung der maximalen Liefermenge 100 ausreicht. Der Vorteil dieser Codierung ist, wie bereits erwähnt, dass die geforderte Ganzzahligkeit der Lösung garantiert ist. Ein Nachteil ist natürlich, dass auch unzulässige Lösungen (Lösungen, die die Nebenbedingungen nicht erfüllen) entstehen können. In der Literatur [10] wird ein Vorschlag einer ganzzahliger Codierung gemacht, die nur zulässige Lösungen darstellt (eine problemangepasste Codierung). Diese ist jedoch wesentlich komplizierter und soll deshalb an dieser Stelle nicht behandelt werden. Die übrigen Parameter des Algorithmus wurden konventionell gewählt. In jedem Versuch wurden 10000 Generationen durchsimuliert. Die besten Lösungen der Versuche waren X = 0 B @ 0 40 1 7 6 7 1 0 29 15 3 11 1 C A (145.1)

146 Kapitel 4: Non-Standard-Optimierung mit einem Kostenminimum von 5085 und X = 0 B @ 2 31 0 8 6 6 0 1 33 17 6 7 1 C A (146.1) mit einem Kostenminimum von 5169! Beide Lösungen sind wesentlich besser als die mit der klassischen Methode gefundene Lösung. Der Genetische Algorithmus funktioniert gut, obwohl er dem Problem nicht optimal angepasst ist! Insofern wäre der Genetische Algorithmus wäre für kompliziertere Kostenfunktionen (z.b. differenzierbare oder gar nicht stetige Kostenfunktionen) eine sehr gute, wenn nicht gar die einzig mögliche Alternative! 4.5.5 Übungen Übung 28 (Lösung Seite 181 ) Bestimmen Sie mit Hilfe einer geeigneten MATLAB-Implementierung des Genetischen Algorithmus eine Lösung der Minimierungsaufgabe unter den nichtlinearen Nebenbedingungen min F (x 1;x 2 ;x 3 )=x 2 1 x + x 2 + x 3 (146.2) 1;x 2;x 32R g 1 (x 1 ;x 2 ;x 3 )=x 2 1 + x2 2 1=0; g 2 (x 1 ;x 2 ;x 3 )=x1 +x 2 + x 3 =0: (146.3)