1 / 34

OO-Entwurf von Evolutionären Algorithmen

Seminar – Projektgruppe 431 „Metaheuristiken“. OO-Entwurf von Evolutionären Algorithmen. Stefan Walter. Lehrstuhl XI. 10.04.2003. Gliederung. Systematische Herangehensweise Grundprinzipien und Beispiele TEA DREAM JEO – Java Evolving Objects Entwurf eines EA mit Mitteln der OOP.

dagan
Download Presentation

OO-Entwurf von Evolutionären Algorithmen

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Seminar – Projektgruppe 431„Metaheuristiken“ OO-Entwurf vonEvolutionären Algorithmen Stefan Walter Lehrstuhl XI 10.04.2003

  2. Gliederung • Systematische Herangehensweise • Grundprinzipien und Beispiele • TEA • DREAM • JEO – Java Evolving Objects • Entwurf eines EA mit Mitteln der OOP Autor: Stefan Walter

  3. Gliederung • Systematische Herangehensweise • Grundprinzipien und Beispiele • TEA • DREAM • JEO – Java Evolving Objects • Entwurf eines EA mit Mitteln der OOP Autor: Stefan Walter

  4. Systematische Herangehensweise • Allgemeiner OO – Entwurf • Anwendungsfälle („use cases“) beschreiben • Strukturierung des Problems • Isolieren der Elemente, die als Klassen in Frage kommen • Beschreibung der Kommunikation der Klassen • Beschreibung der Hierarchien (Vererbung, Aggregation) Autor: Stefan Walter

  5. Systematische Herangehensweise • Mögliche Strukturierung von EA • „passiv“ • Population • Chromosomen • Insel • Umgebungen (environments) • „aktiv“ • Initiatoren • Brüter (breeders) • Selektoren (selectors) • Bewerter (assessors) • Übersiedler (migrators) • Abbrecher (terminators) Autor: Stefan Walter

  6. Inselmodell • Zur parallelen Ausführung des gleichen Algorithmus auf mehreren Maschinen • Austausch von Informationen durch Migration • Individuen werden zwischen den Inseln ausgetauscht • Auswahl durch spezielle Operatoren („migrators“) • Beeinflussung durch Parameter • Häufigkeit der Migration • Anzahl der Ausgetauschten Individuen • Auswahl der Inseln mit denen kommuniziert wird (Nachbarschaft) • Häufiger Austausch vieler Individuen -> panmikitsche Population Autor: Stefan Walter

  7. Das Panmikitische Modell • Quasi eine große Population • Parallelisierung von Mutation und Funktionsauswertung, da beschränkt auf Individuen • Individuen werden auf verschiedene Prozessoren verteilt • Crossover und Selektion wird komplizierter Autor: Stefan Walter

  8. Gliederung • Systematische Herangehensweise • Grundprinzipien und Beispiele • TEA • DREAM • JEO – Java Evolving Objects • Entwurf eines EA mit Mitteln der OOP Autor: Stefan Walter

  9. TEA – Toolbox for Evolutionary Algorithms • Ergebnis einer früheren PG am Lehrstuhl XI • Ziel: Ermöglichung einer „natürlichen“ Repräsentation des Problems ohne Festlegung auf Standardrepräsen-tationen: • Binäre Kodierung (Genetische Algorithmen, GA) • Reele Vektoren (Evolutionsstrategien, ES) • Bäume (Genetische Programmierung, GP) Autor: Stefan Walter

  10. TEA – Toolbox for Evolutionary Algorithms • Struktur (aktiver Teil) • teaPopulation (Population) • teaIndividual (Individuum) • teaIIntVector • teaIMultiChromo • teaISimple • Chromosome • teaCPermutation Autor: Stefan Walter

  11. TEA – Toolbox for Evolutionary Algorithms • Struktur (aktiver Teil) • teaMutate (Mutationen) • Jeweils Unterklassen für die entsprechende Datentypen • teaRecombine • Ebenfalls Unterklassen für die entsprechende Datentypen • teaReplace (Ersetzungen) Autor: Stefan Walter

  12. Gliederung • Systematische Herangehensweise • Grundprinzipien und Beispiele • TEA • DREAM • JEO – Java Evolving Objects • Entwurf eines EA mit Mitteln der OOP Autor: Stefan Walter

  13. DREAM • „Distributed Resource Evolutionary Algorithm Machine“ • Basis für verteilte evolutionäre Algorithmen • Kommunkation über das Internet • „CPU sharing“ für komplexe Algorithmen • Skalierbare Auslegung • Verschiedene Einstiegspunkte für Benutzer Autor: Stefan Walter

  14. DREAM • Struktur der Benutzung: Autor: Stefan Walter

  15. DREAM • Benutzer A möchte • Rechenzeit zur Verfügung stellen • Experimente anderer überwachen • Benutzer A benutzt die grafische Konsole Autor: Stefan Walter

  16. DREAM • Benutzer B möchte • Algorithmen entwerfen • Nicht auf Textbasis programmieren • Benutzer B interagiert mit GUIDE Schicht • Beeinflussung der evolution engine durch Parameter • Dadurch beliebige EA möglich • Problemspezifische Einstellungen mit Java-ähnlicher Hochsprache Autor: Stefan Walter

  17. DREAM • Benutzer C möchte • Das System durch EASEA programmieren • Hochsprachliche EA Entwicklungsumgebung • Produziert Java code, benutzt die JEO Bibliothek • Dateien können direkt vom Java compiler bearbeitet werden Autor: Stefan Walter

  18. DREAM • Benutzer D • Programmiert direkt in Java • Benutzt die JEO Bibliothek • Objekte müssen entsprechende Interfaces aus JEO implementieren Autor: Stefan Walter

  19. DREAM • Benutzer E • Ist Experte und programmiert direkt mit Hilfe DRM API • Benutzt den Kern des Systems, die DRM (Distributed Resource Machine) Autor: Stefan Walter

  20. Gliederung • Systematische Herangehensweise • Grundprinzipien und Beispiele • TEA • DREAM • JEO – Java Evolving Objects • Entwurf eines EA mit Mitteln der OOP Autor: Stefan Walter

  21. JEO – Java Evolving Objects • Ist eine Java Bibliothek für die Durchführung evolutionärer Experimente • Flexibel  für fast jedes Experiment geeignet • Basiert auf dem Inselmodell  ermöglicht verteilte Ausführung Autor: Stefan Walter

  22. JEO – Java Evolving Objects • Struktur: • Folgt den Richtlinien der Objektorientierten Programmierung • Objekt der gleichen Klasse können ausgetauscht werden  verändert nur die Spezifikation des Experiments • JEO ist benutzbar wie ein LEGO-Kasten • Erweiterbarkeit durch Implementierung von Interfaces • Mobil und portabel  Implementierung von java.io.Serializable Autor: Stefan Walter

  23. JEO – Java Evolving Objects • InfoHabitants • Individuen in DREAM • Besteht aus Genom (Problemlösung) und Fitness • Braucht Resourcen, um auf einer Insel zu überleben Autor: Stefan Walter

  24. JEO – Java Evolving Objects • Genome • Evolvierbarer Teil des Individuums • Set aus Genen = Problemlösung • Operationen • Initialisierung (durch Inter Objekt) • Modifikation (durch Operator Objekt) • Es stehen viele verschiedene Genome zur Verfügung Autor: Stefan Walter

  25. JEO – Java Evolving Objects • Fitness • Deutet auf Güte der Lösung hin • Einzige Bedingung an die Fitness: Vergleichbarkeit • Erreicht durch erben von Interface java.lang.Comparable • Jedes Objekt das von o.g. Interface erbt, kann Fitness sein Autor: Stefan Walter

  26. JEO – Java Evolving Objects • Breeders • Wendet Variationsoperatoren an Population an • Erzeugt Nachkommengeneration • Benutzt eine Vielzahl von Variationsoperatoren • Kontrolliert die Anwendung der Variationsoperatoren, bis Population spezifizierte Größe erreicht hat Autor: Stefan Walter

  27. JEO – Java Evolving Objects • Selectors • Auswahl eines InfoHabitants aus der Population • Für verschiedene Operationen benutzt • Zeugung: Selektion von Eltern für Produktion von Nachkommen • Migration: Emigrator sucht InfoHabitant zum Auswandern, ImMigrator sucht lokalen InfoHabitant, der durch Einwanderer ersetzt wird • Reward: Rewarder suchen InfoHabitants, die belohnt werden sollen • Verschieden Versionen für verschiedene Strategien Autor: Stefan Walter

  28. JEO – Java Evolving Objects • Assessors (Bewerter, Schätzer) • Evaluierung und Ersetzung • Sollte immer zusammen (nacheinander) ausgeführt werden • Zusammengefasst in Assessor • Ausführung nach Veränderungen Autor: Stefan Walter

  29. JEO – Java Evolving Objects • Migrators • Dienen dem Austausch von Lösungen zwischen den Inseln • Erhöhen die Diversizität der Inselbevölkerung • Kontrolle über Häufigkeit und Umfang des Austausches Autor: Stefan Walter

  30. JEO – Java Evolving Objects • Terminators • Überprüfen Abbruchbedingungen und beenden evntl. die Evolution • Abbruchbedingungen können einfach (Zähler) oder komplex sein (Qualität der Lösung) • Außerdem statistische Funktionen Autor: Stefan Walter

  31. Gliederung • Systematische Herangehensweise • Grundprinzipien und Beispiele • TEA • DREAM • JEO – Java Evolving Objects • Entwurf eines EA mit Mitteln der OOP Autor: Stefan Walter

  32. Entwurf von EA mittels OOP (Fazit) • Umsetzung der Rollen eines EA fast zwingend • Übersetzung in entsprechende Klassen • Beachtung objektorientierter Prinzipien wie bei anderen Programmentwürfen • Design der Schnittstellen • Kapselung • Vollständigkeit • Geheimhaltung • Etc. Autor: Stefan Walter

  33. Entwurf von EA mittels OOP (Fazit) • Vorteile durch OO-Ansatz • Austauschbarkeit von Objekten • Funktionale Elemente von verschiedenen EA • Delegation • Änderung des Algorithmus zur Laufzeit • Vererbung • Spezialisierungen auf Basis einer allgemeinen Klasse • Ziel: • Kleinsten gemeinsamen Nenner finden für ein flexibles Klassenmodell • Darauf aufbauend spezielle Ansätze Autor: Stefan Walter

  34. ENDE Autor: Stefan Walter

More Related