Upload
onslow
View
28
Download
0
Embed Size (px)
DESCRIPTION
Kombinatorische Suche Felix Potthoff Seminar „Parallel Programming and Parallel Algorithms “ Prof. Dr. Herbert Kuchen Institut für Praktische Informatik Westfälische Wilhelms-Universität Münster 12.01.2010. Agenda. Einführung Grundlagen Motivation Speed- up Divide and Conquer ( DaC ) - PowerPoint PPT Presentation
Citation preview
Institut für Praktische Informatik
Prof. Dr. Herbert Kuchen
Kombinatorische Suche
Felix Potthoff
Seminar „Parallel Programming and Parallel Algorithms“Prof. Dr. Herbert Kuchen
Institut für Praktische InformatikWestfälische Wilhelms-Universität Münster
12.01.2010
2 Institut für Praktische InformatikProf. Dr. Herbert Kuchen
Agenda
EinführungGrundlagenMotivationSpeed-up
Divide and Conquer (DaC)Sequentieller „Divide-and-Conquer“-AlgorithmusParallele „Divide-and-Conquer“ Varianten
BacktrackingSequentieller „Backtrack“-Algorithmus Parallele „Backtracking“ VariantenDistributed Termination Detection
Alpha-Beta-SucheSequentielle „Alpha-Beta-Suche“Parallele „Alpha-Beta-Suche“
Zusammenfassung
3 Institut für Praktische InformatikProf. Dr. Herbert Kuchen
Kombinatorische Suche
Kombinatorische SucheProzessEine oder mehr optimale oder suboptimale Lösung zu findenIn einem definierten Problembereich
Weitreichendes EinsatzgebietDatenbankenExperten Kontroll-SystemeRoutenplanung
Einführung - DaC - Backtracking - A-BSuche - Zusammenfassung
4 Institut für Praktische InformatikProf. Dr. Herbert Kuchen
Motivation
Parallele ArchitekturenMulticore-prozessoren, Hyper-threadingShared MemoryHardware immer günstiger
Einführung - DaC - Backtracking - A-BSuche - Zusammenfassung
5 Institut für Praktische InformatikProf. Dr. Herbert Kuchen
Such-Methodologien
Divide and Conquer
Branch and Bound
Backtracking
Spiel-Baum-SuchenMini-Max-SucheAlpha-Beta-Suche
Einführung - DaC - Backtracking - A-BSuche - Zusammenfassung
6 Institut für Praktische InformatikProf. Dr. Herbert Kuchen
Speed-Up
Speed-up (Beschleunigung)N Prozessoren Speed-up = N?
Nein!
Einführung - DaC - Backtracking - A-BSuche - Zusammenfassung
7 Institut für Praktische InformatikProf. Dr. Herbert Kuchen
Agenda
EinführungGrundlagenMotivationSpeed-up
Divide and Conquer (DaC)Sequentieller „Divide-and-Conquer“-AlgorithmusParallele „Divide-and-Conquer“ Varianten
BacktrackingSequentieller „Backtrack“-Algorithmus Parallele „Backtracking“ VariantenDistributed Termination Detection
Alpha-Beta-SucheSequentielle „Alpha-Beta-Suche“Parallele „Alpha-Beta-Suche“
Zusammenfassung
Einführung - DaC - Backtracking - A-BSuche - Zusammenfassung
8 Institut für Praktische InformatikProf. Dr. Herbert Kuchen
Einleitung Divide and Conquer
Aufteilen in TeilproblemeLösen mit DaCWeitere Teilprobleme möglich
Kombinieren zur Lösung
Anwendungsgebiete:Sortier-Algorithmen
QuicksortMergesort
…
Einführung - DaC - Backtracking - A-BSuche - Zusammenfassung
9 Institut für Praktische InformatikProf. Dr. Herbert Kuchen
Quicksort Algorithmus
Parameter:A – Das zu sotierende Arraylinks - Startpositionrechts - Endposition
Quicksort(A, links, rechts)
if links < rechts then
seperator Partition(A, links, rechts)
Quicksort(A, links, seperator – 1)
Quicksort(A, seperator, rechts)
end if
Einführung - DaC - Backtracking - A-BSuche - Zusammenfassung
10 Institut für Praktische InformatikProf. Dr. Herbert Kuchen
Quicksort Beispiel
Einführung - DaC - Backtracking - A-BSuche - Zusammenfassung
Parameters:A – Das Array zum Sortierenlinks - Startpositionrechts - Endposition
Quicksort(A, links, rechts)if links < rechts then
seperator Partition(A, links, rechts)
Quicksort(A, links, seperator – 1)
Quicksort(A, seperator, rechts)
end if
11 Institut für Praktische InformatikProf. Dr. Herbert Kuchen
Parallele Ausführung- Multiprozessor
Original- und Teil-Probleme in zentralem Speicher
Effiziente Arbeitslastverteilung
Bottleneck
Einführung - DaC - Backtracking - A-BSuche - Zusammenfassung
12 Institut für Praktische InformatikProf. Dr. Herbert Kuchen
Parallele DaC Variante – Multicomputer(1)
Einführung - DaC - Backtracking - A-BSuche - Zusammenfassung
Teil-Probleme im Speicher eines Prozessors
Effiziente Arbeitslastverteilung
Overhead fürVerteilungKombination
13 Institut für Praktische InformatikProf. Dr. Herbert Kuchen
Parallele DaC Variante – Multicomputer(2)
Einführung - DaC - Backtracking - A-BSuche - Zusammenfassung
Verteilen der Teil-Probleme auf die Speicher der Prozessoren
Höherer Speed-up möglich
Gleichmäßige Arbeitslastverteilung schwieriger
14 Institut für Praktische InformatikProf. Dr. Herbert Kuchen
Agenda
EinführungGrundlagenMotivationSpeed-up
Divide and Conquer (DaC)Sequentieller „Divide-and-Conquer“-AlgorithmusParallele „Divide-and-Conquer“ Varianten
BacktrackingSequentieller „Backtrack“-Algorithmus Parallele „Backtracking“ VariantenDistributed Termination Detection
Alpha-Beta-SucheSequentielle „Alpha-Beta-Suche“Parallele „Alpha-Beta-Suche“
Zusammenfassung
Einführung - DaC - Backtracking - A-BSuche - Zusammenfassung
15 Institut für Praktische InformatikProf. Dr. Herbert Kuchen
Einleitung Backtracking
Kind-Knoten generieren
Beliebigen Kind-Knoten wählen
Kind-Knoten mit gleicher Technik bearbeiten
Rekursion abbrechen, wenn:Alle Kind-Knoten besuchtSackgasse
Einführung - DaC - Backtracking - A-BSuche - Zusammenfassung
16 Institut für Praktische InformatikProf. Dr. Herbert Kuchen
Anwendung Backtracking
N-Queens
4-Queens
Einführung - DaC - Backtracking - A-BSuche - Zusammenfassung
Lösung 4-Queens-Problem [PW04]
18 Institut für Praktische InformatikProf. Dr. Herbert Kuchen
Backtracking Suchbaum
Einführung - DaC - Backtracking - A-BSuche - Zusammenfassung
19 Institut für Praktische InformatikProf. Dr. Herbert Kuchen
Paralleles Backtracking
Einen Teil-Baum für jeden Prozessor
ProblemUnausgeglichene TeilbäumeBesuch unnötiger Knoten
LösungBei erster Lösung stoppenNachrichten
Einführung - DaC - Backtracking - A-BSuche - Zusammenfassung
20 Institut für Praktische InformatikProf. Dr. Herbert Kuchen
Distribution termination detection
LaufzeitfehlerNachrichten gleichzeitig
Dijkstra‘s „Distribution termination detection“Stellt sicher, dass sich keine Nachricht im System befindetSuccessoringProzessor, Token
FarbeNachrichtenzähler
Einführung - DaC - Backtracking - A-BSuche - Zusammenfassung
21 Institut für Praktische InformatikProf. Dr. Herbert Kuchen
Successorring
Einführung - DaC - Backtracking - A-BSuche - Zusammenfassung
22 Institut für Praktische InformatikProf. Dr. Herbert Kuchen
DDS Abbruchbedingungen
Token wieder am Ausgangspunkt
Nachrichtenzähler des Token 0
Farbe des Tokens weiß
Nachrichtenzähler des Anfangsprozessor 0
Einführung - DaC - Backtracking - A-BSuche - Zusammenfassung
23 Institut für Praktische InformatikProf. Dr. Herbert Kuchen
Zusammenfassung Backtracking
DFS
Lineare Speichernutzung
Effektive Arbeitslastverteilung als Grundproblem Zuteilung vieler Teilbäume als Potentielle Lösung
Distributed termination detection
Einführung - DaC - Backtracking - A-BSuche - Zusammenfassung
24 Institut für Praktische InformatikProf. Dr. Herbert Kuchen
Agenda
EinführungGrundlagenMotivationSpeed-up
Divide and Conquer (DaC)Sequentieller „Divide-and-Conquer“-AlgorithmusParallele „Divide-and-Conquer“ Varianten
BacktrackingSequentieller „Backtrack“-Algorithmus Parallele „Backtracking“ VariantenDistributed Termination Detection
Alpha-Beta-SucheSequentielle „Alpha-Beta-Suche“Parallele „Alpha-Beta-Suche“
Zusammenfassung
Einleitung - DaC - Backtracking - A-BSuche - Zusammenfassung
25 Institut für Praktische InformatikProf. Dr. Herbert Kuchen
Alpha-Beta-Suche
Spielbäume
Abschneiden (Pruning)
Alpha und BetaUnter- und ObergrenzeSuch-Fenster
Kategorisierung der Knoten
Einführung - DaC - Backtracking - A-BSuche - Zusammenfassung
26 Institut für Praktische InformatikProf. Dr. Herbert Kuchen
Alpha-Beta-Pruning
Einführung - DaC - Backtracking - A-BSuche - Zusammenfassung
27 Institut für Praktische InformatikProf. Dr. Herbert Kuchen
Pruning
Best-caseEffektiv besuchte Knoten-Anzahl reduziert von b auf Perfekt geordneter Spielbaum
Worst-caseAlle Knoten
Einleitung - DaC - Backtracking - A-BSuche - Zusammenfassung
b
28 Institut für Praktische InformatikProf. Dr. Herbert Kuchen
Parallele Alpha-Beta-Suchen(1)
Parallele Aspiration SearchSuchbereich auf Prozessoren verteiltMehr Prozessoren
Kleinere SuchbereicheGrößeres Pruning Potential
Maximum Speedup 5 oder 6 Unabhängig von Prozessoren-Anzahl
Parallele Sub-Tree-EvaluationSuch-OverheadKommunikations-OverheadPriorisieren der Suche von Teilbäumen
Einleitung - DaC - Backtracking - A-BSuche - Zusammenfassung
29 Institut für Praktische InformatikProf. Dr. Herbert Kuchen
Parallele Alpha-Beta-Suchen(2)
Distributed Tree SearchZuteilungsstrategie für Prozessoren
Typ-1-KnotenAlle Prozessoren zum Kind-Knoten am weitesten links
Typ-2 oder Typ-3-Knoten, sowie Ober-und UntergrenzenNeuer Prozess pro KnotenMindestens einen Prozessor pro Prozess
Erneute ZuteilungEffektive Verteilung der ArbeitslastMitsenden von Alpha- und Beta-Werten
Reduziert Such-OverheadVergrößert Kommunikations-Overhead
Einleitung - DaC - Backtracking - A-BSuche - Zusammenfassung
30 Institut für Praktische InformatikProf. Dr. Herbert Kuchen
Agenda
EinführungGrundlagenMotivationSpeed-up
Divide and Conquer (DaC)Sequentieller „Divide-and-Conquer“-AlgorithmusParallele „Divide-and-Conquer“ Varianten
BacktrackingSequentieller „Backtrack“-Algorithmus Parallele „Backtracking“ VariantenDistributed Termination Detection
Alpha-Beta-SucheSequentielle „Alpha-Beta-Suche“Parallele „Alpha-Beta-Suche“
Zusammenfassung
Einleitung - DaC - Backtracking - A-BSuche - Zusammenfassung
31 Institut für Praktische InformatikProf. Dr. Herbert Kuchen
Zusammenfassung
Vielzahl von Entscheidungs- und Optimierungsprobleme
Verschiedene Methodologien parallel ausführbar
Effektive ArbeitslastKommunikationImplizit durch Struktur
Speed-up reduziertKommunikations-OverheadSuch-Overhead
Einleitung - DaC - Backtracking - A-BSuche - Zusammenfassung