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 vorher gegessen hat. Wer is(s)t zufriedener? Das Kleingedruckte: n i1 i 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. n n 2 n + 1 2 n 2 +1 1 2 n
4 Modellierung Ein Ergebnis unseres Experiments entspricht einer Permutation der Zahlen 1, 2,..., n. Sei S n die Menge all dieser Permutationen. S n n! Ergebnismenge Ω Beobachtungsmenge Ω Sei M : S n {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., Definition: E[M] i Ω i Pr[M i] (Def. für diskrete ZV) gewichtetes Mittel der Werte in Ω Es gilt: i Ω Pr[M i] 1 Problem: Was ist Pr[M 7]??
5-16 Ein Trick Definition: E[M] i Ω i Pr[M i] Führe Indikator-Zufallsvariable ein (für i 1,..., n): { 1, falls Münchner nach dem i. Essen zufrieden, Sei M i 0 sonst. laut Def. E[M i ] 0 Pr[M i 0] + 1 Pr[M i 1] Pr[M i 1] Beispiel: Zahlenfolge (7, 2, 8, 5, 9, 1, 4, 6, 3) Pr[M i 1] WK, dass i. Zahl die bisher größte ist Anz. der guten Ergebnisse Anz. aller Ergebnisse Anz. Perm., bei denen i. Zahl am größten Anz. aller Permutationen von i Zahlen i Voraussetzung: Alle Ergebnisse sind gleich wahrscheinlich! (i 1)! i! 1 i
5-24 Ein Trick Definition: E[M] i Ω i Pr[M i] Führe Indikator-Zufallsvariable ein (für i 1,..., n): { 1, falls Münchner nach dem i. Essen zufrieden, Sei M i 0 sonst. laut Def. E[M i ] 0 Pr[M i 0] + 1 Pr[M i 1] Pr[M i 1] Beispiel: Zahlenfolge (7, 2, 8, 5, 9, 1, 4, 6, 3) Pr[F i 1] WK, dass i. Zahl größer als n+1 2 ist Anz. der guten Ergebnisse Anz. aller Ergebnisse Anz. Perm., bei denen i. Zahl > n/2 Anz. aller Permutationen von n Zahlen i (n 1)! n 2 n! 1 2
6 Zurück zum Erwartungswert M i { 1, falls Münchner nach dem i. Essen zufrieden, 0 sonst. M n i1 M i (Anz. Male, die Münchener zufrieden ist.) E[M] E[ i M i] i E[M i] i Pr[M i 1] Linearität des Erwartungswerts n i1 1 i 1 + n 1 Indikatorvariable 1 x dx 1 + ln n beschränkte harmonische Reihe Entsprechend... E[F ] n i1 Pr[F i i] n i1 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 1, 2,..., n? Wissen: n 1 V IS n(n 1)/2 Beob. Vergleiche Statt Vergleiche können wir auch die Anzahl der Verschiebungen T IS zählen, denn wenn wir ein Element einfügen (innere Schleife von InsertionSort), gilt: # Verschiebungen # Vergleiche # Verschiebungen +1 Verschiebungen d.h. insg. gilt: T IS V IS T IS + (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 ] n 2 i0 i Pr[T i] hier: # Verschiebungen (d.h. Laufzeit) Anteil der Permutationen, 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 1, 2,..., n zu sortieren Was wäre eine gute Indikatorvariable um T auszudrücken? { } 1 falls A[i] > A[j] T ij : für 1 i < j n. 0 sonst. T j j 1 i1 T ij Anz. Pos., um die A[j] n. li. verschoben wird. T n j2 T j T und E[T ] ij E[T ij ] Aber was ist E[T ij ]? Laut Def. E[T ij ] P[T ij 1] 1 2 E[T ] n j2 j 1 i1 E[T ij ] n j2 j 1 2 1 2 n 1 j1 j n(n 1) 4
10 Zusammenfassung InsertionSort Satz. Satz. Kurz: [alt] Im besten Fall benötigt InsertionSort n 1 Θ(n) Vergleiche und 0 Verschiebungen. Im schlechtesten Fall benötigt InsertionSort n(n 1)/2 Θ(n 2 ) Vergleiche/Verschiebungen. [neu] Im Durchschnitt benötigt InsertionSort n(n 1)/4 Θ(n 2 ) Verschiebungen und zwischen n(n 1)/4 und n(n 1)/4 + (n 1), d.h. Θ(n 2 ), Vergleiche. Bei InsertionSort gilt Average Case asymptotisch Worst Case!
11 Geburtstagswahrscheinlichkeiten Frage: Frage : Wie groß ist die Wahrscheinlichkeit, dass mindestens zwei Leute hier im Hörsaal am gleichen Tag Geburtstag haben? [siehe Abschnitt 5.4, CLRS] 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 X ij : 0 sonst. } für 1 i < j k; k Anz.Leute Dann gilt X X ij k k X ij. 1 i<j k i1 ji+1
12 Geburtstagserwartungen Es gilt: X ij : { 1 falls G i G j 0 sonst. } Geburtstag von Person i und X 1 i<j k X ij. Annahme: Gesucht: Alle n Tage sind gleich wahrscheinlich Geburtstage. E[X ij ] Pr[X ij 1] n t1 Pr[G i G j t] n n 2 1/n. E[X ] E ( ) k 2 Ereignisse schließen sich gegenseitig aus! 1 i<j k 1 n X ij k(k 1) 2n 1 i<j k E[X ij ] Linearität des Erwartungswerts! 1 k(k 1) 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. (Geht auch einfacher!)