Algorithmen und Datenstrukturen SS09

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
Die Mittlere Laufzeit
Algorithmen und Datenstrukturen SS09
M. Brinkmeier
TU Ilmenau
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
i =2
Algorithmen und Datenstrukturen SS09
M. Brinkmeier
TU Ilmenau
ki = |{(i, j) | i < j und ai > aj }| .
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
i =2
Algorithmen und Datenstrukturen SS09
M. Brinkmeier
TU Ilmenau
ki = |{(i, j) | i < j und ai > aj }| .
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
i =2
Algorithmen und Datenstrukturen SS09
M. Brinkmeier
TU Ilmenau
ki = |{(i, j) | i < j und ai > aj }| .
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
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
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
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
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
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
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
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
TA,avg (n) =
p(x) · tA (x).
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
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
TA,avg (n) =
p(x) · tA (x).
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
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
E
n
X
i =2
Algorithmen und Datenstrukturen SS09
M. Brinkmeier
TU Ilmenau
ki
X
X(i ,j)
X
E X(i ,j) .
1≤i <j≤n
!
=
1≤i <j≤n
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
E
n
X
i =2
Algorithmen und Datenstrukturen SS09
M. Brinkmeier
TU Ilmenau
ki
X
X(i ,j)
X
E X(i ,j) .
1≤i <j≤n
!
=
1≤i <j≤n
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
E
n
X
i =2
Algorithmen und Datenstrukturen SS09
M. Brinkmeier
TU Ilmenau
ki
X
X(i ,j)
X
E X(i ,j) .
1≤i <j≤n
!
=
1≤i <j≤n
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
Algorithmen und Datenstrukturen SS09
M. Brinkmeier
TU Ilmenau
ki
!
=
X
1≤i <j≤n
n
1
n(n − 1)
1
= ·
.
=
2
2
2
4
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
Algorithmen und Datenstrukturen SS09
M. Brinkmeier
TU Ilmenau
ki
!
=
X
1≤i <j≤n
n
1
n(n − 1)
1
= ·
.
=
2
2
2
4
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
Algorithmen und Datenstrukturen SS09
M. Brinkmeier
TU Ilmenau
ki
!
=
X
1≤i <j≤n
n
1
n(n − 1)
1
= ·
.
=
2
2
2
4
Die mittleren Kosten von SIS
Satz (Die mittleren Kosten von SIS)
TSIS,avg (n) = Θ(n2 ).
Algorithmen und Datenstrukturen SS09
M. Brinkmeier
TU Ilmenau
Weiter geht es mit
Grundlegende Datentypen
Algorithmen und Datenstrukturen SS09
M. Brinkmeier
TU Ilmenau
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
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
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
Crashkurs: Erwartungswert
Lemma
Seien X und Y Zufallsvariablen auf (Ω, p) und C ∈ R eine Konstante. Dann
gilt:
1
2
E (C · X ) = C · E (X )
E (X + Y ) = E (X ) + E (Y )
Ende des Crashkurses
Algorithmen und Datenstrukturen SS09
M. Brinkmeier
TU Ilmenau
Herunterladen