UNIVERSITÄT ZU KÖLN AUSGEWÄHLTE THEMEN DES OPERATIONS RESEARCH. Heuristiken. Genetischer Algorithmus Simulated annealing Ameisenkolonie Neurale Netze

Ähnliche Dokumente
Survival of the Fittest Optimierung mittels Genetischer Algorithmen

Optimale Produktliniengestaltung mit Genetischen Algorithmen

Genetische Algorithmen

Genetische Algorithmen von der Evolution lernen

11. Übung zu Algorithmen I 6. Juli 2016

Exkurs Modelle und Algorithmen

Genetische Algorithmen

Verbesserungsheuristiken

Grundlagen und Basisalgorithmus

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

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

Warum konvergieren Genetische Algorithmen gegen ein Optimum?

1. Inhaltsverzeichnis

Grundlagen der Vererbungslehre

4. Eine Einführung in Konzept und Arbeitsweise genetischer Algorithmen

Mit Genetischen Algorithmen nach dem biologischen Vorbild auf evolutionäre Art komplexe Probleme lösen.

Genetische Algorithmen

Proseminar Genetische und Evolutionäre Algorithmen

Traveling Salesman Problem (TSP)

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

-Generation sehen alle gleich aus (Uniformitätsregel). In der F 2. -Generation treten unterschiedliche Phänotypen auf (Spaltungsregel).

Computational Intelligence

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

Dynamisches Huffman-Verfahren

Einführung in Heuristische Suche

3.2 Lineare Optimierung (Entscheidungen unter Sicherheit)

Isomorphie von Bäumen

Proseminarvortrag. Markov-Ketten in der Biologie (Anwendungen)

10.1 Geometrische Wegplanung im Konfigurationsraum

Seminararbeit zum Thema Genetische Algorithmen

Dynamik von Genen in Populationen

Allgemeine diskrete Wahrscheinlichkeitsräume II. Beispiel II. Beispiel I. Definition 6.3 (Diskreter Wahrscheinlichkeitsraum)

Einführung. Ablesen von einander zugeordneten Werten

Newton-Verfahren zur gleichungsbeschränkten Optimierung. 1 Gleichungsbeschränkte Optimierungsprobleme

Bipartite Graphen. Beispiele

Ausarbeitung zum Modulabschluss. Graphentheorie. spannende Bäume, bewertete Graphen, optimale Bäume, Verbindungsprobleme

Übung zur Vorlesung Berechenbarkeit und Komplexität

3. Das Reinforcement Lernproblem

Theoretische Informatik 1

Wissensbasierte Systeme

Die Erbinformation ist in Form von Chromosomen = Kopplungsgruppen organisiert

Mathematik I. Vorlesung 7. Folgen in einem angeordneten Körper

Evolutionsfaktoren. = Gesamtheit der Gene aller Individuen einer Population bleibt nach dem HARDY-WEINBERG-Gesetz unter folgenden Bedingungen

Partikelschwarmoptimierung für diskrete Probleme

9. Heuristische Suche

4 Genetische Algorithmen

Einsatz Evolutionärer Algorithmen zur Optimierung der Tourenplanung eines Wachschutzunternehmens

Algorithmen und Datenstrukturen 2

Genetische Algorithmen und Evolutionäre Strategien

Mendel Labor, Euregio Kolleg, Würselen 1/

Genetik, Evolution, Intelligenz und anthropologische Diversität: Was wissen wir daru ber?

3 Bedingte Wahrscheinlichkeit, Unabhängigkeit

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

Hamiltonsche Graphen (2. Teil)

Standardisierte Vorgehensweisen und Regeln zur Gewährleistung von: Eindeutigkeit Schlussfolgerungen aus empirischen Befunden sind nur dann zwingend

Proseminar Online Algorithmen, Prof. Dr. Rolf Klein

Codierungstheorie Rudolf Scharlau, SoSe

Praktikum Algorithmen-Entwurf (Teil 7)

Vollständigkeit; Überabzählbarkeit und dichte Mengen) Als typisches Beispiel für die reellen Zahlen dient die kontinuierlich ablaufende Zeit.

3 Nichtlineare Gleichungssysteme

Evolutionsstrategien

VR-Seminar WS 2003/2004. Genetische Algorithmen

Grundlagen der biologischen Evolution

Biologie I/B: Klassische und molekulare Genetik, molekulare Grundlagen der Entwicklung Tutorium SS 2016

Hannah Wester Juan Jose Gonzalez

SIMULATED ANNEALING IM RAHMEN DES PS VIRTUAL LAB MARTIN PFEIFFER. Simulated Annealing Virtual Lab 1 /42

Lineare (Un-)Gleichungen und lineare Optimierung

Mathematische Grundlagen der dynamischen Simulation

Konkretes Durchführen einer Inferenzstatistik

Arithmetisches Codieren

Genetische Programmierung

Heuristiken. Mike Hüftle. 28. Juli Einleitung

1. Einleitung. 2. Zur Person

12. Hashing. Hashing einfache Methode um Wörtebücher zu implementieren, d.h. Hashing unterstützt die Operationen Search, Insert, Delete.

Perzeptronen. Lehrstuhl für Künstliche Intelligenz Institut für Informatik Friedrich-Alexander-Universität Erlangen-Nürnberg

Eulerweg, Eulerkreis. Das Königsberger Brückenproblem. Definition 3.1. Ein Weg, der jede Kante von G genau einmal

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

Algorithmen und Datenstrukturen ITS(B)-B 2016

2 - Konvergenz und Limes

$Id: folgen.tex,v /05/31 12:40:06 hk Exp $ an 1 2 n 1 ist gerade, 3a n 1 + 1, a n 1 ist ungerade.

Probleme aus NP und die polynomielle Reduktion

1. Mendelsche Vererbung, Stammbäume:

SS 2016 Torsten Schreiber

Kontextfreie Grammatiken

4.3.3 Simplexiteration

Lage- und Streuungsparameter

Numerisches Programmieren, Übungen

Algorithmen & Programmierung. Steuerstrukturen im Detail Selektion und Iteration

Statistik für Ingenieure Vorlesung 2

Genetische Algorithmen und Evolutionsstrategien

Optimierung für Nichtmathematiker

6. Komprimierung. (Text)komprimierung ist ein Wechsel der Repräsentation von Daten, so daß sie weniger

Computational Intelligence 1 / 20. Computational Intelligence Künstliche Neuronale Netze Perzeptron 3 / 20

2.2 Allgemeine (vergleichsbasierte) Sortierverfahren

Elemente der Stochastik (SoSe 2016) 6. Übungsblatt

Paper Computer Science Experiment. Computation (NP-Vollständigkeit) Traveling Salesman

Skript Bruchrechnung. Erstellt: 2014/15 Von:

Aufgabe 1: Berechnen Sie für den in Abbildung 1 gegebenen Graphen den. Abbildung 1: Graph für Flussproblem in Übungsaufgabe 1

Structurally Evolved Neural Networks for Forecasting

2. Datenvorverarbeitung

Transkript:

UNIVERSITÄT ZU KÖLN AUSGEWÄHLTE THEMEN DES OPERATIONS RESEARCH Heuristiken Genetischer Algorithmus Simulated annealing Ameisenkolonie Neurale Netze Eingereicht von: Thomas Ilg 13.12.2007

Genetischer Algorithmus (GA): Einführung: Der GA ist ein Verfahren, der zur Lösung von komplexen Such und Optimierungsaufgaben eingesetzt wird. Die Grundlage dieses Verfahrens beruht auf den Methoden und Erkenntnissen der biologischen Genetik, insbesondere der Evolutionstheorie von Charles Darwin (1859) und den Kreuzungs und Vererbungsgesetzen von Gregor Johann Mendel (1865). Darwins Hauptthesen besagen, dass alles Leben aus den gleichen, primitiven Arten erfolgt und durch wenige verschiedene Grundprinzipien vorangetrieben wird. Diese sind Selektion, Kreuzung bzw. Vererbung und Mutation. Dabei beschreibt die Selektion, auf die biologische Entwicklung bezogen, das Survival of the fitness, d.h. es überlebt nur derjenige, der sich an bestimmte Umweltbedingungen anpassen kann. Die Mendelschen Vererbungsgesetze besagen, dass gentische Merkmale der Eltern nicht beliebig vermischt werden können, sondern, dass jeweils bestimmte Merkmale der Eltern in ihren Kindern kombiniert werden. Die Mutation beschreibt die durch äußere Bedingungen zustande kommende Veränderung des Erbmaterials. Schöneburg stellt dar, dass die Evolution nichts anderes als ein spezielles Optimierungsverfahren (Schöneburg 1994, S.96) ist, welche man nun mittels des genetischen Algorithmus auf außerbiologische Probleme ausweitet. Geschichte: Die Fundamente des GA wurden in den 60er Jahren in den USA von John Holland gelegt und 1975 im heutigen Standardwerk Adaptation in Neural ans Artificial Systems veröffentlicht. Jedoch erst ca. 10 Jahre später setzte sich langsam diese neue Art der Problemlösung durch und mit David E. Goldbergs Buch Genetic Algorithms in Search, Optimization, and Machine Learning wurde dieses Thema einer breiten Öffentlichkeit zugänglich gemacht.. Grundbegriffe: Individuum: Gen: Allel: Im GA bezeichnet man einen möglichen Lösungskandidaten eines zu optimierenden Problems als Individuum. Dabei besteht das Individuum in der Regel aus einer Zeichenkette einer zuvor gewählten Repräsentation. Diese können je nach gewählter Codierung als binäre, ganzzahlige oder reelle Vektoren einer festgegebenen Länge n dargestellt werden. Die Individuen werden in Anlehnung an die Genetik auch als Chromosomen bezeichnet. Die einzelnen Stellen der Zeichenkette nennt man Gen. Sie enthalten die Erbinformationen eines Individuums. Bsp.: Individuum <1,1,1,1,0> in Binärdarstellung besteht aus 5 Genen Die konkrete Ausprägung eines Gens mit einem Wert bezeichnet man als Allel. In der binären Darstellungsweise können die Allele somit nur die Werte 0 und 1 annehmen. 1

Population: Generation: Genotyp: Phänotyp: Fitness: Die Population stellt die gesamte Menge aller potenziellen Lösungskandidaten für ein Problem dar. Dabei haben die Individuen einer Population in der Regel eine konstante, endliche Größe n. GA arbeiten stets mit Populationen und nie mit einzelnen Individuen. Mit genetischen Operatoren, wie Rekombination und Mutation wird versucht, bessere Lösungskandidaten aus dem vorhandenen Pool zu erzeugen. Die Generation beschreibt eine Population zu einem bestimmten Zeitpunkt. Dabei spiegelt jeder Iterationsschritt eine Generation wider, mit der versucht wird, die Qualität der Lösungen zu optimieren. In der Regel wird jede Generation durch eine bessere nachfolgende Generation ersetzt. Der Genotyp bezeichnet die kodierte Form eines Individuums. Der Phänotyp beschreibt die decodierte Form eines Individuums. Er stellt für die Optimierungsaufgabe den maßgeblichen Wert dar. Die Fitness gibt die Güte und Tauglichkeit eines Lösungskandidaten bzgl. des zu optimierenden Problems an. Auf diese Weise bewertet eine gewählte Fitnessfunktion die Individuen nach ihrer Tauglichkeit und ermittelt so die Elternpaare für die Vererbung. Arbeitsweise: Die Ergebnisfindung bei der Anwendung eines GA geschieht durch die Weiterentwicklung einer Anfangspopulation von Individuen über mehrere Generationen. Der Übergang einer Generation zur nächsten wird durch die genetischen Operatoren Selektion, Vererbung und Mutation durchgeführt. Dabei werden in die neue Population überwiegend die Individuen mit der besten Fitness übernommen. Auf diese Weise konvergiert der GA zu einer optimalen Lösung. Nach dem Erreichen eines Abbruchkriteriums stellt das beste Individuum der Endgeneration die Lösung des Problems dar Der Ablauf eines GAs kann durch das folgende Schema verdeutlicht werden: 2

1. Codierung/Repräsentationsform: Zu Beginn eines GAs muss eine geeignete genetische Repräsentationsform festgelegt werden. Im Wesentlichen umfasst diese die Definition des Genotyps und die entsprechende Zuordnung zu dem entsprechenden Phänotyp. Die Auswahl der richtigen Repräsentation stellt einen wichtigen Schritt bei der Konstruktion eines GAs dar. Dabei kann man leider kein Rezept formulieren, sondern wählt aufgrund vorhandener Erkenntnisse und Erfahrungen einen Codierungstyp aus, den ich nun nachfolgend erläutern möchte. a. Binär Codierung Die Binär Codierung ist die älteste, einfachste und auch häufigste Codierungsform. Dabei besteht der Genotyp aus einer binär wertigen Zeichenkette. Die Form weist folgende, nachteilige Charakteristiken auf: (i) Sehr große Hamming Distanz (d.h. die Anzahl der Bits, die invertiert werden müssen, um zum benachbarten Codewort zu gelangen Bsp. Repräsentation der natürlichen Zahlen 15 16: (01111) (10000) hat die Hamming Distanz 5) (ii) Unterschiedliche Wertigkeit der benachbarten Stellen Dieses meint, dass Mutationsoperatoren, die weiter vorne in einem Bitstring angewendet werden, eine größere Wertänderung des Phänotyps zur Folge haben, als welche die weiter hinten sind. Ähnliches gilt für die Vererbung. Dieses steht im Gegensatz zu dem von Rechenberg aufgestellten Prinzip der strengen Kausalität, welches besagt, dass eine kleine Ursache auch nur eine kleine Wirkung haben darf. Auf diese Weise wird die Konvergenz eines GAs unnötig erschwert und benötigt einen zusätzlichen algorithmischen Aufwand, um das Ungleichgewicht auszugleichen. So ist es unwahrscheinlich, durch die Veränderung weniger Stellen von 1023 auf 1024 zu kommen. Als Ausweg wendet man den sogenannten Gray Code an. Dieser zeichnet sich dadurch aus, dass zwischen zwei benachbarten Codeworten stets der Abstand 1 besteht. b. Ganzzahl Codierung Für Optimierungsprobleme, in denen für mehrere Variablen die optimalen Werte gesucht werden, die nur aus natürlichen Zahlen bestehen, verwendet man meist die Ganzzahl Codierung Bsp. Nord/Süd. c. Realzahlcodierung Wenn die repräsentierten Werte aus einer kontinuierlichen, statt aus einer diskreten Verteilung bestehen, verwendet man die Realzahl Codierung. Dabei bedient man sich den Flieskommazahlen. Dadurch entsteht eine vektorielle Darstellung für einen Genotyp G mit k reellen Werten: G=<x 1,, x k > 3

d. Permutations Codierung In den bereits geschilderten Codierungsformen können die unterschiedlichen Lösungskandidaten dieselben Werte annehmen und dadurch ungültige Permutationen erzeugen. Daher sind diese für Reihenfolgeprobleme, wie z.b. das Handlungsreisendenproblem TSP (traveling salesman problem) ungeeignet. Bei der Permutation Codierung wird so gewährleistet, dass jede mögliche Stelle innerhalb eines Genotyps einmalig vorkommt. 2. Bestimmung der Anfangspopulation Die Anfangspopulation ist zumeist eine zufällig bestimmte Anzahl von Individuen. Bei vielen Problemen muss allerdings darauf geachtet werden, dass es sich bei den gewählten Individuen auch um zulässige Lösungen für das Problem handelt. 3. Fitnessfunktion: Ihre Aufgabe besteht darin, die Tauglichkeit und Güte eines gegebenen Individuums bezüglich des zu optimierenden Problems zu messen und zu bewerten. Die Fitness ist dabei das Maß für die Fortpflanzungswahrscheinlichkeit. Die gängigste Form ist die proportionale bzw. lineare Fitness:, wobei B x Bewertung des Individuums x und B gesamt Bewertung aller Individuen darstellt. Auf diese Weise steht das Individuum x in direkter Proportion zur Bewertung aller Individuen. Für die Wahl der Fitnessfunktion lässt sich kein Rezept formulieren. 4. Selektion: Die Selektion bestimmt, welche Individuen als Elternpaar fungieren dürfen und Nachkommen erzeugen. Dafür wird ein Selektions und Auswahlverfahren verwendet, welches die erwartete Anzahl an Kopien und entsprechend die tatsächlich Anzahl darstellt. Der Unterschied wird dabei als spread bezeichnet. Die fitnessproportionale Selektion ist sehr verbreitet. Sie steht im direkten Verhältnis zur Fitness eines Individuums:, wobei F die Fitnessfunktion und I i das Individuum ist, für welches die Selektionswahrscheinlichkeit angegeben ist. Diese Art der Selektion weist allerdings einen niedrigen Selektionsdruck auf, d.h. das der GA relativ langsam konvergiert. Alternativ verwendet man die rangbasierende Selektion. Dabei werden die Individuen nach absteigendem Fitnesswert sortiert und durchnummeriert. Dann wird die Rangzahl der Individuen im direkten Verhältnis zur Selektionswahrscheinlichkeit gesetzt. Damit kann man den Selektionsdruck einstellen. Ein übliches Auswahlverfahren ist das roulette wheel selection. Das Prinzip imitiert ein Glücksrad, das in n Abschnitte unterteilt ist. Die Breite der Abschnitte ist von der Selektionswahrscheinlichkeit abhängig und repräsentiert die Auswahlmöglichkeiten der Individuen. Durch n maliges Drehen am Rad wird die Elterngeneration erzeugt. Dieses Verfahren ermöglicht auch schlechteren Individuen an der Vererbung teilzunehmen, hat aber einen relativ hohen spread, da die Wahrscheinlichkeit, dass gleiche Individuen gewählt werden sehr hoch ist. 4

5. Rekombination/Vererbung: Dieses bezeichnet den Vorgang der geschlechtlichen Fortpflanzung. Die Nachkommen werden dabei aus den Genen der gekreuzten Elternpaare systematisch zusammengesetzt. Die Vererbung selbst wird über eine Wahrscheinlichkeit p i gesteuert. In der Praxis hat sich die Wahrscheinlichkeit p i 0,6 als sinnvoll erwiesen. Auf diese Weise ist es wahrscheinlicher, dass eine Kreuzung stattfindet. (a) Binär Operatoren: Es gibt grundsätzlich 3 Varianten von Rekombinationsoperatoren. Dabei werden aus einem Kreuzungspaar 2 Nachkommen erzeugt. (i) 1 Punkt Kreuzung Dieser Operator wählt am Anfang eine zufällig Kreuzungsstelle im Bereich [0, l 1], wenn der Genotyp die Länge l beträgt. An dieser Stelle werden die Eltern aufgeteilt und die Gene bis zur Kreuzungsstelle vom 1. Elternteil und ab der Kreuzungsstelle vom 2. Elternteil dem 1. Kind vererbt. Analog wird das 2. Kind erzeugt. (ii) N Punkt Kreuzung Hierbei werden die Kreuzungspaare in mehr als 2 Segmente aufgeteilt. Die Nachkommen erhalten dann alternierend die einzelnen Segmente. (iii) Uniform Kreuzung Anstatt die Eltern in Segmente aufzuteilen, wird für jedes Gen überprüft, ob es mit dem Gen des Partners getauscht werden soll oder nicht. Dafür ist eine bitbezogene Wahrscheinlichkeit p i verantwortlich, die für alle Gene des Elternpaares aus dem Intervall [0,1) zufällig bestimmt wird. Falls p i 0,5, so wird das Gen des 1.Elternteils übernommen. 5

6. Mutation: Die Mutation simuliert eine zufällige Veränderung von einzelnen Genen bei der Vererbung. Die Änderung wird über die sogenannte Mutationsrate p m bestimmt. (p m nicht zu hoch wählen, da GA sonst in einer Zufallssuche mündet, d.h. zumeist [0,001, 0,01]). Im GA übernimmt die Mutation eher eine untergeordnete Rolle. Er dient dazu, eine gewisse Inhomogenität und Divergenz in die Population zu bringen. Auf der anderen Seite kann man mit Hilfe der Mutation potentielle Lösungen erhalten, die durch die Rekombination nicht gefunden werden können. (a) Binär Operatoren Der häufigste Mutationsoperator ist das bit flipping. Dabei wird am Anfang einer Mutation jedem Gen eine zufällige Zahl im Intervall [0,1) zugeordnet. Anschließend werden alle Gene invertiert, die kleiner als die Mutationsrate sind. (b) Permutations Operatoren: Bei den Permutations Operatoren kann man die Gene nicht mehr einzeln betrachten. Stattdessen müssen die Allele innerhalb eines Genotyps vertauscht werden. Die Mutationsrate entscheidet also hier, ob der gesamte Genotyp mutiert wird. Swap Mutation: Man bestimmt 2 Stellen im Genotyp zufällig und vertauscht anschließend diese Gene miteinander. Im folgenden Beispiel werden die Positionen 2 und 9 gewählt und anschließend vertauscht. Insert Mutation: Hierbei werden wiederum 2 Stellen zufällig gewählt. Danach wird das zweite Allel in die Nachbarschaft des ersten Allel verschoben und die restlichen Allele entsprechend entlang der eingefügten Position verschoben. Scramble Mutation: Die Scramble Mutation wählt zufällig eine Gensequenz aus und führt darauf in eine zufällige Verteilung durch. 6

7. Reproduktion: Als Reproduktion bezeichnet man den Vorgang, bei dem eine neue Generation (g++) aus den alten Elternindividuen und den neu erzeugten Nachkommen entsteht. Dafür gibt es 2 bekannte Verfahren: (a) General placement Dieses Schema übernimmt nur alle Nachkommen. Dieses birgt den Nachteil in sich, dass potentielle gute Lösungen der Elterngeneration verloren gehen können und sich so die Qualität der neuen Generation verschlechtern kann. Auf der anderen Seite verhindert dieses Verfahren eine frühzeitige Konvergenz und nutzt die ganze Breite des Suchraums. (b) Steady state Hierbei überlappen sich die Generationen und es werden nur wenige Individuen der alten Population ersetzt. So gehen gute Lösung nicht verloren und gewährleisten eine verbesserte Fitness der neuen Population. Die Wahl der zu ersetzenden Eltern kann über zwei Varianten erfolgen: (i) Ersetze das schlechteste Individuum durch ein besseres (ii) Ersetze ein zufällig gewähltes Individuum Dabei ist in der Praxis die erste Variante der zweiten vorzuziehen. 8. Abbruchkriterium Prinzipiell kann ein GA ewig weiterlaufen. Jedoch sollte man beim Erreichen einer bestimmten Obergrenze abbrechen. So unterscheidet man hauptsächlich folgende Abbruchkriterien: (i) Ein Individuum hat eine bestimmte Fitness erreicht (ii) Eine bestimmte Anzahl an Generationen wird erreicht (iii) In einer vorgegeben Anzahl von Generation wird keine Verbesserung erzielt Beispiele: Optimiere f(x) Rucksackproblem/TSP 7

Simuliertes langsames Abkühlen (Simulated Annealing(SA)): Einführung: Wie der GA ist das Simulierte langsame Abkühlen ein Verfahren, welches zur Lösung von komplexen Such und Optimierungsaufgaben eingesetzt wird. Auch hier wird ein Verhalten imitiert, dessen Vorbild in der Natur zu finden ist. Dabei ahmt der SA den chemischen Prozess des Erhitzens und Abkühlens von Metallen nach. Werden nämlich Metalle langsam oder schnell aus dem rotglühenden Zustand abgekühlt, nehmen sie unterschiedliche Eigenschaften an. Chemisch gesehen befinden sich die Moleküle des Metalls in festen Gitterverbindungen. Durch das Erhitzen lösen sich die Verbindungen auf. Folglich werden die Moleküle beweglich und die ursprüngliche Struktur zerstört. Beim langsamen Abkühlen suchen sich die Moleküle nun neue Bindungen mit minimalem Energiegehalt. Dieses bedeutet, dass die Moleküle optimal angeordnet sind. Ziel ist es also, den Energiegehalt zu minimieren. Am Verlauf des Energiegehalts hat man festgestellt, dass beim Abkühlen nicht nur Verbesserungen, also Verringerungen des Energiegehalts, sondern auch Verschlechterungen angenommen werden. Dieses besagt, dass ein Material noch von einem Zustand niedriger Energie in einen Zustand höherer Energie übergehen kann. Mathematisch ausgedrückt heißt das, dass man einem lokalen Minimum entweichen kann. Je niedriger die Temperatur ist, desto unwahrscheinlicher werden folglich auch Energiesprünge und damit das Ausweichen aus einem lokalen Minimum. Schließlich besetzt jedes Molekül eine feste Position und das Material ist zum Festkörper erstarrt. Um diesen Effekt besser nachvollziehen zu können, kann man sich ein Glas und Kugeln vorstellen. Die Kugel stellen dabei die Moleküle dar. Wenn man die Kugeln nun in das Glas gibt, dann liegen sie ungeordnet. Das Schütteln des Glases symbolisiert dabei das Erhitzen und ein immer langsameres Schütteln den Prozess des langsamen Abkühlens. Nun ordnen sich die Kugeln von selbst in der energetisch günstigsten Struktur regelmäßig an. Arbeitsweise : Für den Einsatz des SA müssen in der Regel folgende Voraussetzungen erfüllt sein: Zufällig gewählte, zulässige Anfangslösung Nachbarschaftsstruktur Bewertungsfunktion Kühlungsstrategie, die aus Anfangstemperatur T > 0 und Kühlungsrate besteht 8

1) Wähle Anfangstemperatur T > 0 und Abkühlungsrate 2) Wähle einen Startpunkt s 0 S 3) Wähle s 1 S in der Nachbarschaft von s 0 4) Falls f(s 1 ) f (s o ), wähle s 1 als neuen Startpunkt und fahre mit (2.) fort. Ist f(s 1 ) > f (s 0 ), wähle s 1 mit Wahrscheinlichkeit p e T mit als neuen Startpunkt Ansonsten behalte und fahre mit 2) fort Nachdem man eine Anfangstemperatur und Abkühlungsrate ausgewählt hat, startet man beim SA in einer zufällig gewählten, zulässigen Lösung und erzeugt eine zufällige, benachbarte Lösung. Hat diese einen besseren Zielfunktionswert, geht man zu ihr über und iteriert. Andernfalls akzeptiert man die Lösung mit der Wahrscheinlichkeit p. Dabei ist p sowohl von der Temperatur als auch von der Differenz des aktuell berechneten und vorherigen Funktionwertes abhänigig, wobei p umso kleiner wird je größer T und umso kleiner ist. Es ist also umso unwahrscheinlicher, dass ein schlechterer Wert s 1 akzeptiert wird je weiter dieser von dem vorherigen Wert s o entfernt ist oder je kleiner die Temperatur ist. So kann man mit der Wahl der Temperatur T festlegen, inwieweit schlechtere Lösungen anerkannt werden. Dabei erlaubt man anfangs mit einer relativ hohen Temperatur T eine möglichst weiträumige Suche, um diese dann im Laufe der Zeit durch eine Abkühlungsrate auf einen erfolgsversprechenden Bereich zu konzentrieren. Eine geschickte Wahl der Anfangstemperatur und Kühlungsrate kann die Konvergenz der Suche somit positiv beeinflusst werden. Bei der Abkühlungsrate unterscheidet man üblicherweise die folgenden Arten: Konstant: T(n) = k, wobei k beliebige Konstante und n Anzahl der Iterationen Arithmetisch: T(n) = T(n 1) k, wobei k bel Konstante und n Anzahl der Iterationen Beachte: T(0) so groß wählen, dass auch nach n Iterationen nicht negativ wird Geometrisch: T(n) = a(n) T(n 1), wobei a typischerweise in [0,8, 0,99] 9

Beispiel: Das Travelling Salesman Problem (TSP) oder Problem des Handlungsreisenden: Ein Handlungsreisender möchte eine Rundreise durch n Städte unternehmen. Dabei soll der Weg, den er zurücklegt, durch jede Stadt genau einmal führen und möglichst kurz sein. Am Ende der Reise möchte der Handlungsreisende wieder am Startpunkt auskommen. Die Entfernungen zwischen den einzelnen Städten sind bekannt. Gefragt ist also nach der Reihenfolge, in der die Städte besucht werden müssen. (NP vollständiges Problem TSP benötigt exponentielle Zeit) Angewandt auf das Simulierte langsame Abkühlen Dabei wählt man: eine Anfangstemperatur und Kühlungsrate Bewertungsfunktion,, also die Gesamtlänge des Pfades Nachbarschaftsstruktur, z.b. die 2 change Nachbarschaft. Dabei werden zufällig 2 Städte p und q gewählt, von denen einmal die Nachfolgekante von p und die Vorgängerkante von q herausgenommen werden. Dann wird p mit der Vorgängerstadt von q und q mit der Nachfolgestadt von p verbunden und die Richtung der abgetrennten Städte wird umgekehrt. Nun haben wir zwei Rundreisen, die zueinander ähnlich sind und somit in der Nachbarschaft vorkommen. ( ) Nun startet man mit einer beliebigen zulässigen Lösung, also einer Rundreise, die die Städte in einer völlig zufälligen Reihenfolge durchläuft. Ist die neue Rundreise kürzer als die alte Rundreise, so wird mit dieser verbesserten Lösung fortgefahren. Ist sie länger, so wird sie nur dann akzeptiert, wenn sie der Wahrscheinlichkeit p genügt. Ansonsten wird sie verworfen, und es wird mit der alten Lösung fortgefahren. Nach jeweils einer bestimmten Anzahl von Iterationsschritten wird die Temperatur verringert, indem man sie beispielsweise mi einer Zahl zwischen ß und 1 multipliziert. Sinkt die Temperatur unter 0,01, so bricht die Suche ab und wir haben eine Lösung gefunden. 10

Ameisenkolonieoptimierung: Einführung: Bei der sogenannten Ameisenkolonieoptimierung (Ant Colonization, ACO) wird ein virtuelles Ameisenvolk auf die Suche nach dem kürzesten Weg geschickt. Die Idee ist es, die Ameisen bei der Futtersuche zu simulieren. In der Natur hat man nämlich beobachtet, dass die Ameisen einen verblüffend guten Weg zu ihrer Nahrungsquelle und wieder zurück finden. Der Grund dafür ist, dass die Ameisen eine Pheromonspur hinterlassen, der die anderen Ameisen zu einer gewissen Wahrscheinlichkeit dann auch folgen. Je mehr Ameisen also einen Weg benutzt haben, desto intensiver ist die Pheromonspur und damit auch die Wahrscheinlichkeit, dass die anderen Ameisen dieser Spur folgen. Auf der anderen Seite verdunstet dieser Duftstoff mit der Zeit und die Intensität nimmt langsam ab. Nun ist die Ameise nicht besonders schlau und sucht sich aktiv den kürzesten Weg zu Futterstelle, sondern läuft einfach einer Pheromonspur nach. Stehen dabei mehrere Spuren zur Auswahl, so entscheidet sie sich für diejenige, die die höchste Pheromonintensität aufweist. Nun hinterlässt die Ameise, die zufällig den schnellsten Weg zur Futterstelle gefunden hat, aufgrund ihres kürzesten Weges im Vergleich zu den anderen Wegen eine intensivere Spur. So ist der kürzeste Weg zur Futterstelle gefunden. In der Abbildung ist auf der linken Seite eine solche Ameisenstraße ohne ein Hindernis dargestellt. Man sieht, dass alle Ameisen dieser Pheromonspur folgen. Stellt man nun, wie in der Mitte einen Gegenstand auf diesen Pfad, erkennen die Ameisen keine Pheromonspur und versuchen das Hindernis zu umgehen. Die eine Hälfte geht über den Weg A B H D E, während die andere Hälfte den Weg A B C D E benutzt. Dies geschieht solange, bis eine Hälfte (hier die Gruppe A B C D E) das Hindernis hinter sich gelassen hat. So sehen die folgenden Ameisen an der Kreuzung auf der rechten Seite eine deutlichere Pheromonspur und benutzen diesen Weg mit einer höheren Wahrscheinlichkeit. 11

Anwendung: TSP: Bei der Ameisenkolonieoptimierung wird auf jede Stadt eine Ameise gesetzt. Dabei symbolisieren die Kanten eine mögliche Pheromonspur. Zu Beginn herrscht überall eine geringe Pheromonintensität. Nun wird jede Ameise auf die Reise geschickt. Sie wählt sich zufällig von ihrem Startpunkt den Weg aus. Dabei wird sie allerdings von der Pheromonmenge und der Distanz zur nächsten Stadt in ihrer Entscheidung beeinflusst. Zudem muss sie darauf achten, dass sie jede Stadt nur einmal besuchen darf und zum Schluss wieder zu ihrem Ausgangspunkt zurückkehrt. Nachdem alle Ameisen die Rundreise beendet haben, verdunstet ein Teil der Pheromonmenge. Dieses könnte man simulieren, indem man eine zufällige Zahl aus dem Intervall [0,1] wählt und diese mit der Pheromonmenge multipliziert. So würde z.b. die Zahl 0,5 bedeuten, dass 50% der Pheromonstoffe verdunstet sind. Erst nach der Verdunstung wird die Länge der Reise bewertet und je nach Güte, mehr oder weniger Pheromone auf die zurückgelegt Strecke gelegt. Die bisher beste Strecke wird anschließend zwischengespeichert. Nun startet eine weitere Rundreise. Diesmal werden die Ameisen allerdings veränderte Duftstoffe vorfinden. Dieser Vorgang wird nun eine bestimmte Anzahl wiederholt, so dass man am Ende die beste Rundreise als Ergebnis ausgeben kann. 12

Künstliche, neuronale Netze Einführung: Künstliche neuronale Netze imitieren einen Teil eines Nervensystems. Man nutzt man sie für kognitive Anwendungen, wie z.b. für die Optimierung. Dabei lernt das neuronale Netz ähnlich wie ein Gehirn an Beispielen. Gibt man dem neuronalen Netz also genügend viele Beispiele zum Lernen, dann kann es die gewonnene Erkenntnis nutzen, um sie auf andere Fälle anzuwenden. Diesen Lernprozess nennt man auch Training eines neuronalen Netzes. Neuronale Netze können in sehr unterschiedlichen Bereichen zur Modellierung eingesetzt werden. Typische Anwendungsbereiche sind medizinische Diagnostik, Analyse von Wirtschaftsdaten, Kontrolle von Fertigungsprozessen, Vorhersage von Devisenkursen, Robotik, etc. In diesen Anwendungen besteht die Aufgabe des neuronalen Netzes darin, aus vorgegebenen Daten weitere Informationen zu gewinnen. Neuronale Netze werden vor allem in Fällen eingesetzt, wo es nicht möglich ist, diese Informationen auf eine einfachere Art und Weise zu erhalten. Neuronale Netze lassen sich besonders gut dann verwenden, wenn man die Funktion nicht kennt, aber viele Daten zur Verfügung hat. Künstliche, neuronale Netze ahmen einige Strukturen eines Nervensystems nach. Es besteht aus stark idealisierten Neuronen. Ähnlich dem biologischen Vorbild besitzen sie die folgenden 3 Komponenten: Zellkörper (Soma), Dendriten und Axonen. Die Dendriten bilden die Eingabe des Netzes, während die Axone die Ausgabe an die Dendriten der nachfolgenden Synapse weiterleiten. Die Stärke der Synapsen wird durch einen numerischen Wert, das Verbindungsgewicht dargestellt. So lässt sich jede Verbindung zwischen Neuronen als direkte, gewichtete Verbindung darstellen. Das folgende Schaubild soll dieses verdeutlichen. Die Hauptbestandteile eines künstlichen, neuronalen Netzes sind: Neuronendefinition Energiefunktion stellt das Ziel des Problems dar Synapsen, dessen Stärke durch Verbindungsgewichte dargestellt sind Lokale Aktualisierungsregel 13