11.03.2014 Aufrufe

4.5 Genetische Algorithmen

4.5 Genetische Algorithmen

4.5 Genetische Algorithmen

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

126 Kapitel 4: Non-Standard-Optimierung<br />

Willkürlich legen wir fest:<br />

– Akzeptanz schlechterer Werte am Anfang der Iteration: ½ ½¼ ¿ ,<br />

– Akzeptanz schlechterer Werte am Ende der Iteration: ¼¼.<br />

Daraus errechnet man einen Wert von Ì ÑÜ ½¼¼¼¼ und von Ì ÑÒ ¼.<br />

Folgerung für Abkühlrate Ö (in Prozent):<br />

Da Ì ÑÒ von Ì ÑÜ aus in Æ ÑÜ Schritten exponentiell erreicht werden muss, ergibt<br />

sich aus<br />

Ì ÑÒ Ì ÑÜ<br />

Ö<br />

½¼¼<br />

Æ ÑÜ<br />

für die Rate Ö ¾±für Æ ÑÜ ½¼¼ und Ö ±für Æ ÑÜ ¾¼¼.<br />

(126.1)<br />

Im Beispiel kann also die Parametrierung auf Grund der Struktur der Zielfunktion<br />

in einem gewissen Rahmen problemangepasst durchgeführt werden. Eine allgemeine<br />

Vorgehensweise oder gar eine Parametrierungstheorie gibt es nicht.<br />

4.4.3 Übungen<br />

Übung 27 (Lösung Seite 181 )<br />

Bestimmen Sie mit Hilfe einer geeigneten MATLAB-Implementierung des Simulated<br />

Annealing Algorithmus eine Lösung der Minimierungsaufgabe<br />

unter den nichtlinearen Nebenbedingungen<br />

ÑÒ ´Ü ½Ü ¾ Ü ¿ µÜ ¾ ½ · Ü ¾ · Ü ¿ (126.2)<br />

Ü ½Ü ¾Ü ¿¾Ê<br />

½´Ü ½ Ü ¾ Ü ¿ µÜ ¾ ½ · ܾ ¾ ½¼<br />

¾´Ü ½ Ü ¾ Ü ¿ µÜ½ ·Ü ¾ · Ü ¿ ¼ (126.3)<br />

<strong>4.5</strong> <strong>Genetische</strong> <strong>Algorithmen</strong><br />

<strong>Genetische</strong> <strong>Algorithmen</strong> formalisieren den Prozess der natürlichen Evolution für<br />

die Anwendung auf mathematische Optimierungsaufgaben.<br />

Diese Klasse von <strong>Algorithmen</strong> gehört zu den so genannten Evolutionsstrategien.<br />

Das Prinzip dieser Heuristiken besteht darin, die natürliche Evolution als<br />

Optimierungsverfahren aufzufassen, bei dem eine Population von Individuen an<br />

Umweltbedingungen optimal angepasst wird.


<strong>4.5</strong> <strong>Genetische</strong> <strong>Algorithmen</strong> 127<br />

Die formalisierte Version, also das mathematische Verfahren, ahmt die verschiedenen<br />

Mechanismen der Evolution in Form von Operatoren auf Werten des zulässigen<br />

Suchraums (der Population) nach.<br />

Die Anpassung von Generation zu Generation (d.h. Iteration zu Iteration) erfolgt<br />

durch Änderung der Erbinformation, eine mathematische Codierung der Eigenschaften<br />

der Werte des Suchraums. Die Anpassung der Erbinformation erfolgt<br />

stochastisch durch Nachahmung des Selektionsprozesses, durch zufällige Vermischung<br />

der Information („Kreuzung“) und zufällige Änderung der Information<br />

(„Mutation“).<br />

Wie an dieser kurzen Einleitung schon zu erkennen ist, werden bei dieser <strong>Algorithmen</strong>klasse<br />

Begriffe aus der biologischen Evolution mit Begriffen aus der mathematischen<br />

Optimierung identifiziert.<br />

Die folgende Tabelle stellt zum besseren Verständnis der in den folgenden Abschnitten<br />

darzustellenden Theorie eine Auswahl dieser Begriffe gegenüber:<br />

Biologischer Begriff<br />

Population<br />

Individuum<br />

Fitness<br />

(Anpassung an die Umwelt)<br />

Mathematischer Begriff<br />

Gruppe von Elementen des zulässigen<br />

Suchraums <br />

Element des zulässigen Suchraums<br />

<br />

Wert der Zielfunktion (oder einer<br />

äquivalenten Funktion, der<br />

„Fitnessfunktion“)<br />

Umweltbedingungen Suchraumgrenzen, Restriktionen,<br />

Fitnessfunktion<br />

Erbinformation<br />

(Chromosom, Gen)<br />

Generation<br />

Selektion<br />

Codierung der Suchraumelemente<br />

(Binärcode, reelle Zahl,<br />

Vektor)<br />

Nummer der Iteration<br />

Auswahl von Suchraumelementen<br />

in jedem Iterationsschritt gemäß<br />

dem Wert der Fitnessfunktion<br />

(Zielfunktion)<br />

Fortsetzung auf der nächsten Seite


128 Kapitel 4: Non-Standard-Optimierung<br />

Biologischer Begriff<br />

Kreuzung<br />

Mathematischer Begriff<br />

stochastische Vermischung der<br />

Codierungsinformation der Elemente<br />

(Individuen) einer Wertegruppe<br />

(Population),<br />

Kreuzungsoperator<br />

Mutation stochastische Änderung der<br />

Codierungsinformation der<br />

Elemente (Individuen) einer<br />

Wertegruppe (Population),<br />

Mutationsoperator<br />

Anpassung Wert der Zielfunktion, Optimumsuche<br />

Bevor wir die Details des <strong>Genetische</strong>n Algorithmus beschreiben, sollen zunächst<br />

noch einmal die wesentlichen Grundzüge der Theorie der biologischen Evolution<br />

in Erinnerung gerufen werden.<br />

<strong>4.5</strong>.1 Mechanismen der natürlichen Evolution<br />

In den Abbildungen 4.11 bis 4.16 sind schematisch an Hand von Symbolen, die Individuen<br />

einer Population mit unterschiedlichen Eigenschaften repräsentieren sollen,<br />

die grundsätzlichen Vorgänge der natürlichen Evolution dargestellt.<br />

Wir gehen zunächst von einer Population von Individuen mit unterschiedlichen<br />

Merkmalen, hier symbolisiert durch geometrische Formen und Farben, aus (Abbildung<br />

4.11). Diese Individuen leben in einer gewissen Umwelt und sind den<br />

dadurch gegebenen Lebensbedingungen ausgesetzt. Die Lebensbedingungen erzeugen<br />

einen sogenannten Selektionsdruck, d.h. einige Individuen überleben die<br />

Umweltbedingungen nicht und sterben oder sind nicht fortpflanzungsfähig, andere<br />

Individuen sind gut angepasst und verbreiten ihre Erbanlagen (Abbildung 4.12).<br />

Dabei werden verschiedene Erbanlagen und damit Eigenschaften im Vermehrungsprozess<br />

durch Kreuzung mit Eigenschaften anderer (mehr oder weniger zufällig<br />

ausgewählter) Individuen verändert (Abbildung 4.13). Einig wenige Individuen<br />

erhalten dabei zufällig, etwa durch radioaktive Einstrahlung oder andere<br />

Umwelteinflüsse oder sporadisch auftretende Erbgutveränderungen neue Eigenschaften.<br />

Dieser (seltene) Prozess der zufälligen Änderung wird Mutation genannt<br />

(Abbildung 4.14).


<strong>4.5</strong> <strong>Genetische</strong> <strong>Algorithmen</strong> 129<br />

Abbildung 4.11: Population mit<br />

unterschiedlichen Merkmalen<br />

Abbildung 4.12: Selektionsdruck<br />

Abbildung 4.13: Kreuzung<br />

Abbildung 4.14: Mutation<br />

Abbildung 4.15: Erneuter Selektionsdruck<br />

Abbildung 4.16: (besser?) Angepasste<br />

Population<br />

Die neue Population findet sich dann wieder dem Selektionsdruck ausgesetzt (Abbildung<br />

4.15) und so fort. Oft erhält man durch diesen Prozess besser angepasste<br />

Populationen von Individuen (Abbildung 4.16).<br />

Zusammenfassend kann man also sagen, dass es sich bei der natürlichen Evolution<br />

um eine (iteratives) Optimierungsverfahren handelt, welches von drei zufallsbehafteten<br />

Basismechanismen angetrieben wird, nämlich Selektion, Kreuzung


130 Kapitel 4: Non-Standard-Optimierung<br />

und Mutation und immerwährend fortschreitet. Diese Basismechanismen werden<br />

in der mathematischen Formalisierung des Evolutionsprozesses zu so genannten<br />

stochastischen Operatoren und machen den Kern der <strong>Genetische</strong>n <strong>Algorithmen</strong><br />

aus.<br />

Der <strong>Genetische</strong> Code<br />

Für die Umsetzung dieser Mechanismen in einen brauchbaren mathematischen Algorithmus<br />

fehlt jedoch noch ein wichtiger Baustein, nämlich die Codierung des<br />

Problems. Es muss die Frage beantwortet werden, wie ein Optimierungsproblem<br />

in eine Form gebracht werden kann, die es erlaubt, genetische Operatoren hierauf<br />

anzuwenden.<br />

Es erscheint klug, zunächst einmal wieder nach der Lösung zu fragen, die die Natur<br />

für dieses Problem gefunden hat.<br />

Die Information über die Eigenschaften eines Individuums und somit die Fähigkeit,<br />

sich an seine Lebensbedingungen anzupassen, sind im genetischen Code festgehalten<br />

(Abbildung 4.17 bis 4.19).<br />

Abbildung 4.17:<br />

Chromosomaufbau<br />

Abbildung 4.19: Aminosäuren<br />

Gene¹ Aminosäuren ¹ Triplets ¹ 4-Basen-<br />

Alphabet<br />

Abbildung 4.18: Codon<br />

Die Natur bedient sich hierbei zur Informationscodierung eines Alphabets, bestehend<br />

aus den Basen Uracil, Cytosin, Adenin und Guanin, die j eweils in Dreierkombinationen,<br />

sogenannten Triplets zusammengefasst eine Aminosäure erzeugen.<br />

Diese wiederum formen Sequenzen auf der RNA („Wörter“) resp. der DNA.<br />

Zusammengefaltete DNA-Ketten wiederum respräsentieren die Gene und Chromosomen,<br />

die die komplexen Eigenschaften des Individuums festlegen. Wir kön-


<strong>4.5</strong> <strong>Genetische</strong> <strong>Algorithmen</strong> 131<br />

nen also im weitesten Sinne von einer Informationscodierung auf der Grundlage<br />

eines -buchstabigen Alphabets sprechen.<br />

<strong>4.5</strong>.2 Mathematische Formalisierung<br />

Diese Tatsache wird nun folgendermaßen für eine Formalisierung herangezogen.<br />

Codierung<br />

Statt eines -buchstabigen Alphabets wird ein binäres Alphabet verwendet. Auch<br />

bezüglich der Gene wird eine Vereinfachung durchgeführt. Triplets und Gene werden<br />

mit dem Zeichenumfang des binären Alphabets identifiziert. Ein „Gen“ im Sinne<br />

des <strong>Genetische</strong>n Algorithmus entspricht also der kleinsten Informationseinheit.<br />

Mit Hilfe der Gene wird die genetische Information in Binären Strings codiert. Die<br />

Binären Strings ersetzen die komplexeren natürlichen Chromosomen ebenso wie<br />

die sie tragenden Individuen, so dass im letzten Vereinfachungsschritt die Binären<br />

Strings als Individuen angesehen werden.<br />

Chromosom Gene U C A G<br />

À À<br />

¨<br />

¨<br />

À<br />

À<br />

¨<br />

¨<br />

À<br />

À ¨¨<br />

Triplets<br />

Vereinfachung<br />

Vereinfachung<br />

Vereinfachung<br />

<br />

©<br />

<br />

Binäre Strings Gene:¼ ½ <br />

Binäres Alphabet<br />

Der evolutionäre Optimierungsprozess wird somit folgendermaßen zu einer mathematischen<br />

Optimierungsaufgabe: die Zielfunktion, welche die Angepasstheit<br />

des Individuums an seine Umgebung repräsentiert und im Folgenden als emphD-<br />

Fitnessfunktion bezeichnet wird, muss auf Binärstrings 2 definiert werden (reelle<br />

Zahlen können zum Beispiel diskretisiert und über einen Binärcode des Index dargestellt<br />

werden). Der Suchraum muss entsprechend codiert werden. Wir betrachten<br />

also<br />

Í ¼ ½ Ò Ê (Fitnessfunktion). (131.1)<br />

2 Es gibt noch andere Codierungsmöglichkeiten, auf die im Rahmen dieses Skriptes nicht eingegangen<br />

werden soll. Insofern „müssen“ die Codierungen nicht unbedingt binär sein.


132 Kapitel 4: Non-Standard-Optimierung<br />

Gesucht ist dann<br />

Ü ¼ ¾ Í mit ´Ü ¼ µ ÑÜ<br />

ܾÍ<br />

gegebenenfalls unter Einhaltung von Nebenbedingungen.<br />

´Üµ (maximale „Fitness“) (132.1)<br />

Basismechanismen<br />

Der evolutionäre Optimierungsprozess wird dabei durch drei zufallsbehaftete<br />

Basismechanismen angetrieben:<br />

Selektion<br />

Kreuzung<br />

Mutation<br />

Diese Basismechanismen werden in der mathematischen Formalisierung des Evolutionsprozesses<br />

zu <strong>Genetische</strong>n <strong>Algorithmen</strong> zu stochastischen Operatoren.<br />

Stochastischer Operator<br />

(z.B. Roulette-Rad)<br />

Population<br />

¼ ½ ¼ ¼ ¼<br />

¼ ½ ¼ ¼ ½<br />

½ ½ ¼ ¼ ¼<br />

½ ½ ¼ ½ ½<br />

„Mating-Pool“<br />

½ ½ ¼ ½ ½<br />

½ ½ ¼ ½ ½<br />

½ ½ ¼ ¼ ¼<br />

¼ ½ ¼ ¼ ¼<br />

Abbildung 4.20: Fitnessproportionale Selektion<br />

Die stochastischen Operatoren Selektion, Kreuzung und Mutation werden mit Hilfe<br />

des Binärcodes in Anlehnung an die natürlichen Mechanismen realisiert.<br />

Die Selektion etwa kann entsprechend der Fitness (Wert der Zielfunktion) der Individuen<br />

erfolgen. Im Beispiel aus Abbildung 4.20 wird hierfür ein Roulette-Rad


<strong>4.5</strong> <strong>Genetische</strong> <strong>Algorithmen</strong> 133<br />

verwendet. In jedem Selektionschritt (der ebenfalls mit einer gewissen vorgegebenen<br />

Wahrscheinlichkeit vorgenommen werden kann) wird ein Individuum durch<br />

drehen des Rouletterades ausgewählt. Da Individuen mit hoher Fitness auf dem<br />

Rad einen proportional größeren Raum einnehmen, haben diese eine höhere Wahrscheinlichkeit<br />

ausgewählt zu werden und landen, ggf. mehrfach reproduziert, in<br />

einem Heirats-Pool (Mating-Pool).<br />

Die Individuen des Mating-Pools haben (wiederum mit einer gewissen Wahrscheinlichkeit)<br />

das Recht, sich zu kreuzen und ihre Gene auszutauschen. Dies kann<br />

bei binärer Codierung so erfolgen, dass die Binärstrings zweier Individuen an einer<br />

Stelle aufgeschnitten und vertauscht werden.<br />

„Mating-Pool“<br />

½ ½ ¼ ½ ½<br />

½ ½ ¼ ½ ½<br />

½ ½ ¼ ¼ ¼<br />

¼ ½ ¼ ¼ ¼<br />

Stochastischer Operator<br />

Kreuzung<br />

(mit Wahrscheinlichkeit Ô )<br />

½ ½ ¼ ½ ½<br />

½ ½ ¼ ½ ½<br />

½ ½ ¼ ¼ ¼<br />

¼ ½ ¼ ¼ ¼<br />

Population<br />

nach Kreuzung<br />

½ ½ ¼ ½ ½<br />

½ ½ ¼ ½ ½<br />

½ ½ ¼ ¼ ¼<br />

¼ ½ ¼ ¼ ¼<br />

Zum Abschluss wird die Mutation simuliert. Hierzu kann man mit einer gewissen,<br />

i.A. sehr kleinen Wahrscheinlichkeit die Bits der Binärstrings kippen.<br />

Stochastischer Operator<br />

Mutation<br />

(mit i.A. kleiner Wahrscheinlichkeit)<br />

½ ½ ¼ ½ ½<br />

½ ½ 0½ ½ ½<br />

½ ½ ¼ ¼ ¼<br />

0½ ½ ¼ ¼ ¼<br />

Man erhält, wie wir später sehen werden, durch diesen Prozess eine Population mit<br />

im Schnitt höherer Fitness und ggf. existiert auch ein fitteres Einzelindividuum.<br />

Der beschriebene Prozess wird dann, bis zum Erreichen eines noch zu definierenden<br />

Endekriteriums, in der beschriebenen Abfolge wiederholt.


134 Kapitel 4: Non-Standard-Optimierung<br />

Der <strong>Genetische</strong> Algorithmus<br />

Die generelle Struktur des <strong>Genetische</strong>n Algorithmus lässt sich nun wie folgt zusammenfassen:<br />

(a) Initialisiere<br />

Iterationszähler ¼,<br />

Startpopulation Ü ½ Ü Ò.<br />

(b) Stopp, falls Endekriterium erreicht ist (z.B. ÑÜ ), sonst weiter mit<br />

Schritt (c).<br />

(c) Bestimme die „Fitness“ (Zielfunktionswert) der Individuen der Population.<br />

Wähle mit dem Selektionsoperator (ggf. mehrfach) Individuen<br />

Ý Ò<br />

·½ für die Aufnahme in den „Mating-Pool“ aus.<br />

Ý ·½<br />

½<br />

(d) Erzeuge mit dem Kreuzungsoperator neue Individuen Þ ·½<br />

½<br />

Þ Ò ·½ .<br />

(e) Erzeuge mit dem Mutationsoperator daraus eine neue Population<br />

Ü ·½<br />

Ü ·½<br />

½<br />

Ò .<br />

(f) Fahre bei (b) fort.<br />

Der <strong>Genetische</strong> Algorithmus hat ähnliche Stärken und Schwächen wir der Simulated<br />

Annealing Algorithmus. Auch er ist durch den stochastischen Ansatz prinzipiell<br />

in der Lage aus suboptimalen Gebieten herauszufinden und selbst für sehr<br />

schwierige Zielfunktionen globale Optima oder Suboptima ähnlicher Qualität zu<br />

finden.<br />

Dagegen steht auch beim <strong>Genetische</strong>n Algorithmus die generelle Schwierigkeit der<br />

Parametrierung. Fragen, die zu beantworten sind, sind u.A.<br />

Wahl der Populationsgröße?<br />

Wahl der Anzahl der Iterationen (des Endekriteriums)?<br />

Wahl des Selektionsverfahrens?<br />

Wahl der Kreuzungswahrscheinlichkeit?<br />

Wahl der Mutationswahrscheinlichkeit ?<br />

Generell gibt es, ähnlich wie beim Simulated Annealing Algorithmus, für die Parametrierung<br />

keine geschlossene Theorie!<br />

Die Parameter müssen experimentell ermittelt werden oder man verlässt sich auf<br />

die durch zahlreiche Fallstudien ermittelten und in der Literatur veröffentlichten


<strong>4.5</strong> <strong>Genetische</strong> <strong>Algorithmen</strong> 135<br />

Erfahrungswerte [5]. So hat sich beispielsweise bei binären <strong>Genetische</strong>n <strong>Algorithmen</strong><br />

für die Wahl der Kreuzungswahrscheinlichkeit der Wert Ô ¼ eingebürgert.<br />

Für die Mutationswahrscheinlichkeit wird ein kleiner Wert zwischen Ô Ñ ¼¼<br />

und Ô Ñ ¼½ bevorzugt, da sich der Algorithmus für deutlich größere Werte wie<br />

ein reiner Monte-Carlo Algorithmus verhält.<br />

Für die Populationsgrößen haben sich ebenfalls kleinere Werte ( ½¼) in der Praxis<br />

als günstig erwiesen. Als Endekriterium gibt man meist eine Maximalzahl an<br />

Iterationen vor, die problemabhängig experimentell ermittelt werden sollte.<br />

Wir wollen die Funktionsweise des <strong>Genetische</strong>n Algorithmus wieder mit Hilfe von<br />

MATLAB an dem einfachen Beispiel 4.14 illustrieren, das wir schon beim Simulated<br />

Annealing Algorithmus betrachtet haben.<br />

4.16 Beispiel (<strong>Genetische</strong>n Algorithmus mit MATLAB)<br />

Maximiere<br />

´Üµ Ü ¾ ×Ҵܵ (135.1)<br />

im Intervall ½¼ ½¼℄.<br />

Zur Lösung dieser Aufgabe verwenden wir folgende MATLAB-Funktionen der Begleitsoftware:<br />

ga.m<br />

GA1D.m<br />

IlluGA1D.m<br />

Aufruf_IlluGA1D.m<br />

testfunktion1.m<br />

Die Datei ga.m entstammt einer inoffiziellen MATLAB-Toolbox für genetische <strong>Algorithmen</strong>,<br />

die an der North Carolina State University [5] entwickelt wurde und über das Internet zu<br />

beziehen ist.<br />

Die Datei GA1D.m implementiert den binären <strong>Genetische</strong>n Algorithmus für eine Funktion<br />

einer Variablen. Mit IlluGA1D.m kann der <strong>Genetische</strong> Algorithmus auf beliebige eindimensionale<br />

Funktionen angewandt werden. Mit dem Script-File Aufruf_IlluGA1D.m wird das<br />

Verfahren für die in testfunktion1.m implementierte Zielfunktion (135.1) angewandt und<br />

der Suchvorgang grafisch animiert.<br />

Die Animation bei Aufruf von<br />

Aufruf_IlluGA1D


136 Kapitel 4: Non-Standard-Optimierung<br />

80<br />

60<br />

(x 2 )*sin(x)<br />

Beispiel zum Verfahren <strong>Genetische</strong>r Algorithmus<br />

63.6288<br />

40<br />

20<br />

f(x)<br />

0<br />

−20<br />

−40<br />

−60<br />

8.0828<br />

−80<br />

−10 −8 −6 −4 −2 0 2 4 6 8 10<br />

x<br />

Abbildung 4.21: Abschlussgrafik bei GA-Suche in Beispiel 4.16<br />

zeigt, wie fast der gesamte Suchraum durchforstet wird, bevor der Algorithmus gegen ein<br />

(Sub-)Optimum konvergiert.<br />

Abbildung 4.21 zeigt die Grafik bei Abschluss des Suche, bei der mit vier Individuen und<br />

folgender Parametrierung gearbeitet wurde:<br />

GAparams . maxPop = 100;<br />

% 100 Schritte (Parameter<br />

% für maxGenT)<br />

GAparams . termFN = ’maxGenT ’ ; % Terminierung nach endlich<br />

% vielen Schritten<br />

GAparams . selectFN = ’normGeoS ’ ; % Selektionsfunk. NormGeoSelect<br />

GAparams . selectOps = 0.08; % mit Parameter 0.08<br />

GAparams . xOverFNs = ’simpleX ’ ; % einfaches binäres Crossover<br />

GAparams . xOverOps = 0.6; % mit 0.6 Crossoverwahrscheinl.<br />

GAparams . mutFNs = ’binaryM ’ ; % Binäre Mutation<br />

GAparams . mutOps = 0.1; % mit Mutationswahrschein-<br />

% lichkeit 0.1<br />

startwerte = [ 3,2,4,9]; % Anfangspopulation festlegen<br />

<strong>4.5</strong>.3 Der Fundamentalsatz<br />

Im Beispiel 4.16 wurde gezeigt, dass der <strong>Genetische</strong> Algorithmus zu einer sinnvollen<br />

Lösung führen kann.


<strong>4.5</strong> <strong>Genetische</strong> <strong>Algorithmen</strong> 137<br />

Wir wollen nun etwas näher beleuchten, warum dies so ist und der formalisierte<br />

Mechanismus als Optimierungsverfahren geeignet ist. Es soll im Folgenden versucht<br />

werden, das zentrale Ergebnis, welches (eine partielle) Antwort auf diese<br />

Frage gibt, das so genannte Schema-Theorem, näher zu beleuchten.<br />

Das Schema-Theorem<br />

Der wesentliche Begriff für das Verständnis des Algorithmus ist der des Schemas.<br />

Unter einem Schema versteht man eine Menge von Binärstrings (Individuen), die<br />

durch eine gemeinsame fixierte Bitkombination gekennzeichnet sind. Abbildung<br />

4.22 zeigt ein Beispiel. Am besten kann diese Menge durch einen Hyperwürfel im<br />

Raum der Bitkombinationen gekennzeichnet werden. So entspricht in dem dargestellten<br />

Beispiel das Schema £½¼££einem ¿-dimensionalen Würfel und das Schema<br />

£½¼¼£ einem zweidimensionalen Rechteck im -dimensionalen Suchraum der Individuen.<br />

1 1 0 1 0<br />

1 1 0 1 1<br />

Beispiel:<br />

¼ ½ ¼ ¼ ¼<br />

¼ ½ ¼ ¼ ½<br />

¼ ½ ¼ ½ ¼<br />

1 1 0 0 0<br />

1 1 0 0 1<br />

¼ ½ ¼ ½ ½<br />

½ ½ ¼ ¼ ¼<br />

½ ½ ¼ ¼ ½<br />

0 1 0 0 0 0 1 0 0 1<br />

½ ½ ¼ ½ ¼<br />

½ ½ ¼ ½ ½<br />

Schemata:<br />

0 1 0 0 0 0 1 0 0 1<br />

Abbildung 4.22: Schema als Hyperfläche (-würfel) in ¼ ½℄ Ò<br />

£ ½ ¼ £ £<br />

£ ½ ¼ ¼ £<br />

Die Zusammenfassung der Individuen zu Schemata trägt der Funktionsweise <strong>Genetische</strong>r<br />

<strong>Algorithmen</strong> Rechnung. Die Herleitung der <strong>Algorithmen</strong> zeigt, dass es<br />

keinen Sinn macht, die Entwicklung einzelner Individuen zu verfolgen, sondern<br />

nur der ganzen Population.<br />

Die Population wiederum repräsentiert eine Vielzahl von Schemata, da ein Individuum<br />

einer Vielzahl von Schemata angehört. Im Idealfall stellt die Population<br />

einen Schätzer für die Verteilung der (fitten) Schemata dar. Statt also zu fragen, wie einzelne<br />

Individuen im Laufe der Evolution verändert werden, macht es mehr Sinn,


138 Kapitel 4: Non-Standard-Optimierung<br />

zu fragen, wie die <strong>Genetische</strong>n Operatoren die Schemata verändern bzw. wie ein<br />

Schema im Laufe der „Evolution“ (Iteration) durch die Populationen repräsentiert<br />

wird.<br />

Es soll nun die Wirkung der Operatoren auf ein Schema genauer betrachtet werden.<br />

Wie gezeigt wurde, wird bei der fitnessproportionalen Selektion ein Individuum<br />

mit einer Wahrscheinlichkeit<br />

<br />

Ô <br />

Æ ¡ <br />

(138.1)<br />

ausgewählt. Die Wahrscheinlichkeit, dass ein Individuum eines Schemas À ausgewählt<br />

wird, ergibt sich aus der Summe dieser Wahrscheinlichkeiten<br />

Ô´Àµ <br />

<br />

¾À<br />

½ ¡ ½ Æ<br />

Ô <br />

<br />

¾À<br />

<br />

¾À<br />

<br />

<br />

Æ ¡ <br />

(138.2)<br />

Damit ist die Anzahl der aus einer Population ausgewählten Schema-À-Individuen<br />

Å Å À<br />

Æ ¡ Ô´Àµ ½ <br />

<br />

¾À<br />

(138.3)<br />

Mit der Anzahl Å À der schon vorher zum Schema À gehörenden Individuen ergibt<br />

sich daraus<br />

Å Å ½ <br />

À<br />

<br />

Å À<br />

Å À¡ ½ <br />

¾À<br />

Å À ¡ À<br />

(138.4)<br />

so dass die Zahl ÅÀ Å ´Ò ·½µder aus der Ò-ten Generation in dem Mating-Pool<br />

selektierten Individuen gleich<br />

Å Å À ´Ò · ½µ Å À´Òµ ¡ À<br />

<br />

(138.5)<br />

ist, wobei À die relative Fitness der Schema-À-Individuen innerhalb der Population<br />

bezeichnet.<br />

Der Faktor<br />

À<br />

<br />

(138.6)<br />

repräsentiert somit den auf das Schema ausgewählten Selektionsdruck.


<strong>4.5</strong> <strong>Genetische</strong> <strong>Algorithmen</strong> 139<br />

Ist die relative Fitness innerhalb eines Schemas eine Zeit lang etwa gleichbleibend<br />

hoch und höher als die durchschnittliche Fitness der Population, so wächst der<br />

Anteil der Schema-À-Individuen in diesem Zeitraum exponentiell an (<br />

<br />

À<br />

<br />

<br />

<br />

).<br />

Dies kann, wie später an Hand eines Beispiels erläutert werden wird, experimentell<br />

nachvollzogen werden und ist ein wesentlicher Punkt, denn dieser Effekt bewirkt,<br />

dass es sich bei einem genetischen Algorithmus eben nicht um ein wahlloses Suchverfahren<br />

handelt, sonder in gewissem Sinne um eine zielgerichtete Suche, die noch<br />

dazu mit (anfangs) exponentieller Geschwindigkeit von statten geht.<br />

Dass der Selektionsdruck alleine die Population nicht auf Dauer in einen suboptimalen<br />

Bereich treibt, dafür sorgen die anderen beiden genetischen Operatoren.<br />

Durch die Kreuzung werden, wie folgenden Beispiele zeigen, Schemata i.A. zerstört,<br />

wobei jedoch kurze Schemata offenbar eine bessere „Überlebenschance“ haben,<br />

als längere.<br />

£ ½ ¼ £ £<br />

· · · · ·<br />

£ · · · ·<br />

· ½ ¼ £ £<br />

<br />

£ ½ ¼ · ·<br />

· · · £ £<br />

<br />

£ ½ ¼ £ £<br />

· ½ · · ·<br />

Es können allerdings auch Schema-Individuen neu entstehen, was wiederum dazu<br />

beiträgt, dass weniger erfolgreiche Schemata verlassen und andere Regionen des<br />

Suchraums aufgesucht werden können.<br />

Ähnlich verhält es sich mit der Mutation. Auch hier werden Schemata i.A. zerstört,<br />

wobei jedoch kurze Schemata offenbar eine bessere „Überlebenschance“ haben, als<br />

längere.<br />

£ ½ ¼ £ £<br />

<br />

£ 0 ¼ £ £<br />

Fasst man alle diese Einflüsse auf ein Schema zusammen, so erhält man folgendes<br />

Resultat, das so genannte Schema-Theorem welches die Propagation des relativen<br />

Anteils È À eines Schemas innerhalb der Population im Laufe der Generationen<br />

beschreibt:


140 Kapitel 4: Non-Standard-Optimierung<br />

Schema-Theorem: Ist À ein Schema mit der definierenden Länge Æ´Àµ<br />

und mit der Ordnung Ó´Àµ in einem binär codierten (klassischen) <strong>Genetische</strong>n<br />

Algorithmus mit Kreuzungs-Wahrscheinlichkeit Ô und Mutations-<br />

Wahrscheinlichkeit Ô Ñ . Sei weiter È À ´Òµ der relative Anteil der zum Schema À<br />

gehörenden Individuen in einer Population zum Iterationszeitpunkt Ò. Dann<br />

gilt:<br />

<br />

Ó´ÀµÔ Ñ<br />

È À´Ò ·½µ È À´Òµ ¡ À´Òµ<br />

´Òµ ¡ <br />

½<br />

Ô Æ´Àµ<br />

¡<br />

Æ ½<br />

Zur Illustration dieses Sachverhaltes greifen wir wieder auf das Beispiel 4.16 zurück,<br />

an Hand dessen wir unter MATLAB die Funktionsweise der <strong>Algorithmen</strong><br />

visualisiert haben (Abbildung 4.23 bis 4.26).<br />

Der Suchraum wurde in diesem Beispiel für die Anwendung des <strong>Genetische</strong>n Algorithmus<br />

mit einer Genauigkeit von ca. ½¼ diskretisiert und mit ½-Bit-Strings<br />

binär codiert. Die beiden Streifen über den Graphen der Zielfunktion in Abbildung<br />

4.23 repräsentieren zwei sehr unterschiedliche Schemata, nämlich ein Schema hoher<br />

Fitness in der Nähe des globalen Optimums und ein Schema mit sehr niedriger<br />

Fitness in der Nähe des globalen Minimums.<br />

Die übrigen Grafiken repräsentieren die durchschnittliche Fitness der Population<br />

aus Individuen in einem Lauf und jeweils die (durchschnittliche) Fitness des Schemas<br />

und die (durchschnittliche) Anzahl der Schema-Individuen, welche über mehrere<br />

Läufe gemittelt wurde. Man erkennt deutlich, dass die Fitness der Population<br />

anfangs dramatisch, später leicht ansteigt. Ebenso deutlich erkennt man den exponentiellen<br />

Anstieg der durchschnittlichen Schema-Fitness und der Schema-Anzahl<br />

für das überdurchschnittliche Schema. Das schlechte Schema hingegen ist von Anfang<br />

an so gut wie nicht in der Population vertreten.<br />

Konvergenz <strong>Genetische</strong>r <strong>Algorithmen</strong><br />

Bezüglich der Konvergenz <strong>Genetische</strong>r <strong>Algorithmen</strong> gibt es leider auch wenige<br />

theoretische Resultate. Im Falle des <strong>Genetische</strong>n Algorithmus mit so genannter „elitärer<br />

Strategie“, bei der in jeder Generation auf jeden Fall das beste Individuum in<br />

der Population verbleibt, lässt sich jedoch folgendes theoretische Resultat beweisen:<br />

Konvergenzsatz: Ist Ü £ das globale Maximum einer Optimierungsaufgabe<br />

ÑÜ ´Üµ<br />

Ü<br />

und Ü Ò das beste Individuum in der Ò-ten Generation eines <strong>Genetische</strong>n Algorithmus<br />

(<strong>Genetische</strong>r Algorithmus mit „elitärer Strategie“).<br />

Dann gilt:<br />

¡<br />

ÐÑ<br />

Ò½ È Ü Ò ´Ü<br />

£<br />

¡<br />

µ ½ (140.1)


<strong>4.5</strong> <strong>Genetische</strong> <strong>Algorithmen</strong> 141<br />

Abbildung 4.23: Testfunktion und Bereiche<br />

zweier Schemata<br />

Abbildung 4.24: Durchschnittliche Fitness<br />

des „guten“ Schemas<br />

Abbildung 4.25: Durchschnittliche Fitness<br />

der Population<br />

Abbildung 4.26: Durchschnittliche Anzahl<br />

der Schema-Individuen<br />

Dieses Resultat lässt sich so interpretieren, dass im Grenzfall das beste Individuum<br />

einer Population mit Wahrscheinlichkeit ½ die Fitness des globalen Optimums hat.<br />

(in der Mathematik spricht man von stochastischer Konvergenz)!<br />

Allerdings sagt das Resultat nichts über die Zahl der Iterationen, die für eine Konvergenz<br />

im obigen Sinne benötigt wird, so dass das Resultat für die praktische Parametrierung<br />

des <strong>Genetische</strong>n Algorithmus nicht herangezogen werden kann.<br />

Fazit<br />

Die Eigenschaften des die <strong>Genetische</strong>n Algorithmus können stichwortartig wie<br />

folgt zusammengefasst werden:<br />

Mittlere Fitness der Populationen steigt an.<br />

Fitte Schemata breiten sich (durch den Selektionsdruck) exponentiell aus.<br />

Kreuzung und Mutation wirken dem entgegen. Dadurch können fittere Schemata<br />

und Individuen gefunden werden.


142 Kapitel 4: Non-Standard-Optimierung<br />

Algorithmus durchsucht gleichzeitig viele Hyper„flächen“ des Suchraums<br />

(implizite Parallelität der GA).<br />

Fitte Schemata mit kleinen Bitblöcken werden bevorzugt durch die Generationen<br />

verbreitet (building-block-Hypothese).<br />

Jede Population ist ein Schätzer für die Fitnessverteilung der Schemata.<br />

Die Konvergenz ist nicht gesichert.<br />

Die Konvergenzdauer ist i.A. unbekannt und kann meist nur durch Experimente<br />

ermittelt werden.<br />

Für die Parametrierung gibt es lediglich Faustregeln. Ansonsten muss die<br />

richtige Parametrierung experimentell ermittelt werden.<br />

Für die Codierung des Suchraums gibt es verschiedene Standardansätze<br />

(binäre Codierung, reelle Codierung). Es sind aber auch problemabhängig<br />

andere Codierungen möglich.<br />

<strong>Genetische</strong> <strong>Algorithmen</strong> sind universell anwendbar und liefern oft auch in<br />

sehr komplizierten Fällen sehr gute Ergebnisse.<br />

<strong>Genetische</strong> <strong>Algorithmen</strong> sind in der Lage, Bereiche lokaler Suboptima wieder<br />

zu verlassen!<br />

<strong>4.5</strong>.4 Fallbeispiel<br />

Die Leistungsfähigkeit <strong>Genetische</strong>r <strong>Algorithmen</strong> soll nun abschließend an einem<br />

praxisnahen realistischen Beispiel, einem nichtlinearen Transportproblem (vgl. Beispiel<br />

1.3), demonstriert werden.<br />

Nichtlineares Transportproblem<br />

Gesucht ist:<br />

ÑÒ<br />

Ü<br />

´Üµ ÑÒ<br />

Ü<br />

Æ<br />

Å<br />

½ ½<br />

¡ Ü ¾ (142.1)<br />

mit<br />

Æ <br />

Å <br />

Ü <br />

<br />

Zahl der Lieferanten (¿µ<br />

Zahl der Kunden ()<br />

Zahl der transportierten Einheiten von Lieferant zu Kunde <br />

Kosten des Transports von Lieferant zu Kunde <br />

(142.2)


<strong>4.5</strong> <strong>Genetische</strong> <strong>Algorithmen</strong> 143<br />

unter den Nebenbedingungen<br />

Å<br />

½<br />

Æ<br />

½<br />

Ü <br />

Ü <br />

Æ ¿<br />

Å <br />

(143.1)<br />

mit den Lieferkapazitäten<br />

´¼ ½¼¼ ¼µ (143.2)<br />

mit den Kundenmindestanforderungen<br />

´¾¼ ¾¼ ¿¼ ¿¼µ (143.3)<br />

mit der Transportkostenmatrix<br />

<br />

¼<br />

<br />

<br />

½¼ ½ ¾ ¿<br />

¼ ½ ¿½ ½¾<br />

¾½ ½ ½ ½¼<br />

½<br />

<br />

(143.4)<br />

Als zusätzliche Randbedingung ist zu beachten, dass die Ü ganzzahlig sein sollen!<br />

Diskussion zweier Lösungsansätze<br />

Wir wollen die Lösung des Problems mit einem <strong>Genetische</strong>n Algorithmus zur besseren<br />

Illustration der Leistungsfähigkeit mit einem klassischen Lösungsansatz vergleichen.<br />

Zu diesem Zweck soll das Problem auch mit einem Quasi-Newton-Verfahren bearbeitet<br />

werden, wobei die geforderte Ganzzahligkeit der Lösung nachträglich berücksichtigt<br />

wird. Diese Forderung kann im <strong>Genetische</strong>n Algorithmus auf Grund<br />

der verwendet Binärcodierung dagegen sehr leicht realisiert werden.<br />

Quasi-Newton-Lösung: Zur Lösung der Aufgabe mit einem Quasi-Newton-<br />

Verfahren verwenden wir folgende MATLAB-Funktionen der Begleitsoftware:<br />

GANLTransport_Konventionell.m<br />

KostenGANLTransport2.m


144 Kapitel 4: Non-Standard-Optimierung<br />

Die Berechnung in GANLTransport_Konventionell.m greift dabei auf die Funktion<br />

fmincon.m der Optimization Toolbox zurück, die das Problem unter Verwendung<br />

eines Quasi-Newton-Verfahrens löst.<br />

Die Lösungen sind auf Grund der großen Zahl von Suboptima sehr stark abhängig<br />

vom gewählten Startwert.<br />

Bei mehreren Versuchen wurde folgende beste Lösung gefunden:<br />

<br />

¼<br />

<br />

<br />

¼¼¼ ¿¿ ½¼ ½¿<br />

¼¼ <br />

¼¼¼ ¾¼ ½<br />

½<br />

<br />

<br />

(144.1)<br />

mit dem Kostenminimum ¿¼!<br />

Um daraus ganzzahlige Lösungen zu produzieren wurde der Ansatz gewählt, alle<br />

„benachbarten“ ganzzahligen Lösungen auszutesten!<br />

Dieser Ansatz kann natürlich nur bei kleinen Problemen verfolgt werden, da es<br />

hierfür ¾ Æ¡Å Möglichkeiten gibt.<br />

Die beste benachbarte ganzzahlige Lösung war<br />

<br />

¼<br />

<br />

<br />

¼ ¾ ¾¼<br />

½ <br />

½ ¾ <br />

½<br />

<br />

<br />

(144.2)<br />

mit dem Kostenminimum ¾, den Liefermengen<br />

´¿¼ ¼ ¿µ ´¼ ½¼¼ ¼µ<br />

und mit den Empfangsmengen<br />

´ ¾½ ¿¾ ¿½µ ´¾¼ ¾¼ ¿¼ ¿¼µ <br />

Wie die mit dem <strong>Genetische</strong>n Algorithmus bestimmten Lösungen später zeigten,<br />

ist dies im vorliegenden Fall nur eine suboptimale Lösung!<br />

Ein weiterer Nachteil dieser Methode ist, dass sie im allgemeinen Fall nicht eingesetzt<br />

werden kann, z.B. falls ´Üµ nicht stetig differenzierbar ist, wie bei einer<br />

stückweise stetigen Kostenfunktion!


<strong>4.5</strong> <strong>Genetische</strong> <strong>Algorithmen</strong> 145<br />

GA-Lösung: Zur Lösung der Aufgabe mit einem <strong>Genetische</strong>n Algorithmus verwenden<br />

wir folgende MATLAB-Funktionen der Begleitsoftware:<br />

ga.m<br />

FitGANL_Transport1.m (Fitnessfunktion)<br />

GANLTransport.m<br />

KostenGANLTransport.m<br />

Aufruf_GANLTransport.m<br />

ItAufruf_GANLTransport.m<br />

Die Datei ga.m entstammt der inoffiziellen MATLAB-Toolbox für genetische <strong>Algorithmen</strong><br />

der North Carolina State University [5].<br />

Die Datei GANLTransport.m implementiert den binären <strong>Genetische</strong>n Algorithmus<br />

für dieses Problem. Mit Aufruf_GANLTransport.m kann der <strong>Genetische</strong> Algorithmus<br />

das Problem angewandt werden. Mit der Funktion ItAufruf_GANLTransport.m<br />

kann das Verfahren mehrmals nacheinander aufgerufen werden. Das beste<br />

Ergebnis kann anschließend aus den in einer Datei abgespeicherten Lösungen ausgewählt<br />

werden.<br />

Für die Codierung der Daten wurde eine -Bit-Binärcodierung ausgewählt, da diese<br />

zur Darstellung der maximalen Liefermenge ½¼¼ ausreicht. Der Vorteil dieser<br />

Codierung ist, wie bereits erwähnt, dass die geforderte Ganzzahligkeit der Lösung<br />

garantiert ist.<br />

Ein Nachteil ist natürlich, dass auch unzulässige Lösungen (Lösungen, die die Nebenbedingungen<br />

nicht erfüllen) entstehen können. In der Literatur [10] wird ein<br />

Vorschlag einer ganzzahliger Codierung gemacht, die nur zulässige Lösungen darstellt<br />

(eine problemangepasste Codierung). Diese ist jedoch wesentlich komplizierter<br />

und soll deshalb an dieser Stelle nicht behandelt werden.<br />

Die übrigen Parameter des Algorithmus wurden konventionell gewählt. In jedem<br />

Versuch wurden ½¼¼¼¼ Generationen durchsimuliert.<br />

Die besten Lösungen der Versuche waren<br />

<br />

¼<br />

<br />

<br />

¼ ¼ ½ <br />

½ ¼<br />

¾ ½ ¿ ½½<br />

½<br />

<br />

<br />

(145.1)


146 Kapitel 4: Non-Standard-Optimierung<br />

mit einem Kostenminimum von ¼ und<br />

<br />

¼<br />

<br />

<br />

¾ ¿½ ¼ <br />

¼ ½<br />

¿¿ ½ <br />

½<br />

<br />

<br />

(146.1)<br />

mit einem Kostenminimum von ½!<br />

Beide Lösungen sind wesentlich besser als die mit der „klassischen Methode“ gefundene<br />

Lösung. Der <strong>Genetische</strong> Algorithmus funktioniert gut, obwohl er dem Problem<br />

nicht optimal angepasst ist!<br />

Insofern wäre der <strong>Genetische</strong> Algorithmus wäre für kompliziertere Kostenfunktionen<br />

(z.B. differenzierbare oder gar nicht stetige Kostenfunktionen) eine sehr gute,<br />

wenn nicht gar die einzig mögliche Alternative!<br />

<strong>4.5</strong>.5 Übungen<br />

Übung 28 (Lösung Seite 181 )<br />

Bestimmen Sie mit Hilfe einer geeigneten MATLAB-Implementierung des <strong>Genetische</strong>n<br />

Algorithmus eine Lösung der Minimierungsaufgabe<br />

unter den nichtlinearen Nebenbedingungen<br />

ÑÒ ´Ü ½Ü ¾ Ü ¿ µÜ ¾ ½ · Ü ¾ · Ü ¿ (146.2)<br />

Ü ½Ü ¾Ü ¿¾Ê<br />

½´Ü ½ Ü ¾ Ü ¿ µÜ ¾ ½ · ܾ ¾ ½¼<br />

¾´Ü ½ Ü ¾ Ü ¿ µÜ½ ·Ü ¾ · Ü ¿ ¼ (146.3)

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!