Grundlagen und Basisalgorithmus



Ähnliche Dokumente
Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

Zeichen bei Zahlen entschlüsseln

Primzahlen und RSA-Verschlüsselung

1 Mathematische Grundlagen

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

der Eingabe! Haben Sie das Ergebnis? Auf diesen schwarzen Punkt kommen wir noch zu sprechen.

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Verbesserungsdetails: PTC Mathcad Prime 3.0. Copyright 2013 Parametric Technology Corporation. weiter Infos unter

7 Rechnen mit Polynomen

Professionelle Seminare im Bereich MS-Office

Wurzeln als Potenzen mit gebrochenen Exponenten. Vorkurs, Mathematik

geben. Die Wahrscheinlichkeit von 100% ist hier demnach nur der Gehen wir einmal davon aus, dass die von uns angenommenen

Behörde für Bildung und Sport Abitur 2008 Lehrermaterialien zum Leistungskurs Mathematik

Mathematik. UND/ODER Verknüpfung. Ungleichungen. Betrag. Intervall. Umgebung

Grundfunktionen und Bedienung

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

Funktion Erläuterung Beispiel

Lehrer: Einschreibemethoden

Berechnungen in Access Teil I

Überblick. Lineares Suchen

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

Abituraufgabe zur Stochastik, Hessen 2009, Grundkurs (TR)

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = Euro ergeben.

11.3 Komplexe Potenzreihen und weitere komplexe Funktionen

Das RSA-Verschlüsselungsverfahren 1 Christian Vollmer

Hilfe zur Urlaubsplanung und Zeiterfassung

Mathematik: Mag. Schmid Wolfgang Arbeitsblatt 3 1. Semester ARBEITSBLATT 3 RECHNEN MIT GANZEN ZAHLEN

AZK 1- Freistil. Der Dialog "Arbeitszeitkonten" Grundsätzliches zum Dialog "Arbeitszeitkonten"

Ihr Mandant möchte einen neuen Gesellschafter aufnehmen. In welcher Höhe wäre eine Vergütung inklusive Tantieme steuerrechtlich zulässig?

Mediator 9 - Lernprogramm

Programmiersprachen und Übersetzer

Handbuch zur Anlage von Turnieren auf der NÖEV-Homepage

Programmierkurs Java

3. GLIEDERUNG. Aufgabe:

2. Negative Dualzahlen darstellen

Informationsblatt Induktionsbeweis

Ihre Interessentendatensätze bei inobroker. 1. Interessentendatensätze

Informatik-Sommercamp Mastermind mit dem Android SDK

QM: Prüfen -1- KN

Physik & Musik. Stimmgabeln. 1 Auftrag

4. AUSSAGENLOGIK: SYNTAX. Der Unterschied zwischen Objektsprache und Metasprache lässt sich folgendermaßen charakterisieren:

Anleitung Typo3-Extension - Raumbuchungssystem

Task: Nmap Skripte ausführen

Welche Lagen können zwei Geraden (im Raum) zueinander haben? Welche Lagen kann eine Gerade bezüglich einer Ebene im Raum einnehmen?

trivum Multiroom System Konfigurations- Anleitung Erstellen eines RS232 Protokolls am Bespiel eines Marantz SR7005

Unterrichtsmaterialien in digitaler und in gedruckter Form. Auszug aus: Übungsbuch für den Grundkurs mit Tipps und Lösungen: Analysis

Rundung und Casting von Zahlen

Grundlagen der Informatik

ARAkoll 2013 Dokumentation. Datum:

Zahlenwinkel: Forscherkarte 1. alleine. Zahlenwinkel: Forschertipp 1

Kapitalerhöhung - Verbuchung

Theoretische Informatik SS 04 Übung 1

Anwendungsbeispiele Buchhaltung

Run Length Coding und Variable Length Coding

Zwischenablage (Bilder, Texte,...)

Bauteilattribute als Sachdaten anzeigen

Ihr Ideen- & Projektmanagement-Tool

Individuelle Formulare

Grundlagen der höheren Mathematik Einige Hinweise zum Lösen von Gleichungen

Updatehinweise für die Version forma 5.5.5

1 Vom Problem zum Programm

50. Mathematik-Olympiade 2. Stufe (Regionalrunde) Klasse Lösung 10 Punkte

2.11 Kontextfreie Grammatiken und Parsebäume

Benutzerverwaltung Business- & Company-Paket

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:

Tutorial: Homogenitätstest

Summenbildung in Bauteiltabellen mit If Then Abfrage

Kurzanleitung MAN E-Learning (WBT)

Datenbank-Verschlüsselung mit DbDefence und Webanwendungen.

Kapitalerhöhung - Verbuchung

Tipps und Tricks zu Netop Vision und Vision Pro

15.3 Bedingte Wahrscheinlichkeit und Unabhängigkeit

Subpostfächer und Vertretungen für Unternehmen

W-Rechnung und Statistik für Ingenieure Übung 11

Serien- mit oder ohne Anhang

WinWerk. Prozess 4 Akonto. KMU Ratgeber AG. Inhaltsverzeichnis. Im Ifang Effretikon

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten

3. LINEARE GLEICHUNGSSYSTEME

Ordner Berechtigung vergeben Zugriffsrechte unter Windows einrichten

Stapelverarbeitung Teil 1

Anhand des bereits hergeleiteten Models erstellen wir nun mit der Formel

Tipp III: Leiten Sie eine immer direkt anwendbare Formel her zur Berechnung der sogenannten "bedingten Wahrscheinlichkeit".

Impulse Inklusion Selbst-bestimmtes Wohnen und Nachbarschaft

13. Lineare DGL höherer Ordnung. Eine DGL heißt von n-ter Ordnung, wenn Ableitungen y, y, y,... bis zur n-ten Ableitung y (n) darin vorkommen.

Windows. Workshop Internet-Explorer: Arbeiten mit Favoriten, Teil 1

Repetitionsaufgaben Wurzelgleichungen

Java Kurs für Anfänger Einheit 5 Methoden

BERECHNUNG DER FRIST ZUR STELLUNGNAHME DES BETRIEBSRATES BEI KÜNDIGUNG

FORUM HANDREICHUNG (STAND: AUGUST 2013)

Matrix42. Use Case - Sicherung und Rücksicherung persönlicher Einstellungen über Personal Backup. Version September

Einfügen von Bildern innerhalb eines Beitrages

Bereich METIS (Texte im Internet) Zählmarkenrecherche

S TAND N OVEMBE R 2012 HANDBUCH DUDLE.ELK-WUE.DE T E R M I N A B S P R A C H E N I N D E R L A N D E S K I R C H E

Seite 1 von 14. Cookie-Einstellungen verschiedener Browser

Fassade. Objektbasiertes Strukturmuster. C. Restorff & M. Rohlfing

Einführung in die Programmierung

How to do? Projekte - Zeiterfassung

Zimmertypen. Zimmertypen anlegen

RSA-Verschlüsselung. Verfahren zur Erzeugung der beiden Schlüssel:

Transkript:

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

Gliederung 1. Codierung der Chromosomen 2 1.1. Ausdrücke 2 1.2. Programme 2 2. Fitness 3 2.1. Rohfitness 3 2.2. Standard-Fitness 3 2.3. Normalisierte Fitness 3 3. Genetische Operatoren 4 3.1. Selektionsverfahren 4 3.2. Primäre genetische Operatoren 5 3.3. Sekundäre genetische Operatoren 5 4. Implementation und Durchführung 6 4.1. Anfangspopulation 6 4.2. Parameter und Abbruch 7 4.3. Programmstruktur 7 1

1. Codierung der Chromosomen 1.1. Ausdrücke Um den Zugriff auf Operanden und Unterausdrücke zu erleichtern, benutzt man die Präfixnotation. Dabei steht der Operator vor den Operanden (z.b. x+2 +(x,2) ). Konstanten und Variablen bleiben dabei unverändert, gemischte Ausdrücke werden geschachtelt dargestellt (z.b. 4(x-6) *(4,-(x,6)) ). Graphisch lassen sich diese Ausdrücke als Bäume darstellen: + * x 2 4 - x 6 x+2 4(x-6) Man bezeichnet Variablen und Konstanten als Terminalsymbole und Operatoren als Nichtterminalsymbole. Man kann beliebige Strings (Zeichenketten) als Chromosomen auffassen, außer arithmetische Ausdrücken sind auch Bool sche Ausdrücke (z.b. and (a,b) ) und mathematische Funktionen (z.b. sin (x) ) darstellbar. Es ist zu beachten, dass bei der genetischen Bearbeitung arithmetischer Ausdrücke nicht definierte Unterausdrücke, wie z.b. Division durch 0 oder Wurzeln bzw. Logarithmen aus negativen Zahlen, zu vermeiden sind. 1.2. Programme Auch Programme sind genetisch optimierbar, wenn die Programmelemente in Präfixnotation vorliegen. Dazu gehören im Allgemeinen Wertzuweisungen, Verzweigungen und Rekursionen. Wertzuweisung: x := a +b x := +(a,b) Verzweigung If x<5 then s := sin(x) else s := 0 s := if(x,5,sin(x),0) Allgemein: if(a1,a2,a3,a4) wenn a1 < a2 dann berechne a3 sonst berechne a4 Weitere programmierbare Ausdrücke sind: 2

2. Fitness Arithmetische Ausdrücke Bool sche Ausdrücke Mathematische Funktionen Elemente der Programmierung (z.b. if-else-anweisungen) Bit-Shift-Operatoren Graphische Operatoren Vektor- und Matrixoperatoren Komplexe Operationen Die Fitness ist ein reeller Wert für die Güte eines Chromosoms, sie entscheidet über das Überleben des Individuums. Die Güte eines Chromosoms wird davon bestimmt wie gut oder genau der Ausdruck die gestellten Bedingungen erfüllt. Die Fitnessberechnung basiert auf Fehlern die bei der Anwendung des Ausdruckes entstehen und/oder auf der Zeit die benötigt wird. Die genaue Definition der Fitness ist abhängig vom jeweiligen Problem. Es gibt 3 Typen der Fitness: Rohfitness Standard-Fitness Normalisierte Fitness 2.1. Rohfitness r(j) = E[i,j] f(i) E[i,j] F(i) - Wert den Chromosom j bei Eingabe i ergibt - Zielfunktion kleinere Werte bedeuten bessere Individuen 2.2. Standard-Fitness s(j) = r max r(j) r max - maximale Rohfitness größere Werte bedeuten bessere Individuen 2.3. Normalisierte Fitness Angepasste Fitness: a(j) = 1 1+r(j) Werte liegen zwischen 0 und 1 3

Normalisierte Fitness: n(j) = a(j)?a(k) Liegt zwischen 0 und 1 Größere Werte bedeuten bessere Individuen Summe aller Fitness-Werte, summiert über alle Chromosomen, ergibt 1 3. Genetische Operatoren Man unterscheidet zwischen primären und sekundären genetischen Operatoren. Zunächst muss man aber die Selektionsverfahren zur Auswahl der Individuen als Operanden für die genetischen Operatoren betrachten. 3.1 Selektionsverfahren Turnier Selektion Es werden 2 oder mehr Individuen zufällig ausgewählt, und die bestreiten einen Überlebenskampf wobei das bzw. die besseren Chromosomen Ausgewählt werden. Roulette-Selektion Ein Individuum wird anhand einer Wahrscheinlichkeits- Funktion ausgewählt, die ergibt sich aus: p(j) = Fitness des Individuums Gesamtfitness der Population 4

3.2. primäre genetische Operatoren 3.2.1. Rekombination Es werden 2 Individuen ausgewählt, aus jedem wird ein Unterausdruck ausgewählt und diese werden vertauscht. z.b. Eltern: (1) +(a,-(5,b)) (2) -(+(3,c),*(2,a)) Wir entnehmen: aus (1) a aus (2) +(2,a) + - a - + * 5 b 3 c 2 a Eltern + - * - + a 2 a 5 b 3 c Nachkommen 3.2.2. Reproduktion Ein Individuum wird ausgewählt und unverändert übernommen. Dies verhindert das gute Individuen zu schnell wieder verloren gehen. 3.3. sekundäre genetische Operatoren 3.3.1. Mutation In einem ausgewählten Chromosom wird per Zufall eine Stelle bestimmt. Der Unterausdruck an dieser Stelle wird durch einen neuen, zufällig generierten Ausdruck ersetzt. 5

3.3.2. Editieren Editieren ist das Vereinfachen von Ausdrücken ohne ihre Fitness zu beeinflussen. Dazu werden Unterausdrücke, wenn möglich, zu Terminalsymbolen zusammengefasst. Beispiele: *(1,b) b -(20,3) 17 3.3.3. Permutation Man vertauscht die Operanden eines Operators. Dieser Operator basiert auf dem Inversions-Operator bei allgemeinen genetischen Algorithmen. Da der Inversions-Operator die Reihenfolge beliebiger Gene eines Chromosoms vertauscht ist er für arithmetische Ausdrücke wenig sinnvoll, und wird deshalb nur auf die Operanden eines Operators angewandt. 3.3.4. Einkapseln Teilausdrücke werden durch Symbole ersetzt. Beispiel: +(*(2,s),d) *(2,s) wird ersetzt durch E, es ergibt sich: +(E,d) Auf diese Weise lassen sich Ausdrücke vereinfachen. Die weitere Verarbeitung erfolgen mit dem Symbol E, welches bei der Fitnessberechnung wieder durch *(2,s) ersetzt werden muss. 4. Implementation und Durchführung 4.1. Anfangspopulation Die Anfangspopulation wird zufällig generiert, dazu werden die Symbole aufgeteilt: O Operatoren T Terminalsymbole Als erstes wählt man zufällig einen Operator aus O und die Operanden wählt man aus T und den bereits entwickelten Ausdrücken. In der Anfangspopulation gibt es also keine Terminalsymbole, dadurch verhindert man eine spätere Vereinfachung durch Rekombination. Bei der zufälligen Generierung der Anfangspopulation sollte man eine maximale Komplexität festlegen um zu große Ausdrücke zu vermeiden. Außerdem ist es sinnvoll Duplikate zu eliminieren bzw. zu ersetzen um eine Population mit größerem Informationsgehalt zu generieren. Dieser Test kann auch vor dem Einfügen eines neu generierten Individuums in die Anfangspopulation erfolgen. Die Qualität der Anfangspopulation lässt sich weiter verbessern, indem man den Operator Dezimieren anwendet: 6

Dezimieren Es werden Individuen mit schlechter Fitness eliminiert, allerdings nur bis zu einer festgelegten Anzahl. Bei der Anwendung des Dezimieren-Operators muss darauf geachtet werden, dass die gewünschte Populationsstärke erhalten bleibt. Dies kann man durch Überpopulation oder durch Auffüllen erreichen. 4.2. Parameter und Abbruch N - Umfang der Anfangspopulation einige 100 bis maximal 1000 Individuen k - Rekombinationswahrscheinlichkeit weit größer als r r - Reproduktionswahrscheinlichkeit maximale Länge der Chromosomen der Anfangspopulation maximale Länge der Chromosomen insgesamt Abbruchbedingungen: o ein Chromosom entspricht exakt den Anforderungen o festgelegte Anzahl Generationen o keine Veränderung der Gesamtfitness in x Generationen Optional können noch weitere genetische Operatoren hinzugefügt werden, die Summe ihrer Ausführungswahrscheinlichkeiten muss dabei 1 ergeben. 4.3. Programmstruktur verschiedene Teile 1.) Bereitstellung der Anfangswerte Parameterfestlegung Generierung der Anfangspopulation 2.) Berechnung der Fitness Parser zum Auswerten der Ausdrücke Vergleich mit f(i) Berechnung der Fitness 3.) Rest Selektionsverfahren Genetische Operatoren 7