1 Algorithmen und Datenstrukturen Wintersemester 2013/14 7. Vorlesung Zufall! Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I 2 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. 3 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]?? 4-15 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! 4-23 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 5 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! ;-) 6 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 es gilt immer TIS ≤ VIS ≤ TIS + (n − 1). Vergleiche Verschiebungen Beob. Warum? Betrachte Definition: E [T ] = Pn 2 i=0 i · Pr[T = i] Statt der durchschnittlichen Laufzeit über alle Permutationen können wir auch die erwartete Laufzeit einer zufälligen Permutation betrachten. 7 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 8 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! 9 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 . 10 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.