500 likes | 682 Views
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.
E N D
Sortiernetzwerke Seminar über Algorithmen SS 2005 von Arash Sarkohi und Christian Bunse Sortiernetzwerke
Übersicht • Einführung und Begriffe • Laufzeit • Entwickeln eines effizienten Sortiernetzwerks Sortiernetzwerke
Was ist ein Sortiernetzwerk • Ein Sortiernetzwerk ist ein Vergleichsnetzwerk, das eine Eingabe sortiert Sortiernetzwerke
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
Das Vergleichselement Sortiernetzwerke
Das Vergleichselement Sortiernetzwerke
Das Vergleichselement Sortiernetzwerke
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
Beispiel Sortiernetzwerke
Beispiel Sortiernetzwerke
Beispiel Sortiernetzwerke
Beispiel Sortiernetzwerke
SortiernetzwerkeBegriffe • Sortiernetzwerk ist ein Vergleichsnetzwerk, in dem die Ausgabesequenz für jede Eingabesequenz monoton steigend ist. Sortiernetzwerke
SortiernetzwerkeLaufzeit • Untere Schranke für die Anzahl der Vergleiche bei vergleichsbasierten Sortieralgorithmen: • Auch ein Sortiernetzwerk muss mindestens Vergleichselemente besitzen Sortiernetzwerke
SortiernetzwerkeLaufzeit • => Jedes Sortiernetzwerk mit n Eingängen muss mindestens die Tiefe haben. Sortiernetzwerke
Beispiel Sortiernetzwerke
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
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
Vorgehen • Problemreduktion auf das Null-Eins-Prinzip • Entwickeln eines bitonischen Sortierers • Entwickeln eines Mischers • Entwickeln eines Sortiernetzwerks mit Hilfe von Mischern Sortiernetzwerke
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
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
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
Bitonisches Netzwerk • Ziel: Vergleichsnetzwerk, das bitonische Sequenzen sortiert Sortiernetzwerke
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
Bitonisches Netzwerk • Bitonische Null-Eins-Sequenzen haben die Form: oder für i,j,k >= 0. Sortiernetzwerke
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
Bitonisches NetzwerkHalfcleaner Sortiernetzwerke
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
Bitonischer Sortierer • Der Bitonische Sortierer [n] sortiert eine bitonische Eingabesequenz rekursiv durch einen Halfcleaner[n] und zwei bitonischen Sortierer[n/2]. Sortiernetzwerke
Bitonischer Sortierer Sortiernetzwerke
Bitonischer Sortierer Sortiernetzwerke
Bitonischer SortiererLaufzeit • Die Tiefe D(n) kann durch die folgende Rekursionsgleichung berechnet werden: Sortiernetzwerke
Bitonischer Sortierer Aus dem Null-Eins-Prinzip folgt, dass jede beliebige bitonische Sequenz in Tiefe log n sortiert werden kann. Sortiernetzwerke
Bitonischer SortiererVergleichselemente • Anzahl der Vergleichselemente in einem bitonischen Sortierer: Sortiernetzwerke
Mischnetzwerk • Ein Mischnetzwerk ist ein Netzwerk, das zwei sortierte Eingabesequenzen zur einer verschmilzt. Sortiernetzwerke
Mischnetzwerk • Idee: bilde aus zwei vorsortierten Sequenzen eine bitonische, und sortiere diese wie gehabt. • Invertiere dafür die zweite Eingabehälfte Sortiernetzwerke
MischnetzwerkÄquivalent zu Halfcleaner Sortiernetzwerke
Mischnetzwerk • Das Netzwerk Merger[n] ist identisch mit dem bitonischen Sortierer, allerdings wird der Halfcleaner modifiziert. Sortiernetzwerke
Mischnetzwerk Sortiernetzwerke
Mischnetzwerk Sortiernetzwerke
MischnetzwerkLaufzeit • Die Laufzeit ist identisch mit der des bitonischen Sortierers Sortiernetzwerke
Unser Sortiernetzwerk • Der Sortierer[n] sortiert eine beliebige Eingabesequenz rekursiv durch zwei Sortierer[n/2] und einen Mischer[n]. Sortiernetzwerke
Unser Sortiernetzwerk Sortiernetzwerke
Unser Sortiernetzwerk Sortiernetzwerke
Unser Sortiernetzwerk Sortiernetzwerke
Unser SortiernetzwerkLaufzeit • Die Tiefe D(n) kann durch die folgende Rekursionsgleichung bestimmt werden: Sortiernetzwerke
Unser SortiernetzwerkLaufzeit • Damit können n beliebige Zahlen parallel in Zeit sortiert werden. Sortiernetzwerke
Unser SortiernetzwerkVergleichselemente • Anzahl der Vergleichselemente: Sortiernetzwerke
Ende! Sortiernetzwerke
Literatur • Th.H.Cormen/C.E.Leiserson/R.Rivest/C.Stein Introduction to Algorithms, Second Edition Sortiernetzwerke