Algorithmen und Datenstrukturen SS09 - Foliensatz 3

Werbung
Algorithmen und Datenstrukturen SS09
Foliensatz 3
Michael Brinkmeier
Technische Universität Ilmenau
Institut für Theoretische Informatik
Sommersemester 2009
Algorithmen und Datenstrukturen SS09
M. Brinkmeier
TU Ilmenau
Seite 1 / 13
Die Mittlere Laufzeit
Algorithmen und Datenstrukturen SS09
M. Brinkmeier
TU Ilmenau
Seite 2 / 13
Die Mittlere Laufzeit von SIS
Kehren wir nun zum Beispiel Straight Insertion Sort (SIS) zurück.
Wir haben gesehen, dass der beste und der schlechteste Fall sich deutlich
unterscheiden:
TSIS (n) ∈ Θ(n2 )
und
TSIS,best (n) ∈ Θ(n).
Wir haben außerdem gesehen, dass die Anzahl der Elementaroperationen, die
SIS benötigt, von der Anzahl der Fehlstellungen in der Eingabe abhängt,
genauer
!
n
X
TSIS (a1 , . . . , an ) = O n +
ki
i =2
mit ki = |{j < i | ai < aj }| und somit
n
X
ki = |{(i, j) | i < j und ai > aj }| .
i =2
Algorithmen und Datenstrukturen SS09
M. Brinkmeier
TU Ilmenau
Seite 3 / 13
Die Mittlere Laufzeit von SIS
Beispiel (SIS mit 3 Elementen)
Eingabe
(1,2,3)
(1,3,2)
(2,1,3)
(2,3,1)
(3,1,2)
(3,2,1)
k2
0
0
1
0
1
1
k3
0
1
0
2
1
2
k1 + k3
0
1
1
2
2
3
Wie man sieht, treten die beiden Extreme nur auf, wenn die Eingabe bereits
sortiert ist (auf- oder absteigend).
In allen anderen Fällen ist die Summe der Fehlstände ein Wert dazwischen.
Tatsächlich tritt das in 4 von 6 Fällen ein.
Diese Beobachtung kann bei größeren Eingaben bestätigt werden.
Algorithmen und Datenstrukturen SS09
M. Brinkmeier
TU Ilmenau
Seite 4 / 13
Die Mittlere Laufzeit von SIS
Frage
Wenn die Eingabe zufällig unter allen Permutationen von 1, . . . , n geewählt
wird, was ist dann die mittlere Laufzeit?
Um diese Frage zu beantworten, berechnet man den Durchschnitt der
Laufzeiten für alle Eingaben. x ∈ In mit
In = {(a! , . . . , an ) | {a1 , . . . , an } = {1, . . . , n}} .
Da n! viele Permutationen von n Elementen gibt, ergibt sich die mittlere
Laufzeit als
1 X
TSIS,avg (n) =
tSIS (x).
n!
x∈In
Algorithmen und Datenstrukturen SS09
M. Brinkmeier
TU Ilmenau
Seite 5 / 13
Das allgemeine Vorgehen
Definition (Average-Case-Kosten (Mittlere Kosten))
P = (I, O, f ) sei ein Problem und In = {x ∈ I | |x| = n}. Weiter sei
p : In → [0, 1] eine Wahrscheinlichkeitsverteilung auf den Eingaben der
Größe n, d.h.
X
p(x) = 1.
x∈In
Dann sind die erwarteten oder mittleren Kosten eines Algorithmus A für P
definiert als
X
p(x) · tA (x).
TA,avg (n) =
x∈In
D.h. TA,avg (n) ist der Erwartungswert der von A benötigten Zeit über alle
Eingaben der Größe n.
Algorithmen und Datenstrukturen SS09
M. Brinkmeier
TU Ilmenau
Seite 6 / 13
Die mittleren Kosten von SIS
Im Falle von SIS nehmen wir an, dass jede Permutation der Zahlen 1, . . . , n
1
mit gleicher Wahrscheinlichkeit n!
auftritt.
Weiter sei für jedes Paar (i, j) mit i < j eine Zufallsvariable X(i ,j) mit
(
0 falls ai < aj
X(i ,j) =
1 falls ai > aj
gegeben.
Es gilt:
n
X
ki =
i =2
und somit
n
X
E
i =2
ki
X
X(i ,j)
X
E X(i ,j) .
1≤i <j≤n
!
=
1≤i <j≤n
Algorithmen und Datenstrukturen SS09
M. Brinkmeier
TU Ilmenau
Seite 7 / 13
Die mittleren Kosten von SIS
Auf Grund der Definition von X(i ,j) ergibt sich:
E X(i ,j) = 0 · P(ai < aj ) + 1 · P(ai > aj ) = P(ai > aj ).
Lemma
Das Paar (i, j) mit i < j weist in der Hälfte der Permutationen eine
Fehlstellung auf, d.h.
1
P(ai > aj ) = .
2
Beweis: Übungsaufgabe.
Damit ergibt sich
E
n
X
i =2
ki
!
=
X
1≤i <j≤n
1
n(n − 1)
1
n
= ·
=
.
2
2
2
4
Algorithmen und Datenstrukturen SS09
M. Brinkmeier
TU Ilmenau
Seite 8 / 13
Die mittleren Kosten von SIS
Satz (Die mittleren Kosten von SIS)
TSIS,avg (n) = Θ(n2 ).
Algorithmen und Datenstrukturen SS09
M. Brinkmeier
TU Ilmenau
Seite 9 / 13
Crashkurs: Erwartungswert
Definition (Wahrscheinlichkeitsraum)
Ein Wahrscheinlichkeitsraum (Ω, p) besteht aus einer Menge Ω von
Elementarereignissen und einer Wahrscheinlichkeitsverteilung p : Ω → [0, 1]
mit
X
p(x) = 1.
x∈Ω
Ein Ereignis A in (Ω, p) ist eine Teilmenge A ⊆ Ω.
Die Wahrscheinlichkeit, dass A eintritt ist
X
P(A) =
p(x).
x∈A
Algorithmen und Datenstrukturen SS09
M. Brinkmeier
TU Ilmenau
Seite 11 / 13
Crashkurs: Erwartungswert
Definition (Zufallsvariable)
Sei (Ω, p) ein Wahrscheinlichkeitsraum. Eine Zufallsvariable X ist eine
Abbildung X : Ω → R.
Definition (Erwartungswert)
Der Erwartungswert E (X ) einer Zufallsvariablen X auf (Ω, p) ist definiert als
X
E (X ) :=
X (x) · p(x).
x∈Ω
Algorithmen und Datenstrukturen SS09
M. Brinkmeier
TU Ilmenau
Seite 12 / 13
Crashkurs: Erwartungswert
Lemma
Seien X und Y Zufallsvariablen auf (Ω, p) und C ∈ R eine Konstante. Dann
gilt:
1
E (C · X ) = C · E (X )
2
E (X + Y ) = E (X ) + E (Y )
Ende des Crashkurses
Algorithmen und Datenstrukturen SS09
M. Brinkmeier
TU Ilmenau
Seite 13 / 13
Herunterladen