1 / 50

Sortiernetzwerke

Sortiernetzwerke. Seminar über Algorithmen SS 2005 von Arash Sarkohi und Christian Bunse. Übersicht. Einführung und Begriffe Laufzeit Entwickeln eines effizienten Sortiernetzwerks. Was ist ein Sortiernetzwerk. Ein Sortiernetzwerk ist ein Vergleichsnetzwerk, das eine Eingabe sortiert.

yamin
Download Presentation

Sortiernetzwerke

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. Sortiernetzwerke Seminar über Algorithmen SS 2005 von Arash Sarkohi und Christian Bunse Sortiernetzwerke

  2. Übersicht • Einführung und Begriffe • Laufzeit • Entwickeln eines effizienten Sortiernetzwerks Sortiernetzwerke

  3. Was ist ein Sortiernetzwerk • Ein Sortiernetzwerk ist ein Vergleichsnetzwerk, das eine Eingabe sortiert Sortiernetzwerke

  4. Was ist ein Vergleichsnetzwerk • Ein Vergleichsnetzwerk besteht aus Vergleichselementen • Es kann Vergleiche parallel durchführen • Begriffe: Eingabe/Ausgabesequenz: Werte auf den Eingangs-bzw. Ausgangsleitungen Sortiernetzwerke

  5. Das Vergleichselement Sortiernetzwerke

  6. Das Vergleichselement Sortiernetzwerke

  7. Das Vergleichselement Sortiernetzwerke

  8. SortiernetzwerkeBegriffe • Vergleichselement arbeitet in Zeit O(1) • Tiefe einer Leitung: Anzahl der VE, die auf der Leitung liegen • Tiefe des Netzwerkes: Maximale Tiefe einer Ausgangsleitung Sortiernetzwerke

  9. Beispiel Sortiernetzwerke

  10. Beispiel Sortiernetzwerke

  11. Beispiel Sortiernetzwerke

  12. Beispiel Sortiernetzwerke

  13. SortiernetzwerkeBegriffe • Sortiernetzwerk ist ein Vergleichsnetzwerk, in dem die Ausgabesequenz für jede Eingabesequenz monoton steigend ist. Sortiernetzwerke

  14. SortiernetzwerkeLaufzeit • Untere Schranke für die Anzahl der Vergleiche bei vergleichsbasierten Sortieralgorithmen: • Auch ein Sortiernetzwerk muss mindestens Vergleichselemente besitzen Sortiernetzwerke

  15. SortiernetzwerkeLaufzeit • => Jedes Sortiernetzwerk mit n Eingängen muss mindestens die Tiefe haben. Sortiernetzwerke

  16. Beispiel Sortiernetzwerke

  17. Warum sind Netzwerke mit Tiefe nicht trivial ? • Direkte Umsetzung von bekannten Algorithmen in Netzwerke ist nur bedingt möglich • Sequentielle Algorithmen sind nur bedingt parallelisierbar Sortiernetzwerke

  18. Effiziente Sortiernetzwerke • Es existiert in der Tat ein Sortiernetzwerk mit der Tiefe , allerdings mit riesigen Konstanten und nur schwer implementierbar • Unser Ziel ist daher ein Sortiernetzwerk mit der Tiefe Sortiernetzwerke

  19. Vorgehen • Problemreduktion auf das Null-Eins-Prinzip • Entwickeln eines bitonischen Sortierers • Entwickeln eines Mischers • Entwickeln eines Sortiernetzwerks mit Hilfe von Mischern Sortiernetzwerke

  20. Problemreduzierung • Ziel: Arbeiten mit dem Alphabet {0,1} statt mit beliebigen Zahlen. • Zu Zeigen: Wenn SN für Eingabe aus {0,1} korrekt arbeitet, so arbeitet es auch korrekt für beliebige Eingaben. Sortiernetzwerke

  21. Problemreduzierung • Lemma: Wenn ein Vergleichsnetzwerk die Eingabesequenz a = (a1, a2, …, an) in eine Ausgabesequenz b = (b1, b2, …, bn) umwandelt, dann transformiert das Netzwerk die Eingabesequenz f(a) = (f(a1), f(a2), …,f(an)) für jede beliebige monoton steigende Funktion f in eine Ausgabesequenz f(b) = (f(b1), f(b2), …,f(bn)) Sortiernetzwerke

  22. Null-Eins-Prinzip • Wenn ein Vergleichsnetzwerk mit n Eingängen alle möglichen Sequenzen von Nullen und Einsen korrekt sortiert, dann sortiert es alle Sequenzen beliebiger Zahlen korrekt Sortiernetzwerke

  23. Bitonisches Netzwerk • Ziel: Vergleichsnetzwerk, das bitonische Sequenzen sortiert Sortiernetzwerke

  24. Bitonisches Netzwerk • Def.: Eine bitonische Sequenz ist eine Sequenz, die monoton steigt und dann monoton fällt oder zirkulär verschoben werden kann, so dass sie dann monoton steigend und dann monoton fallend ist. • Beispiele: (1,4,6,8,3,2) (6,9,4,2,3,5). Sortiernetzwerke

  25. Bitonisches Netzwerk • Bitonische Null-Eins-Sequenzen haben die Form: oder für i,j,k >= 0. Sortiernetzwerke

  26. Bitonisches NetzwerkHalfcleaner • ein Halfcleaner ist ein Vergleichsnetzwerk der Tiefe 1, bei dem für i=1,…,n/2 die Eingabezeile i mit der Zeile i+n/2 verglichen wird. • alle Elemente der oberen Hälfte sind kleiner gleich alle Elemente der unteren Hälfte Sortiernetzwerke

  27. Bitonisches NetzwerkHalfcleaner Sortiernetzwerke

  28. Bitonisches Netzwerk • Lemma: Wenn die Eingabe eines Halfcleaners eine bitonische Sequenz ist, dann sind sowohl die untere als auch die obere Hälfte der Ausgabe bitonisch • Bei Nullen und Einsen ist mind. eine Hälfte rein bitonisch (nur Einsen oder nur Nullen) Sortiernetzwerke

  29. Bitonischer Sortierer • Der Bitonische Sortierer [n] sortiert eine bitonische Eingabesequenz rekursiv durch einen Halfcleaner[n] und zwei bitonischen Sortierer[n/2]. Sortiernetzwerke

  30. Bitonischer Sortierer Sortiernetzwerke

  31. Bitonischer Sortierer Sortiernetzwerke

  32. Bitonischer SortiererLaufzeit • Die Tiefe D(n) kann durch die folgende Rekursionsgleichung berechnet werden: Sortiernetzwerke

  33. Bitonischer Sortierer Aus dem Null-Eins-Prinzip folgt, dass jede beliebige bitonische Sequenz in Tiefe log n sortiert werden kann. Sortiernetzwerke

  34. Bitonischer SortiererVergleichselemente • Anzahl der Vergleichselemente in einem bitonischen Sortierer: Sortiernetzwerke

  35. Mischnetzwerk • Ein Mischnetzwerk ist ein Netzwerk, das zwei sortierte Eingabesequenzen zur einer verschmilzt. Sortiernetzwerke

  36. Mischnetzwerk • Idee: bilde aus zwei vorsortierten Sequenzen eine bitonische, und sortiere diese wie gehabt. • Invertiere dafür die zweite Eingabehälfte Sortiernetzwerke

  37. MischnetzwerkÄquivalent zu Halfcleaner Sortiernetzwerke

  38. Mischnetzwerk • Das Netzwerk Merger[n] ist identisch mit dem bitonischen Sortierer, allerdings wird der Halfcleaner modifiziert. Sortiernetzwerke

  39. Mischnetzwerk Sortiernetzwerke

  40. Mischnetzwerk Sortiernetzwerke

  41. MischnetzwerkLaufzeit • Die Laufzeit ist identisch mit der des bitonischen Sortierers Sortiernetzwerke

  42. Unser Sortiernetzwerk • Der Sortierer[n] sortiert eine beliebige Eingabesequenz rekursiv durch zwei Sortierer[n/2] und einen Mischer[n]. Sortiernetzwerke

  43. Unser Sortiernetzwerk Sortiernetzwerke

  44. Unser Sortiernetzwerk Sortiernetzwerke

  45. Unser Sortiernetzwerk Sortiernetzwerke

  46. Unser SortiernetzwerkLaufzeit • Die Tiefe D(n) kann durch die folgende Rekursionsgleichung bestimmt werden: Sortiernetzwerke

  47. Unser SortiernetzwerkLaufzeit • Damit können n beliebige Zahlen parallel in Zeit sortiert werden. Sortiernetzwerke

  48. Unser SortiernetzwerkVergleichselemente • Anzahl der Vergleichselemente: Sortiernetzwerke

  49. Ende! Sortiernetzwerke

  50. Literatur • Th.H.Cormen/C.E.Leiserson/R.Rivest/C.Stein Introduction to Algorithms, Second Edition Sortiernetzwerke

More Related