Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
Veröffentlicht von:Barbara Kneller Geändert vor über 9 Jahren
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
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.