30
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 Informatik Westfälische Wilhelms-Universität Münster 12.01.2010

Agenda

  • 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

Page 1: Agenda

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

Page 2: Agenda

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

Page 3: Agenda

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

Page 4: Agenda

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

Page 5: Agenda

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

Page 6: Agenda

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

Page 7: Agenda

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

Page 8: Agenda

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

Page 9: Agenda

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

Page 10: Agenda

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

Page 11: Agenda

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

Page 12: Agenda

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

Page 13: Agenda

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

Page 14: Agenda

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

Page 15: Agenda

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

Page 16: Agenda

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]

Page 17: Agenda

18 Institut für Praktische InformatikProf. Dr. Herbert Kuchen

Backtracking Suchbaum

Einführung - DaC - Backtracking - A-BSuche - Zusammenfassung

Page 18: Agenda

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

Page 19: Agenda

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

Page 20: Agenda

21 Institut für Praktische InformatikProf. Dr. Herbert Kuchen

Successorring

Einführung - DaC - Backtracking - A-BSuche - Zusammenfassung

Page 21: Agenda

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

Page 22: Agenda

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

Page 23: Agenda

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

Page 24: Agenda

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

Page 25: Agenda

26 Institut für Praktische InformatikProf. Dr. Herbert Kuchen

Alpha-Beta-Pruning

Einführung - DaC - Backtracking - A-BSuche - Zusammenfassung

Page 26: Agenda

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

Page 27: Agenda

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

Page 28: Agenda

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

Page 29: Agenda

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

Page 30: Agenda

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