Anwendung genetischer Algorithmen zur Lösung des n-Dame-Problems und zur Optimierung von Autoprofilen Studiengang Informatik Jana Müller 11.12.2008 Otto-von-Guericke-Universität Magdeburg Fakultät für Informatik (FIN) Abstract Genetische Algorithmen helfen schwierige und komplexe Sachverhalte zu vereinfachen und tragen dazu bei optimale Lösungen für unterschiedliche Anwendungsgebiete zu erreichen. Schon seit Beginn der Menschheit musste der Homo sapiens feststellen, dass die Natur ihm einiges Voraus hatte, wenn es um Optimierung und Anpassung an die Umwelt und die Umgebung ging. Trotz des Wissens darum, wurden genetische Algorithmen erst seit den 60iger Jahren stärker angewendet. Der Grund dafür ist, dass bis zu diesem Zeitpunkt davon ausgegangen wurde, dass die Evolution zu komplex sei, um sie nachbilden zu können. Gegen Anfang der 60iger Jahre wandte sich John. H. Holland den genetischen Algorithmen zu und schuf die heute verbreitetste Form. Im Jahre 1975 veröffentlichte er sein Buch „Adaption in natural and artificial systems“. In diesem Werk beschäftigte er sich mit Fragestellungen, die nichts an ihrer Aktualität verloren haben z.B. natürliche Suchalgorithmen zur Bearbeitung praktischer Probleme zu finden. Genetische Algorithmen werden nicht nur für theoretische, nicht entscheidbare Probleme mit polynomialen Zeitaufwand verwendet, sondern auch, um Bewegungsabläufe von Robotern, die Konstruktion komplexen Bauteilen und Systemen (beispielsweise den Bau einer Brücke) oder Reifenprofile zu verbessern. Wie genetische Algorithmen dem Menschen bei diesen Problematiken helfen können, um eine optimale Lösung zu finden und ob stets dieses Optimum erreicht werden kann, ist Inhalt der folgenden Darstellung. -2- Inhaltsverzeichnis Abstract.................................................................................................................................................2 1. Einleitung.........................................................................................................................................4 2. Grundlagen.......................................................................................................................................4 2.1 Biologische Begriffe und ihre Bedeutung................................................................................4 2.2 Aufbau des Algorithmus...........................................................................................................5 2.3 Ziele..........................................................................................................................................6 3. Anwendungsbeispiel n-Dame-Problem............................................................................................6 3.1 Einführung................................................................................................................................6 3.2 Lösungsansatz...........................................................................................................................7 4. Praxisbeispiel Autoreifen................................................................................................................10 5. Fazit................................................................................................................................................11 6. Anhang............................................................................................................................................12 7. Quellenangaben..............................................................................................................................14 7.1 Literaturverzeichnis................................................................................................................14 7.2 Webverzeichnis.......................................................................................................................14 7.3 Bildverzeichnis.......................................................................................................................14 -3- 1. Einleitung Genetische Algorithmen verfügen über die Fähigkeit, eine schwierige, komplexe Problematik stark zu vereinfachen und tragen dazu bei eine optimale Lösung zu finden. Schon früher musste man feststellen, dass die Natur dem Menschen einiges voraus hat, wenn es um Anpassung oder Lösen von Problemen geht. Beispielsweise ist der Spinnfaden eines Spinnennetzes sehr elastisch, dehnbar und reißfest. Das muss das Netz auch sein, denn wenn es nicht reißfest wäre, müsste die Spinne verhungern, wenn ein Insekt durch ihr Netz fliegen würde und jedes Mal ihr Netz zerreißt. Aus diesem Grund kamen in den 50iger Jahren erste Ideen zu genetischen Algorithmen. Jedoch stellte man zu diesem Zeitpunkt fest, dass die Evolution viel zu komplex ist, um sie nachbilden zu können. Dies rührte aus der falschen Annahme, dass die Mutation die treibende Kraft der Evolution sei. In den 60iger Jahren wandte man sich erneut den genetischen Algorithmen zu. Professor John H. Holland von der Universität Michigan erkannte, dass die Rekombination das wichtigste Element der Evolution ist, was aus Darwins Evolutionstheorie hervorgegangen ist. Die Evolutionstheorie besagt, dass die Individuen, die am besten angepasst sind, eine größere Überlebenschance haben und daher mehr Nachkommen zeugen können, wobei schlechter Angepasste verdrängt werden. Dies stellt das Prinzip der Selektion, auch Auslese genannt, dar. Im Jahr 1975 erschien Hollands Buch „Adaption in natural and artificial systems“, in dem er Fragestellungen aufwarf, die nichts an ihrer Aktualität verloren haben z.B. natürliche Suchalgorithmen zur Bearbeitung praktischer Probleme. Weiterhin versuchte er in diesem Buch zu erklären, wie und warum genetischen Algorithmen funktionieren und wirken. Heutzutage werden genetische Algorithmen oft verwendet, um Problemstellungen zu optimieren. Beispielsweise nahm man sich Katzen und Hunde als Vorbild für die Verbesserung von Autoreifenprofilen. Wieso und warum, wird in dieser Arbeit geklärt. Zunächst einmal wird auf biologische Grundlagen im nächsten Kapitel eingegangen, da genetischen Algorithmen sehr stark auf dem Prinzip der biologischen Evolution beruhen. 2. Grundlagen Genetische Algorithmen stützen sich auf die Grundlagen der biologischen Evolution. Dies ist erkennbar an dem Wort „genetisch“, was man auf das biologische Teilgebiet, die Genetik, zurückführen kann. Die Genetik (lat. geneá = Abstammung) beschäftigt sich mit dem Aufbau sowie der Funktion von Erbanlagen und mit deren Weitervererbung, wobei die Vererbung die Weitergabe von Erbinformationen von Generation zu Generation ist [09]. Die Erklärung eines Algorithmus wird ausführlich in der Referenz [02] angegeben. Da genetische Algorithmen an die Evolution angelehnt sind, wird in diesem Kapitel auf die Funktionsweise genetischer Algorithmen sowie auf einige Begrifflichkeiten für das allgemeine Verständnis eingegangen. 2.1 Biologische Begriffe und ihre Bedeutung Mehrere Individuen bilden eine Menge von Lebewesen, eine Population. Jedes Lebewesen besteht aus Zellen, den Grundbausteinen eines jeden Individuums. Im Zellkern befinden sich Chromosomen. Sie enthalten die Eigenschaften, die das Lebewesen „zugesprochen“ bekommt. Chromosomen besitzen Gene. Diese sind einzelne Teilstücke, die eine „Teileigenschaft“, z.B. die Augenfarbe, festlegen. -4- Selektion Als Selektion wird die natürliche Auslese bezeichnet. Das bedeutet, Lebewesen, die gut an ihre Umgebung sowie Veränderungen ihrer Umwelt angepasst sind, haben eine höhere Überlebenschance. Individuen, die schlechter angepasst sind, werden verdrängt. Hieraus resultiert, dass sich die gut angepassten Lebewesen mit einer größeren Wahrscheinlichkeit fortpflanzen und somit ihre Gene weiter vererben. Die Angepasstheit eines Lebewesens wird als Fitness bezeichnet. Das Erbgut kann auf zwei grundlegende Arten verändert werden durch Rekombination und Mutation. Beide zusammen bilden die Basis für die genetische Vielfalt einer Population. Rekombination Die Rekombination wird auch als Crossover bezeichnet. Hier wird das Erbgut verschiedener Individuen gekreuzt. Das Resultat sind neue Gen- und Merkmalskombinationen, die entstehen können. Mutationen Eine Mutation ist eine zufällig auftretende Veränderung der Erbinformation durch Modifizierung der Chromosomen. Dies geschieht, wenn ein Gen hinzugefügt oder verändert wird, in dem die Abfolge der Genbausteine verändert wird. Genauso können zwei Gene vertauscht oder ersetzt werden. Die Mutation ist nicht auf Rekombination zurückzuführen, jedoch vererbbar. Die Ausprägung der Modifikation prägt das Erscheinungsbild (Phänotyp) des Lebewesens. Eine Mutation kann durchaus positiv sein, da durch die Erzeugung neuer Kombinationen eine alternative oder eine bessere Variante zum ursprünglichen Optimum entstehen kann. 2.2 Aufbau des Algorithmus Ein genetischer Algorithmus besteht aus: 1. Einer Kodierungsvorschrift für die Lösungskandidaten. Wobei man generell nicht sagen kann, wie die Lösungskandidaten kodiert werden. Dies entscheidet sich je nach Problemstellung, d.h. es gibt keine allgemeinen Regeln, die man in diesem Fall anwenden kann. Darstellungsmöglichkeiten der Kodierung sind ganze oder reelle Zahlen sowie Binäroder Dezimaldarstellungen. 2. Danach benötigt man am Anfang eine Methode zur Erzeugung der Anfangspopulation. In der Informatik bedeutet das, dass meist zufällig Zeichenketten erzeugt werden. (Je nach gewählter Kodierung können jedoch komplexe Verfahren genauso notwendig sein.) 3. Nachdem eine Population erzeugt wurde, ist eine Bewertungsfunktion notwendig, um die Individuen zu beurteilen. Man bezeichnet sie auch als Fitnessfunktion. Diese spielt die Rolle der Umgebung und gibt die Qualität der Individuen an. Sehr oft entspricht die Bewertungsfunktion der zu optimierenden Funktion. Allerdings kann sie genau so zusätzliche Elemente beinhalten, die die zu erfüllenden Nebenbedingungen darstellen sollen. 4. Auf Grundlage der Fitnessfunktion folgt die Auswahlmethode. In dieser Methode werden die Individuen festgelegt, die entweder zur Erzeugung neuer Nachkommen auserwählt wurden oder unverändert in die nächste Generation gelangen. 5. Des Weiteren besteht ein genetischer Algorithmus aus genetischen Operatoren, die die Lösungskandidaten verändern. Zu diesen Operatoren zählt man die Mutation (zufällige Veränderung der Gene) und das Crossover (Rekombination von Chromosomen). -5- 6. Um einen genetischen Algorithmus zu beeinflussen, reicht es, wenn man die Werte für die Parameter ändert z.B. die Populationsgröße oder die Mutationswahrscheinlichkeit. 7. Abschließend benötigt ein genetischer Algorithmus ein Abbruchkriterium z.B. die vorgegebene minimale Lösungsqualität wurde erreicht, nach der festgelegten Anzahl von Generationen gab es keine Verbesserung oder die Berechnung der vorgegebenen Generationsanzahl wurde ausgeführt. 2.3 Ziele Allgemeines Ziel eines genetischen Algorithmus ist es, Optimierungsprobleme zu lösen, d.h. es ist ein Suchraum gegeben sowie eine zu optimierende Funktion, bei der ggf. Nebenbedingungen mit berücksichtigt werden sollten. Die Lösung von Problemen soll heuristisch erfolgen, d.h. es soll schnell ein Ergebnis gefunden werden aufgrund von Erfahrungen sowie Bewertungen vorheriger Probleme. Die Lösung sollte optimal sein, was allerdings nicht immer erreicht wird. Genetische Algorithmen lösen nicht nur schwere NP-Aufgaben (nichtdeterministisch polynomial) [02], wie das Problem des Handlungsreisenden oder das Rucksackproblem, sondern auch Parameteroptimierungen (Verbesserung des Reifenprofils), die Erstellung von Fahr-, Stunden- und Raumplänen sowie die Konstruktion von Bewegungsabläufen von Robotern oder komplexen Bauteilen und Systemen – beispielsweise den Bau einer Brücke. Dabei sind die Lage, das Gewicht sowie die Form zu optimieren. Das Finden einer Lösung kann auf unterschiedlichste Weise erfolgen: 1. Analytische Lösung: Diese Lösungsart ist sehr effizient. Allerdings werden sie in vielen Fällen nicht benutzt, da sie entweder nicht auf die Problemstellung anwendbar sind oder zu komplex werden. 2. Vollständige Durchforstung: Ist sehr ineffizient, daher wendet man sie hauptsächlich in kleinen Suchräumen an. 3. Blinde Zufallssuche: Diese Art ist stets anwendbar – allerdings muss der Benutzer mit einem sehr ineffizienten Ergebnis rechnen. 4. Gesteuerte Suche: Eine Voraussetzung hierfür ist, dass die Funktionswerte sich ähnelnder Elemente des Suchraums ähnlich sind. Die Effizienz ist gut bis sehr gut. Genetische Algorithmen verwenden die gesteuerte Suche. Im kommenden Kapitel wird an einem theoretischem Problem, dem n-Dame-Problem, näher auf die Grundzüge eines genetische Algorithmuses eingegangen. 3. Anwendungsbeispiel n-Dame-Problem 3.1 Einführung Was beinhaltet das n-Dame-Problem? Das n-Dame-Problem ist eine Verallgemeinerung des AchtDame-Problems. Es beschäftigt sich mit der Problematik, wie n Schachdamen auf einem nxn großem Schachbrett positioniert werden können. Die Damen dürfen sich nicht gegenseitig bedrohen, d.h. sie können sich weder horizontal, vertikal noch diagonal schlagen. Welche Möglichkeiten zum Bedrohen eine einzelne Dame auf einer Position besitzt bzw. welches ihre Zugmöglichkeiten sein könnten, ist auf der Abbildung 1 abgebildet durch die schwarzen Punkte. Es ist ein 8x8 Feld dargestellt. -6- Abbildung 1: Zugmöglichkeiten einer Dame Auf Abbildung 2 wird eine mögliche Lösung des 8x8 Dame-Problems dargestellt, bei der keine Dame eine andere bedroht. Für dieses Problem existieren 92 mögliche Lösungen (inbegriffen der Rotationen und Spiegelungen). Abbildung 2: Lösung des 8-Dame-Problems Die Problematik kann durch verschiedenste Optimierungsverfahren gelöst werden z.B. durch Backtracking oder direkte Berechnung [05]. Backtracking [02] ist in diesem Fall die üblichere Variante, jedoch eignet sich das n-Dame-Problem gut, um das Prinzip der genetische Algorithmen zu veranschaulichen. Aus diesem Grund wird im Folgenden auf Lösungsansätze eingegangen. 3.2 Lösungsansatz Im Kapitel Grundlagen wurde auf den Aufbau eines genetischen Algorithmus eingegangen. Im folgenden wird man diesen wiedererkennen. Als erstes wird mit der Kodierung begonnen. Ein Lösungskandidat wird durch ein Chromosom mit n Genen dargestellt. Jedes Gen beschreibt eine Spalte des Schachbrettes, in der die Dame -7- platziert ist. Durch die Genausprägung wird der Ort der Dame in der zugehörigen Zeile angezeigt. Die Kodierung trägt dazu bei, Lösungskandidaten, die mehr als eine Dame in einer Zeile innehaben, auszuschließen. Abbildung 3 stellt die Kodierung der Lösungskandidaten dar. Es wird eine chromosom-basierte Problemlösung (Phänotyp) in Form eines 5x5 Schachbrett dargestellt, auf dem fünf Damen platziert wurden. Das Schachbrett ist jeweils von null bis fünf durchnummeriert, damit die Platzierungen der Damen angegeben werden können. Der Genotyp des Chromosoms, d.h. die formale Kodierung einer Lösung, wird als Vektor angegeben. Das Auslesen erfolgt folgendermaßen: Man liest das gegebene Brett zeilenweise aus, d.h. man beginnt oben wie in einem Buch die Zeile entlang zu lesen. Trifft man währenddessen auf eine Dame, wird die Spalte nach unten durchsucht, um zu sehen, in welcher Spalte sie steht. Diese Information wird sich gemerkt. Ist dies erledigt, wird fortgesetzt. Bei diesem Beispiel erhält man durch das eben beschriebene Verfahren den Vektor (3,1,4,0,3)T. Das „T“ bei der Vektorangabe bedeutet, dass es sich um eine transponierte Vektorangabe handelt. Abbildung 3: Kodierung der Lösungskandidaten Es stellt sich nun die Frage, wie groß die Startpopulation sein sollte. Die Antwort auf diese Frage lautet: weder zu groß noch zu klein. Wenn es zu wenig Individuen gibt, liegt eine Artenarmut vor (eine fehlende Variabilität). Dies hat zur Folge, dass das Optimum eventuell nicht erreicht wird. Ist die Population hingegen zu groß, so wird der Algorithmus unnötig langsam, was die Berechnungszeit der einzelnen Generationen verlängert. Da nun die Kodierung sowie die Generierung der Startpopulation abgeschlossen ist, wird jetzt die Bewertung durchgeführt. Die Fitness spielt hier eine sehr wichtige Rolle, da für alle Individuen der Population diese berechnet wird. Die Bewertung gibt an, wie angepasst das jeweilige Individuum an die angegebenen Anforderungen ist. Eine negative Zahl wird vergeben, wenn die Spalten oder Diagonalen mit mehr als einer Dame bestückt sind. Die Negation dient dazu, um die maximierende Fitness zu erhalten. Kommt es vor, dass mehr als zwei Figuren in einer Spalte oder Zeile zu finden sind, so wird jedes Paar gezählt, was die spätere Implementation vereinfachen soll. Aus der Fitnessfunktion erhält man augenscheinlich das Abbruchkriterium: Beträgt die (maximal mögliche) Fitness = 0, so wurde eine Lösung gefunden. Zusätzlich sollte man eine maximale Generationenanzahl festlegen, um die Terminierung zu garantieren. Abbildung 4: Darstellung der Fitness -8- Abbildung 4 verdeutlicht das eben Beschriebene noch einmal. Zu sehen ist ein 5x5 Schachbrett. Die zuerst angegebene Dame des Vektors (3,1,4,0,3)T kollidiert zum einen diagonal mit der Dame auf der Position 0 und zum anderen mit der Figur, die in derselben Spalte (3) steht. Daraus resultiert die negative Fitness -2. Doch wie werden die Individuen ausgewählt? Die Auswahl der Individuen, aus der die neue Generation erzeugt werden soll, erfolgt durch ein Turnier. Anhand des Phänotyps werden die Fortpflanzungskandidaten zufällig ausgewählt. Umso höher die Fitness des Individuums ist, je größer ist die Chance ausgewählt zu werden. Aber wieso werden nicht immer die Besten genommen? Der Grund dafür ist, dass auch schlechte Lösungen zum Ziel führen können – sogar manchmal besser als nur gute. Wenn ein Individuum das Turnier „gewinnt“, heißt das, dass es in die nächste Generation gelangt. Nachdem die Individuen ausgewählt wurden, soll jetzt auf die Rolle der genetischen Operatoren eingegangen werden, dem Crossover, der Mutation und der Selektion. Unter Crossover, auch Rekombination genannt, versteht man das Austauschen eines Chromosomenstücks zwischen zwei Individuen. Im folgenden wird näher auf das Ein-Punkt-Crosssover eingegangen. Bei diesem Verfahren wird zufällig eine Trennstelle zwischen zwei Genen ausgewählt und die Gensequenzen auf der einen Seite dieser Trennstelle ausgetauscht. In Abbildung 5 ist zum einen der Vektor v1 = (3,1,4,0,3)T mit einer Fitness von -2 und zum anderen der Vektor v2 = (1,4,3,2,0)T mit einer Fitness von -3 dargestellt. (Im Anhang sind die Schachbretter zu den zugehörigen Vektoren dargestellt. Sie sollen die Kollisionen, die die Fitness bedingen, bildhaft verdeutlichen.) Da die jeweilige Fitness der beiden Vektoren nicht zufriedenstellend ist, wird eine Trennstelle ausgewählt. In der Abbildung ist dies die Trennstelle zwei. Aufgrund des Tauschens der letzten Chromosomenabschnitte, entstehen zwei neue Vektoren v1(rekombiniert)=(3,1,4,2,0)T und v2(rekombiniert)=(1,4,3,0,3)T . Der erste neue Vektor besitzt nun eine Fitness von null, d.h. durch die Rekombination wurde die Fitness verbessert und sogar die optimale Bewertung erreicht. Hingegen hat das Vertauschen beim zweiten Vektor keine Fitnessveränderung gebracht. (siehe Anhang) Abbildung 5: Ein-Punkt-Crossover Die Mutation hingegen ist eine Methode, die die Erbinformationen zufällig manipuliert. Dadurch können bestimmte Genausprägungen entstehen, die in der Population bisher nicht vorhanden waren, aber zur Lösung des Optimierungsproblems entscheidend sind. Der Zufall ist sehr wichtig, da er die Variabilität erhält und somit vor dem „Festfahren“ (wenn nur Rekombination verwendet wird) schützt. Es mutieren die Individuen, die neu entstehen sollen, d.h. die Mutation findet vor der Geburt statt. Ungefähr 10% aller Individuen werden verändert. Der Anteil der Mutation ist wichtig. Ist der Prozentanteil der Individuen, die mutieren zu groß, hat dies nicht mehr viel mit Vererbung zu tun. Ein zu geringer Anteil an Veränderungen wirkt sich jedoch negativ aus, da kaum neue Kombinationen entstehen und somit die Population eventuell „fest fährt“. Für das n-Dame-Problem sieht das wie folgt aus. Während einer Mutation wird ein Vektoreintrag zufällig verändert, was bedeutet, dass eine Dame in eine andere Spalte gesetzt wird. Da die Mutation sehr auf dem Zufallsprinzip basiert, sind ihre Auswirkungen meistens eher negativ als -9- positiv, da eine Verschlechterung der Fitness auftritt. Darstellung 6 zeigt eine solche Fitnessverschlechterung. Bevor der Vektor mutierte, besaß er eine Fitness von -2. Nach der Mutation erhielt er eine Bewertung von -4. Die Schachbrettdarstellung der jeweiligen Vektoren sind im Anhang zu finden. Bei genetischen Algorithmen kann zufällig bestimmt werden, wie viele Gene ersetzt werden sollen. Abbildung 6: Mutation Eine Population kann an Individuen zunehmen, abnehmen oder gleich bleiben. Es wird nun davon ausgegangen, dass der Lösungspool sich vergrößert hat. Aus diesem Grund muss die Population für die nächste Generation beschränkt werden. Dies geschieht durch Selektion. Die vorgegebene Population wird so lange selektiert, bis die gewünschte Populationsgröße erreicht ist. Wie viele Individuen in die nächste Generation gelangen, ist abhängig vom vorgegebenen Prozentsatz. Doch nicht nur die Individuen mit der besten Fitness haben eine Chance in die nächste Generation zu kommen, sondern auch schlechte. Die Auswahl findet durch das oben erklärte Turniersystem statt. Da in der neuen Generation anscheinend noch keine optimale Lösung gefunden wurde. Wurde hingegen das Optimum gefunden, d.h. das Abbruchkriterium Fitness 0 ist erfüllt, wird der Algorithmus abgebrochen. Wenn das Abbruchkriterium nicht erreicht wurde, werden die genetischen Operatoren von Neuem angewendet. 4. Praxisbeispiel Autoreifen In einem Artikel des Spiegels von 2006 wurde ein interessanter Beitrag zur Verwendung von genetischen Algorithmen geschrieben. Forscher hatten es geschafft, innerhalb kürzester Zeit Reifenprofile zu verbessern. Der Grund dafür war, dass sich ein Unternehmen Tiere als Vorbilder genommen hatten. Vor allem Katzen und Hunde wurden als Vorbilder ausgewählt. Die Forscher bemerkten, dass z.B. Katzenpfoten sich bei Richtungswechsel verbreitern, um mehr Kontakt zum Boden zu haben. Reifenentwickler versuchten diese Beobachtung auf die Aquaplaningproblematik von Autoprofilen zu übertragen und erhofften sich Verbesserungen durch die Anwendung der Evolutionsprinzipien Fortpflanzung, Mutation und Selektion. Sie suchten ein Verfahren, dass Zufall mit System verbinden würde und versuchten es deshalb mit genetischen Algorithmen. Das Ausgangsprofil wurde durch Parameter (z.B. Abstand und Breite der Längsrillen) beschrieben und andere Parameter (z.B. Durchmesser, Breite) wurden konstant gehalten, um alleinig die Anordnung der Rillen zu betrachten. Die Angaben wurden zur Parametrierung einer Software genutzt, die diese Parameter zufällig veränderte (Prinzip der Mutation). Aus den besten Individuen wurde der Mittelwert ihrer Parameter als Eingabe für einen neuen Durchlauf verwendet, d.h. sie durften sich fortpflanzen. In der ersten Generation wurden z.T. Profile erzeugt, die eine sehr viel höhere Geschwindigkeit beim Aquaplaningtest, als ein profilloser Reifen, ermöglichten. Anscheinend erhielten die Forscher schon in den ersten beiden Generationen nahezu perfekte Profile, um dazu genaueres sagen zu können, müssten jedoch noch mehrere Generationen erzeugt werden. Erst in späteren Generationen zeigt sich, ob die Verbesserung bereits ein Optimum darstellt. Da die Modellierung der Profile jedoch sehr komplex war und man an die Grenzen der damaligen digitalen Technik stieß, wurde die Versuchsreihe nach dem zweiten Versuch, von geplanten sechs, - 10 - abgebrochen. Wenn in Zukunft genetische Algorithmen komplett in Computern ablauffähig sein würden, könnte man nicht nur auf einen zu optimierenden Aspekt einzeln eingehen, sondern genauso Sicherheit, Verbrauch und Komfort in die Optimierung mit einbeziehen. Eine einzelne Optimierung bringt den Menschen nur begrenzt weiter. In diesem Beispiel ist es der Reifenbauer. Der Reifen, der sich in dem Test herauskristallisiert hat, besitzt breite Rillen an der Reifenflanke. Praxistests zeigten allerdings, dass dies im Konflikt zur Handhabung des Autos steht. [11] 5. Fazit Genetische Algorithmen bieten die Möglichkeit, eine optimale Lösung zu finden, wobei sie sich genetische Prinzipien, wie die Rekombination, Mutation und Selektion, zu Nutze machen. Die Bewertung der Lösungskandidaten spielt hierbei eine sehr wichtige Rolle, da sie die Kandidaten in die vorgesehene „richtige“ Richtung lenkt. Doch nicht nur die Bewertung, sondern auch die Kodierung des Erbguts ist entscheidend. Weitere wichtige Faktoren sind die Größe der Population, die Mutationswahrscheinlichkeit sowie die Anzahl der Generationen. Sie alle bedingen die Performanz und die Qualität der gesuchten Lösung. Ein Vorteil der genetischen Algorithmen ist, dass sie in jeglichen Optimierungsverfahren verwendet werden können. Sie werden nicht nur zum Lösen schwerer NP-Aufgaben verwendet (Problem des Handlungsreisenden, Rucksackproblem, nxn Dame-Problem), sondern auch in der Praxis z.B. um Reifenprofile zu verbessern, Fahr-, Stunden- und Raumpläne zu erstellen oder komplexe Bauteile und Systeme zu konstruieren (Brückenbau). Des Weiteren kann sehr viel über die Parameter gesteuert werden, wodurch versucht wird, gute Ergebnisse zu erzielen. Zwar wird stets eine gute Lösung gefunden, jedoch nicht immer die beste. Entscheidend für das Ergebnis ist eine optimale Parametrierung, die aber alles andere als trivial ist. Auch bei der Wahl der Operatoren ist es nicht einfach, da eine dominierende Population im Extremfall einzig und allein identische Chromosomen besitzt. Daraus resultiert, dass nicht nur Crossover verwendet werden soll, sondern auch die Mutation, die auf zufällige Art neue Kombinationen schafft. Was wiederrum in zu starkem Maße negative Auswirkungen hat. Zusammenfassend kann gesagt werden, dass es sich lohnt, genetische Algorithmen einzusetzen – auch wenn sie einige negative Seiten haben. Ein negativer Aspekt ist beispielsweise, dass die „Artenvielfalt“, die sie bringen, enorm ist. Andererseits sind Menschen in ihrem jeweiligen Metier vielleicht betriebsblind geworden und entdecken durch genetische Algorithmen neue Möglichkeiten jeweilige Probleme zu lösen. Auch hat das Beispiel der Autoreifen gezeigt, dass genetische Algorithmen in Zukunft verwendet werden, um verschiedenste, zu optimierende Aufgabestellungen zu lösen. Die Tests sind zeitaufwendig und komplex. Daher stößt man schnell an die heutigen technischen Grenzen, wodurch die Einsatzmöglichkeiten genetischer Algorithmen zur Optimierung begrenzt sind. - 11 - 6. Anhang Da aus den Vektoren allein die Kollisionen kaum erkennbar sind, sind im Folgenden die Schachbretter zu den Abbildungen 5 und 4 abgebildet. Die roten sowie blauen Linien stellen die Kollisionen dar Legende: Rote und blaue Linien sollen die Kollisionen darstellen. Schachbrettdarstellungen zur Abbildung 5: Ein-Punkt-Crossover 1.Schachbrett des Vektors (3,1,4,0,3)T 2.Schachbrett des Vektors (1,4,3,2,0)T Nach dem Crossover 1. Schachbrett mit Fitness 0 2.Schachbrett mit Fitness -3 - 12 - Schachbrettdarstellung zur Abbildung 6: Mutation Schachbrett vor der Mutation Schachbrett nach der Mutation: - 13 - 7. Quellenangaben 7.1 Literaturverzeichnis • [01] Gerdes, Ingrid. Klawonn, Frank. Kruse, Rudolf. Evolutionäre Algorithmen. 1.Auflage. Vieweg Verlag. 2004 • [02] Saake, Gunter. Sattler, Kai-Uwe. Algorithmen und Datenstrukturen. 3.Auflage. dpunkt.verlag. Heidelberg. 2006 • [03] Michalewicz, Zbigniew. Genetic Algorithm + Data Structures = Evolution Programs. Springer-Verlag. 3.Auflage. Berlin [u.a.]. 1996. • [04] Heistermann, Jochen. Genetische Algorithmen. Theorie und Praxis evolutionärer Optimierung. Teubner. Stuttgart [u.a.].1994 7.2 Webverzeichnis • [05] http://fuzzy.cs.uni-magdeburg.de/studium/ga/ (20.11.2008: 18.00Uhr) • [06] • [07] http://www.plm.eecs.uni-kassel.de/ki-in-spielendateien/Ki_in_Spielen_Genetische_Algorithmen_Ausarbeitung.pdf (20.11.2008, 19.30 Uhr) • [08] http://www.hdm-stuttgart.de/~vs016/documents/Elaboration-NaturePatterns.pdf (30.11.2008; 11.20 Uhr) • [09] http://de.wikipedia.org/wiki/Genetik (30.11.2008; 11.15 Uhr) • [10] http://de.wikipedia.org/wiki/Bionik (30.11.2008; 11.25 Uhr) • [11] http://www.spiegel.de/wissenschaft/mensch/0,1518,445723,00.html 18.00 Uhr) http://www.plm.eecs.uni-kassel.de/ki-in-spielendateien/Ki_in_Spielen_Genetische_Algorithmen_Ausarbeitung.pdf (20.11.2008; 19.00 Uhr) (30.11.2008; 7.3 Bildverzeichnis • [12] http://fuzzy.cs.uni-magdeburg.de/studium/ga/ (20.11.2008; 18.00 Uhr) • [13] Otto-von-Guericke-Symbol - http://www.sim-md.de/theses_howto.html (22.11.2008; 18.30 Uhr) - 14 -