OO-Entwurf von Evolutionären Algorithmen

Slides:



Advertisements
Ähnliche Präsentationen
Memetische Algorithmen …der Versuch einer Einordnung
Advertisements

E-Commerce Shop System
Datenparallele Algorithmische Skelette in Muesli
Strategie (Strategy / Policy) Ein objektbasiertes Verhaltensmuster Stephan Munkelt, Stefan Salzmann - 03IN.
Frame-Logik Eine Einführung Andreas Glausch.
Designing Software for Ease of Extension and Contraction
Objektorientierte Datenbanken
Genetische Algorithmen für die Variogrammanpassung
Kapitel 4 Datenstrukturen
(kleine!) Java Einführung Mittwoch, Heute Ziel: erstes Java-Programm erstellen Von der Aufgabenstellung bis zur Lösung Grundlagen Einfache.
Christos, Kornelia, Jan Christos, Kornelia, Jan Entwicklungsumgebung Versteht unseren Java Programm Code Versteht unseren Java Programm.
Christos, Kornelia, Jan Christos, Kornelia, Jan Entwicklungsumgebung Versteht unseren Java Programm Code Versteht unseren Java Programm.
Genetische Algorithmen
Genetische Algorithmen
es gibt (fast) nichts, was nicht anders gemacht werden könnte
Java: Objektorientierte Programmierung
Sortierverfahren Richard Göbel.
Sortierverfahren Richard Göbel.
Java: Grundlagen der Sprache
Heuristiken Automatic Problem Solving Institut für Informatik
SciAgents - Eine agentenbasierte Umgebung für verteilte wissenschaftliche Berechnungen Alexander StarkeSeminar Software Agenten
Genetische Algorithmen
Seminar parallele Programmierung SS 2003
Sebastian Grahn Sebastian Kühn
Praxis-Repetitorium JAVA zusätzliche, ergänzende Lehrveranstaltung
PKJ 2005/1 Stefan Dissmann Zusammenfassung Bisher im Kurs erarbeitete Konzepte(1): Umgang mit einfachen Datentypen Umgang mit Feldern Umgang mit Referenzen.
JAVA RMI.
1/25 UNIVERSITY OF PADERBORN Projektgruppe KIMAS Projektgruppe KIMAS MultiAgenten-Systeme Andreas Goebels.
Introducing the .NET Framework
Vortrag III Hier in der Vorlesungszeit! Anwesenheitspflicht Jede Gruppe hat 6 Minuten! Stellt eure GUI vor –was ihr besonderes gemacht habt –Spektakuläre.
RDF-Schema Seminar: „Semantic Web“ André Rosin,
-LABORPRAKTIKUM- SOMMERSEMESTER 2005
14StrukturKlasse1 Von der Struktur zur Klasse von C zu C++ Von Jens Hoffmann
07-GraphischeObjekte Graphische Objekte in EMMA301Paint.
OO Analyse und Entwurf für Anwender XIII. Objektorientierte Benutzeroberfäche Dr. Michael Löwe.
Evolution in verteilten Systemen Der Evolutionäre Trader
Wizards & Builders GmbH Schichtenarchitektur Multi-Tier-Applikationen mit Microsoft Visual FoxPro.
Grundkurs Informatik Jahrgang 10 Der Grundkurs der Jahrgangsstufe 10 bereitet den an den Vorgaben für das Zentralabitur ausgerichteten Unterricht in der.
Objektorientierte Modellierung und Simulation technischer Systeme Vertiefungsveranstaltung im Studiengebiet SSG WS2006/2007 André Nordwig, Christoph Nytsch-Geusen.
Duo- und Quad Prozessor-Architektur
Programmierung paralleler Algorithmen mit MPI
Objektorientiertes Programmieren
Entwicklung der Programmiersprachen
Evolutionäre Algorithmen AS1-7
Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure
Fundamente der Computational Intelligence (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich Informatik Lehrstuhl für Algorithm Engineering Wintersemester.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Eine Präsentation von Peter Rasser
OOP-Begriffe Abstraktion Modellieren Klasse Objekt Attribute Methoden
Wasserfallmodell und Einzelbegriffe
Paradigmenwechsel in der Unternehmensmodellierung Prof. Dr. Wolfgang Voigt Dipl.-Ing. Päd. Alexander Huwaldt UML Extrakt UML Seminar, Chemnitz
Tutorium PG Verbesserung Blatt 5 Beim instanziieren eines Fahrrades muss es möglich sein, alle benötigten Attribute dem Konstruktor zu übergeben.
Aufgaben Version 1: Es soll eine Wetterstation mit folgenden zwei Anzeigen implementiert werden: Aktuelle Wetterbedingungen mit Temperatur und.
EPROG Tutorium #4 Philipp Effenberger
Objektorientierung.
Objektorientierte Modellierung mit UML
Evolutionäre Algorithmen AS1-7
Ilka Rehr, Geodätisches Institut, Leibniz Universität Hannover
OOP-Begriffe Abstraktion Modellieren Klasse Objekt Attribute Methoden
OOSE nach Jacobson Sebastian Pohl/ST7 Betreuer: Prof. Dr. Kahlbrandt.
Einführung in die Programmierung mit Java
Evolutionärer Entwurf neuronaler Netze
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Thomas H. Kolbe Einführung in die Programmierung mit Java 9. Vorlesung WS 2001/2002.
Evolutionäre Algorithmen Rüdiger Brause
Distributed Database Systems Parallele Datenbanksysteme von Stefan Schneider.
Interoperabilität in Digitalen
Christos, Kornelia, Jan Christos, Kornelia, Jan Entwicklungsumgebung Versteht unseren Java Programm Code Versteht unseren Java Programm.
Objektorientierte Programmierung §Klassen §Objekte §Attribute §Eigenschaften §Methoden §Datenkapselung §Ereignisse §Vererbung §Entwicklungszeit §Laufzeit.
 Präsentation transkript:

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 TEA DREAM Grundprinzipien und Beispiele TEA DREAM JEO – Java Evolving Objects Entwurf eines EA mit Mitteln der OOP 12. April 2003 Autor: Stefan Walter

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

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) 12. April 2003 Autor: Stefan Walter

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) 12. April 2003 Autor: Stefan Walter

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 12. April 2003 Autor: Stefan Walter

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 12. April 2003 Autor: Stefan Walter

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

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) 12. April 2003 Autor: Stefan Walter

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

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) 12. April 2003 Autor: Stefan Walter

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

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 12. April 2003 Autor: Stefan Walter

DREAM Struktur der Benutzung: 12. April 2003 Autor: Stefan Walter

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

DREAM Benutzer B möchte Benutzer B interagiert mit GUIDE Schicht 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 12. April 2003 Autor: Stefan Walter

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 12. April 2003 Autor: Stefan Walter

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

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

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

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 12. April 2003 Autor: Stefan Walter

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 12. April 2003 Autor: Stefan Walter

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

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 12. April 2003 Autor: Stefan Walter

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 12. April 2003 Autor: Stefan Walter

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 12. April 2003 Autor: Stefan Walter

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 12. April 2003 Autor: Stefan Walter

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 12. April 2003 Autor: Stefan Walter

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 12. April 2003 Autor: Stefan Walter

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 12. April 2003 Autor: Stefan Walter

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

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. 12. April 2003 Autor: Stefan Walter

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 12. April 2003 Autor: Stefan Walter

ENDE 12. April 2003 Autor: Stefan Walter