Genetische Algorithmen für die Variogrammanpassung Inhalt: Einleitung: zufälliges Feld, Isotropie,... Motivation: Variogramm-Anpassung Genetische (Such-)Algorithmen: Zielstellung Beschreibung des Algorithmus anhand eines Beispiels Anwendung: Variogramm-Anpassung
Einleitung Ein Zufallsfeld Z(x, ) ist eine zufällige Funktion, die sowohl von den Elementarereignissen als auch von einem Vektor x abhängt. Z(x, ) ist also eine Zufallsvariable. Ein stationäres Zufallsfeld heißt isotrop, falls Z(x, ) seine Eigenschaften bei Verschiebungen und Drehungen nicht ändert; dies wird bei diesem Vortrag stets vorausgesetzt.
Einleitung Als empirisches Variogramm bezeichnet man die Funktion Diese Funktion soll durch x(h) approximiert werden Nimmt man als Funktionenklasse für x(h) exponentielle Funktionen mit Nugget-Effekt, so ergibt sich mit x = (a, b, c)
exponentiell mit Nuggeteffekt: x = (a, b, c) empirisches Variogramm: (mit im Bild: theoretisches Variogramm: sphärisch mit Nugget-Effekt)
Motivation: Variogrammanpassung gegeben: -empirisches Variogramm -parametrisches isotropes Variogramm-Modell x(h) z.B. exponentiell mit Nugget-Effekt: mit x = (a, b, c); a, b, c gesucht: -möglichst gute Parameter für das theoretische Variogramm-Modell
Parameteranpassung z. B. mittels GAen Bewertungsfunktion soll minimiert werden mit oder
GAen: Grundidee Nachbau der genetischen Selektion: -Überleben der Stärksten -Kreuzung / Paarung -Mutation (selten)
Problem- und Zielstellung des Algorithmus Gegeben: -diskreter Parameterraum P; meist: P={0,1}b -Bewertungsfunktion f: P R+ -Populationen Popk: m-Tupel mit Elementen aus P, Pop1 zufällig Zielstellung: -Bewertungsfunktion f maximieren
Beispiel: Blackbox Blackbox mit 5 Schaltern Schalter entsprechen Bits - Bewertungsfkt: f(x) = x² Bild: x = (10110)2 = 22 => f(x) = 22² = 484 Die Eigenschaften (z.B. lokale Minima o. ä.) sind dem GA unbekannt!
Vorab: 1. Population m=Populationsgröße; Popk=(xk,1,...,xk,m); xk,i=(xk,i,1,...,xk,i,b) hier: m=4; b=5 => Pop1 = (x1,1,...,x1,4) und - zufällig gewählt: x1,1 = (0, 1, 1, 0, 0) = 13; x1,2 = (1, 1, 0, 0, 0) = 24; x1,3 = (0, 1, 0, 0, 0) = 8; x1,4 = (1, 0, 0, 1, 1) = 19
Grundmuster der GAen 1. Reproduktion 2. Kreuzung 3. Mutation Ein GA besteht aus 3 Teilen: 1. Reproduktion 2. Kreuzung 3. Mutation
1. Teil: Reproduktion -Population Popk bewertet mit f(xk,i) (i=1,...,m) -xk,i erhält Reproduktionswkt. pi: -neue Population Popk+1: xk+1,i = xk,j mit Wkt. pj (i,j=1,...,m)
Bsp: Berechnung der Wkten pi x1,1 = (0, 1, 1, 0, 0) => f(x1,1) = 169 => p1 = 0,14 x1,2 = (1, 1, 0, 0, 0) => f(x1,2) = 576 => p2 = 0,49 x1,3 = (0, 1, 0, 0, 0) => f(x1,3) = 64 => p3 = 0,06 x1,4 = (1, 0, 0, 1, 1) => f(x1,4) = 361 => p4 = 0,31 =>
Bsp: Reproduktion x1,1 = (0, 1, 1, 0, 0) => p1 = 0,14 => 1 => Pop2 = (x1,1, x1,2, x1,2, x1,4) - vorerst!
2. Teil: Kreuzung -Paare werden zufällig gebildet -Eigenschaften (xk,i,j) , k fest werden zufällig gekreuzt -mit zufälliger Wkt. pc (meist pc 0,9) -angepasst an Problem
Bsp: Kreuzung x2,1 = (0, 1, 1, 0, 1) => (0, 1, 1, 0, 0) Kreuzungen: -nach zufälliger Stelle -mit zufälliger Wkt. pc = 0,9
3. Teil: Mutation -zufällige Änderung jedes Parameters xk,i,j mit Wkt. pm 0,001 -Ziel: „ungewöhnliche“ Maxima finden (Sprungstelle o. ä.)
Bsp: Mutation x2,1 = (0, 1, 1, 0, 0) bleibt
Endpopulation nach 1. Schritt x2,1 = (0, 1, 1, 0, 0) = 12 => f(x2,1) = 144 x2,2 = (1, 1, 0, 0, 1) = 25 => f(x2,2) = 625 x2,3 = (1, 1, 0, 1, 0) = 26 => f(x2,3) = 676 x2,4 = (1, 0, 0, 0, 0) = 16 => f(x2,4) = 256 Ergebnis nach 1. Durchlauf: x2,2 (=26).
Abbruchbedingung Z. B.: Verbesserung der Bewertung gering (~0,1%) feste Anzahl von Durchläufen
Besonderheiten von GAen mehrere Elemente gleichzeitig (im Gegensatz zum Newton-Verfahren o. ä.) direkte Bewertungsfunktion probabilistischer Ansatz
Vor- und Nachteile von GAen + finden globale Maxima + Unempfindlichkeit gegenüber Störungen und Rauschen + universelle Einsetzbarkeit keine Verwendung von Zusatzinformationen => gut geeignet für Variogrammanpassung
Anwendung: exponentielles Variogramm mit Nuggeteffekt Gegeben: -Messdaten z(x1),...,z(xn) => zu approximierendes empirisches Variogramm -Parameterraum P=R+³ mit: -Nugget-Effekt-Parameter: Sill a -exponentielle Parameter: Sill b & Range c x=(a, b, c)
Anpassung des Algorithmus diskreter Parameterraum Anfangspopulation Bewertungsfunktion Reproduktion Kreuzung Mutation Abbruchbedingung
1. Parameterraum 3 Parameter: Nugget-Sill a, exp. Sill b, exp. Range c sinnvollen Parameterbereich definieren Abbildung vom 2b in den jeweiligen Parameterbereich
2. Anfangspopulation Pop1=(x1,1,..., x1,m); x1,i = (a1,i, b1,i, c1,i) zufällig gewählt aus der Erfahrung ergibt sich: mindestens m=100 (je nach Rechenzeit)
3. Bewertungsfunktion Es gilt: wobei f(x) minimiert werden soll!! : Wert der Modellfunktion bei hi : Wert der empirischen Funktion bei hi
4. Reproduktion Wegen Minimierung anders: mit
5. Kreuzung findet mit pc statt (pc 0,9) Möglichkeit 1: Parameter vertauschen Möglichkeit 2: innerhalb der Parameter kreuzen jeweils an Stelle j mit Wahrscheinlichkeit qj
Beispiel zu Möglichkeit 1: vorher vorher nachher nachher
6. Mutation an jeder Stelle mit Wkt. rj 0,001
7. Abbruchbedingung nur minimale Verbesserung des besten theoretischen Variogramms (~0,1%) feste Anzahl von Durchläufen