Genetisches Programmieren

Größe: px
Ab Seite anzeigen:

Download "Genetisches Programmieren"

Transkript

1 Genetisches Programmieren Marc Musch Inhaltsverzeichnis 1 Grundkonzept 2 2 Exkurs: LISP 3 3 Vorbereitung eines Laufes Festlegen der Terminalmenge und der Funktionenmenge Bestimmen eines geeigneten Fitnessmaßes Festlegen der Strategieparameterwerte und des Abbruchkriteriums 5 4 Durchführung eines Laufes Schritt 1: Initialisierung Schritt 2: Bewerten der Ausgangslösung Schritt 3: Bilden der neuen Population Schritt 4: Wiederholung Schritt 3 bis Abbruchkriterium greift 8 5 Ein einfaches Beispiel: Das 2-Quader-Problem 9 6 Erweiterungen von GP Mutation Automatisch Definierte Funktionen (ADFs) Sonstige Erweiterungen im Überblick 13 Literatur Juni 2004

2 Zusammenfassung Von vielen wird als nächster großer Schritt der Programmierung die Entwicklung von Programmen gesehen die sich selbst schreiben. In den späten 50ern wurden schon erste Versuche unternommen solche Programme, die eine Aufgabenstellung lösen, ohne explizit dafür programmiert worden zu sein, zu entwickeln. Jedoch ohne großen Erfolg, vor allem weil die Computer noch nicht leistungsfähig genug waren. Seit Mitte der 80er hat man diese Forschung wieder verstärkt aufgenommen und als Vorbild dienen evolutionäre Prinzipien aus der Biologie. Vor allem John R. Koza hat starke Fortschritte in diesem Gebiet erzielt. Diese Ausarbeitung beschäftigt sich mit diesem so genannten Genetischen Programmieren. 1 Grundkonzept Um das Grundkonzept der Genetischen Programmierung (GP) zu verstehen, ist es hilfreich einen Blick auf die natürliche Evolution zu werfen. Vor allem drei Grundkonzepte von Charles Darwin dienen als Vorlage für die GP. Abstammungshypothese: Alle Organismen stammen durch einen kontinuierlichen Verzweigungsprozess von gemeinsamen Vorfahren ab. In der GP gibt es eine Anzahl von ersten stochastisch generierten Programm-Individuen, von diesen stammen alle weiteren Programme ab. Das einfache Eltern-Kind Prinzip, ein Kind erbt die genetisch bedingten Eigenschaften der beiden Elternteile. Programme besitzen unterschiedliche Größe und Komplexität, diese setzen sich aus Funktionen, Variablen und Konstanten zusammen. Allmählichkeitshypothese: Evolution vollzieht sich nicht sprunghaft, sondern allmählich in kleinen Schritten. Automatische Programmentwicklung mit Hilfe der GP erfordert hohe Rechenkapazitäten, da die Veränderungen bis zum endgültigen Programm sehr viele Schritte (Generationen) benötigen. Selektionshypothese: Wirksames Prinzip des Wandels ist die natürliche Selektion durch die Umwelt. Das Grundkonzept der Evolution: nur der stärkste überlebt. In der GP dürfen sich nur die fittesten Programm-Individuen weiter verbreiten, die die näher am gewünschten Ergebnis liegen als ihre Konkurrenten. Mit GP können automatisch Programme entwickelt werden, die Probleme anhand von Beispieldaten lösen, ohne dass der Programmierer die richtige Lösung kennen muss. Er muss nur problemangemessene Variablen, Konstanten und Funktionen der GP zur Verfügung stellen. 2

3 Abbildung 1. Grundsätzlicher Ablauf der Genetischen Programmierung 2 Exkurs: LISP GP-Individuen (Programme) sind meistens baumartig strukturiert und Funktionen müssen genau so wie Variablen und Konstanten umplatziert werden. Daher ist es hilfreich eine Programmiersprache für die Implementierung zu wählen, die diese Eigenschaft bestmöglichst unterstützt: LISP (List Processing Language). Vorteile: Syntaktisch einfache Sprache, keine Unterscheidung zwischen Programmen und Daten, beide zusammen als Listen mit Klammerung aufgebaut (Ähnlichkeit mit Prolog). LISP Ausdrücke lassen sich als Baum darstellen, Größe und Form lassen sich leicht verändern. LISP ist eine interpretierende Sprache, auch geschachtelte LISP-Listen können einfach mit einem Aufruf berechnet werden. Abbildung 2. Programmbaum des LISP Ausdruckes (* 11( )) = 88 Natürlich kann GP auch mit anderen Sprachen realisiert werden. Jedoch eignet sich die Baumstruktur sehr gut zur Erklärung von GP. 3

4 3 Vorbereitung eines Laufes Ein Lauf bezeichnet die Durchführung eines GP Vorganges von der ersten Population bis zur fertigen Version oder bis zum Abbruch. Als Vorbereitung muss eine Sprache definiert werden in der die Programme entstehen sollen, dies geschieht durch die Terminalmenge (terminal set) und die Funktionenmenge (function set). Desweiteren müssen die entstehenden Programme bewertet werden, hierzu wird ein Fitnessmaß verwendet. Außerdem müssen noch einige Strategien aufgestellt werden und man muss sich für ein Abbruchkriterium entscheiden, damit der Lauf terminiert. 3.1 Festlegen der Terminalmenge und der Funktionenmenge Die Elemente der Terminalmenge sind problemangemessene Variablen und Konstanten, die Funktionenmenge umfasst die nötigen Funktionen für das Programm. GP versucht mit diesen beiden Mengen, ein Programm zu erzeugen, das die Aufgabenstellung bestmöglich löst. Die Entscheidung, welche Elemente in die Mengen aufgenommen werden, hat einen großen Einfluss auf den GP-Lauf. Werden nur wenige Elemente ausgewählt kann GP vielleicht keine effiziente Lösung finden, werden hingegen zu viele aufgenommen werden die Lösungen zu kompliziert oder es entsteht keine befriedigende Programmversion bis zum Ende des Laufes. In LISP entsprechen die Elemente der Funktionenmenge den Knoten und die der Terminalmenge den Blättern. Mögliche Elemente der Funktionenmenge sind: arithmetische Operationen, mathematische Funktionen(Sin, Cos, Sqrt,...), boolsche Operationen, Verzweigungen, Iterationen, anwendungsspezifische Funktionen. Weiter wird der Funktionenmenge noch ein argument map zugeordnet, es enthält die Anzahl der Argumente jeder Funktion. In der Terminalmenge gibt es neben den Variablen und Konstanten noch die ephermal random constants, da für manche Probleme Konstanten nötig sind deren Werte jedoch breit gefächert sind (z.b. Regressionsfunktionen). Sie dienen als Platzhalter (Dummy) in einem Knoten bzw. Blatt und werden in jeder Generation neu bestimmt, wären sie normale Konstanten würden sie, wegen ihrer hohen Anzahl, die anderen Elemente bei der zufälligen Wahl verdrängen. Bei der Wahl der beiden Mengen müssen zwei Dinge berücksichtigt werden: Angemessenheit: Es muss möglich sein mit den Elementen der Mengen eine Lösung zu finden. Abgeschlossenheit: Jede Funktion muss jeden Wert als Argument zulassen, der von anderen Funktionen zurückgegeben werden kann und jedes Element der Terminalmenge. 4

5 Also muss etwa die Division einen gültigen Wert bei der Division durch 0 zurückgeben, meist wird dann eine 1 zurück gegeben. Ein weiteres Problem ergibt sich bei Schleifen, hier muss berücksichtigt werden, dass keine Endlos- Schleifen entstehen, z.b. durch konstantes Abbrechen nach angemessen vielen Schritten. 3.2 Bestimmen eines geeigneten Fitnessmaßes Jedes entstehende Programm muss durch eine Fitnessuntersuchung bewertet werden. Nur Programme mit guten Fitnesswerten dürfen sich fortpflanzen. Hierzu wird eine Fitnessfunktion aufgestellt, diese muss als Ergebnis die unterschiedlichen Qualitäten der Programme möglichst differenziert wiedergeben, das gleiche gilt für Teillösungen. Eine Fitnessfunktion kann mehrere Parameter berücksichtigen, wie neben der Funktionalität auch die Komplexität. Die Fitness eines Programms kann durch so genannte Trainingsdaten berechnet werden, hierbei werden einige Beispielfälle deren Ergebnisse bekannt sind mit dem Programm berechnet, die Summe über die Abweichungen zu den richtigen Ergebnissen wird als Fitnessmaß benützt. Hier bedeutet also ein niedriger Wert, dass das Programm schon nahe an der richtigen Lösung ist. Man kann jedoch auch nur die Anzahl der richtig erkannten Fälle berücksichtigen, dann ist ein hoher Wert gut. Manchmal kann von den durch GP kreierten Programmen die genaue Lösung nicht erwartet werden, dann wird ein Toleranzbereich um das gewünschte Ergebnis aufgestellt. Wenn die Ausgabe des Programms in diesem Bereich liegt, wird es als richtig akzeptiert. 3.3 Festlegen der Strategieparameterwerte und des Abbruchkriteriums Nun muss man sich noch für einige Grundeinstellungen entscheiden. Wichtig ist hier die Populationsgröße, also wieviele Programm-Individuen je Generation nebeneinander existieren dürfen (also auch wie viele als Startpopulation dienen). Diese Anzahl wird vor allem durch die Leistungsfähigkeit der Hardware bestimmt. Des Weiteren muss man sich entscheiden, wann der GP-Lauf beendet werden soll, hierfür gibt es keine generellen Werte, da die benötigte Anzahl der Generationen stark von der Komplexität des gestellten Problems abhängt. Wird die maximale Anzahl von Generationen durchlaufen ist das Endergebnis das beste gefundene Programm im gesamten Lauf. Oft wird der Lauf abgebrochen, wenn ein Programm vorzeitig eine korrekte Lösung liefert. Um gute Strategieparameter zu finden müssen häufig erst einige Läufe durchgeführt werden, da die Ergebnisse wegen den stochastischen Einflüsse stark variieren. Weitere Strategieparameter werden im Abschnitt Durchführung eines Laufes behandelt. 5

6 4 Durchführung eines Laufes Jetzt zu der eigentlichen Durchführung eines Laufes, dieser gliedert sich in die folgenden vier Schritte. 4.1 Schritt 1: Initialisierung In der Initialisierungsphase muss erstmal eine Ausganspopulation von µ baumstrukturierten (LISP) Programmindividuen erzeugt werden. Hierbei wird zunächst aus der Funktionenmenge eine zufällige Funktion als Wurzel ausgewählt, die Knoten sind dann die Argumente für die Funktion (Anzahl bestimmt durch argument map). Für jeden Knoten wird nun aus der Funktionenmenge und der Terminalmenge zufällig ein Element gewählt, dabei bildet logischerweise ein Element aus der Terminalmenge ein Blatt. Damit diese Bäume nicht zu groß werden, wird eine maximale Höhe festgelegt. So entstehen nun die µ Programme. Duplikate, also identische Bäume, werden für die Ausgangspopulation nicht zugelassen. Abbildung 3. Entstehen eines Programmbaumes der Ausgangspopulation Die Programme in der Ausgangspopulation sollten sich möglichst stark voneinander unterscheiden. Um dies zu erreichen verwendet man beispielsweise die Methode half-ramping. Dabei werden alle Baumhöhen zwischen zwei und der Maximalhöhe gleich oft erzeugt. Für jede dieser Baumhöhen erzeugt man je die Hälfte der Vertreter auf eine der beiden folgenden Weisen: Bei der einen Hälfte sind alle Pfade im Baum zwischen Wurzel und Blättern gleichlang und entsprechen der Höhe des Baumes. Die andere Hälfte der Bäume dieser Höhe wird wie oben beschrieben erzeugt. Ein Kritikpunkt an half-ramping ist, dass die generierten Bäume nicht mehr wirklich zufälligen Charakter haben. [1] 6

7 4.2 Schritt 2: Bewerten der Ausgangslösung Mit der Fitnessfunktion werden nun die in der Initialisierung entstandenen Programme bewertet, im Normalfall sind die Fitnesswerte extrem schlecht, da die Programme ausschließlich stochastisch erzeugt wurden, trotzdem lassen sie sich damit differenzieren, da es bessere und schlechtere gibt. 4.3 Schritt 3: Bilden der neuen Population Nun muss die leere neue Population mit Programmindividuen aufgefüllt werden. Die Programme der vorherigen Generation sind die Eltern für die nun entstehenden Individuen, dabei werden die nächsten drei Teilschritte so lange ausgeführt bis auch die neue Population µ Programme umfasst Schritt 3-1: Operatorwahl Als nächstes muss entschieden werden, wie sich die Eltern fortpflanzen sollen, im Grundkonzept der GP gibt es zwei evolutionäre Möglichkeiten, Reproduktion und Crossover 1. Diesen beiden Operatoren werden Wahrscheinlichkeiten zugeordnet p r und p c, wobei p r +p c = 1. Anhand dieser Wahrscheinlichkeitsverteilung wird ein Operator stochastisch ausgewählt. Es gibt auch noch weitere Operatoren, wie die Mutation (diese wird später behandelt) Schritt 3-2: Stochastische Selektion und Replikation Die Eltern werden stochastisch selektiert, dabei werden bevorzugt die Programme mit einem guten Fitnesswert ausgewählt, damit eine Verbesserung erzielt wird. Das einfachste Modell ist die fitnessproportionale Selektion, dabei wird ein Individuum mit umso größerer Wahrscheinlichkeit ausgewählt, je größer dessen Fitness ist. Am häufigsten wird jedoch die Turnierselektion (Wettkampfselektion) angewandt. Dabei wird zufällig, gleichverteilt eine bestimmte Anzahl Individuen aus der Generation in eine Auswahlgruppe genommen und aus dieser Gruppe dann das fitteste Individuum als Elter ausgewählt. So werden auch Programme mit einem durchschnittlichen Fitnesswert ausgewählt, falls die Gruppe aus Individuen besteht, die nicht so gute Fitnesswerte haben, und die neue Generation bleibt breit gefächert. Die ausgewählten Programme werden dabei in die neue Population kopiert und verbleiben somit unverändert in der alten, die Selektion entspricht also dem Urnenmodell Ziehen mit Zurücklegen. 1 Hier findet biologisch gesehen ein Austausch von DNA/Gene statt 7

8 4.3.3 Schritt 3-3: Operatoranwendung und Ergänzen der neuen Population Wird als Operator die Reproduktion gewählt, wird das Individuum ohne Veränderung in die neue Population übernommen. Beim Crossover werden zwei Individuen ausgewählt, in jedem wird stochastisch ein Knoten oder Blatt als Crossoverpunkt bestimmt. Dabei ist die Wahrscheinlichkeit p ip für einen Knoten meist höher als die für ein Blatt p ep. Die ausgewählten Crossoverpunkte werden dann ausgetauscht, falls vorhanden mit ihren gesamten unterliegenden Teilbäumen, und die beiden so neu entstehenden Individuen in die neue Population übernommen. Dabei werden jedoch Individuen welche die maximale Höhe überschreiten verworfen. Zum Schluss wird deren Fitnesswert berechnet. Abbildung 4. Beispiel für ein Crossover 4.4 Schritt 4: Wiederholung Schritt 3 bis Abbruchkriterium greift Schritt 3 wird solange wiederholt, bis das Abbruchkriterium greift, also wenn die maximale Generationenanzahl t max erreicht ist oder eine perfekte Lösung gefunden wurde. So entsteht langsam aus den stochastisch generierten Ausgangsprogrammen eine bessere Lösung für das Anwendungsproblem. Oft wird das Ergebnis dann noch manuell nachbearbeitet um Lesbarkeit und Verständlichkeit zu verbessern. 8

9 Populationsgröße µ max. Generationen t max 51 Crossover-Wahrscheinlichkeit p c 0,9 Reproduktions-Wahrscheinlichkeit p r 0,1 Lage Crossover-Punkt p ip / p ep 0,9 / 0,1 max. Baumhöhe Ausgangspopulation 6 max. Baumhöhe während des restl Laufes 17 Initialisierungsmethode Selektionsverfahren half-ramping Wettkampf Tabelle 1 Standardeinstellungen wesentlicher GP Strategieparameter nach Koza [1] 5 Ein einfaches Beispiel: Das 2-Quader-Problem Um die bisherige Theorie in die Praxis umzusetzen nun ein einfaches Beispiel nach Koza [1]. Aufgabenstellung: Es soll ein Programm kreiert werden, das die Differenz D zweier Quader-Volumen berechnet, für einen Programmierer ist das keine schwere Aufgabe, er sieht den einfachen Zusammenhang D = L 1 B 1 H 1 L 2 B 2 H 2. Wir wollen nun jedoch dieses Problem mit GP lösen und nehmen an, dass wir nur zehn Beispielwerte für die Variablen kennen und deren richtige Ergebnisse D. Anhand dieser Trainingsdaten wollen wir nun einen GP-Lauf durchführen, dessen Ergebnis ein Programm ist, das nach Eingabe der sechs Variablen den Wert D berechnet. Festlegen der Terminalmenge und der Funktionenmenge: Die Terminalmenge T beinhaltet hier nur Variablen: T = {L 1, B 1, H 1, L 2, B 2, H 2 }. Ohne genaue Vorstellung von dem Ergebnis, wissen wir doch, dass es sich um ein mathematisches Problem handelt, daher bieten sich für die Funktionenmenge F die vier Grundrechenarten an: F = {+,,, :} Die Division ist die durch Null geschützte. Das argument map zu dieser Funktionenmenge gibt die Anzahl der Argumente für jede Funktion an: {2, 2, 2, 2} Bestimmen eines geeigneten Fitnessmaßes: Durch jedes erzeugte Programm können wir unsere zehn Beispieldaten berechnen lassen. Da wir jedes Ergebnis für D kennen, wissen wir um wie viel das Programm den tatsächlichen Wert verfehlt hat und können eine Fehlerdifferenz bilden. Es bietet sich hier an, alle zehn Fehlerdifferenzen aufzusummieren, wenn diese Summe nun bei einem Programm den Wert 0 erreicht, ist es perfekt. Wir lassen hier jedoch eine Toleranz von 0,01 zu. Festlegen der Strategieparameterwerte und des Abbruchkriteriums: Wir nehmen die Werte aus obiger Tabelle mit µ = Als Abbruchkriterium t max = 51 oder bis ein perfektes Programm gefunden wird. Nun wird 9

10 der eigentliche Lauf durchgeführt, wir wollen hierbei ein paar Ergebnisse betrachten. Ergebnisse: In der Ausgangspopulation ist der durchschnittliche Fitnesswert , das beste Programm erzielt einen Wert von 783 und hat den Aufbau (als mathematische Formel dargestellt): H 1 L 1 (B 1 + H 1 B 2 L 2 ) Die Variable H 2 kommt noch gar nicht vor und auch ansonsten hat der Aufbau wenig Ähnlichkeit mit der richtigen Lösung. In den sieben weiteren Generationen hat das jeweilig beste Programm einen Fitnesswert von 778, 510, 138, 117, 53 und 51, in der achten Generation gibt es ein Programm mit Fitnesswert 4,44. es hat den mathematischen Aufbau: B B 1 H 1 L 1 B 2 H 2 L 2 1 +L 1 L 1 B 2 B 2 L 2 L 2 B 2 Korrekt bis auf den letzten Fehlerterm, in Generation 11 taucht dann ein perfektes Programm auf, das sogar genau der obigen Formel entspricht. Dass ein perfektes Programm auftaucht ist nicht immer der Fall, meist gibt es bei GP nur ein Programm mit einer Näherungslösung oder es ist weitaus komplizierter als die Lösung auf die ein Mensch kommen würde. 6 Erweiterungen von GP 6.1 Mutation Die bisherige Form des Crossover wird seit einiger Zeit kritisch diskutiert, da sie als ineffizient gilt, es werden nur vorhandene Teilbäume ausgetauscht und keine neuen erzeugt, dadurch besteht die Gefahr des Feststeckens. Daher wird auch die Mutation als Operator verwendet, sie fließt dann mit der Wahrscheinlichkeit p m in die stochastische Operatorselektion mit ein (p r + p c + p m = 1). Nach der Selektion eines Elters wird zufällig ein Knoten als Mutationspunkt gewählt, hier wird dann der Teilbaum, dessen Wurzel der Mutationspunkt ist, mit einem neuen stochastisch generierten Teilbaum ersetzt. Der stochastisch kreierte Teilbaum hat eine geringere Maximalhöhe als die Ausgangsbäume, um die Wahrscheinlichkeit zu senken, dass ein Baum die Maximalhöhe überschreitet und dadurch das Programm zu groß wird. Tut er dies doch, wird die Änderung verworfen. Eine andere Art der Mutation besteht darin nur ein einzelnes Element des Baumes auszutauschen. Durch Aufnehmen der Mutation kann die Populationsgröße verringert werden ohne die Vielfalt der Programme und ihrer Entwicklungen von Generation zu Generation einzuschränken. 10

11 6.2 Automatisch Definierte Funktionen (ADFs) In der Informatik ist die divide and conquer Strategie sehr beliebt, man löst ein Problem indem man es in Teilprobleme zerlegt und diese dann einzeln behandelt. In GP versucht man nun auch diese Strategie anzuwenden, ein Konzept sind die Automatisch Definierten Funktionen (ADFs), die inzwischen eine Standarderweiterung in GP-Systemen, zum Lösen komplexer Probleme, sind. Es geht darum modular aufgebaute Programme zu generieren die aus ADFs und einem Hauptprogramm bestehen, dabei ist nicht vorgegeben wie und ob überhaupt einzelne ADFs verwendet werden. Diese Modularisierung führt bei komplexen Problemen zu besserer Verständlichkeit der Programme und macht den Prozess der Problemlösung effizienter, da Lösungen von Teilproblemen wiederholt aufgerufen werden können und dadurch die Programme kleiner werden. Dies bringt zusätzlich den Vorteil, dass die Hardwareanforderung sinkt, da die aufwändige Fitnessberechnung der Programme vereinfacht wird. Der Vorteil von ADFs liegt nur in komplexen Problemstellungen, bei einfachen Problemen verkompliziert die Verwendung von ADFs die Lösung. [3] Vorbereitung eines Laufes mit ADFs Die Vorbereitungsschritte bei der Verwendung von ADFs sind grundsätzlich die gleichen wie ohne, jedoch müssen einige Programmarchitekturentscheidungen getroffen werden. Diese gelten für alle Programmindividuen der GP- Population. Die Anzahl der ADFs in einem Programm, sowie die Anzahl der Argumente für jede ADF werden fest bestimmt. Bei der Wahl der Argumentenanzahl muss ein Kompromiss gefunden werden. Um den evolutionären Lösungsprozess nicht einzuschränken bietet sich eine hohe Anzahl an Argumenten an, jedoch erhöht dies die Rechenzeit und damit die Hardwareanforderung. Als nächstes muss noch bestimmt werden inwiefern und ob überhaupt sich ADFs gegenseitig aufrufen dürfen, also sollen die ADFs unabhängig voneinander Teilaufgaben bearbeiten oder aufeinander aufbauen. Sich selbst aufrufende ADFs werden jedoch meist nicht erlaubt, Rekursion ist in GP noch ein aktiver Forschungszweig. Der nächste Schritt ist das Festlegen der Terminalmenge und Funktionenmenge. Diese werden jetzt jedoch für jede ADF und das Hauptprogramm einzeln bestimmt. Die Terminalmenge für das Hauptprogramm ist die gleiche wie ohne ADFs, so auch die Funktionenmenge, jedoch wird diese mit den Namen der ADFs erweitert. Die Terminalmenge einer ADF enthält soviele Dummy- Variablen wie sie Argumente hat, deren Werte werden beim Aufruf der ADF festgelegt. Die Funktionenmenge einer ADF enthält die Funktionen die man auch bei GP ohne ADF wählen würde und zusätzlich noch die Namen der ADFs die von dieser ADF aufgerufen werden können. Die restlichen Vorberei- 11

12 tungsschritte sind die gleichen wie ohne ADFs. Im folgenden ein Beispiel für ein Programmaufbau mit zwei ADFs in LISP. Abbildung 5. Struktur eines LISP-Programmbaumes mit zwei ADFs Oberhalb der gestrichelnden Linie ist die feste Programmarchitektur die bei allen Individuen gleich ist, unterhalb ist der von den evolutionären Algorithmen beeinflussbare Bereich. Mit defun wird in LISP eine Funktion deklariert. Die Funktion progn evaluiert jedes ihrer Argumente sequentiell von links nach rechts, also im Beispiel wird ADF0 evaluiert und dadurch definiert, dann ADF1 und zum Schluss der Hauptprogrammast, der dann auch die entgültige Ausgabe gibt Durchführung eines Laufes mit ADFs Es wird wieder stochastisch eine Ausgangspopulation erzeugt, hier muss berücksichtigt werden, dass jedes Programm die festgelegte Programmarchitektur aufweist. Die nicht festen Knoten unterhalb der gestrichelten Linie in Abbildung 5 werden für jede ADF und das Hauptprogramm, mit der jeweiligen Terminalmenge und Funktionenmenge, wie beim Lauf ohne ADFs stochastisch generiert. Bei der Verwendung von ADFs wird das strukturellerhaltende Crossover verwendet. Es wird wie beim normalen Crossover ein Elter ausgewählt und in diesem stochastisch ein Knoten als Crossoverpunkt bestimmt, beim anderen Elter wird die Auswahl jedoch dahingehend eingeschränkt, dass der Crossoverpunkt nur in dem gleichen Teilbaum liegen darf. Also wenn der Crossoverpunkt im ersten Programm in der ADF1 liegt, muss der im zweiten Programm ebenfalls in der ADF1 liegen, damit stets syntaktisch korrekte, gültige Lösungen produziert werden. Wird dadurch eine ADF verändert die mehrmals in einem Programm benützt wird, kann sich ein Crossover besonders stark auswirken. 12

13 6.3 Sonstige Erweiterungen im Überblick Da GP eine sehr hohe Rechenzeitanforderung hat, bietet sich die Implementierung auf paralleler Hardware an, so soll vor allem die Parallelisierung der aufwändigen Fitnessermittlung einen GP-Lauf beschleunigen wurde von Genetic Programming Inc. ein 1000-Pentium Beowulf-Style Cluster Computer (mit 1000 Pentium II 350 MHz Prozessoren) für komplexe GP-Läufe gebaut. Einen anderen Ansatz zur Beschleunigung verfolgen Peter Nordin und Wolfgang Banzhaf. Sie Implementieren die GP-Individuen in Maschinensprache, dadurch entfällt die Interpretierung der Programme zur Laufzeit. So ergeben sich Geschwindigkeitsvorteile bis zum Faktor 100 gegenüber C-Programme. Mit der Implementierung in Maschinensprache haben Nordin und Banzhaf es auch geschafft einen Roboter mit GP zu trainieren. So wurde automatisch im System des Roboters ein Programm generiert das ihn geradeaus fahren lässt und mit dem er Hindernissen ausweichen kann 2. Literatur [1] Volker Nissen: Einführung in Evolutionäre Algorithmen, Vieweg Verlag, 1997, Braunschweig, Wiesbaden [2] Michael Negnevitsky: Artificial Intelligence: A Guide to Intelligent Systems, Addison Wesley, 2002, Harlow, England [3] Genetic Programming Inc., John R. Koza, 2 Siehe genet-alg.html 13

Proseminar. Genetische und Evolutionäre Algorithmen. Genetische Programmierung

Proseminar. Genetische und Evolutionäre Algorithmen. Genetische Programmierung Proseminar Genetische und Evolutionäre Algorithmen Genetische Programmierung Vortragender: Sebastian Stoll 1 Inhalt: Idee Grundkonzept Vorbereitung Durchführung Beispiel Automatisch definierte Funktionen

Mehr

Genetische und Evolutionäre Algorithmen (Vol. 1)

Genetische und Evolutionäre Algorithmen (Vol. 1) Vortrag über Genetische und Evolutionäre Algorithmen (Vol. ) von Adam El Sayed Auf und Kai Lienemann Gliederung: ) Einführung 2) Grundkonzept 3) Genaue Beschreibung des Genetischen Algorithmus Lösungsrepräsentation

Mehr

Genetische Programmierung

Genetische Programmierung 15. Juli 2007 Anfang der 90er von John R. Koza entwickelt. Verfahren zur automatisierten Erstellung von Programmen. Von der Evolution inspiriert. Anforderungen an die Möglichst korrekte Lösung ergeben

Mehr

Evolution und Algorithmen

Evolution und Algorithmen Kapitel 6 Spezialvorlesung Modul 10-202-2206 (Fortgeschrittene Methoden in der Bioinformatik) Jana Hertel Professur für Bioinformatik Institut für Informatik Universität Leipzig Machine learning in bioinformatics

Mehr

10. Vorlesung Stochastische Optimierung

10. Vorlesung Stochastische Optimierung Soft Control (AT 3, RMA) 10. Vorlesung Stochastische Optimierung Genetische Algorithmen 10. Vorlesung im Aufbau der Vorlesung 1. Einführung Soft Control: Definition und Abgrenzung, Grundlagen "intelligenter"

Mehr

Survival of the Fittest Optimierung mittels Genetischer Algorithmen

Survival of the Fittest Optimierung mittels Genetischer Algorithmen Übung zu Organic Computing Survival of the Fittest Optimierung mittels Genetischer Algorithmen Sabine Helwig Lehrstuhl für Informatik 12 (Hardware-Software-Co-Design) Universität Erlangen-Nürnberg sabine.helwig@informatik.uni-erlangen.de

Mehr

Genetische Algorithmen von der Evolution lernen

Genetische Algorithmen von der Evolution lernen Genetische Algorithmen von der Evolution lernen (c) Till Hänisch 2003, BA Heidenheim Literatur zusätzlich zum Lit. Verz. Nils J. Nilsson Artificial Intelligence Morgan Kaufmann, 1998 Ansatz Bisher: Problemlösung

Mehr

Anwendung genetischer Algorithmen zur Lösung des n Dame Problems und zur Optimierung von Autoprofilen

Anwendung genetischer Algorithmen zur Lösung des n Dame Problems und zur Optimierung von Autoprofilen Anwendung genetischer Algorithmen zur Lösung des n Dame Problems und zur Optimierung von Autoprofilen Jana Müller Seminar Das Virtuelle Labor Otto von Guericke Universität Magdeburg Gliederung 1. Motivation

Mehr

GP-Music: An Interactive Genetic Programming System for Music Generation with Automated Fitness

GP-Music: An Interactive Genetic Programming System for Music Generation with Automated Fitness GP-Music: An Interactive Genetic Programming System for Music Generation with Automated Fitness Raters Brad Johanson, Riccardo Poli Seminarvortrag von Thomas Arnold G ˇ ˇ ˇ ˇ WS 2012/13 TU Darmstadt Seminar

Mehr

Synthese Eingebetteter Systeme. Übung 6

Synthese Eingebetteter Systeme. Übung 6 12 Synthese Eingebetteter Systeme Sommersemester 2011 Übung 6 Michael Engel Informatik 12 TU Dortmund 2011/07/15 Übung 6 Evolutionäre Algorithmen Simulated Annealing - 2 - Erklären Sie folgende Begriffe

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 26 Einstieg in die Informatik mit Java Methoden Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 26 1 Methoden 2 Methodendefinition 3 Parameterübergabe, Methodenaufruf

Mehr

Genetisches Programmieren einfacher Roboterfähigkeiten

Genetisches Programmieren einfacher Roboterfähigkeiten Genetisches Programmieren einfacher Roboterfähigkeiten Ingo Boersch SG Informatik Vortrag Motivation Problemstellung Lösungsidee, Versuchsaufbau Experimente Video Ergebnisse, Zukunft 2 Motivation Lebewesen

Mehr

Adaptive Systeme. Prof. Dr.-Ing. Heinz-Georg Fehn Prof. Dr. rer. nat. Nikolaus Wulff

Adaptive Systeme. Prof. Dr.-Ing. Heinz-Georg Fehn Prof. Dr. rer. nat. Nikolaus Wulff Adaptive Systeme Evolutionäre Algorithmen: Überlebenskampf und Evolutionäre Strategien Prof. Dr.-Ing. Heinz-Georg Fehn Prof. Dr. rer. nat. Nikolaus Wulff Überblick Einleitung Adaptive Filter Künstliche

Mehr

Methoden. Gerd Bohlender. Einstieg in die Informatik mit Java, Vorlesung vom

Methoden. Gerd Bohlender. Einstieg in die Informatik mit Java, Vorlesung vom Einstieg in die Informatik mit Java, Vorlesung vom 2.5.07 Übersicht 1 2 definition 3 Parameterübergabe, aufruf 4 Referenztypen bei 5 Überladen von 6 Hauptprogrammparameter 7 Rekursion bilden das Analogon

Mehr

Optimale Produktliniengestaltung mit Genetischen Algorithmen

Optimale Produktliniengestaltung mit Genetischen Algorithmen Optimale Produktliniengestaltung mit Genetischen Algorithmen 1 Einleitung 2 Produktlinienoptimierung 3 Genetische Algorithmen 4 Anwendung 5 Fazit Seite 1 Optimale Produktliniengestaltung mit Genetischen

Mehr

Evolutionäre Algorithmen Genetische Programmierung

Evolutionäre Algorithmen Genetische Programmierung Evolutionäre Algorithmen Genetische Programmierung Prof. Dr. Rudolf Kruse Pascal Held {kruse,pheld}@iws.cs.uni-magdeburg.de Otto-von-Guericke-Universität Magdeburg Fakultät für Informatik Institut für

Mehr

Java Anweisungen und Ablaufsteuerung

Java Anweisungen und Ablaufsteuerung Informatik 1 für Nebenfachstudierende Grundmodul Java Anweisungen und Ablaufsteuerung Kai-Steffen Hielscher Folienversion: 24. Januar 2017 Informatik 7 Rechnernetze und Kommunikationssysteme Inhaltsübersicht

Mehr

Evolu&onäre+Algorithmen+ + Kapitel+7:+Gene&c+Programming+(GP)!

Evolu&onäre+Algorithmen+ + Kapitel+7:+Gene&c+Programming+(GP)! Evolu&onäre+Algorithmen+ + Kapitel+7:+Gene&c+Programming+(GP)! Sanaz!Mostaghim! Intelligente!Systeme!! Ins2tut!für!Wissens8!und!Sprachverarbeitung!(IWS)! SS!2015!! Outline Motivation Genetische Programmierung

Mehr

Die Höhe von binären Suchbäumen Ausarbeitung zum Seminar zu Stochastischen Rekursionsgleichungen im WS 2011/2012

Die Höhe von binären Suchbäumen Ausarbeitung zum Seminar zu Stochastischen Rekursionsgleichungen im WS 2011/2012 Die Höhe von binären Suchbäumen Ausarbeitung zum Seminar zu Stochastischen Rekursionsgleichungen im WS 011/01 Sandra Uhlenbrock 03.11.011 Die folgende Ausarbeitung wird, basierend auf Branching Processes

Mehr

Heuristische Verfahren

Heuristische Verfahren Heuristische Verfahren Bei heuristischen Verfahren geht es darum in polynomieller Zeit eine Näherungslösung zu bekommen. Diese kann sehr gut oder sogar optimal sein, jedoch gibt es keine Garantie dafür.

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 20 Einstieg in die Informatik mit Java Rekursion Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 20 1 Überblick 2 Rekursion 3 Rekursive Sortieralgorithmen 4 Backtracking

Mehr

Dynamisches Huffman-Verfahren

Dynamisches Huffman-Verfahren Dynamisches Huffman-Verfahren - Adaptive Huffman Coding - von Michael Brückner 1. Einleitung 2. Der Huffman-Algorithmus 3. Übergang zu einem dynamischen Verfahren 4. Der FGK-Algorithmus 5. Überblick über

Mehr

Algorithmen & Programmierung. Steuerstrukturen im Detail Selektion und Iteration

Algorithmen & Programmierung. Steuerstrukturen im Detail Selektion und Iteration Algorithmen & Programmierung Steuerstrukturen im Detail Selektion und Iteration Selektion Selektion Vollständige einfache Selektion Wir kennen schon eine Möglichkeit, Selektionen in C zu formulieren: if

Mehr

Programmieren 1 C Überblick

Programmieren 1 C Überblick Programmieren 1 C Überblick 1. Einleitung 2. Graphische Darstellung von Algorithmen 3. Syntax und Semantik 4. Einstieg in C: Einfache Sprachkonstrukte und allgemeiner Programmaufbau 5. Skalare Standarddatentypen

Mehr

Genetische Algorithmen

Genetische Algorithmen Genetische Algorithmen Shawn Keen Zusammenfassung Eine weitere Herangehensweise an das maschinelle Lernen ist die Nachahmung evolutionärer Prozesse. Hier wollen wir uns mit den sogenannten Genetischen

Mehr

Java Ablaufsteuerung (Beispiele)

Java Ablaufsteuerung (Beispiele) Informatik 1 für Nebenfachstudierende Grundmodul Java Ablaufsteuerung (Beispiele) Kai-Steffen Hielscher Folienversion: 16. Januar 2018 Informatik 7 Rechnernetze und Kommunikationssysteme Blöcke Anweisungen

Mehr

Belegarbeit. Erstellung eines ProLog Programms

Belegarbeit. Erstellung eines ProLog Programms Belegarbeit Erstellung eines ProLog Programms Christian Fischer, Matthias Lenk, 44597 BNC 44683 BNC Aufgabenstellung: Erstellung eines POLOG Programms, mit dem alle nicht- repetitiven Wörter über dem Alphabet

Mehr

Adaptive Systeme. Prof. Dr.-Ing. Heinz-Georg Fehn Prof. Dr. rer. nat. Nikolaus Wulff

Adaptive Systeme. Prof. Dr.-Ing. Heinz-Georg Fehn Prof. Dr. rer. nat. Nikolaus Wulff Adaptive Systeme Evolutionäre Algorithmen Teil II Evolutionsfenster durch Mutation und sexuelle Rekombination Prof. Dr.-Ing. Heinz-Georg Fehn Prof. Dr. rer. nat. Nikolaus Wulff Evolutionäre Algorithmen

Mehr

b) Nennen Sie vier hinreichende Bedingungen für Evolution. b) Anzahl fortlaufender Einsen von rechts. c) Sind in a) oder b) Plateaus enthalten?

b) Nennen Sie vier hinreichende Bedingungen für Evolution. b) Anzahl fortlaufender Einsen von rechts. c) Sind in a) oder b) Plateaus enthalten? Übungsblatt LV Künstliche Intelligenz, Evolutionäre Algorithmen (), 204 Exercise. Evolution a) Finden Sie zwei Evolutionsbeispiele auÿerhalb der Biologie. Identizieren Sie jeweils Genotyp, Phänotyp, genetische

Mehr

Kontrollstrukturen -- Schleifen und Wiederholungen

Kontrollstrukturen -- Schleifen und Wiederholungen Kontrollstrukturen -- Schleifen und Wiederholungen Informatik für Elektrotechnik und Informationstechnik Benedict Reuschling benedict.reuschling@h-da.de Hochschule Darmstadt Fachbereich Informatik WS 2013/14

Mehr

Datenstrukturen & Algorithmen

Datenstrukturen & Algorithmen Datenstrukturen & Algorithmen Matthias Zwicker Universität Bern Frühling 2010 Übersicht Dynamische Programmierung Einführung Ablaufkoordination von Montagebändern Längste gemeinsame Teilsequenz Optimale

Mehr

Labor Software-Entwicklung 1

Labor Software-Entwicklung 1 Fakultät für Technik STUDIENGANG MEDIZINTECHNIK Labor Software-Entwicklung Vorbereitungsaufgaben zu Versuch 2 C-Programmierung Mathematische Berechnungen Wintersemester 205/206 Seite von 5 Vorbemerkungen

Mehr

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML.

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML. JavaScript JavaScript wird direkt in HTML-Dokumente eingebunden. Gib folgende Zeilen mit einem Texteditor (Notepad) ein: (Falls der Editor nicht gefunden wird, öffne im Browser eine Datei mit der Endung

Mehr

9 Minimum Spanning Trees

9 Minimum Spanning Trees Im Folgenden wollen wir uns genauer mit dem Minimum Spanning Tree -Problem auseinandersetzen. 9.1 MST-Problem Gegeben ein ungerichteter Graph G = (V,E) und eine Gewichtsfunktion w w : E R Man berechne

Mehr

Einführung in die Programmierung für NF. Übung

Einführung in die Programmierung für NF. Übung Einführung in die Programmierung für NF Übung 01 23.10.2013 Inhalt Übungen und Übungsblätter Uniworx und Abgabeformate Plagiarismus Algorithmen und Pseudocode Variablen und Methoden Boolsche Operatoren

Mehr

Der folgende Vortrag basiert auf dem Text A Polynomial Time Algorithm for the N-Queens Problem von Rok Sosic und Jun Gu aus dem Jahre 1990.

Der folgende Vortrag basiert auf dem Text A Polynomial Time Algorithm for the N-Queens Problem von Rok Sosic und Jun Gu aus dem Jahre 1990. Ein polynomieller Algorithmus für das N-Damen Problem 1 Einführung Der folgende Vortrag basiert auf dem Text A Polynomial Time Algorithm for the N-Queens Problem von Rok Sosic und Jun Gu aus dem Jahre

Mehr

Erfolgversprechende Konfigurationen für Versuche mit Evolutionsstrategien anhand von ausgewählten Testfunktionen

Erfolgversprechende Konfigurationen für Versuche mit Evolutionsstrategien anhand von ausgewählten Testfunktionen Erfolgversprechende Konfigurationen für Versuche mit Evolutionsstrategien anhand von ausgewählten Testfunktionen Krischan Keitsch 3. Juni 214 Zusammenfassung Um ein Optimierungsproblem mit einer Evolutionsstrategie

Mehr

Grundlagen und Basisalgorithmus

Grundlagen und Basisalgorithmus Grundlagen und Basisalgorithmus Proseminar -Genetische Programmierung- Dezember 2001 David König Quelle: Kinnebrock W.: Optimierung mit genetischen und selektiven Algorithmen. München, Wien: Oldenbourg

Mehr

Algorithmische Graphentheorie

Algorithmische Graphentheorie Algorithmische Graphentheorie Vorlesung 4: Suchstrategien Babeş-Bolyai Universität, Department für Informatik, Cluj-Napoca csacarea@cs.ubbcluj.ro 14. April 2017 HALBORDNUNG TOPOLOGISCHE ORDNUNG TOPOLOGISCHES

Mehr

Betriebliche Optimierung

Betriebliche Optimierung Betriebliche Optimierung Joachim Schauer Institut für Statistik und OR Uni Graz Joachim Schauer ( Institut für Statistik und OR Uni Graz Betriebliche ) Optimierung 1 / 19 1 Joachim Schauer ( Institut für

Mehr

Klausur Informatik Programmierung, Seite 1 von 8 HS OWL, FB 7, Malte Wattenberg

Klausur Informatik Programmierung, Seite 1 von 8 HS OWL, FB 7, Malte Wattenberg Klausur Informatik Programmierung, 22.09.2011 Seite 1 von 8 Klausurteilnehmer Name: Matrikelnummer: Wichtige Hinweise Es sind keinerlei Hilfsmittel zugelassen auch keine Taschenrechner! Die Klausur dauert

Mehr

Genetische Algorithmen. Uwe Reichel IPS, LMU München 8. Juli 2008

Genetische Algorithmen. Uwe Reichel IPS, LMU München 8. Juli 2008 Genetische Algorithmen Uwe Reichel IPS, LMU München reichelu@phonetik.uni-muenchen.de 8. Juli 2008 Inhalt Einführung Algorithmus Erweiterungen alternative Evolutions- und Lernmodelle Inhalt 1 Einführung

Mehr

Optimierung und Entwurf mit Evolutionären Algorithmen

Optimierung und Entwurf mit Evolutionären Algorithmen Fakultät Informatik, Institut für Angewandte Informatik, Lehrstuhl für Technische Informationssysteme Optimierung und Entwurf mit Evolutionären Algorithmen Dresden, 01.02.2007 Gliederung natürliche Evolution

Mehr

Electronic Design Automation (EDA) Technology Mapping

Electronic Design Automation (EDA) Technology Mapping Electronic Design Automation (EDA) Technology Mapping Überblick digitale Synthese Technology Mapping Abbildung durch die Abdeckung eines Baumes Partitionierung des DAG Dekomposition und Abdeckung Beispiel

Mehr

Optimierung. Vorlesung 12

Optimierung. Vorlesung 12 Optimierung Vorlesung 12 Letze Woche Approximieren von ILP durch randomisiertes Runden. Beispiel Set Cove Relaxiertes LP lösen und runden. Probleme: 1. Zielfunktionswert 2. Zulässigkeit 1. Linearität des

Mehr

Computational Intelligence 1 / 28. Computational Intelligence Evolutionsstrategien 3 / 28

Computational Intelligence 1 / 28. Computational Intelligence Evolutionsstrategien 3 / 28 1 / 28 Gliederung 1 Evolutionsstrategien Selektion Rekombination Mutation Ablauf 2 Genetische Programmierung Repräsentation Genetische Operatoren Ablauf Überblick Evolutionsstrategien 3 / 28 Repräsentation

Mehr

a) Fügen Sie die Zahlen 39, 38, 37 und 36 in folgenden (2, 3)-Baum ein:

a) Fügen Sie die Zahlen 39, 38, 37 und 36 in folgenden (2, 3)-Baum ein: 1 Aufgabe 8.1 (P) (2, 3)-Baum a) Fügen Sie die Zahlen 39, 38, 37 und 36 in folgenden (2, 3)-Baum ein: Zeichnen Sie, was in jedem Schritt passiert. b) Löschen Sie die Zahlen 65, 70 und 100 aus folgendem

Mehr

General Video Game AI Competition 2016

General Video Game AI Competition 2016 General Video Game AI Competition 2016 BFS, MCTS und GA - Einführung Miriam Moneke, Nils Schröder, Tobias Joppen Christan Wirth, Prof. J. Fürnkranz 27.04.2016 Fachbereich Informatik Knowledge Engineering

Mehr

12. Vorlesung Stochastische Optimierung

12. Vorlesung Stochastische Optimierung Soft Control (AT 3, RMA) 12. Vorlesung Stochastische Optimierung Differential Evolution 12. Vorlesung im Aufbau der Vorlesung 1. Einführung Soft Control: Definition und Abgrenzung, Grundlagen "intelligenter"

Mehr

Grammatiken. Grammatiken sind regelbasierte Kalküle zur Konstruktion von Systemen und Sprachen Überprüfung von Systemen und Sprachen

Grammatiken. Grammatiken sind regelbasierte Kalküle zur Konstruktion von Systemen und Sprachen Überprüfung von Systemen und Sprachen Grammatiken Grammatiken sind regelbasierte Kalküle zur Konstruktion von Systemen und Sprachen Überprüfung von Systemen und Sprachen Grammatiken eignen sich besonders zur Modellierung beliebig tief geschachtelter,

Mehr

Bei dem letzten Versuch wird deutlich, dass es auch für Objekte eine Ausgabe gibt. Genauer besteht die Standardausgabe aus dem Klassennamen, dem at-

Bei dem letzten Versuch wird deutlich, dass es auch für Objekte eine Ausgabe gibt. Genauer besteht die Standardausgabe aus dem Klassennamen, dem at- 233 Bei dem letzten Versuch wird deutlich, dass es auch für Objekte eine Ausgabe gibt. Genauer besteht die Standardausgabe aus dem Klassennamen, dem at- Symbol und einem merkwürdig aussehenden String.

Mehr

Verhalten. Def. und Nutzen von Verhalten. Pseudocode Schreibtischtest. Algorithmen

Verhalten. Def. und Nutzen von Verhalten. Pseudocode Schreibtischtest. Algorithmen Verhalten Def. und Nutzen von Verhalten Algorithmen Pseudocode Schreibtischtest Verhalten & Pseudocode Das Verhalten beschreibt, wie sich die Datenstrukturen (Variablen) eines Programms verändern müssen,

Mehr

Informatik II: Algorithmen & Datenstrukturen. Blättern Sie nicht um bevor Sie dazu aufgefordert werden!

Informatik II: Algorithmen & Datenstrukturen. Blättern Sie nicht um bevor Sie dazu aufgefordert werden! Albert-Ludwigs-Universität Institut für Informatik Prof. Dr. F. Kuhn Informatik II: Algorithmen & Datenstrukturen Montag, 29. August, 2014, 14:00 17:00 Name:...........................................................

Mehr

2. Hausübung Algorithmen und Datenstrukturen

2. Hausübung Algorithmen und Datenstrukturen Prof. Dr. Gerd Stumme, Folke Eisterlehner, Dominik Benz Fachgebiet Wissensverarbeitung 7.4.009. Hausübung Algorithmen und Datenstrukturen Sommersemester 009 Abgabetermin: Montag, 04.05.009, 10:00 Uhr 1

Mehr

Hauptseminar Repräsentationen für Optimierungsalgorithmen

Hauptseminar Repräsentationen für Optimierungsalgorithmen Stefan Bens Hauptseminar Dresden, 03.07.2008 Inhalt 1. Motivation 2. Einleitung 3. Repräsentationsarten und Eigenschaften 4. Beispiel 5. Zusammenfassung Folie 2 Als Repräsentation bezeichnet man die Kodierung

Mehr

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

Künstliche Intelligenz - Optimierungsprobleme - Suche in Spielbäumen Künstliche Intelligenz - Optimierungsprobleme - Suche in Spielbäumen Stephan Schwiebert WS 2009/2010 Sprachliche Informationsverarbeitung Institut für Linguistik Universität zu Köln Optimierungsprobleme

Mehr

b) Nennen Sie vier hinreichende Bedingungen für Evolution. b) Anzahl fortlaufender Einsen von rechts. c) Sind in a) oder b) Plateaus enthalten?

b) Nennen Sie vier hinreichende Bedingungen für Evolution. b) Anzahl fortlaufender Einsen von rechts. c) Sind in a) oder b) Plateaus enthalten? Übungsblatt LV Künstliche Intelligenz, Evolutionäre Algorithmen (1), 2015 Aufgabe 1. Evolution a) Finden Sie zwei Evolutionsbeispiele auÿerhalb der Biologie. Identizieren Sie jeweils Genotyp, Phänotyp,

Mehr

Vom Leichtesten zum Schwersten Sortieralgorithmen

Vom Leichtesten zum Schwersten Sortieralgorithmen Aktivität 7 Vom Leichtesten zum Schwersten Sortieralgorithmen Zusammenfassung Häufig verwendet man Computer dazu Listen von Elementen in eine bestimmte Ordnung zu bringen. So kann man beispielsweise Namen

Mehr

Übung zu Algorithmen und Datenstrukturen (für ET/IT)

Übung zu Algorithmen und Datenstrukturen (für ET/IT) Übung zu Algorithmen und Datenstrukturen (für ET/IT) Wintersemester 2012/13 Jakob Vogel Computer-Aided Medical Procedures Technische Universität München Komplexität von Programmen Laufzeit kann näherungsweise

Mehr

ABITURPRÜFUNG 2001 LEISTUNGSFACH INFORMATIK (HAUPTTERMIN)

ABITURPRÜFUNG 2001 LEISTUNGSFACH INFORMATIK (HAUPTTERMIN) Arbeitszeit: Hilfsmittel: ABITURPRÜFUNG 2001 270 Minuten LEISTUNGSFACH INFORMATIK (HAUPTTERMIN) Formeln und Tabellen für die Sekundarstufen I und II. Berlin: Paetec, Ges. für Bildung und Technik mbh; PC

Mehr

Der Alpha-Beta-Algorithmus

Der Alpha-Beta-Algorithmus Der Alpha-Beta-Algorithmus Maria Hartmann 19. Mai 2017 1 Einführung Wir wollen für bestimmte Spiele algorithmisch die optimale Spielstrategie finden, also die Strategie, die für den betrachteten Spieler

Mehr

2.2 Syntax, Semantik und Simulation

2.2 Syntax, Semantik und Simulation 2.2 Syntax, Semantik und Simulation Ein Java Programm ist eine Folge von Buchstaben. Nicht jede Folge von Buchstaben ist ein korrektes Java Programm! Wie kann man alle korrekten Java Programme beschreiben?

Mehr

Überblick. 3. Mathematische Grundlagen 3.1 Mengen und Abbildungen 3.2 Induktion und Rekursion 3.3 Boolsche Algebra

Überblick. 3. Mathematische Grundlagen 3.1 Mengen und Abbildungen 3.2 Induktion und Rekursion 3.3 Boolsche Algebra Überblick 3. Mathematische Grundlagen 3.1 Mengen und Abbildungen 3.2 3.3 Boolsche Algebra Peer Kröger (LMU München) Einführung in die Programmierung WS 14/15 72 / 179 Beweisprinzip der vollständigen Induktion

Mehr

Algorithmen und Datenstrukturen 1. EINLEITUNG. Algorithmen und Datenstrukturen - Ma5hias Thimm 1

Algorithmen und Datenstrukturen 1. EINLEITUNG. Algorithmen und Datenstrukturen - Ma5hias Thimm 1 Algorithmen und Datenstrukturen 1. EINLEITUNG Algorithmen und Datenstrukturen - Ma5hias Thimm (thimm@uni-koblenz.de) 1 Allgemeines Einleitung Zu den Begriffen: Algorithmen und Datenstrukturen systematische

Mehr

Praktikum Algorithmen-Entwurf (Teil 7)

Praktikum Algorithmen-Entwurf (Teil 7) Praktikum Algorithmen-Entwurf (Teil 7) 28.11.2005 1 1 Vier gewinnt Die Spielregeln von Vier Gewinnt sind sehr einfach: Das Spielfeld besteht aus 7 Spalten und 6 Reihen. Jeder Spieler erhält zu Beginn des

Mehr

FD Informatik Mauch SSDL (WHRS) Reutlingen. Algorithmen

FD Informatik Mauch SSDL (WHRS) Reutlingen. Algorithmen FD Informatik Mauch SSDL (WHRS) Reutlingen Algorithmen Überblick Definition Notwendigkeit Realisierung Grundkonzepte Umsetzung im Unterricht Algorithmus? Ein Algorithmus ist eine Verwaltungsvorschrift,

Mehr

Optimierung auf rekonfigurierbaren Rechensystemen

Optimierung auf rekonfigurierbaren Rechensystemen Optimierung auf rekonfigurierbaren Rechensystemen Evolution in dynamisch rekonfigurierbarer Hardware Peter Bungert Hartmut Schmeck Institut für Angewandte Informatik und Formale Bescheibungsverfahren (AIFB)

Mehr

Genetische Programmierung

Genetische Programmierung Bernd Ebersberger Genetische Programmierung Ein Instrument zur empirischen Fundierung ökonomischer Modelle A 234920 Deutscher Universitäts-Verlag Inhaltsverzeichnis Abbildungsverzeichnis Tabellenverzeichnis

Mehr

Programmierung WS18/19 Übungsblatt 9 (Abgabe Freitag, den um 12 Uhr)

Programmierung WS18/19 Übungsblatt 9 (Abgabe Freitag, den um 12 Uhr) Prof. aa Dr. J. Giesl S. Dollase, M. Hark, D. Korzeniewski Aufgabe 2 (Datenstrukturen in Haskell): (2 + 1 + 2 + 2.5 + 3.5 = 11 Punkte) In dieser Aufgabe geht es darum, arithmetische Ausdrücke auszuwerten.

Mehr

Datenstrukturen & Algorithmen Lösungen zu Blatt 4 FS 15

Datenstrukturen & Algorithmen Lösungen zu Blatt 4 FS 15 Eidgenössische Technische Hochschule Zürich Ecole polytechnique fédérale de Zurich Politecnico federale di Zurigo Federal Institute of Technology at Zurich Institut für Theoretische Informatik 18. März

Mehr

B*-BÄUME. Ein Index ist seinerseits wieder nichts anderes als eine Datei mit unpinned Records.

B*-BÄUME. Ein Index ist seinerseits wieder nichts anderes als eine Datei mit unpinned Records. B*-Bäume 1 B*-BÄUME Beobachtung: Ein Index ist seinerseits wieder nichts anderes als eine Datei mit unpinned Records. Es gibt keinen Grund, warum man nicht einen Index über einem Index haben sollte, und

Mehr

ÜBUNGSKLAUSUR Studienhalbjahr: 2. Semester. Datum: 20. Juli 2016 Bearbeitungszeit: 90 Minuten. Modul: T2INF Dozent: Stephan Schulz

ÜBUNGSKLAUSUR Studienhalbjahr: 2. Semester. Datum: 20. Juli 2016 Bearbeitungszeit: 90 Minuten. Modul: T2INF Dozent: Stephan Schulz Matrikelnummer: Fakultät Studiengang: Jahrgang / Kurs : Technik Angewandte Informatik 01 B/C/K ÜBUNGSKLAUSUR Studienhalbjahr:. Semester Datum: 0. Juli 01 Bearbeitungszeit: 90 Minuten Modul: TINF100.1 Dozent:

Mehr

Software Entwicklung 1. Fallstudie: Arithmetische Ausdrücke. Rekursive Klassen. Überblick. Annette Bieniusa / Arnd Poetzsch-Heffter

Software Entwicklung 1. Fallstudie: Arithmetische Ausdrücke. Rekursive Klassen. Überblick. Annette Bieniusa / Arnd Poetzsch-Heffter Software Entwicklung 1 Annette Bieniusa / Arnd Poetzsch-Heffter Fallstudie: Arithmetische Ausdrücke AG Softech FB Informatik TU Kaiserslautern Bieniusa/Poetzsch-Heffter Software Entwicklung 1 2/ 33 Überblick

Mehr

3.3 Optimale binäre Suchbäume

3.3 Optimale binäre Suchbäume 3.3 Optimale binäre Suchbäume Problem 3.3.1. Sei S eine Menge von Schlüsseln aus einem endlichen, linear geordneten Universum U, S = {a 1,,...,a n } U und S = n N. Wir wollen S in einem binären Suchbaum

Mehr

Das Problem des Handlungsreisenden

Das Problem des Handlungsreisenden Seite 1 Das Problem des Handlungsreisenden Abbildung 1: Alle möglichen Rundreisen für 4 Städte Das TSP-Problem tritt in der Praxis in vielen Anwendungen als Teilproblem auf. Hierzu gehören z.b. Optimierungsprobleme

Mehr

Modellierung und Programmierung 1

Modellierung und Programmierung 1 Modellierung und Programmierung 1 Prof. Dr. Sonja Prohaska Computational EvoDevo Group Institut für Informatik Universität Leipzig 9. Dezember 2015 Wiederholung Referenzdatentypen reference [0] M datatype

Mehr

Man sieht hier einzelne Fragmente, die man häufig bei der Programmierung mit Schleifen antrifft. Es gibt eine lokale Variable, die vor dem

Man sieht hier einzelne Fragmente, die man häufig bei der Programmierung mit Schleifen antrifft. Es gibt eine lokale Variable, die vor dem 214 215 Man sieht hier einzelne Fragmente, die man häufig bei der Programmierung mit Schleifen antrifft. Es gibt eine lokale Variable, die vor dem Schleifenstart initialisiert und die innerhalb der Schleife

Mehr

Genetische und Evolutionäre Algorithmen (Vol. 2)

Genetische und Evolutionäre Algorithmen (Vol. 2) Vortrag über Genetische und Evolutionäre Algorithmen (Vol. 2) von Adam El Sayed Auf und Kai Lienemann Gliederung: 4) Rückblick 5) Allgemeine Einführung 6) Genauere Beschreibung von Evolutionären Strategien

Mehr

C++ Teil 5. Sven Groß. 12. Nov IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Nov / 16

C++ Teil 5. Sven Groß. 12. Nov IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Nov / 16 C++ Teil 5 Sven Groß IGPM, RWTH Aachen 12. Nov 2014 Sven Groß (IGPM, RWTH Aachen) C++ Teil 5 12. Nov 2014 1 / 16 Themen der letzten Vorlesung Eingabestrom, Verhalten von cin Namensräume Live Programming

Mehr

Informatik 1. Sommersemester Helmut Seidl. Institut für Informatik TU München

Informatik 1. Sommersemester Helmut Seidl. Institut für Informatik TU München Informatik 1 Sommersemester 2011 Helmut Seidl Institut für Informatik TU München 1 0 Allgemeines Inhalt dieser Vorlesung: Einführung in Grundkonzepte der Informatik; Einführung in Denkweisen der Informatik;

Mehr

Kodierung Genetische Algorithmen und Simulated Annealing

Kodierung Genetische Algorithmen und Simulated Annealing Kodierung Genetische Algorithmen und Simulated Annealing Referenten Dipl.-Ing. (FH) Dipl.-Ing. (FH) 1 Agenda Erklärung des Genetischen Algorithmus f(x)=x² (2-dimensional) Verschiedene Codierungen Binärcode,

Mehr

InformatiCup 2009 EvolutionConsole

InformatiCup 2009 EvolutionConsole InformatiCup 2009 EvolutionConsole Wilhelm Büchner Hochschule 19. März 2010 1 1. Das Team Teammitglieder Ralf Defrancesco KION Information Services GmbH Systemadministrator Daniel Herken Scooter Attack

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 41 Einstieg in die Informatik mit Java Weitere Anweisungen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 41 1 Überblick 2 Verbundanweisung 3 Bedingte Anweisung 4 Auswahlanweisung

Mehr

Schnelle Multiplikation

Schnelle Multiplikation Informationsblatt für die Lehrkraft Schnelle Multiplikation $&*&*& 999 3 x 3 =? 10001110 π/3 7 X 6 14 666 x 987 Informationsblatt für die Lehrkraft Thema: Schultyp: Vorkenntnisse: Bearbeitungsdauer: Schnelle

Mehr

Parallele und funktionale Programmierung Wintersemester 2016/ Übung Abgabe bis , 16:00 Uhr

Parallele und funktionale Programmierung Wintersemester 2016/ Übung Abgabe bis , 16:00 Uhr 4. Übung Abgabe bis 25.11.2016, 16:00 Uhr Aufgabe 4.1: Verklemmungsbedingungen a) Welche drei Bedingungen müssen gelten, damit es zu einer Verklemmung in einem parallelen System kommen kann? b) Nach welcher

Mehr

Jochen Ziegenbalg Oliver Ziegenbalg Bemd Ziegenbalg. Algorithmen. von Hammurapi bis Gödel. 2., verbesserte Auflage Verlag g;> Harri Deutsch

Jochen Ziegenbalg Oliver Ziegenbalg Bemd Ziegenbalg. Algorithmen. von Hammurapi bis Gödel. 2., verbesserte Auflage Verlag g;> Harri Deutsch Jochen Ziegenbalg Oliver Ziegenbalg Bemd Ziegenbalg Algorithmen von Hammurapi bis Gödel 2., verbesserte Auflage 2007 Verlag g;> Harri Deutsch Inhalt Einleitung 1 Vorbemerkungen: Stellenwert des Themas,

Mehr

Sortieren II / HeapSort Heaps

Sortieren II / HeapSort Heaps Organisatorisches VL-07: Sortieren II: HeapSort (Datenstrukturen und Algorithmen, SS 2017) Vorlesung: Gerhard Woeginger (Zimmer 4024 im E1) Email: dsal-i1@algo.rwth-aachen.de Webseite: http://algo.rwth-aachen.de/lehre/ss17/dsa.php

Mehr

Parallel Computing. Einsatzmöglichkeiten und Grenzen. Prof. Dr. Nikolaus Wulff

Parallel Computing. Einsatzmöglichkeiten und Grenzen. Prof. Dr. Nikolaus Wulff Parallel Computing Einsatzmöglichkeiten und Grenzen Prof. Dr. Nikolaus Wulff Vorüberlegungen Wann ist paralleles Rechnen sinnvoll? Wenn die Performance/Geschwindigkeit steigt. Wenn sich größere Probleme

Mehr

Algorithmen. Von Hammurapi bis Gödel. von Jochen Ziegenbalg, Oliver Ziegenbalg, Bernd Ziegenbalg. überarbeitet

Algorithmen. Von Hammurapi bis Gödel. von Jochen Ziegenbalg, Oliver Ziegenbalg, Bernd Ziegenbalg. überarbeitet Algorithmen Von Hammurapi bis Gödel von Jochen Ziegenbalg, Oliver Ziegenbalg, Bernd Ziegenbalg überarbeitet Algorithmen Ziegenbalg / Ziegenbalg / Ziegenbalg schnell und portofrei erhältlich bei beck-shop.de

Mehr

Implementation und Evaluierung innovativer Heuristiken für die Anordnung von Entwurfsentscheidungen

Implementation und Evaluierung innovativer Heuristiken für die Anordnung von Entwurfsentscheidungen Implementation und Evaluierung innovativer Heuristiken für die Anordnung von Entwurfsentscheidungen Diplomarbeit Thomas Scharler Universität Hamburg, FB Informatik, AB Tech Implementation und Evaluierung

Mehr

1. Inhaltsverzeichnis

1. Inhaltsverzeichnis 1. Inhaltsverzeichnis Inhaltsverzeichnis 1. Einleitung 1.1. Darwins Evolutionstheorie 1.2. Darwins Evolutionstheorie als Inspiration für Evolutionäre Algorithmen 1.3. Die Unterschiede der verschiedenen

Mehr

Software Entwicklung 1

Software Entwicklung 1 Software Entwicklung 1 Annette Bieniusa / Arnd Poetzsch-Heffter AG Softech FB Informatik TU Kaiserslautern Fallstudie: Arithmetische Ausdrücke Bieniusa/Poetzsch-Heffter Software Entwicklung 1 2/ 33 Überblick

Mehr

Übersicht. Datenstrukturen und Algorithmen. Übersicht. Heaps. Vorlesung 8: Heapsort (K6) Joost-Pieter Katoen. 7. Mai 2015

Übersicht. Datenstrukturen und Algorithmen. Übersicht. Heaps. Vorlesung 8: Heapsort (K6) Joost-Pieter Katoen. 7. Mai 2015 Datenstrukturen und Algorithmen Vorlesung 8: (K6) 1 Joost-Pieter Katoen Lehrstuhl für Informatik Software Modeling and Verification Group http://moves.rwth-aachen.de/teaching/ss-15/dsal/ 7. Mai 015 3 Joost-Pieter

Mehr