Seminar - PowerPoint PPT Presentation

About This Presentation
Title:

Seminar

Description:

Sortiernetzwerke Seminar ber Algorithmen SS 2005 von Arash Sarkohi und Christian Bunse – PowerPoint PPT presentation

Number of Views:42
Avg rating:3.0/5.0
Slides: 51
Provided by: DimitriIv
Category:
Tags: cormen | seminar

less

Transcript and Presenter's Notes

Title: Seminar


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

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

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

4
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
Das Vergleichselement
6
Das Vergleichselement
7
Das Vergleichselement
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

9
Beispiel
10
Beispiel
11
Beispiel
12
Beispiel
13
SortiernetzwerkeBegriffe
  • Sortiernetzwerk ist ein Vergleichsnetzwerk, in
    dem die Ausgabesequenz für jede Eingabesequenz
    monoton steigend ist.

14
SortiernetzwerkeLaufzeit
  • Untere Schranke für die Anzahl der Vergleiche bei
    vergleichsbasierten Sortieralgorithmen
  • Auch ein Sortiernetzwerk muss mindestens
  • Vergleichselemente besitzen

15
SortiernetzwerkeLaufzeit
  • gt Jedes Sortiernetzwerk mit n Eingängen muss
    mindestens die Tiefe haben.

16
Beispiel
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

18
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
Vorgehen
  • Problemreduktion auf das Null-Eins-Prinzip
  • Entwickeln eines bitonischen Sortierers
  • Entwickeln eines Mischers
  • Entwickeln eines Sortiernetzwerks mit Hilfe von
    Mischern

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

22
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
Bitonisches Netzwerk
  • Ziel Vergleichsnetzwerk, das bitonische
    Sequenzen sortiert

24
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
Bitonisches Netzwerk
  • Bitonische Null-Eins-Sequenzen haben die Form
  • oder für i,j,k gt
    0.

26
Bitonisches NetzwerkHalfcleaner
  • ein Halfcleaner ist ein Vergleichsnetzwerk der
    Tiefe 1, bei dem für i1,,n/2 die Eingabezeile i
    mit der Zeile in/2 verglichen wird.
  • alle Elemente der oberen Hälfte sind kleiner
    gleich alle Elemente der unteren Hälfte

27
Bitonisches NetzwerkHalfcleaner
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)

29
Bitonischer Sortierer
  • Der Bitonische Sortierer n sortiert eine
    bitonische Eingabesequenz rekursiv durch einen
    Halfcleanern und zwei bitonischen
    Sortierern/2.

30
Bitonischer Sortierer
31
Bitonischer Sortierer
32
Bitonischer SortiererLaufzeit
  • Die Tiefe D(n) kann durch die folgende
    Rekursionsgleichung berechnet werden

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

34
Bitonischer SortiererVergleichselemente
  • Anzahl der Vergleichselemente in einem
    bitonischen Sortierer

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

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

37
MischnetzwerkÄquivalent zu Halfcleaner
38
Mischnetzwerk
  • Das Netzwerk Mergern ist identisch mit dem
    bitonischen Sortierer, allerdings wird der
    Halfcleaner modifiziert.

39
Mischnetzwerk
40
Mischnetzwerk
41
MischnetzwerkLaufzeit
  • Die Laufzeit ist identisch mit der des
    bitonischen Sortierers

42
Unser Sortiernetzwerk
  • Der Sortierern sortiert eine beliebige
    Eingabesequenz rekursiv durch zwei Sortierern/2
    und einen Mischern.

43
Unser Sortiernetzwerk
44
Unser Sortiernetzwerk
45
Unser Sortiernetzwerk
46
Unser SortiernetzwerkLaufzeit
  • Die Tiefe D(n) kann durch die folgende
    Rekursionsgleichung bestimmt werden

47
Unser SortiernetzwerkLaufzeit
  • Damit können n beliebige Zahlen parallel in Zeit
  • sortiert werden.

48
Unser SortiernetzwerkVergleichselemente
  • Anzahl der Vergleichselemente

49
Ende!
50
Literatur
  • Th.H.Cormen/C.E.Leiserson/R.Rivest/C.Stein
  • Introduction to Algorithms, Second Edition
Write a Comment
User Comments (0)
About PowerShow.com