Systematische Suche. Alle (sinnvollen) Möglichkeiten ausprobieren. Anwendungen: Idee:

Ähnliche Dokumente
Algorithmen I. Prof. Jörn Müller-Quade Institut für Theoretische Informatik Web:

12 Generische Optimierungsansätze

Konvexe Hülle. Abbildung: [Wikipedia]: Nicht-konvexe Menge (links), konvexe Menge (rechts) KIT Institut für Theoretische Informatik 510

8.1 Einleitung. Grundlagen der Künstlichen Intelligenz. 8.1 Einleitung. 8.2 Lokale Suchverfahren. 8.3 Zusammenfassung. Suchprobleme: Überblick

Erinnerung VL

11. Übung zu Algorithmen I 6. Juli 2016

Gliederung. Kapitel 4. Lokale Suchverfahren. Meta-Heuristiken. Simulated Annealing. Lokale Suchverfahren. Optimierungsalgorithmen

Kapitel 1 Parallele Modelle Wie rechnet man parallel?

v R n ist Abstiegsrichtung in x R n wenn f(x) v < 0 v R n ist Abstiegsrichtung in x R n wenn i=1,,d: f i

NP-vollständige Probleme

Analyse Pfadkompression + Union by rank

Algorithmen I. Prof. Jörn Müller-Quade Institut für Theoretische Informatik Web:

Theoretische Informatik. Exkurs: Komplexität von Optimierungsproblemen. Optimierungsprobleme. Optimierungsprobleme. Exkurs Optimierungsprobleme

Konstruktions-Verbesserungsheuristiken. Iterierte lokale Suche (ILS)

Synthese Eingebetteter Systeme. Übung 6

5. Lokale Suchverfahren. Beispiel TSP: k-change Nachbarschaft. Nachbarschaft. k-opt Algorithmus

Grundlagen der Künstlichen Intelligenz

Algorithmen und Datenstrukturen

Klausur Algorithmen und Datenstrukturen II 29. Juli 2013

Sandro Pirkwieser, (Bin Hu, Jakob Puchinger) SS 2010

Heuristische Verfahren

Präfix-Summe. Das Schweizer Offiziersmesser der Parallelen Algorithmen. Parallele Rechenmodelle Präfix-Summe Brents Lemma Anwendungen

Inhalt. 8.1 Motivation. 8.2 Optimierung ohne Nebenbedingungen. 8.3 Optimierung unter Nebenbedingungen. 8.4 Lineare Programmierung

Wissensbasierte Systeme. Kombinatorische Explosion und die Notwendigkeit Heuristischer Suche. Heuristiken und ihre Eigenschaften

Datenstrukturen und Algorithmen. 7. Suchen in linearen Feldern

Algorithmen und Datenstrukturen

Kapitel MK:IV. IV. Modellieren mit Constraints

Der Branching-Operator B

Beispielvortrag: HPCG auf Intel Haswell-EP

Oliver Gableske 05. Oktober Institut für Theoretische Informatik

Weitere Algorithmenentwurfstechniken

Übersicht. Informierte (heuristische) Suche. Algorithmus Bester-Zuerst-Suche. Bester-Zuerst-Suche

Approximationsalgorithmen

Systeme 1: Architektur

Datenstrukturen und Algorithmen

Klausur Paralleles Rechnen (Richtwert 60 min) 10. Dez. 2015

(45 Min) als auch schriftlich im Rahmen einer Ausarbeitung zu präsentieren. 1. Gusfield: Algorithms on strings, trees and sequences.

> Parallele Systeme Übung: 4. Übungsblatt Philipp Kegel Wintersemester 2012/2013. Parallele und Verteilte Systeme, Institut für Informatik

Programmieren, Algorithmen und Datenstrukturen II 8. Allgemeine Lösungsverfahren

INFORMATIK FÜR BIOLOGEN

Informatik II Greedy-Algorithmen

Einführung in Suchverfahren

UNABHÄNGIGER LASTEN. Vorlesung 9 BALANCIERUNG DYNAMISCHER. Graphenalgorithmen und lineare Algebra Hand in Hand

Einführung in Heuristische Suche

Überblick. Motivation. Kap. 7.6 Verbesserungsheuristiken. Nachbarschaft einer Lösung Einfache lokale Suche

Polygontriangulierung

Genetische Algorithmen von der Evolution lernen

Logik für Informatiker

Algorithmische Methoden zur Netzwerkanalyse

Kap. 7.6 Verbesserungsheuristiken (letzte VO)

Einstieg in die Informatik mit Java

Verkettete Listen. KIT Institut für Theoretische Informatik 1

Entscheidungsverfahren mit Anwendungen in der Softwareverifikation

Dynamische Programmierung. Problemlösungsstrategie der Informatik

Polygontriangulierung

Algorithmen und Datenstrukturen

Informatik II, SS 2014

Erinnerung VL

3. Übungsblatt zu Algorithmen I im SoSe 2017

Bereichsabfragen II. Dr. Martin Nöllenburg Vorlesung Algorithmische Geometrie

Parametrische Suche als Algorithmen Paradigma

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

Voronoi-Diagramme INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK. Dr. Martin Nöllenburg Vorlesung Algorithmische Geometrie

Bereichsabfragen II. Dr. Martin Nöllenburg Vorlesung Algorithmische Geometrie

9. Übung Algorithmen I

LOOP-Programme: Syntaktische Komponenten

Computer-gestützter Entwurf von absatzweise arbeitenden chemischen Mehrproduktanlagen

Hochflexibles Workforce Management: Herausforderungen und Lösungsverfahren

Praktische Informatik 3

Universität Karlsruhe (TH)

Kapitel 5: Dynamisches Programmieren Gliederung

Grundlagen der Programmierung

Theoretische Grundlagen der Informatik

Quadtrees und Meshing

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

Multiparadigmen- Programmiersprachen

Dynamisches Routing in der Logistik

Informatik I: Einführung in die Programmierung

Hopfield Netze. Neuronale Netze WS 2016/17

Einführung in die Theoretische Informatik

11. Übung Algorithmen I

VBA-Programmierung: Zusammenfassung

Vorlesung "Verteilte Systeme" Sommersemester Verteilte Systeme. Adreßraum. Rechner. Verteilte Systeme, Sommersemester 1999 Folie 19.

Exkurs Eine Algorithm-Engineering-Fallstudie Volltextsuche mit invertiertem Index

CUDA. Moritz Wild, Jan-Hugo Lupp. Seminar Multi-Core Architectures and Programming. Friedrich-Alexander-Universität Erlangen-Nürnberg

Wintersemester 2004/ Dezember 2004

Bereichsabfragen. Dr. Martin Nöllenburg Vorlesung Algorithmische Geometrie

Entscheidungsverfahren mit Anwendungen in der Softwareverifikation

Praxiseinheit: Realisierung einer hardwarebeschleunigten Disparitätenberechnung zur automatischen Auswertung von Stereobildern

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme

Algorithmen und Datenstrukturen (für ET/IT) Wiederholung: Ziele der Vorlesung. Wintersemester 2012/13. Dr. Tobias Lasser

Optimierung und Simulation

Algorithmen und Datenstrukturen (für ET/IT)

Hauptseminar Repräsentationen für Optimierungsalgorithmen

Vortrag zum Hauptseminar Hardware/Software Co-Design

Optimierung. Optimierung. Vorlesung 9 Lineare Programmierung & Kombinatorische Optimierung Fabian Kuhn

Zustandsraumsuche: Blinde und Heuristische Suche. Blinde und Heuristische Suche

Karlsruher Institut für Technologie Institut für Theoretische Informatik. Klausur Algorithmen I

Kombinatorische Optimierung Vorlesung für den Bereich Diplom/Master Informatik

Transkript:

Systematische Suche Idee: Alle (sinnvollen) Möglichkeiten ausprobieren. Anwendungen: I Ganzzahlige lineare Programmierung (Integer Linear Programming) (ILP) I Constraint Satisfaction I SAT (Aussagenlogik) I Theorembeweiser (Prädikatenlogik,... ) I konkrete NP-schwere Probleme I Strategiespiele I Puzzles KIT Institut für Theoretische Informatik 475

Beispiel: Branch-and-Bound für das Rucksackproblem Function bbknapsack((p 1,...,p n ),(w 1,...,w n ),M) :L assert p 1 p 2 p w 1 w 2 n w n ˆx=heuristicKnapsack((p 1,...,p n ),(w 1,...,w n ),M) : L x : L recurse(1,m,0) return ˆx KIT Institut für Theoretische Informatik 476

Beispiel: Branch-and-Bound für das Rucksackproblem Function bbknapsack((p 1,...,p n ),(w 1,...,w n ),M) :L assert p 1 p 2 p w 1 w 2 n w n ˆx=heuristicKnapsack((p 1,...,p n ),(w 1,...,w n ),M) : L x : L recurse(1,m,0) return ˆx // Find solutions assuming x 1,...,x i 1 are fixed, // M 0 = M Â x k w k, P = Â x k p k. k<i k<i Procedure recurse(i,m 0,P : N) KIT Institut für Theoretische Informatik 476

// Find solutions assuming x 1,...,x i 1 are fixed, // M 0 = M Â x k w k, P = Â x k p k. k<i k<i x // current solution ˆx // best solution so far Procedure recurse(i,m 0,P : N) u:= P + upperbound((p i,...,p n ),(w i,...,w n ),M 0 ) if u > p ˆx then if i > n then ˆx := x else // Branch on variable x i if w i apple M 0 then x i := 1; recurse(i + 1,M 0 w i,p + p i ) If u > p ˆx then x i := 0; recurse(i + 1,M 0,P) Schlechtester Fall: 2 n rekursive Aufrufe Im Mittel: Linearzeit? KIT Institut für Theoretische Informatik 477

Beispielrechnung C B no capacity left???? 41 bounded 1??? 41 0??? 38 B 11?? 41 10?? 34 01?? 38 C B B 110? 39 011? 38 C C 1100 34 0110 38 C improved solution 24 10 14 20 5 4 M 3 2 1 KIT Institut für Theoretische Informatik 478

Branch-and-Bound allgemein Branching (Verzweigen): Systematische Fallunterscheidung, z. B. rekursiv (Alternative, z. B. Prioritätsliste) Verzweigungsauswahl: Wonach soll die Fallunterscheidung stattfinden? (z. B. welche Variable bei ILP) Reihenfolge der Fallunterscheidung: Zuerst vielversprechende Fälle (lokal oder global) Bounding: Nicht weitersuchen, wenn optimistische Abschätzung der erreichbaren Lösungen schlechter als beste (woanders) gefundene Lösung. Duplikateliminierung: Einmal suchen reicht Anwendungsspez. Suchraumbeschränkungen: Schnittebenen (ILP), Lemma-Generierung (Logik),... KIT Institut für Theoretische Informatik 479

Lokale Suche global denken, lokal handeln find some feasible solution x 2 S ˆx := x // ˆx is best solution found so far while not satisfied with ˆx do x := some heuristically chosen element from N (x) \ S if f (x) > f (ˆx) then ˆx := x KIT Institut für Theoretische Informatik 480

Hill Climbing Find some feasible solution x 2 L ˆx := x // best solution found so far loop if 9x 2 N (x) \ L : f (x) > f (ˆx) then ˆx := x else return ˆx // local optimum found KIT Institut für Theoretische Informatik 481

Problem: Lokale Optima 1 0.8 sin(x)/x 0.6 0.4 0.2 0-0.2-0.4-50 0 50 KIT Institut für Theoretische Informatik 482

Warum die Nachbarschaft wichtig ist 6 5 4 3 2 1 0 f 5 4 y 3 2 1 0 0 1 2 3 4 5 x Gegenbeispiel für Koordinatensuche KIT Institut für Theoretische Informatik 483

Jenseits von Hill Climbing Auch Verschlechterungen akzeptieren. I Simulated Annealing: physikalische Analogie liquid shock cool glass crystal anneal KIT Institut für Theoretische Informatik 484

Jenseits von Hill Climbing Auch Verschlechterungen akzeptieren. I Simulated Annealing: physikalische Analogie I Tabusuche I... KIT Institut für Theoretische Informatik 484

Evolutionäre Algorithmen Ausführliche Behandlung würde den Rahmen sprengen. Verallgemeinerung von lokaler Suche: I x! Population von Lösungskandidaten I Reproduktion fitter Lösungen I Mutation ähnlich lokaler Suche I zusätzlich: geschlechtliche Vermehrung. Idee: erben von guten Eigenschaften der Eltern KIT Institut für Theoretische Informatik 485

Zusammenfassung Vor- und Nachteile generischer Optimierungsmethoden Greedy: Einfach und schnell. Selten optimal. Manchmal Approximationsgarantien. Systematische Suche: Einfach mit Werkzeugen z. B. (I)LP, SAT, constraint programming. Selbst gute Implementierungen mögen nur mit kleinen Instanzen funktionieren. KIT Institut für Theoretische Informatik 486

Zusammenfassung Vor- und Nachteile generischer Optimierungsmethoden Greedy: Einfach und schnell. Selten optimal. Manchmal Approximationsgarantien. Systematische Suche: Einfach mit Werkzeugen z. B. (I)LP, SAT, constraint programming. Selbst gute Implementierungen mögen nur mit kleinen Instanzen funktionieren. Lineare Programmierung: Einfach und einigermaßen schnell. Optimal, falls das Modell passt. Rundungsheuristiken ergeben Näherungslösungen Dynamische Programmierung: Optimale Lösungen, falls Teilprobleme optimal und austauschbar sind. Hoher Platzverbrauch. Ganzzahlige lineare Programmierung: Leistungsfähiges Werkzeug für optimale Lösungen. Gute Formulierungen können viel Know-how erfordern. Kann rechenintensiv sein. KIT Institut für Theoretische Informatik 486

Zusammenfassung Vor- und Nachteile generischer Optimierungsmethoden Lokale Suche: Flexibel und einfach. Langsam, aber oft gute Lösungen für schwierige Probleme. Hill climbing: einfach, aber leidet an lokalen Optima. Simulated Annealing und Tabu Search: Leistungsfähig, aber langsam. Tuning kann unschön werden. Evolutionäre Algorithmen: Ähnliche Vor- und Nachteile wie lokale Suche. Durch geschl. Vermehrung potentiell mächtiger, aber auch langsamer und schwieriger, gut hinzukriegen. Weniger zielgerichtet. KIT Institut für Theoretische Informatik 487

Werbeblock Mehr dazu in Algorithmische Methoden für schwere Optimierungsprobleme, voraussichtlich wieder im WS 2016/17 I Heuristiken I Metaheuristiken I Approximationsalgorithmen I Online-Algorithmen KIT Institut für Theoretische Informatik 488

Kap. 13: Parallele Algorithmen Motivation Warum sollte man parallele Algorithmen verwenden? KIT Institut für Theoretische Informatik 489

Kap. 13: Parallele Algorithmen Motivation Warum sollte man parallele Algorithmen verwenden? I (Fast) Alle Rechner sind heute parallel (technische Gründe) I Verkürzung der Rechenzeit I Hoher Speicherbedarf [http://hdimagegallery.net/multi+core+ processor?image=1238315886, 03.07.2015] KIT Institut für Theoretische Informatik 489

Parallele Algorithmen Anwendungen eine Auswahl I Numerische Simulationen I Wetter- und Klimavorhersage I Ingenieurwissenschaften I Geologie I Naturwissenschaften I... KIT Institut für Theoretische Informatik 490

Parallele Algorithmen Anwendungen eine Auswahl I Numerische Simulationen I Wetter- und Klimavorhersage I Ingenieurwissenschaften I Geologie I Naturwissenschaften I... I Diskrete Algorithmen I Biologie I Informatik I... KIT Institut für Theoretische Informatik 490

Parallele Algorithmen Anwendungen eine Auswahl I Numerische Simulationen I Wetter- und Klimavorhersage I Ingenieurwissenschaften I Geologie I Naturwissenschaften I... I Diskrete Algorithmen I Biologie I Informatik I... I Konkrete Beispiele: I Suchmaschinen: PageRank I Bild- und Videoverarbeitung: Filtern KIT Institut für Theoretische Informatik 490

Rechnertypen Versuch einer Kategorisierung Paralleles Rechnersystem: Verteiltes Rechnersystem: KIT Institut für Theoretische Informatik 491

Rechnertypen Versuch einer Kategorisierung Paralleles Rechnersystem: I Mehrere Rechenelemente Verteiltes Rechnersystem: I Mehrere Rechenelemente KIT Institut für Theoretische Informatik 491

Rechnertypen Versuch einer Kategorisierung Paralleles Rechnersystem: I Mehrere Rechenelemente I Physisch nah beieinander Verteiltes Rechnersystem: I Mehrere Rechenelemente I Physisch nicht nah beieinander KIT Institut für Theoretische Informatik 491

Rechnertypen Versuch einer Kategorisierung Paralleles Rechnersystem: I Mehrere Rechenelemente I Physisch nah beieinander I Verschaltet durch sehr schnelle Verbindung Verteiltes Rechnersystem: I Mehrere Rechenelemente I Physisch nicht nah beieinander I Verschaltet durch eher langsame Verbindung KIT Institut für Theoretische Informatik 491

Rechnertypen Versuch einer Kategorisierung Paralleles Rechnersystem: I Mehrere Rechenelemente I Physisch nah beieinander I Verschaltet durch sehr schnelle Verbindung I Speicher: I gemeinsam (shared memory) I lokal pro Rechenelement, verteilt (non-shared memory) Verteiltes Rechnersystem: I Mehrere Rechenelemente I Physisch nicht nah beieinander I Verschaltet durch eher langsame Verbindung KIT Institut für Theoretische Informatik 491

Rechnertypen Versuch einer Kategorisierung Paralleles Rechnersystem: I Mehrere Rechenelemente I Physisch nah beieinander I Verschaltet durch sehr schnelle Verbindung I Speicher: I gemeinsam (shared memory) KIT Institut für Theoretische Informatik 491

Gemeinsamer Speicher (shared memory) I Kommunikation durch Lesen/Schreiben vom/in gemeinsamen Speicher I Realität ist viel komplizierter (Speicherhierarchie!) KIT Institut für Theoretische Informatik 492

Rechenmodell Parallel Random Access Machine (PRAM) I p (sequentielle) Prozessoren (processing elements, PEs) I Gemeinsamer globaler Speicher I Synchroner Takt KIT Institut für Theoretische Informatik 493

Rechenmodell Parallel Random Access Machine (PRAM) I p (sequentielle) Prozessoren (processing elements, PEs) I Gemeinsamer globaler Speicher I Synchroner Takt I Globaler Speicher kann prinzipiell von allen Prozessoren gleichzeitig benutzt werden (lesend / schreibend) I Evtl. Einschränkungen hinsichtlich gleichzeitiger Benutzung derselben Speicherstelle I Single Instruction Multiple Data (SIMD) I feinkörnig (niedriger Quotient aus Kommunikationskosten und Berechnungskosten) KIT Institut für Theoretische Informatik 493