Sortiernetzwerke1 Seminar über Algorithmen SS 2005 von Arash Sarkohi und Christian Bunse.
-
Upload
barbara-kneller -
Category
Documents
-
view
212 -
download
0
Transcript of Sortiernetzwerke1 Seminar über Algorithmen SS 2005 von Arash Sarkohi und Christian Bunse.
Sortiernetzwerke 1
Sortiernetzwerke
Seminar über AlgorithmenSS 2005
von Arash Sarkohiund Christian Bunse
Sortiernetzwerke 2
Übersicht
Einführung und BegriffeLaufzeitEntwickeln eines effizienten Sortiernetzwerks
Sortiernetzwerke 3
Was ist ein SortiernetzwerkEin Sortiernetzwerk ist ein Vergleichsnetzwerk, das eine Eingabe sortiert
Sortiernetzwerke 4
Was ist ein Vergleichsnetzwerk
Ein Vergleichsnetzwerk besteht aus VergleichselementenEs kann Vergleiche parallel durchführenBegriffe: 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
)log( nn
)log( nn
Sortiernetzwerke 15
SortiernetzwerkeLaufzeit
=> Jedes Sortiernetzwerk mit n Eingängen muss mindestens die Tiefe haben.nlog
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
)(lognO
Sortiernetzwerke 18
Effiziente SortiernetzwerkeEs 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
)(lognO
)(log2 n
Sortiernetzwerke 19
VorgehenProblemreduktion auf das Null-Eins-PrinzipEntwickeln eines bitonischen SortierersEntwickeln eines MischersEntwickeln eines Sortiernetzwerks mit Hilfe von Mischern
Sortiernetzwerke 20
ProblemreduzierungZiel: 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
ProblemreduzierungLemma: Wenn ein Vergleichsnetzwerk die Eingabesequenz a = (a1, a2, …, an) in eine Ausgabesequenz b = (b1, b2, …, bn) umwandelt, dann transformiert das Netzwerk die Eingabesequenzf(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-PrinzipWenn ein Vergleichsnetzwerk mit n Eingängen alle möglichen Sequenzen von Nullen und Einsen korrekt sortiert, dann sortiert es alle Sequenzen beliebiger Zahlen korrekt
n2
Sortiernetzwerke 23
Bitonisches Netzwerk
Ziel: Vergleichsnetzwerk, das bitonische Sequenzen sortiert
Sortiernetzwerke 24
Bitonisches NetzwerkDef.: 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.kji 010 kji 101
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:
121)2/(
10)(
kundnnD
nnD
k
nnD log)(
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:
nnnvnnv
log2/)2/(22/)(
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:
12log)2/(
10)(
kundnnnD
nnD
k
)(log)( 2 nnD
Sortiernetzwerke 47
Unser SortiernetzwerkLaufzeit
Damit können n beliebige Zahlen parallel in Zeit
sortiert werden. )(log2 n
Sortiernetzwerke 48
Unser SortiernetzwerkVergleichselemente
Anzahl der Vergleichselemente:
)loglog(41
)2(2log
2)(
2 nnnn
nvnnnv
Sortiernetzwerke 49
Ende!
Sortiernetzwerke 50
Literatur
Th.H.Cormen/C.E.Leiserson/R.Rivest/C.Stein
Introduction to Algorithms, Second Edition