Fundamente der Computational Intelligence (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich Informatik Lehrstuhl für Algorithm Engineering Wintersemester.

Slides:



Advertisements
Ähnliche Präsentationen
Algorithmentheorie 08 – Dynamische Programmierung (1)
Advertisements

Maschinelles Lernen   Metriken für Nearest Neighbour-Verfahren Lineare Diskriminanzfunktionen.
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
Einführung in die Informatik für Naturwissenschaftler und Ingenieure
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.
Fundamente der Computational Intelligence (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich Informatik Lehrstuhl für Algorithm Engineering Wintersemester.
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.
Fundamente der Computational Intelligence
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
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.
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Mehrkriterielle Optimierung mit Metaheuristiken
Einführung in die Informatik für Naturwissenschaftler und Ingenieure
Fundamente der Computational Intelligence
Fundamente der Computational Intelligence
Einführung in die Informatik für Naturwissenschaftler und Ingenieure
Einführung in die Informatik für Naturwissenschaftler und Ingenieure
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 (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure
Einführung in die Informatik für Naturwissenschaftler und Ingenieure
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
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 Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
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.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Fundamente der Computational Intelligence (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich Informatik Lehrstuhl für Algorithm Engineering Wintersemester.
Fundamente der Computational Intelligence (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich Informatik Lehrstuhl für Algorithm Engineering Wintersemester.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fakultät.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Praktische Optimierung
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
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.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fakultät.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Mehrkriterielle Optimierung mit Metaheuristiken
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fakultät.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Fundamente der Computational Intelligence (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich Informatik Lehrstuhl für Algorithm Engineering Wintersemester.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
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 (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fakultät.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
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.
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
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.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Praktische Optimierung
 Präsentation transkript:

Fundamente der Computational Intelligence (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich Informatik Lehrstuhl für Algorithm Engineering Wintersemester 2005/06

Rudolph: FCI (WS 2005/06) Kap. 3: Evolutionäre Algorithmen2 Kapitel 3: Evolutionäre Algorithmen Inhalt Grundlagen Optimierung Nachbarschaftssuche …

Rudolph: FCI (WS 2005/06) Kap. 3: Evolutionäre Algorithmen3 Kapitel 3: Evolutionäre Algorithmen Nachbarschaftssuche gegeben: - Suchraum S - Zielfunktion f: S R mit Zielsetzung Minimierung - Nachbarschaftsstruktur N(x) für jedes x S wähle X 0 S; setze k = 0 repeat wähle Y k N(X k ) if f(Y k ) < f(X k ) then X k+1 = Y k else X k+1 = X k k = k + 1 until Terminierungbedingung = true was ist N(x)? wie wählen?

Rudolph: FCI (WS 2005/06) Kap. 3: Evolutionäre Algorithmen4 Kapitel 3: Evolutionäre Algorithmen Nachbarschaftssuche Nachbarschaftsstruktur ist abhängig vom Suchraum: - basiert meistens auf einer Metrik Definition: Sei M eine Menge. Die Funktion d: M £ M R 0 heißt Metrik, falls 1. x, y M: d(x, y) 0, wobei d (x, y) = 0 x = y (Definitheit) 2. x, y M: d(x, y) = d(y, x) (Symmetrie) 3. x, y, z M: d(x, y) + d(y, z) d(x, z) (Dreiecksungleichung)

Rudolph: FCI (WS 2005/06) Kap. 3: Evolutionäre Algorithmen5 Kapitel 3: Evolutionäre Algorithmen Nachbarschaftssuche S = A n für A = { a 1, a 2, …, a K } Hamming-Abstand S = B n für B = { 0, 1 }

Rudolph: FCI (WS 2005/06) Kap. 3: Evolutionäre Algorithmen6 Kapitel 3: Evolutionäre Algorithmen Nachbarschaftssuche Sei S ; und a, b S: diskrete Metrik man kann jede nichtleere Menge mit einer Metrik ausstatten! (allerdings ist die diskrete Metrik zur Nachbarschaftsspezifikation denkbar ungeeignet; warum?) Satz: Wenn d(a, b) eine Metrik auf S ist, dann ist auch eine Metrik. d(a, b) 1 + d(a,b)

Rudolph: FCI (WS 2005/06) Kap. 3: Evolutionäre Algorithmen7 Kapitel 3: Evolutionäre Algorithmen Nachbarschaftssuche Satz: Jede Norm induziert eine Metrik via d(x, y) = || x – y ||. Definition: Sei M eine Menge. Die Funktion || ¢ ||: M R 0 heißt Norm, falls 1. x M: || x || = 0 x = 0(Definitheit) 2. x M: R : || ¢ x || = | | ¢ || x ||(Homogenität) 3. x, y M: || x + y || || x || + || y ||(Dreiecksungleichung) bisher: Metriken für abzählbare Mengen – überabzählbar?

Rudolph: FCI (WS 2005/06) Kap. 3: Evolutionäre Algorithmen8 Kapitel 3: Evolutionäre Algorithmen Nachbarschaftssuche S = R n (p > 0) p = 1Betragssummennorm p = 2Euklidische Norm p = 1 Maximumnorm Hölder-Normen

Rudolph: FCI (WS 2005/06) Kap. 3: Evolutionäre Algorithmen9 Kapitel 3: Evolutionäre Algorithmen Nachbarschaftssuche Also: Nachbarschaft N r (x) = { y S : d(x, y) r }(enthält x) punktierte Nachbarschaft N r (x) = N r (x) \ { x }(häufig gemeint) Sei S = B n. N 1 (x) = { y B n : d(x, y) = 1 } N 1 (000) = { 001, 010, 100 }

Rudolph: FCI (WS 2005/06) Kap. 3: Evolutionäre Algorithmen10 Kapitel 3: Evolutionäre Algorithmen Nachbarschaftssuche Elementauswahl: Greedy method, steepest decent 1. alle Elemente aus N(x) bewerten, d.h. Zielfunktionswert berechnen 2. wähle bestes Element aus N(x), bei gleich guten irgendeins davon Probleme: mitunter sehr viele Zielfunktionsberechnungen nötig im R n ist |N(x)| überabzählbar so nur bei end. Nachbarschaften möglich

Rudolph: FCI (WS 2005/06) Kap. 3: Evolutionäre Algorithmen11 Kapitel 3: Evolutionäre Algorithmen Nachbarschaftssuche Elementauswahl: First improvement Enumerationsschema für N(x) = { e 1, e 2, …, e K } aktuell bester Wert a* ist Parameter 1. Nachbarschaft aufzählen und Zielfunktionswert berechnen 2. Falls f(e i ) < a* dann wähle e i Probleme: starke Abhängigkeit vom Enumerationsschema funktioniert nur bei endlichen Nachbarschaften

Rudolph: FCI (WS 2005/06) Kap. 3: Evolutionäre Algorithmen12 Kapitel 3: Evolutionäre Algorithmen Nachbarschaftssuche Elementauswahl: First improvement with random enumeration Enumerationsschema für N(x) = { e 1, e 2, …, e K } ist zufällige Permutation aktuell bester Wert a* ist Parameter 1. Zufällige Permutation erzeugen 2. Nachbarschaft aufzählen und Zielfunktionswert berechnen 3. Falls f(e i ) < a* dann wähle e i Probleme: funktioniert nur bei endlichen Nachbarschaften

Rudolph: FCI (WS 2005/06) Kap. 3: Evolutionäre Algorithmen13 Kapitel 3: Evolutionäre Algorithmen Nachbarschaftssuche Wie erzeugt man eine zufällige Permutation? = Gleichverteiltes Ziehen ohne Zurücklegen (Urnenmodell) Wkeit für eine spezielle Permutation = for i = 1 to K: A[i] = i for i = 1 to K – 1: j = int_rand(i, K)// Zufallszahl {i, i+1,…, K} swap(A[i], A[j])// Vertauschen der Werte endfor Realisierung:(lineare Laufzeit)

Rudolph: FCI (WS 2005/06) Kap. 3: Evolutionäre Algorithmen14 Kapitel 3: Evolutionäre Algorithmen Nachbarschaftssuche Satz: (first improvement with random enumeration) Wenn genau ein besseres Element in N(x) mit | N(x) | = N existiert, dann beträgt die Wahrscheinlichkeit, dass dieses Element genau beim k-ten Versuch getestet wird, den Wert 1 / N. Im Mittel werden (N+1) / 2 Versuche benötigt. Beweis: Erfolg genau im k-ten Versuch vorher k-1 Misserfolge, dann Erfolg MisserfolgeErfolge Erwartungswert =