1 / 30

Agenda

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 )

onslow
Download Presentation

Agenda

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Kombinatorische SucheFelix PotthoffSeminar „Parallel Programmingand Parallel Algorithms“Prof. Dr. Herbert KuchenInstitut für Praktische InformatikWestfälische Wilhelms-Universität Münster12.01.2010

  2. Agenda Einführung Grundlagen Motivation Speed-up DivideandConquer (DaC) Sequentieller „Divide-and-Conquer“-Algorithmus Parallele „Divide-and-Conquer“ Varianten Backtracking Sequentieller „Backtrack“-Algorithmus Parallele „Backtracking“ Varianten Distributed TerminationDetection Alpha-Beta-Suche Sequentielle „Alpha-Beta-Suche“ Parallele „Alpha-Beta-Suche“ Zusammenfassung

  3. Kombinatorische Suche Kombinatorische Suche Prozess Eine oder mehr optimale oder suboptimale Lösung zu finden In einem definierten Problembereich Weitreichendes Einsatzgebiet Datenbanken Experten Kontroll-Systeme Routenplanung Einführung - DaC- Backtracking - A-BSuche - Zusammenfassung

  4. Motivation Parallele Architekturen Multicore-prozessoren, Hyper-threading Shared Memory Hardware immer günstiger Einführung - DaC- Backtracking - A-BSuche - Zusammenfassung

  5. Such-Methodologien DivideandConquer BranchandBound Backtracking Spiel-Baum-Suchen Mini-Max-Suche Alpha-Beta-Suche Einführung - DaC- Backtracking - A-BSuche - Zusammenfassung

  6. Speed-Up Speed-up (Beschleunigung) N Prozessoren  Speed-up = N? Nein! Einführung - DaC- Backtracking - A-BSuche - Zusammenfassung

  7. Agenda Einführung Grundlagen Motivation Speed-up DivideandConquer (DaC) Sequentieller „Divide-and-Conquer“-Algorithmus Parallele „Divide-and-Conquer“ Varianten Backtracking Sequentieller „Backtrack“-Algorithmus Parallele „Backtracking“ Varianten Distributed TerminationDetection Alpha-Beta-Suche Sequentielle „Alpha-Beta-Suche“ Parallele „Alpha-Beta-Suche“ Zusammenfassung Einführung - DaC- Backtracking - A-BSuche - Zusammenfassung

  8. Einleitung DivideandConquer Aufteilen in Teilprobleme Lösen mit DaC Weitere Teilprobleme möglich Kombinieren zur Lösung Anwendungsgebiete: Sortier-Algorithmen Quicksort Mergesort … Einführung - DaC- Backtracking - A-BSuche - Zusammenfassung

  9. Quicksort Algorithmus Parameter: A – Das zu sotierende Array links - Startposition rechts - Endposition Quicksort(A, links, rechts) iflinks < rechtsthen seperator Partition(A, links, rechts) Quicksort(A, links, seperator – 1) Quicksort(A, seperator, rechts) end if Einführung - DaC- Backtracking - A-BSuche - Zusammenfassung

  10. Quicksort Beispiel Einführung - DaC- Backtracking - A-BSuche - Zusammenfassung Parameters: A – Das Array zum Sortieren links - Startposition rechts - Endposition Quicksort(A, links, rechts) iflinks < rechtsthen seperator Partition(A, links, rechts) Quicksort(A, links, seperator – 1) Quicksort(A, seperator, rechts) end if

  11. Parallele Ausführung- Multiprozessor Original- und Teil-Probleme in zentralem Speicher Effiziente Arbeitslastverteilung Bottleneck Einführung - DaC- Backtracking - A-BSuche - Zusammenfassung

  12. Parallele DaC Variante – Multicomputer(1) Einführung - DaC- Backtracking - A-BSuche - Zusammenfassung Teil-Probleme im Speicher eines Prozessors Effiziente Arbeitslastverteilung Overhead für Verteilung Kombination

  13. 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. Agenda Einführung Grundlagen Motivation Speed-up DivideandConquer (DaC) Sequentieller „Divide-and-Conquer“-Algorithmus Parallele „Divide-and-Conquer“ Varianten Backtracking Sequentieller „Backtrack“-Algorithmus Parallele „Backtracking“ Varianten Distributed TerminationDetection Alpha-Beta-Suche Sequentielle „Alpha-Beta-Suche“ Parallele „Alpha-Beta-Suche“ Zusammenfassung Einführung - DaC- Backtracking- A-BSuche - Zusammenfassung

  15. Einleitung Backtracking Kind-Knoten generieren Beliebigen Kind-Knoten wählen Kind-Knoten mit gleicher Technik bearbeiten Rekursion abbrechen, wenn: Alle Kind-Knoten besucht Sackgasse Einführung - DaC- Backtracking- A-BSuche - Zusammenfassung

  16. Anwendung Backtracking Lösung 4-Queens-Problem [PW04] N-Queens 4-Queens Einführung - DaC- Backtracking- A-BSuche - Zusammenfassung

  17. BacktrackingSuchbaum Einführung - DaC- Backtracking- A-BSuche - Zusammenfassung

  18. Paralleles Backtracking Einen Teil-Baum für jeden Prozessor Problem Unausgeglichene Teilbäume Besuch unnötiger Knoten Lösung Bei erster Lösung stoppen Nachrichten Einführung - DaC- Backtracking- A-BSuche - Zusammenfassung

  19. Distribution terminationdetection Laufzeitfehler Nachrichten gleichzeitig Dijkstra‘s „Distribution terminationdetection“ Stellt sicher, dass sich keine Nachricht im System befindet Successoring Prozessor, Token Farbe Nachrichtenzähler Einführung - DaC- Backtracking- A-BSuche - Zusammenfassung

  20. Successorring Einführung - DaC- Backtracking- A-BSuche - Zusammenfassung

  21. 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

  22. Zusammenfassung Backtracking DFS Lineare Speichernutzung Effektive Arbeitslastverteilung als Grundproblem Zuteilung vieler Teilbäume als Potentielle Lösung Distributed terminationdetection Einführung - DaC- Backtracking- A-BSuche - Zusammenfassung

  23. Agenda Einführung Grundlagen Motivation Speed-up DivideandConquer (DaC) Sequentieller „Divide-and-Conquer“-Algorithmus Parallele „Divide-and-Conquer“ Varianten Backtracking Sequentieller „Backtrack“-Algorithmus Parallele „Backtracking“ Varianten Distributed TerminationDetection Alpha-Beta-Suche Sequentielle „Alpha-Beta-Suche“ Parallele „Alpha-Beta-Suche“ Zusammenfassung Einleitung - DaC- Backtracking - A-BSuche - Zusammenfassung

  24. Alpha-Beta-Suche Spielbäume Abschneiden (Pruning) Alpha und Beta Unter- und Obergrenze Such-Fenster Kategorisierung der Knoten Einführung - DaC- Backtracking - A-BSuche - Zusammenfassung

  25. Alpha-Beta-Pruning Einführung - DaC- Backtracking - A-BSuche - Zusammenfassung

  26. Pruning Best-case Effektiv besuchte Knoten-Anzahl reduziert von b auf Perfekt geordneter Spielbaum Worst-case Alle Knoten Einleitung - DaC- Backtracking - A-BSuche - Zusammenfassung

  27. Parallele Alpha-Beta-Suchen(1) Parallele Aspiration Search Suchbereich auf Prozessoren verteilt Mehr Prozessoren Kleinere Suchbereiche Größeres Pruning Potential Maximum Speedup 5 oder 6 Unabhängig von Prozessoren-Anzahl Parallele Sub-Tree-Evaluation Such-Overhead Kommunikations-Overhead Priorisieren der Suche von Teilbäumen Einleitung - DaC- Backtracking - A-BSuche - Zusammenfassung

  28. Parallele Alpha-Beta-Suchen(2) Distributed TreeSearch Zuteilungsstrategie für Prozessoren Typ-1-Knoten Alle Prozessoren zum Kind-Knoten am weitesten links Typ-2 oder Typ-3-Knoten, sowie Ober-und Untergrenzen Neuer Prozess pro Knoten Mindestens einen Prozessor pro Prozess Erneute Zuteilung Effektive Verteilung der Arbeitslast Mitsenden von Alpha- und Beta-Werten Reduziert Such-Overhead Vergrößert Kommunikations-Overhead Einleitung - DaC- Backtracking - A-BSuche - Zusammenfassung

  29. Agenda Einführung Grundlagen Motivation Speed-up DivideandConquer (DaC) Sequentieller „Divide-and-Conquer“-Algorithmus Parallele „Divide-and-Conquer“ Varianten Backtracking Sequentieller „Backtrack“-Algorithmus Parallele „Backtracking“ Varianten Distributed TerminationDetection Alpha-Beta-Suche Sequentielle „Alpha-Beta-Suche“ Parallele „Alpha-Beta-Suche“ Zusammenfassung Einleitung - DaC- Backtracking - A-BSuche - Zusammenfassung

  30. Zusammenfassung Vielzahl von Entscheidungs- und Optimierungsprobleme Verschiedene Methodologien parallel ausführbar Effektive Arbeitslast Kommunikation Implizit durch Struktur Speed-up reduziert Kommunikations-Overhead Such-Overhead Einleitung - DaC- Backtracking - A-BSuche - Zusammenfassung

More Related