Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Sortiernetzwerke1 Seminar über Algorithmen SS 2005 von Arash Sarkohi und Christian Bunse.

Ähnliche Präsentationen


Präsentation zum Thema: "Sortiernetzwerke1 Seminar über Algorithmen SS 2005 von Arash Sarkohi und Christian Bunse."—  Präsentation transkript:

1 Sortiernetzwerke1 Seminar über Algorithmen SS 2005 von Arash Sarkohi und Christian Bunse

2 Sortiernetzwerke2 Übersicht Einführung und Begriffe Laufzeit Entwickeln eines effizienten Sortiernetzwerks

3 Sortiernetzwerke3 Was ist ein Sortiernetzwerk Ein Sortiernetzwerk ist ein Vergleichsnetzwerk, das eine Eingabe sortiert

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

5 Sortiernetzwerke5 Das Vergleichselement

6 Sortiernetzwerke6 Das Vergleichselement

7 Sortiernetzwerke7 Das Vergleichselement

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

9 Sortiernetzwerke9 Beispiel

10 Sortiernetzwerke10 Beispiel

11 Sortiernetzwerke11 Beispiel

12 Sortiernetzwerke12 Beispiel

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

14 Sortiernetzwerke14 Sortiernetzwerke Laufzeit Untere Schranke für die Anzahl der Vergleiche bei vergleichsbasierten Sortieralgorithmen:  Auch ein Sortiernetzwerk muss mindestens Vergleichselemente besitzen

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

16 Sortiernetzwerke16 Beispiel

17 Sortiernetzwerke17 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

18 Sortiernetzwerke18 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

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

20 Sortiernetzwerke20 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.

21 Sortiernetzwerke21 Problemreduzierung Lemma: Wenn ein Vergleichsnetzwerk die Eingabesequenz a = (a 1, a 2, …, a n ) in eine Ausgabesequenz b = (b 1, b 2, …, b n ) umwandelt, dann transformiert das Netzwerk die Eingabesequenz f(a) = (f(a 1 ), f(a 2 ), …,f(a n )) für jede beliebige monoton steigende Funktion f in eine Ausgabesequenz f(b) = (f(b 1 ), f(b 2 ), …,f(b n ))

22 Sortiernetzwerke22 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

23 Sortiernetzwerke23 Bitonisches Netzwerk Ziel: Vergleichsnetzwerk, das bitonische Sequenzen sortiert

24 Sortiernetzwerke24 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).

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

26 Sortiernetzwerke26 Bitonisches Netzwerk Halfcleaner 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

27 Sortiernetzwerke27 Bitonisches Netzwerk Halfcleaner

28 Sortiernetzwerke28 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)

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

30 Sortiernetzwerke30 Bitonischer Sortierer

31 Sortiernetzwerke31 Bitonischer Sortierer

32 Sortiernetzwerke32 Bitonischer Sortierer Laufzeit Die Tiefe D(n) kann durch die folgende Rekursionsgleichung berechnet werden:

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

34 Sortiernetzwerke34 Bitonischer Sortierer Vergleichselemente Anzahl der Vergleichselemente in einem bitonischen Sortierer:

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

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

37 Sortiernetzwerke37 Mischnetzwerk Äquivalent zu Halfcleaner

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

39 Sortiernetzwerke39 Mischnetzwerk

40 Sortiernetzwerke40 Mischnetzwerk

41 Sortiernetzwerke41 Mischnetzwerk Laufzeit Die Laufzeit ist identisch mit der des bitonischen Sortierers

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

43 Sortiernetzwerke43 Unser Sortiernetzwerk

44 Sortiernetzwerke44 Unser Sortiernetzwerk

45 Sortiernetzwerke45 Unser Sortiernetzwerk

46 Sortiernetzwerke46 Unser Sortiernetzwerk Laufzeit Die Tiefe D(n) kann durch die folgende Rekursionsgleichung bestimmt werden:

47 Sortiernetzwerke47 Unser Sortiernetzwerk Laufzeit Damit können n beliebige Zahlen parallel in Zeit sortiert werden.

48 Sortiernetzwerke48 Unser Sortiernetzwerk Vergleichselemente Anzahl der Vergleichselemente:

49 Sortiernetzwerke49 Ende!

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


Herunterladen ppt "Sortiernetzwerke1 Seminar über Algorithmen SS 2005 von Arash Sarkohi und Christian Bunse."

Ähnliche Präsentationen


Google-Anzeigen