Agenda

Preview:

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