agenda
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 PresentationTRANSCRIPT
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