Handout - TU Ilmenau

Werbung
Algorithmen und Datenstrukturen SS09
Foliensatz 15
Michael Brinkmeier
Technische Universität Ilmenau
Institut für Theoretische Informatik
Sommersemester 2009
Algorithmen und Datenstrukturen SS09
M. Brinkmeier
TU Ilmenau
Seite 1 / 16
Untere Schranken für das Vergleichsbasierte
Sortieren
Algorithmen und Datenstrukturen SS09
M. Brinkmeier
TU Ilmenau
Seite 2 / 16
Vergleichsbasierte Sortierverfahren
Definition (Vergleichsbasierte Sortieralgorithmen)
Ein Sortieralgorithmus S für die total geordnete Menge (D, <) heißt
vergleichsbasiert, wenn in A auf Schlüsseln x, y ∈ D nur die Operationen
x <y
x ≤y
und
x =y
sowie Verschieben und Kopieren angewandt werden.
In vergleichsbasierten Sortierverfahren sind Schlüssel atomar, d.h. werden als
unzerlegbare Einheiten betrachtet.
Beispiele
Mergesort, Quicksort, Heapsort, Straight Insertion-Sort, Bubblesort sind
vergleichsbasierte Sortieralgorithmen.
Algorithmen und Datenstrukturen SS09
M. Brinkmeier
TU Ilmenau
Seite 3 / 16
Vergleichsbasierte Sortierverfahren
Sei im Folgenden A ein beliebiges vergleichsbasiertes Sortierverfahren.
Ohne Einschränkung der Allgemeinheit, können wir Annehmen, dass A
Eingaben der Form
(a1 , 1), (a2 , 2), . . . , (an , n)
erhält, wobei die ai die paarweise verschiedenen Schlüssel sind, nach denen
sortiert wird.
Beispiel
Aus der Eingabe (2, 1), (4, 2), (1, 3), (3, 4) wird (1, 3), (2, 1), (3, 4), (4, 2).
Die zweite Komponente eines Paares gibt also eine Permutation π an mittels
der die Sequenz (a1 , a2 , . . . , an ) sortiert werden kann, d.h.
aπ(1) < aπ(2) < · · · < aπ(n) .
Im Beispiel ist π = (3, 1, 4, 2).
Algorithmen und Datenstrukturen SS09
M. Brinkmeier
TU Ilmenau
Seite 4 / 16
Vergleichsbasierte Sortierverfahren
Damit können wir – wie bereits früher gezeigt – die sortierende Permutation
als Ausgabe von A auffassen.
Ein (vergleichsbasiertes) Sortierverfahren hat auf n Schlüsseln n! viele
verschiedene Ausgaben.
Jeder Vergleich schränkt die Menge der noch möglichen Permutationen ein.
Es sei S die Menge der noch möglichen Permutationen (zu Beginn alle).
1
Gilt ai < aj , so muss in der Ergebnispermutation π −1 (i) < π (j) gelten.
Damit ergibt sich für den nächsten Vergleich
1
S = {π ∈ S | π −1 (i) < π (j)}
1
Gilt ai > aj , so muss in der Ergebnispermutation π −1 (i) > π (j) gelten.
Damit ergibt sich für den nächsten Vergleich
1
S = {π ∈ S | π −1 (i) > π (j)}
Algorithmen und Datenstrukturen SS09
M. Brinkmeier
TU Ilmenau
Seite 5 / 16
Entscheidungsbäume
Damit können wir jedes vergleichsbasierte Sortierverfahren als
Entscheidungsbaum beschreiben.
Sind noch die Permutationen S möglich und wird der Vergleich ai < aj
gemacht, notieren wir das in folgender Form:
S | ai < aj
Ja
Nein
Si <j | ak < al
Sj<i | ag < ah
Wobei
Si <j = π ∈ S | π −1 (i) < π −1 (j) und Sj<i = π ∈ S | π −1 (i) > π −1 (j) .
Algorithmen und Datenstrukturen SS09
M. Brinkmeier
TU Ilmenau
Seite 6 / 16
Heapsort mit drei Elementen
{(123), (132), (213), (231), (312), (321)}
a2 > a3
Ja
{(132), (312), (321)}
Nein
a2 > a1
a3 > a1
Ja
{(132), (312)}
Ja
a1 > a3
(312)
{(123), (213), (231)}
(321)
{(123), (213)}
a2 > a1
(123)
(132)
(231)
(213)
Algorithmen und Datenstrukturen SS09
M. Brinkmeier
TU Ilmenau
Seite 7 / 16
Entscheidungsbäume
Beobachtung
Jeder vergleichsbasierte Sortieralgorithmus A induziert für jede Schlüsselzahl
n einen Entscheidungsbaum TA,n .
Die Wege in TA,n entsprechen den Berechnungen von A.
Da A korrekt ist, muss jeder Weg in einem Blatt enden und jedes Blatt kann
nur noch eine Permutation enthalten.
Außerdem kann jede Permutation nur in einem Blatt vorkommen.
Damit hat TA,n mindestens n! Blätter.
Algorithmen und Datenstrukturen SS09
M. Brinkmeier
TU Ilmenau
Seite 8 / 16
Eine Untere Schranke
Satz
Ist A ein vergleichsbasierter Sortieralgorithmus, dann gibt es für jedes n ∈ N
eine Eingabe (a1 , . . . , an ) auf der A mindestens ⌈log(n!)⌉ Vergleiche
ausführt.
Beweis.
TA,n hat mindestens n! externe Knoten. Damit hat er Tiefe ≥ log(n!).
Da die Zahl der Vergleiche eine natürliche Zahl ist, erhält man im
schlechtewsten Fall mindestens ⌈log(n!)⌉ Vergleiche.
Algorithmen und Datenstrukturen SS09
M. Brinkmeier
TU Ilmenau
Seite 9 / 16
Die Untere Schranke
Wir untersuchen log(n!) genauer.
n
e =
∞
X
ni
i =0
und damit
nn
>
i!
n!
nn
n! > n .
e
Weiter gilt
ln(n!) =
n
X
i =1
ln(i) ≤ ln n +
Z
n
ln xdx = ln n + n ln n − n + 1.
1
Algorithmen und Datenstrukturen SS09
M. Brinkmeier
TU Ilmenau
Seite 10 / 16
Die Untere Schranke
Damit gilt
n log n − n log e ≤ log(n!) = ln(n!) · log(e) ≤ (n + 1) log n − log(e)(n − 1)
Satz
Ist A ein vergleichsbasierter Sortieralgorithmus, dann gibt es für jedes n ∈ N
eine Eingabe (a1 , . . . , an ) auf der A Θ(n log n) Vergleiche ausführt.
Algorithmen und Datenstrukturen SS09
M. Brinkmeier
TU Ilmenau
Seite 11 / 16
Der mittlere Fall
Satz
Ist A ein vergleichsbasierter Sortieralgorithmus, dann gilt für die mittlere
Anzahl V̄n der benötigten Vergleiche für n Schlüssel:
V̄n ≥ log(n!) = Ω(n log n).
Beweis.
TA,n hat n! äußere Knoten.
Die Mittlere Weglänge zu den äußeren Knoten ist
1
1
TEPL(TA,n ) ≥ (n!) log(n!) = log(n!).
n!
n!
Algorithmen und Datenstrukturen SS09
M. Brinkmeier
TU Ilmenau
Seite 12 / 16
Randomisierte Verfahren
Satz
Ist A ein randomisierter vergleichsbasierter Sortieralgorithmus – d.h. er führt
Zufallsexperimente aus – dann gibt es für jedes n eine Eingabe (a1 , . . . , an ),
für die die erwartete Anzuahl von Schlüsselvergleichen ≥ log(n!) ist.
Beweis
Die Ergebnisse der vom Algorithmus ausgeführten Zufallsergebnisse können
vorab ausgeführt werden.
Dadurch erhält man eine zufällige Sequenz α von Resultaten, die als
zusätzliche Eingabe für den Algorithmus genutzt werden können.
Z.B. bei Quicksort die Sequenz der Positionen für das Pivot-Element.
P
pα = 1.
Jede Zufallssequenz α hat eine Wahrscheinlichkeit pα und es gilt
α
...
Algorithmen und Datenstrukturen SS09
M. Brinkmeier
TU Ilmenau
Seite 13 / 16
Randomisierte Verfahren
Beweis (Fortsetzung)
Sei Aα der deterministische Algorithmus, der mit den Ergebnissen α der
Zufallsexperimente ausgeführt wird.
Tα (σ) sei die Anzahl der Schlüsselvergleiche auf der Eingabe-Permutation σ.
P
1
Wie oben beobachtet gilt: n!
Tα (σ) ≥ log(n!).
σ
Summieren wir über die α’s, ergibt sich
log(n!) ≤
X
α
1 XX
1 X
Tα (σ) ≤
pα · Tα (σ).
pα ·
n! σ
n! σ α
Da es n! Permutationen gibt, muss es somit ein σ geben mit
X
pα · Tα (σ) ≥ log(n!).
α
...
Algorithmen und Datenstrukturen SS09
M. Brinkmeier
TU Ilmenau
Seite 14 / 16
Randomisierte Verfahren
Beweis (Fortsetzung)
P
pα · Tα (σ) ≥ log(n!) ist aber die erwartete Anzahl von
α
Schlüsselvergleichen bei Eingabe σ, über alle möglichen Zufallssequenzen α.
Algorithmen und Datenstrukturen SS09
M. Brinkmeier
TU Ilmenau
Seite 15 / 16
Herunterladen