sortiernetzwerke1 seminar über algorithmen ss 2005 von arash sarkohi und christian bunse

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

Upload: barbara-kneller

Post on 06-Apr-2016

212 views

Category:

Documents


0 download

TRANSCRIPT

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

Sortiernetzwerke 1

Sortiernetzwerke

Seminar über AlgorithmenSS 2005

von Arash Sarkohiund Christian Bunse

Page 2: Sortiernetzwerke1 Seminar über Algorithmen SS 2005 von Arash Sarkohi und Christian Bunse

Sortiernetzwerke 2

Übersicht

Einführung und BegriffeLaufzeitEntwickeln eines effizienten Sortiernetzwerks

Page 3: Sortiernetzwerke1 Seminar über Algorithmen SS 2005 von Arash Sarkohi und Christian Bunse

Sortiernetzwerke 3

Was ist ein SortiernetzwerkEin Sortiernetzwerk ist ein Vergleichsnetzwerk, das eine Eingabe sortiert

Page 4: Sortiernetzwerke1 Seminar über Algorithmen SS 2005 von Arash Sarkohi und Christian Bunse

Sortiernetzwerke 4

Was ist ein Vergleichsnetzwerk

Ein Vergleichsnetzwerk besteht aus VergleichselementenEs kann Vergleiche parallel durchführenBegriffe: Eingabe/Ausgabesequenz: Werte auf den Eingangs-bzw. Ausgangsleitungen

Page 5: Sortiernetzwerke1 Seminar über Algorithmen SS 2005 von Arash Sarkohi und Christian Bunse

Sortiernetzwerke 5

Das Vergleichselement

Page 6: Sortiernetzwerke1 Seminar über Algorithmen SS 2005 von Arash Sarkohi und Christian Bunse

Sortiernetzwerke 6

Das Vergleichselement

Page 7: Sortiernetzwerke1 Seminar über Algorithmen SS 2005 von Arash Sarkohi und Christian Bunse

Sortiernetzwerke 7

Das Vergleichselement

Page 8: Sortiernetzwerke1 Seminar über Algorithmen SS 2005 von Arash Sarkohi und Christian Bunse

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

Page 9: Sortiernetzwerke1 Seminar über Algorithmen SS 2005 von Arash Sarkohi und Christian Bunse

Sortiernetzwerke 9

Beispiel

Page 10: Sortiernetzwerke1 Seminar über Algorithmen SS 2005 von Arash Sarkohi und Christian Bunse

Sortiernetzwerke 10

Beispiel

Page 11: Sortiernetzwerke1 Seminar über Algorithmen SS 2005 von Arash Sarkohi und Christian Bunse

Sortiernetzwerke 11

Beispiel

Page 12: Sortiernetzwerke1 Seminar über Algorithmen SS 2005 von Arash Sarkohi und Christian Bunse

Sortiernetzwerke 12

Beispiel

Page 13: Sortiernetzwerke1 Seminar über Algorithmen SS 2005 von Arash Sarkohi und Christian Bunse

Sortiernetzwerke 13

SortiernetzwerkeBegriffe

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

Page 14: Sortiernetzwerke1 Seminar über Algorithmen SS 2005 von Arash Sarkohi und Christian Bunse

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

Page 15: Sortiernetzwerke1 Seminar über Algorithmen SS 2005 von Arash Sarkohi und Christian Bunse

Sortiernetzwerke 15

SortiernetzwerkeLaufzeit

=> Jedes Sortiernetzwerk mit n Eingängen muss mindestens die Tiefe haben.nlog

Page 16: Sortiernetzwerke1 Seminar über Algorithmen SS 2005 von Arash Sarkohi und Christian Bunse

Sortiernetzwerke 16

Beispiel

Page 17: Sortiernetzwerke1 Seminar über Algorithmen SS 2005 von Arash Sarkohi und Christian Bunse

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

Page 18: Sortiernetzwerke1 Seminar über Algorithmen SS 2005 von Arash Sarkohi und Christian Bunse

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

Page 19: Sortiernetzwerke1 Seminar über Algorithmen SS 2005 von Arash Sarkohi und Christian Bunse

Sortiernetzwerke 19

VorgehenProblemreduktion auf das Null-Eins-PrinzipEntwickeln eines bitonischen SortierersEntwickeln eines MischersEntwickeln eines Sortiernetzwerks mit Hilfe von Mischern

Page 20: Sortiernetzwerke1 Seminar über Algorithmen SS 2005 von Arash Sarkohi und Christian Bunse

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.

Page 21: Sortiernetzwerke1 Seminar über Algorithmen SS 2005 von Arash Sarkohi und Christian Bunse

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

Page 22: Sortiernetzwerke1 Seminar über Algorithmen SS 2005 von Arash Sarkohi und Christian Bunse

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

Page 23: Sortiernetzwerke1 Seminar über Algorithmen SS 2005 von Arash Sarkohi und Christian Bunse

Sortiernetzwerke 23

Bitonisches Netzwerk

Ziel: Vergleichsnetzwerk, das bitonische Sequenzen sortiert

Page 24: Sortiernetzwerke1 Seminar über Algorithmen SS 2005 von Arash Sarkohi und Christian Bunse

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

Page 25: Sortiernetzwerke1 Seminar über Algorithmen SS 2005 von Arash Sarkohi und Christian Bunse

Sortiernetzwerke 25

Bitonisches Netzwerk

Bitonische Null-Eins-Sequenzen haben die Form:

oder für i,j,k >= 0.kji 010 kji 101

Page 26: Sortiernetzwerke1 Seminar über Algorithmen SS 2005 von Arash Sarkohi und Christian Bunse

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

Page 27: Sortiernetzwerke1 Seminar über Algorithmen SS 2005 von Arash Sarkohi und Christian Bunse

Sortiernetzwerke 27

Bitonisches NetzwerkHalfcleaner

Page 28: Sortiernetzwerke1 Seminar über Algorithmen SS 2005 von Arash Sarkohi und Christian Bunse

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)

Page 29: Sortiernetzwerke1 Seminar über Algorithmen SS 2005 von Arash Sarkohi und Christian Bunse

Sortiernetzwerke 29

Bitonischer Sortierer

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

Page 30: Sortiernetzwerke1 Seminar über Algorithmen SS 2005 von Arash Sarkohi und Christian Bunse

Sortiernetzwerke 30

Bitonischer Sortierer

Page 31: Sortiernetzwerke1 Seminar über Algorithmen SS 2005 von Arash Sarkohi und Christian Bunse

Sortiernetzwerke 31

Bitonischer Sortierer

Page 32: Sortiernetzwerke1 Seminar über Algorithmen SS 2005 von Arash Sarkohi und Christian Bunse

Sortiernetzwerke 32

Bitonischer SortiererLaufzeit

Die Tiefe D(n) kann durch die folgende Rekursionsgleichung berechnet werden:

121)2/(

10)(

kundnnD

nnD

k

nnD log)(

Page 33: Sortiernetzwerke1 Seminar über Algorithmen SS 2005 von Arash Sarkohi und Christian Bunse

Sortiernetzwerke 33

Bitonischer Sortierer

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

Page 34: Sortiernetzwerke1 Seminar über Algorithmen SS 2005 von Arash Sarkohi und Christian Bunse

Sortiernetzwerke 34

Bitonischer SortiererVergleichselemente

Anzahl der Vergleichselemente in einem bitonischen Sortierer:

nnnvnnv

log2/)2/(22/)(

Page 35: Sortiernetzwerke1 Seminar über Algorithmen SS 2005 von Arash Sarkohi und Christian Bunse

Sortiernetzwerke 35

Mischnetzwerk

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

Page 36: Sortiernetzwerke1 Seminar über Algorithmen SS 2005 von Arash Sarkohi und Christian Bunse

Sortiernetzwerke 36

Mischnetzwerk

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

Page 37: Sortiernetzwerke1 Seminar über Algorithmen SS 2005 von Arash Sarkohi und Christian Bunse

Sortiernetzwerke 37

MischnetzwerkÄquivalent zu Halfcleaner

Page 38: Sortiernetzwerke1 Seminar über Algorithmen SS 2005 von Arash Sarkohi und Christian Bunse

Sortiernetzwerke 38

Mischnetzwerk

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

Page 39: Sortiernetzwerke1 Seminar über Algorithmen SS 2005 von Arash Sarkohi und Christian Bunse

Sortiernetzwerke 39

Mischnetzwerk

Page 40: Sortiernetzwerke1 Seminar über Algorithmen SS 2005 von Arash Sarkohi und Christian Bunse

Sortiernetzwerke 40

Mischnetzwerk

Page 41: Sortiernetzwerke1 Seminar über Algorithmen SS 2005 von Arash Sarkohi und Christian Bunse

Sortiernetzwerke 41

MischnetzwerkLaufzeit

Die Laufzeit ist identisch mit der des bitonischen Sortierers

Page 42: Sortiernetzwerke1 Seminar über Algorithmen SS 2005 von Arash Sarkohi und Christian Bunse

Sortiernetzwerke 42

Unser Sortiernetzwerk

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

Page 43: Sortiernetzwerke1 Seminar über Algorithmen SS 2005 von Arash Sarkohi und Christian Bunse

Sortiernetzwerke 43

Unser Sortiernetzwerk

Page 44: Sortiernetzwerke1 Seminar über Algorithmen SS 2005 von Arash Sarkohi und Christian Bunse

Sortiernetzwerke 44

Unser Sortiernetzwerk

Page 45: Sortiernetzwerke1 Seminar über Algorithmen SS 2005 von Arash Sarkohi und Christian Bunse

Sortiernetzwerke 45

Unser Sortiernetzwerk

Page 46: Sortiernetzwerke1 Seminar über Algorithmen SS 2005 von Arash Sarkohi und Christian Bunse

Sortiernetzwerke 46

Unser SortiernetzwerkLaufzeit

Die Tiefe D(n) kann durch die folgende Rekursionsgleichung bestimmt werden:

12log)2/(

10)(

kundnnnD

nnD

k

)(log)( 2 nnD

Page 47: Sortiernetzwerke1 Seminar über Algorithmen SS 2005 von Arash Sarkohi und Christian Bunse

Sortiernetzwerke 47

Unser SortiernetzwerkLaufzeit

Damit können n beliebige Zahlen parallel in Zeit

sortiert werden. )(log2 n

Page 48: Sortiernetzwerke1 Seminar über Algorithmen SS 2005 von Arash Sarkohi und Christian Bunse

Sortiernetzwerke 48

Unser SortiernetzwerkVergleichselemente

Anzahl der Vergleichselemente:

)loglog(41

)2(2log

2)(

2 nnnn

nvnnnv

Page 49: Sortiernetzwerke1 Seminar über Algorithmen SS 2005 von Arash Sarkohi und Christian Bunse

Sortiernetzwerke 49

Ende!

Page 50: Sortiernetzwerke1 Seminar über Algorithmen SS 2005 von Arash Sarkohi und Christian Bunse

Sortiernetzwerke 50

Literatur

Th.H.Cormen/C.E.Leiserson/R.Rivest/C.Stein

Introduction to Algorithms, Second Edition