Praktische Optimierung

Slides:



Advertisements
Ähnliche Präsentationen
Rekursion: Rekurrenz: Algorithmen rufen sich selbst (rekursiv) auf.
Advertisements

Falls Algorithmen sich selbst rekursiv aufrufen, so kann ihr Laufzeitverhalten bzw. ihr Speicherplatzbedarf in der Regel durch eine Rekursionsformel (recurrence,
Eine dynamische Menge, die diese Operationen unterstützt,
Algebraische Zahlen: Exaktes Rechnen mit Wurzeln
Christian Schindelhauer
Schnelle Matrizenoperationen von Christian Büttner
Prof. Dr. W. Conen 15. November 2004
Genetische Algorithmen für die Variogrammanpassung
Modellierung und Schätzung von Variogrammen
Algorithmentheorie 04 –Hashing
WS Algorithmentheorie 02 - Polynomprodukt und Fast Fourier Transformation Prof. Dr. Th. Ottmann.
WS Algorithmentheorie 05 - Treaps Prof. Dr. Th. Ottmann.
Dynamische Programmierung (2) Matrixkettenprodukt
Prof. Dr. S. Albers Prof. Dr. Th. Ottmann
WS Algorithmentheorie 08 – Dynamische Programmierung (2) Matrixkettenprodukt Prof. Dr. Th. Ottmann.
Algorithmentheorie 7 – Bin Packing
Kapitel 5 Stetigkeit.
Kapitel 6 Differenzierbarkeit. Kapitel 6: Differenzierbarkeit © Beutelspacher Juni 2005 Seite 2 Inhalt 6.1 Die Definition 6.2 Die Eigenschaften 6.3 Extremwerte.
Beispiele für Gleichungssysteme
K. Desch - Statistik und Datenanalyse SS05
Wir suchen ‘ mit m = m    ‘ c  ‘ mod 26
Quaternionen Eugenia Schwamberger.
PowerPoint-Folien zur 10. Vorlesung „Evolutionsstrategie I“
Tutorium
Vorlesung Biometrie für Studierende der Veterinärmedizin Begriff der Zufallsgröße Ergebnisse von Zufallsexperimenten werden als Zahlen dargestellt:
Matrix-Algebra Grundlagen 1. Matrizen und Vektoren
Effiziente Algorithmen
Fundamente der Computational Intelligence (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich Informatik Lehrstuhl für Algorithm Engineering Wintersemester.
Ausgleichungsrechnung I
Einführung in die Programmierung Wintersemester 2012/13 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Anwendungen evolutionärer Algorithmen
Einführung in die Programmierung
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 Programmierung Wintersemester 2011/12 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Quantum Computing Hartmut Klauck Universität Frankfurt WS 04/
Polynome und schnelle Fourier-Transformation
Mehrkriterielle Optimierung mit Metaheuristiken
Einführung in die Programmierung Wintersemester 2009/10 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Fundamente der Computational Intelligence
Einführung in die Programmierung
Mehrkriterielle Optimierung mit Metaheuristiken
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
Einführung in die Programmierung Wintersemester 2009/10 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
Praktische Optimierung
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 Programmierung Wintersemester 2009/10 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
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.
Fundamente der Computational Intelligence (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich Informatik Lehrstuhl für Algorithm Engineering Wintersemester.
Praktische Optimierung
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fakultät.
Fundamente der Computational Intelligence (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich Informatik Lehrstuhl für Algorithm Engineering Wintersemester.
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.
Mehrkriterielle Optimierung mit Metaheuristiken
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.
Praktische Optimierung
Einführung in die Programmierung
Einführung in die Programmierung Wintersemester 2013/14 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Programmierung
Auslegung eines Vorschubantriebes
1 (C)2006, Hermann Knoll, HTW Chur, FHO Quadratische Reste Definitionen: Quadratischer Rest Quadratwurzel Anwendungen.
Analyseprodukte numerischer Modelle
Fundamente der Computational Intelligence (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich Informatik Lehrstuhl für Algorithm Engineering Wintersemester.
16. Zweidimensionale quadratische Formen.
Nichtlineare Optimierung
Independent Component Analysis: Analyse natürlicher Bilder Friedrich Rau.
Praktische Optimierung
 Präsentation transkript:

Praktische Optimierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund

Wie sollte die Mutationsverteilung gewählt werden? Evolutionäre Algorithmen (EA) Schrittweite Zufallsvektor (1+1)-EA: Wähle X(0) 2 Rn, s0 >  > 0, k = 0 while (sk > ) { Y = X(k) + sk ¢ m(k) if f(Y) < f(X(k)) then X(k+1) = Y ; sk+1 = a+(sk) else X(k+1) = X(k) ; sk+1 = a–(sk) k++ } einfachstes Modell der Evolution: Mutation Selektion Schrittweitenanpassung: z.B. a+(s) = s /  a–(s) = s ¢  Wie sollte die Mutationsverteilung gewählt werden?  2 (0,1) G. Rudolph: Praktische Optimierung ▪ WS 2008/09 2

symmetrisch, multimodal Evolutionäre Algorithmen (EA) Forderungen an Such- / Mutationsverteilung von m(k) Keine Richtung ohne Grund bevorzugen Kleine Änderungen wahrscheinlicher als große Steuerbar: Größe der Umgebung, Streuung Leicht erzeugbar … → Symmetrie um 0 → Unimodal mit Modus 0 → Parametrisierbar symmetrisch, multimodal symmetrisch, unimodal   G. Rudolph: Praktische Optimierung ▪ WS 2008/09 3

Evolutionäre Algorithmen (EA) Gleichverteilung symmetrisch unimodal steuerbar → r leicht erzeugbar: m = r (2 u – 1) wobei u 2 [0,1) gleichverteilt (aus Bibliothek) G. Rudolph: Praktische Optimierung ▪ WS 2008/09 4

Evolutionäre Algorithmen (EA) Betaverteilung symmetrisch unimodal steuerbar → r, p leicht erzeugbar (Bibliothek) r = 1 G. Rudolph: Praktische Optimierung ▪ WS 2008/09 5

Evolutionäre Algorithmen (EA) Normalverteilung symmetrisch unimodal steuerbar →  nicht ganz so leicht erzeugbar (Bibliothek) G. Rudolph: Praktische Optimierung ▪ WS 2008/09 6

Evolutionäre Algorithmen (EA) Cauchyverteilung symmetrisch unimodal steuerbar → c leicht erzeugbar (Bibliothek) Besonderheit: unendliche Varianz G. Rudolph: Praktische Optimierung ▪ WS 2008/09 7

Evolutionäre Algorithmen (EA) Höherdimensionale Suchräume: Symmetrie? Unimodalität? Steuerbarkeit? Rotationssymmetrie Definition: Sei T eine (n x n)-Matrix mit T‘T = In. (In: n-dim. Einheitsmatrix) T heißt orthogonale Matrix oder Rotationsmatrix. ■ Beispiel: G. Rudolph: Praktische Optimierung ▪ WS 2008/09 8

Evolutionäre Algorithmen (EA) Definition: n-dimensionaler Zufallsvektor x heißt sphärisch symmetrisch oder rotationssysmmetrisch , x T‘x für jede orthogonale Matrix T. ■ x y bedeutet: x hat die gleiche Verteilung wie y Beispiel: Gleichverteilung auf Kreis (Hyperkugel der Dimension n = 2) u gleichverteilt in [0,1]   = 2u G. Rudolph: Praktische Optimierung ▪ WS 2008/09 9

Evolutionäre Algorithmen (EA) Satz: Zufallsvektor x rotationssymmetrisch , x r u(n), wobei r nichtnegative Zufallsvariable und u(n) Zufallsvektor mit Gleichverteilung auf n-dim. Hyperkugelrand mit Radius 1. ■ Bemerkung: r und u(n) sind stochastisch unabhängig, u(n) Erzeugung von rotationssymmetrischen Zufallsvektoren: Wähle zufällige Richtung u(n) Wähle zufällige Schrittlänge r Multiplikation: x = r u(n) G. Rudolph: Praktische Optimierung ▪ WS 2008/09 10

–Verteilung mit n Freiheitsgraden Evolutionäre Algorithmen (EA) Beispiel: Multivariate Normalverteilung –Verteilung mit n Freiheitsgraden Gleichverteilung auf Hyperkugelrand Sn(r) = { x 2 Rn : || x || = r } Hyperkugelrand G. Rudolph: Praktische Optimierung ▪ WS 2008/09 11

F–Verteilung mit (n,1) Freiheitsgraden Evolutionäre Algorithmen (EA) Beispiel: Multivariate Cauchyverteilung F–Verteilung mit (n,1) Freiheitsgraden Gleichverteilung auf Hyperkugelrand Achtung: Zufallsvektor aus n unabh. Cauchy-Zufallsvariablen nicht rotationssymmetrisch! G. Rudolph: Praktische Optimierung ▪ WS 2008/09 12

Evolutionäre Algorithmen (EA) (1+1)-EA mit Schrittweitenanpassung (1/5-Erfolgsregel, Rechenberg 1973) Idee: Wenn viele erfolgreiche Mutationen, dann Schrittweite zu klein. Wenn wenige erfolgreiche Mutationen, dann Schrittweite zu groß. bei infinitesimal kleinem Radius ist Erfolgsrate = 1/2 Ansatz: Protokolliere erfolgreiche Mutationen in gewissem Zeitraum Wenn Anteil größer als gewisse Schranke (z. B. 1/5), dann Schrittweite erhöhen, sonst Schrittweite verringern G. Rudolph: Praktische Optimierung ▪ WS 2008/09 13

Evolutionäre Algorithmen (EA) Satz: (1+1)-EA mit 1/5-artiger Schrittweitensteuerung konvergiert für streng konvexe Probleme zum globalen Minimum mit linearer Konvergenzordnung. Jägersküpper 2006 lineare Konvergenzordnung: E[ f(Xk+1) – f* | Xk ] ≤ c ¢ E[ f(Xk) – f* ] mit c 2 (0,1) deshalb im allgemeinen, multimodalen Fall: ) schnelle Konvergenz zum lokalen Optimum Anmerkung: gleiche Konvergenzordnung wie Gradientenverfahren! G. Rudolph: Praktische Optimierung ▪ WS 2008/09 14

Evolutionäre Algorithmen (EA) Konvergenzproblematik bei der Schrittweitenanpassung erhöhe Schrittweite bei Erfolg, sonst verkleinern solange kein Erfolg: k = 0 ¢ k mit  2 (0,1) Annahme: X0 = 0 Frage: Wird lokales Optimum sicher verlassen (Übergang zu [z-,z+]) ? G. Rudolph: Praktische Optimierung ▪ WS 2008/09 15

Evolutionäre Algorithmen (EA) Sei qk Wahrscheinlichkeit, im Schritt k das lokale Optimum zu verlassen. Kriterium für sicheres Verlassen: Kriterium für unsicheres Verlassen: Vereinfachung des log-Terms G. Rudolph: Praktische Optimierung ▪ WS 2008/09 16

Evolutionäre Algorithmen (EA) Lemma: Sei x 2 (0,1). Dann gilt: Beweis: Reihenentwicklung also: q.e.d. G. Rudolph: Praktische Optimierung ▪ WS 2008/09 17

Mittelwertsatz der Differentialrechnung! Evolutionäre Algorithmen (EA) Hinreichendes Kriterium für unsicheres Verlassen: Lemma weil qk monoton fallend pk = P{ 0 → (z-, z+)} = P{ z- < Z < z+ } = FZ(z+)-FZ(z-) = = 2  fZ(z- + ¢ 2 ) mit  2 (0,1) Mittelwertsatz der Differentialrechnung! Annahme: Dichte fZ(¢) von Z ist unimodal dann: 2  fZ(z+) < pk < 2  fZ(z-) und deshalb: qk = 2  fZ(z-) G. Rudolph: Praktische Optimierung ▪ WS 2008/09 18

Evolutionäre Algorithmen (EA) Z sei normalverteilt falls Sei konvergiert nach Wurzelkriterium! ) kein sicheres Entkommen von lokalen Optima! G. Rudolph: Praktische Optimierung ▪ WS 2008/09 19

Evolutionäre Algorithmen (EA) Schrittweitensteuerung nach Rechenberg: Individuum (x, )  2 (0,1) ½ R (k) = (k - k) /  , falls (k - k) ¢  , sonst # Verbesserungen # Mutationen > 1/5 während k Mutationen Problem: keine Konvergenz mit W‘keit 1 aber: schnelle Konvergenz zum lokalen Optimum + W‘keit > 0 dieses zu verlassen! ) kein globales Verfahren, aber gutes nicht-lokales Verhalten! Beobachtung: Anpassung  sprunghaft ) Anpassung kontinuisieren! G. Rudolph: Praktische Optimierung ▪ WS 2008/09 20

Evolutionäre Algorithmen (EA) Schrittweitensteuerung nach Schwefel: Individuum (x, ) : auch Strategieparameter wie  werden mutiert Mutation: k+1 = k ¢ exp( N(0, 2 ) ) Xk+1 = Xk + k+1 ¢ N(0, I)  = 1 / n1/2 Wichtig: die bereits mutierte Schrittweite wird verwendet! „Schrittweite“  wird multiplikativ verändert (logarithmisch normalverteilt), neue Schrittweite wird verwendet bei additiver Veränderung der Position G. Rudolph: Praktische Optimierung ▪ WS 2008/09 21

Evolutionäre Algorithmen (EA) Bisher: rotationssymmetrische Mutationen Isolinie gleicher W‘keitsdichte Isolinie { x : f(x) = a } falls f(x) = || x ||2 (Höhenlinie) guter Fortschritt f(x) = ½ x‘Ax + b‘x + c Idee: Mutationsverteilung wie Höhenlinien ausrichten geringer Fortschritt wg. starker Krümmung G. Rudolph: Praktische Optimierung ▪ WS 2008/09 22

Evolutionäre Algorithmen (EA) f(x) = ½ x‘Ax + b‘x + c Wie erzeugt man solche Mutationsverteilungen? Z » N(0, 2 In) ) rotationssymmetrisch (In = Einheitsmatrix mit Rang n) Z » N(0, D2) ) ellipsoid, achsenparallel (D = diag(1, ..., n), Diagonalmatrix) Z » N(0, C) ) ellipsoid, frei beweglich (C = Kovarianzmatrix) C = C‘ (symmetrisch) und 8x: x‘Cx > 0 (positiv definit) G. Rudolph: Praktische Optimierung ▪ WS 2008/09 23

Evolutionäre Algorithmen (EA) Wie muss Kovarianzmatrix C gewählt werden? Ansatz: Taylor-Reihenentwicklung f(x + h) = f(x) + h‘r f(x) + ½ h‘r2f(x) h + R(x, h) linear quadratisch Restterme (ignorierbar, da h klein) r2f(x) = H(x) Hessematrix → enthält Informationen über Skalierung und Orientierung der Höhenlinien → Es wird sich zeigen: Wähle C = H-1 ! G. Rudolph: Praktische Optimierung ▪ WS 2008/09 24

rotationssymmetrische Höhenlinien! Evolutionäre Algorithmen (EA) Approximation: f(x) ¼ ½ x‘Ax + b‘x + c ) Hessematrix H = A Koordinatentransformation: x = Q y Q: (n x n) - Matrix ) f(Qy) = ½ (Qy)‘ A (Qy) + b‘ (Qy) + c = ½ y‘Q‘AQy + b‘Qy + c = ½ y‘Q‘B‘BQy + b‘Qy + c mit Cholesky-Zerlegung A = B‘B = ½ y‘(Q‘B‘)(BQ)y + b‘Qy + c sei jetzt Q = B-1 = ½ y‘y + b‘ B-1y + c rotationssymmetrische Höhenlinien! also: wir benötigen Dreiecksmatrix Q bzw. B-1 G. Rudolph: Praktische Optimierung ▪ WS 2008/09 25

Evolutionäre Algorithmen (EA) B-1 ) durch Koordinatentransformation mit B-1 wird Problem kugelsymmetrisch! ) also kugelsymmetrische Mutation transformieren! G. Rudolph: Praktische Optimierung ▪ WS 2008/09 26

Evolutionäre Algorithmen (EA) Satz: Sei y » N(0, In) und Q‘Q eine positiv definite Matrix mit Rang n. Dann x = Q‘y » N(0, Q‘Q). ) mit Q‘ = B-1 können wir Mutationsverteilungen wie gewünscht ausrichten! aber: woher bekommen wir Matrix Q? ) Selbstanpassung der Matrixelemente wie bei Schrittweite nach Schwefel da H = A = B‘B, ist H-1 = (B‘B)-1 = B-1(B-1)‘ =def C = Q‘Q Q entsteht durch Cholesky-Zerlegung von C, ist also Dreiecksmatrix → Skalierungsfaktoren je Zeile herausziehen: in Diagonalmatrix S ablegen → Q zerlegbar in Q = S ¢ T mit tii = 1 (S hat n Parameter, T hat n(n-1)/2 Parameter) G. Rudolph: Praktische Optimierung ▪ WS 2008/09 27

Evolutionäre Algorithmen (EA) Satz: Jede sym., pos. definite Matrix A ist zerlegbar via A = T‘DT und umgekehrt, wobei T orthogonale Matrix (T‘ = T-1) und D Diagonalmatrix mit dii > 0. ) also wählen wir S = D1/2, so dass A = (TS)‘(TS) Satz: Jede orthogonale Matrix T kann durch das Produkt von n(n-1)/2 elementaren Rotationsmatrizen Rij (k) dargestellt werden: Rij() = wie Einheitsmatrix, jedoch mit rii = rjj = cos , rij = -rji = -sin  G. Rudolph: Praktische Optimierung ▪ WS 2008/09 28

Evolutionäre Algorithmen (EA) Geometrische Interpretation durch Q‘y = TSy wird rotationssymmetrischer Zufallsvektor y zunächst achsenparallel skaliert via Sy und dann durch n(n-1)/2 elementare Rotationen in gewünschte Orientierung gebracht via T(Sy) Mutation der Winkel  : (t+1) = ((t) + W + ) mod (2) -  2 (-, ] wobei W » N(0, 2) mit  = 5° / 180° → Individuum jetzt: (x, , ) mit n Schrittweiten (Skalierungen) + n(n-1)/2 Winkel Praxis zeigt: Idee gut, aber Realisierung nicht gut genug (funktioniert nur für kleines n) G. Rudolph: Praktische Optimierung ▪ WS 2008/09 29

Evolutionäre Algorithmen (EA) Wie könnte man sonst noch an Matrixelemente von Q kommen? (Rudolph 1992) Modellannahme: f(x) ¼ ½ x‘Ax + b‘x + c Bei ( , ) – Selektion werden  Paare (x, f(x)) berechnet. + Beobachtung: ) Falls  > n(n+1)/2 + n + 1, dann überbestimmtes lineares Gleichungssystem: f(x1) = ½ x1‘Ax1 + b‘x1 + c f(x) = ½ x‘Ax + b‘x + c ... v = (A, b, c) hat n(n-1)/2 + n + 1 zu schätzende Parameter, wobei A = B‘B ) multiple lineare Regression für f = Xv → X‘f = X‘Xv → (X‘X)-1X‘f = v ) aus Schätzer v = (A, b, c) bekommen wir Hessematrix H = A ) Cholesky-Dekomposition von H und Matrixinversion liefert Q Praxis zeigt: funktioniert sehr gut, aber zu hoher Aufwand: (X‘X)-1 kostet O(n6) G. Rudolph: Praktische Optimierung ▪ WS 2008/09 30

Evolutionäre Algorithmen (EA) Idee: Matrix C nicht in jeder Generation schätzen, sondern iterativ nähern! (Hansen, Ostermeier et al. 1996ff.) → Covariance Matrix Adaptation Evolutionary Algorithm (CMA-EA) Setze initiale Kovarianzmatrix auf C(0) = In C(t+1) = (1-) C(t) +  wi di di‘  : „Lernrate“ 2 (0,1) m = Mittelpunkt aller selektierten Eltern Aufwand: O(n2 + n3) di = (xi: – m) /  Sortierung: f(x1:) ≤ f(x2:) ≤ ... ≤ f(x:) ist positiv semidefinite Streuungsmatrix dyadisches Produkt: dd‘ = G. Rudolph: Praktische Optimierung ▪ WS 2008/09 31

Evolutionäre Algorithmen (EA) Variante: m = Mittelpunkt aller selektierten Eltern p(t+1) = (1 - c) p(t) + (c (2 - c) eff)1/2 (m(t) – m(t-1) ) / (t) „Evolutionspfad“ p(0) = 0  2 (0,1) C(0) = In C(t+1) = (1 - ) C(t) +  p(t) (p(t))‘ Aufwand: O(n2) → Cholesky-Zerlegung: O(n3) für C(t) G. Rudolph: Praktische Optimierung ▪ WS 2008/09 32

Evolutionäre Algorithmen (EA) State-of-the-art: CMA-EA → erfolgreiche Anwendungen in der Praxis → insbesondere wenn Zielfunktionsauswertung zeitaufwändig (z.B. Zielfunktionsauswertung durch Simulationsprogramm) Implementierungen im WWW verfügbar G. Rudolph: Praktische Optimierung ▪ WS 2008/09 33

Evolutionäre Algorithmen (EA) Parameter:  Nachkommen p = eff =  = G. Rudolph: Praktische Optimierung ▪ WS 2008/09 34

Evolutionäre Algorithmen (EA) (Beyer/Sendhoff 2008)  < opt = (2N)-1/2 c = 1 + N(N+1)/(2) G. Rudolph: Praktische Optimierung ▪ WS 2008/09 35