Lehrstuhl für Informatik I Würzburg, den 9. November 2012 Effiziente Algorithmen und wissensbasierte Systeme Prof. Dr. Alexander Wolff Dr. Jan-Henrik Haunert Universität Würzburg Vorlesung Algorithmen und Datenstrukturen WS 2012/13 Übung 5 Bitte geben Sie in 2er oder 3er Gruppen bis Freitag, den 16.11.2012, 8:55 Uhr über die ELearning-Seite der Lehrveranstaltung ab: https://wuecampus2.uni-wuerzburg.de/moodle/course/view.php?id=363 Sie können Ihre Bearbeitung auch stattdessen in den Briefkasten des Lehrstuhls I im Informatikbau einwerfen. Geben Sie die Namen aller BearbeiterInnen und die Nummer Ihrer Übungsgruppe an. Aufgabe 1 1 + 4 = 5 Punkte Wird ein Fussballspiel durch Elfmeterschießen entschieden, so schießt in jeder Runde erst ein Schütze der einen Mannschaft gegen den Torwart der anderen, bevor ein Schütze der zweiten Mannschaft gegen den Torwart der ersten antritt. Zuerst werden stets fünf Runden ausgetragen. Hat eine Mannschaft danach mehr Tore als die andere erzielt, so gewinnt sie und das Spiel ist beendet. Andernfalls werden solange weitere Runden ausgetragen, bis in einer Runde genau eine der beiden Mannschaften trifft. Zur Modellierung gehen wir davon aus, dass unabhängig von Schütze und Torwart jeder Schuss mit einer Wahrscheinlichkeit von p = 0, 8 zu einem Tor führt. Wir interessieren uns dafür, wie lange das Elfmeterschießen dauert. Dazu sei X die Zufallsvariable, die angibt, wie viele Runden ausgetragen werden, bis das Spiel beendet ist. Hinweis: Wir gehen dabei davon aus, dass stets mindestens fünf Runden ausgetragen werden. Die Sonderregeln, die zum früheren Abbruch führen, wenn der Sieger schon feststeht, finden keine Anwendung. a) Berechnen Sie die Wahrscheinlichkeit Pr[X = 5] dafür, dass der Sieger nach den ersten fünf Runden feststeht. b) Berechnen Sie die erwartete Anzahl E[X] an Runden, die geschossen wird, bis der Sieger feststeht. Aufgabe 2 2 + 2 = 4 Punkte Eine faire Münze wird dreimal geworfen. Die Zufallsvariable X gibt an, wie oft die Münze mit dem Kopf nach oben landet. a) Wie groß ist E[X 2 ]? b) Wie groß ist E2 [X]? Bitte wenden! 1 Algorithmen und Datenstrukturen Aufgabe 3 2 + 4 + 1 + 1 + 3 = 11 Punkte Gegeben sei eine Menge S ⊆ Z von n Zahlen und eine Zahl z ∈ Z. Ein Algorithmus soll alle Zahlen von S ausgeben, die echt kleiner als z sind. a) Beweisen Sie, dass jeder Algorithmus für dieses Problem im schlechtesten Fall Ω(n) Zeit braucht. b) Entwerfen Sie in Pseudocode einen Algorithmus, der das Problem löst, wenn S als MinHeap gespeichert ist. Der Algorithmus soll echt schneller als linear in n sein, wenn die Mächtigkeit k der Ergebnismenge klein ist (das heißt k ∈ o(n)). c) Geben Sie die Laufzeit Ihres Algorithmus aus Aufgabenteil b) in Abhängigkeit der Mächtigkeit k der Ergebnismenge an. d) Der folgende Algorithmus vereinigt zwei MinHeaps H1 und H2 zu einem neuen MinHeap. HeapUnion(MinHeap H1 , MinHeap H2 ) Sei H ein neues Feld mit H.length = H1 .heap-size + H2 .heap-size Betrachte H als MinHeap mit H.heap-size = 0 while H1 .heap-size > 0 do H.Insert(H1 .ExtractMin()) while H2 .heap-size > 0 do H.Insert(H2 .ExtractMin()) return H Welche asymptotische Worst-Case-Laufzeit hat HeapUnion in Abhängigkeit von n1 = H1 .heap-size und n2 = H2 .heap-size? e) Geben Sie in Pseudocode einen Algorithmus an, der zwei MinHeaps H1 und H2 in Θ(n1 +n2 ) Zeit vereinigt. Zusatzaufgabe 4 Zusatzpunkte Gegeben sind zwei Schalen A und B. Die Schale A ist ursprünglich leer; die Schale B enthält n Kugeln, die mit 1, 2, . . . , n nummeriert sind. In Schritt 0 werden r Kugeln zufällig aus der Schale B gewählt und in die Schale A gelegt. In den Schritten 1, 2, . . . , n − r wird jeweils eine Kugel zufällig aus der Schale B gewählt und in die Schale A gelegt. Die Menge Amax enthält zu jeder Zeit die r größten Nummern in Schale A. Wie groß ist die zu erwartende Zahl an Schritten, in denen sich die Menge Amax ändert? Tipp: Führen Sie passend definierte Indikatorzufallsvariable X1 , . . . , Xn−r ein. Analysieren Sie für i = 1, . . . , n − r die Wahrscheinlichkeit Pr[Xi = 1], indem Sie von der Situation nach Auswahl der i. Kugel ausgehen. Dies nennt man Rückwärtsanalyse. 2 /Lehrstuhl für Informatik I