Algorithmen und Datenstrukturen

Werbung
1
Algorithmen und Datenstrukturen
Wintersemester 2014/15
7. Vorlesung
Zufall!
Prof. Dr. Alexander Wolff
Lehrstuhl für Informatik I
2
Inhaltsverzeichnis
Ein Zufallsexperiment
InsertionSort: erwartete bzw. Durchschnittslaufzeit
Das Geburtstagsparadoxon
3
Ein Experiment
Ein Franke und ein Münchner gehen (unabhängig voneinander)
n mal in verschiedenen Restaurants essen und benoten nach
jedem Besuch ihr Essen.
Der Franke ist zufrieden, wenn er überdurchschnittlich gut isst,
d.h. wenn seine aktuelle Note über dem Mittel liegt.
Der Münchner ist zufrieden, wenn er besser isst als er jemals
Pn
vorher gegessen hat.
n+1
i =1 i
n
Wer is(s)t zufriedener?
1
Das Kleingedruckte:
=
2
n
2
n
2 +1
2
n
Die Reihenfolge der Restaurants ist zufällig. Beide Gourmets müssen ihr
Essen mit einer Zahl zwischen 1 (=sehr schlecht) und n (=sehr gut)
bewerten und dürfen jede Zahl nur einmal vergeben. Die Zahl n sei gerade.
Der Münchner ist beim ersten Essen zufrieden.
4
Modellierung
Ein Ergebnis unseres Experiments entspricht einer Permutation
der Zahlen 1, 2, . . . , n.
Sei Sn die Menge all dieser Permutationen. ⇒ |Sn | = n!
Ergebnismenge Ω
Beobachtungsmenge Ω 0
Sei M : Sn → {1, . . . , n} eine Zufallsvariable, die angibt, wie
oft der Münchner zufrieden ist.
Uns interessiert der erwartete Wert von M ,
kurz: der Erwartungswert E[M ] von M .
P
Definition: E[M ] = i ∈Ω 0 i · Pr[M = i ]
(Def. für diskrete ZV)
gewichtetes Mittel“ der Werte in Ω 0
”
P
Es gilt:
i ∈Ω 0 Pr[M = i ] = 1
Problem:
Was ist Pr[M = 7]??
5-16
Ein Trick
Definition: E[M ] =
P
i ∈Ω 0
i · Pr[M = i ]
Führe Indikator-Zufallsvariable ein (für i = 1, . . . , n):
(
1, falls Münchner nach dem i . Essen zufrieden,
Sei Mi =
0 sonst.
laut Def.
⇒ E[Mi ] = 0 · Pr[Mi = 0] + 1 · Pr[Mi = 1] = Pr[Mi = 1]
i
Beispiel: Zahlenfolge = (7, 2, 8, 5, 9, 1, 4, 6, 3)
Pr[Mi = 1] = WK, dass i . Zahl die bisher größte ist
Voraussetzung:
Anz. der guten“ Ergebnisse
Alle Ergebnisse sind
”
=
Anz. aller Ergebnisse
gleich wahrscheinlich!
Anz. Perm., bei denen i . Zahl am größten
(i − 1)! 1
=
=
=
i
Anz. aller Permutationen von i Zahlen
i!
5-24
Ein Trick
Definition: E[M ] =
P
i ∈Ω 0
i · Pr[M = i ]
Führe Indikator-Zufallsvariable ein (für i = 1, . . . , n):
(
1, falls Münchner nach dem i . Essen zufrieden,
Sei Mi =
0 sonst.
laut Def.
⇒ E[Mi ] = 0 · Pr[Mi = 0] + 1 · Pr[Mi = 1] = Pr[Mi = 1]
i
Beispiel: Zahlenfolge = (7, 2, 8, 5, 9, 1, 4, 6, 3)
Pr[Fi = 1] = WK, dass i . Zahl größer als
n+1
2
ist
Anz. der guten“ Ergebnisse
”
=
Anz. aller Ergebnisse
(n − 1)! ·
Anz. Perm., bei denen i. Zahl > n/2
=
=
Anz. aller Permutationen von n Zahlen
n!
n
2
1
=
2
6
Zurück zum Erwartungswert
(
1, falls Münchner nach dem i . Essen zufrieden,
Mi =
0 sonst.
Pn
(Anz. Male, die Münchener zufrieden ist.)
⇒ M=
i =1 Mi
P
P
P
⇒ E[M ] = E[ i Mi ] =
i E[Mi ] =
i Pr[Mi = 1]
Indikatorvariable
Linearität des Erwartungswerts
=
Pn
1
i =1 i
≤ 1+
Rn
1
dx
1 x
= 1 + ln n
beschränkte harmonische Reihe
Entsprechend...
Pn
Pn
E[F ] =
i =1 Pr[Fi = i ] =
i =1
1
2
n
=
2
M.a.W.: man kann erwarten,
dass der Franke exponentiell zufriedener ist als der Münchner!
;-)
7
Average-Case-Laufzeit von InsertionSort
Beob.
Hier:
Der durchschnittliche Fall“ ist i.A. schwer fassbar.
”
Was ist die durchschnittliche Laufzeit über alle
Permutationen der Eingabe A[1..n] (für festes n)?
Einfacher: Was ist die durchschnittliche Laufzeit über alle
Permutationen der Eingabe h1, 2, . . . , ni?
Wissen:
n − 1 ≤ VIS ≤ n(n − 1)/2
Beob.
Statt Vergleiche können wir auch die Anzahl der
Verschiebungen TIS zählen, denn
Vergleiche
wenn wir ein Element einfügen
(innere Schleife von InsertionSort), gilt:
# Verschiebungen ≤ # Vergleiche ≤ # Verschiebungen +1
Verschiebungen
d.h. insg. gilt:
TIS ≤ VIS ≤ TIS + (n − 1).
8
Average-Case-Laufzeit vs. erwartete Laufzeit
Beob.
Statt der durchschnittlichen Laufzeit über alle
Permutationen können wir auch die erwartete
Laufzeit einer zufälligen Permutation betrachten.
Warum?
Betrachte Definition:
E[T ] =
Pn2
i =0
i · Pr[T = i ]
hier: # Verschiebungen Anteil der Permutationen,
(d.h. Laufzeit) die i Verschiebungen verursachen.
9
Erwartete Laufzeit von InsertionSort
T := Zufallsvariable für die Anz. von Verschiebungen,
die IS benötigt, um eine zufällige Permutation A[1..n]
von h1, 2, . . . , ni zu sortieren
Was wäre eine gute Indikatorvariable um T auszudrücken?
(
)
1 falls A[i ] > A[j ]
Tij :=
für 1 ≤ i < j ≤ n.
0 sonst.
Pj −1
⇒ Tj = i =1 Tij = Anz. Pos., um die A[j] n. li. verschoben wird.
PP
Pn
PP
Tij
⇒ T =
und E[T ] =
E[Tij ]
j =2 Tj =
1
Aber was ist E[Tij ]?
Laut Def. E[Tij ] = P [Tij = 1] =
2
n
n−1
j −1
n X
X
X
X
n(n − 1)
j −1
1
=
j =
⇒ E[T ] =
E[Tij ] =
4
2
2
j =2 i =1
j =2
j =1
10
Zusammenfassung InsertionSort
Satz. [alt]
Im besten Fall benötigt InsertionSort n − 1 ∈ Θ (n)
Vergleiche und 0 Verschiebungen.
Im schlechtesten Fall benötigt InsertionSort
n(n − 1)/2 ∈ Θ (n2 ) Vergleiche/Verschiebungen.
Satz. [neu]
Im Durchschnitt benötigt InsertionSort
n(n − 1)/4 ∈ Θ (n2 ) Verschiebungen und
zwischen n(n − 1)/4 und n(n − 1)/4 + (n − 1),
d.h. Θ (n2 ), Vergleiche.
Kurz: Bei InsertionSort gilt
Average Case =asymptotisch Worst Case!
11
Geburtstagswahrscheinlichkeiten
Frage:
Wie groß ist die Wahrscheinlichkeit, dass
mindestens zwei Leute hier im Hörsaal am gleichen
[siehe Abschnitt 5.4, CLRS]
Tag Geburtstag haben?
Frage0 :
Wie groß ist der Erwartungswert für die Anzahl X
von Pärchen hier im Hörsaal, die am gleichen Tag
Geburtstag haben?
Was wäre eine gute Indikatorvariable um X auszudrücken?
(
)
1 falls i und j gleichen Geburtstag haben für
Xij :=
1 ≤ i < j ≤ k;
0 sonst.
k =Anz.Leute
Dann gilt X =
X
1≤i <j ≤k
Xij =
k X
k
X
i =1 j =i +1
Xij .
12
Geburtstagserwartungen
Es gilt:
Geburtstag von Person i
(
)
X
1 falls Gi = Gj
Xij :=
und X =
Xij .
0 sonst.
1≤i <j ≤k
Annahme: Alle n Tage sind gleich wahrscheinlich Geburtstage.
Pn
n
⇒ E[Xij ] = Pr[Xij = 1] =
Pr[
G
=
G
=
t
]
=
i
j
t =1
n2 = 1/n.
(Geht auch
einfacher!)
Ereignisse schließen sich gegenseitig aus!

Gesucht:
E[X ] = E 

X
1≤i <j ≤k
Xij  =
X
E[Xij ] =
1≤i <j ≤k
Linearität des Erwartungswerts!
k (k − 1)
k
1
≥ 1 ⇔ k (k − 1) ≥ 2n.
=
·
=
2
n
2n
Für ein Jahr mit n = 365 Tagen braucht man also nur k ≥ 28 Personen
um ein Pärchen mit gleichem Geburtstag erwarten zu können.
Herunterladen