Aufgabensammlung ADS-Repetitorium 2016 Erwartungswert – Amortisierte Analyse – Dynamische Programmierung Aufgabe 1: Leichte Klausuren Jede ADS-Klausur wird von den Studierenden nach Ihrer Schwierigkeit bewertet. Die erste Klausur wurde im Semster 0 geschrieben, die letzte Klausur im Semester n + 1. Jede Klausur hat einen eindeutigen Rang erhalten, sodass sich Bewertungen von 0 bis n + 1 ergeben. Wir betrachten eine Klausur im Semester i als leicht, falls für deren Bewertung bi gilt, dass bi < bi−1 und bi < bi+1 ist. Wir nehmen an, dass jede mögliche Folge der Bewertungen gleich wahrscheinlich ist, also alle Permutationen von (b0 , b1 , . . . , bn , bn+1 ) mit gleicher Wahrscheinlichkeit auftreten können. Als Studierender möchten Sie berechnen, wie viele leichte Klausuren Sie in n Semestern erwarten können. (a) Sei K eine Zufallsvariable, die die Anzahl der leichten Klausuren in den Semestern 1 bis n beschreibt. Angenommen, Sie hätten eine Formel, die die Wahrscheinlichkeit P (K = k) für 0 ≥ k ≥ n+2 berechnet. Wie könnten Sie dann E[K] für ein festes n ausrechnen? (b) Im Allgemeinen ist es schwierig, eine Formel für P (K = k) zu finden. Die Fragestellung können Sie aber trotzdem lösen, indem Sie mit Indikatorzufallsvariablen arbeiten. Definieren Sie eine Indikatorzufallsvariable Ki die einem Semester 0 < i < n + 2 den Wert 0 oder 1 zuweist, je nachdem, ob die Klausur einfach war oder nicht. Wir können Sie K in Abhängigkeit von Ki für 0 < i < n + 1 berechnen? (c) Geben Sie außerdem eine Formel an, mit der Sie E[K] in Abhängigkeit von E[Ki ] für 0 < i < n + 1 berechnen können. Welche Gesetzmäßigkeit des Erwartungswerts machen Sie sich zu Nutze? (d) Nehmen Sie an, die kennen eine Formel, die P (Ki = 1) für ein festes i berechnet. Geben Sie eine Formel an, mit der Sie E[Ki ] berechnen können. Formulieren Sie in Worten, was die Wahrscheinlichkeit P (Ki = 1) ausdrückt. (e) Wie groß ist die Wahrscheinlichkeit, dass die Bewertung bi des Semesters i einen bestimmten Wert j aufweist und diese Klausur in Semester i eine leichte ist? (f) Wie groß ist die Wahrscheinlichkeit P (Ki = 1) für ein gegebenes i? (g) Was ist die erwartete Anzahl von Klausuren in den Semestern 1 bis n, die als leicht empfunden werden? Aufgabe 2: Wahrscheinlichkeit und Erwartungswert Auf dem Frühjahrs-Volksfest gibt es ein faires Glücksrad, welches mit den fünf Farben rot, grün, blau, gelb und glitzer angemalt ist. Der rote und der grüne Sektor nehmen jeweils 25 % der Fläche des Glücksrads ein, die anderen drei Farben nehmen jeweils ein Sechstel des Glücksrads ein. (a) Hängt die Wahrscheinlichkeit, dass der Zeiger am Ende einer Drehung auf eine bestimmte Farbe zeigt davon ab, ob die Farben zusammenhängen oder das Glücksrad in nach außen gehenden Streifen bemalt ist? (b) Sie bekommen fünf Freifahrten, falls Sie glitzer“ gedreht haben (Hauptpreis), drei Freifahrten, wenn ” Sie gelb“ gedreht haben. Zwei Freifahrten gibt es, wenn der Zeiger blau“ zeigt und eine Freifahrt ist ” ” der Gewinn bei grün“. Die Farbe rot“ geht leer aus. Wie viele Freifahrten gibt der Standbesitzer im ” ” Durchschnitt pro Besucher aus, wenn jeder Besucher einmal drehen darf? (c) Die letzten neun Drehungen hatten alle das Ergebnis glitzer“. Wie hoch ist die Wahrscheinlichkeit, ” dass die nächste, zehnte Drehung, erneut das Ergebnis glitzer“ hat? ” (d) Dem Standbetreiber ist es wichtig, dass die Kunden in der Warteschlange sehen, dass der Hauptpreis gewinnbar ist. Es sieht jeweils der nächste Kunde der Warteschlange und der vorherige Kunde, der gerade sein Gewinn abholt, das Ergebnis der aktuellen Drehung. Wenn an einem Tag n Kunden das Glücksrad drehen, wie viele sind dann im Durchschnitt Zeuge eines Hauptgewinns eines anderen Kunden? 1 01.04.2016 Aufgabensammlung ADS-Repetitorium Lehrstuhl für Informatik I Universität Würzburg Aufgabe 3: Bank-Schließfächer und Heaps Bei einer Bank können Sie Schließfächer mieten. In jedes Schließfach passt genau ein Gegenstand. Der Service ist aber nicht kostenlos. Für das Einlagern des n. Gegenstands stellt die Bank log n Euro in Rechnung. Ebenfalls werden bei der Rückgabe des n. Gegenstands log n Euro fällig. (a) Geben Sie die Gesamtkosten für das Ein- und Auslagern den n. Gegenstands in Θ-Notation an. (b) Wie muss die Bank ihre Bezahlpolitik ändern, sodass das Abholen der Gegenstände kostenlos ist, die Bank aber trotzdem denselben Gewinn macht? (c) Geben Sie die Kosten für das Ein- und Auslagern mit der neuen Bezahlpolitik in Θ-Notation an. (d) Übertragen Sie Ihre Überlegungen aus den vorherigen Teilaufgaben auf einen MaxHeap. Zeigen Sie mit der Buchhaltermethode, dass die Insert-Methode amortisiert eine Laufzeit von O(log n) und ExtractMax eine konstante Laufzeit hat. (e) Lösen Sie die Aufgabe nun mit der Potentialmethode. Aufgabe 4: Kürzeste Wege mit negativen Kanten Gestern haben wir festgestellt, dass die Ergebnisse von Dijkstra auf Graphen mit negativen Kanten unter Umständen nicht die kürzesten Wege repräsentieren. In dieser Aufgabe wollen wir einen Algorithmus finden, der auf einem Graphen G = (V, E) mit der Gewichtsfunktion w : V × V → R einen kürzesten Weg zwischen zwei Knoten s und t findet. Wir nehmen an, dass der Graph G keine von s erreichbaren, negativen Kreise enthält. (a) Zeigen Sie, dass das Problem eine optimale Substruktur aufweist. Sie müssen also zeigen, dass der kürzeste Weg zwischen u und v aus kleineren Teillösungen desselben Problems berechenbar ist. (b) Formulieren Sie den Wert δ(s, t) der Lösung rekursiv, wobei δ(s, t) die Länge eines kürzesten Wegs zwischen s und t bezeichnet. (c) Wie viele Kanten können auf einem kürzesten Weg von s zu t höchstens traversiert werden? (d) Geben Sie einen Algorithmus an, der den Wert der optimalen Lösung berechnet, also die Länge eines kürzesten Wegs zwischen s und t. Nehmen Sie an, dass jeder Knoten v ein Attribut d besitzt, welches die aktuell berechnete Distanz zwischen s und v besitzt. Zu Beginn gilt für alle Knoten v, dass v.d = ∞, für den Knoten s gilt, dass s.d = 0. Die Laufzeit soll Θ(|V | · |E|) sein. (e) Modifizieren Sie Ihren Algorithmus so, dass er auch die optimale Lösung selbst, also den kürzesten Weg berechnet. Welche Methode aus der Vorlesung können Sie dafür verwenden? Seite 2 01.04.2016 Aufgabensammlung ADS-Repetitorium Lehrstuhl für Informatik I Universität Würzburg Aufgabe 5: Palindrome Subsequenzen Ein Palindrom ist eine Zeichenkette, die von vorne und von hinten gelesen das gleiche ergibt, zum Beispiel das Adjektiv soldlos“. Eine Subsequenz ist ein String, der nach Weglassen beliebig vieler Zeichen aus einem ” String hervorgeht, beispielsweise das Wort Baum“ aus Brauchtum“. Wir suchen nun einen effizienten Al” ” gorithmus, der eine längste Subsequenz einer Zeichenkette s = s0 . . . sn findet, die gleichzeitig ein Palindrom ist. Die längste palindrome Subsequenz in Amortisierte Laufzeit“ ist tieteit“. ” ” (a) Erklären Sie kurz, wie ein Brute-Force-Algorithmus vorgehen würde, um das Problem zu lösen. Was ist die Laufzeit dieses Algorithmus? (b) Beschreiben Sie die optimale Substruktur, die das Problem aufweist. (c) Definieren Sie den Wert l(i, j) der Lösung für s = si . . . sj mit 0 ≤ i ≤ j ≤ n rekursiv. Überlegen Sie sich zunächst, was der Wert der Lösung ist. Wo finden Sie die Basisfälle, mit der Sie die Rekursion beginnen können? (d) Legen Sie eine Matrix, die l(i, j) für alle 0 ≤ i ≤ j ≤ n repräsentiert, für die beiden Sequenzen anna“ ” und graphalgo“ an und füllen Sie sie aus. Wie lang sind die längsten palindromen Subsquenzen in den ” Wörtern? Wo steht der Wert der Lösung in der Matrix? (e) Formulieren Sie jetzt einen Algorithmus, der eine solche Matrix automatisch ausfüllt und den Wert der Lösung zurückgibt. (f) Jetzt möchten Sie nicht nur den Wert ermitteln, sondern auch die längste palindrome Subsequenz selbst. Beschreiben Sie, wie Sie mit einer zweiten Matrix die längste palindrome Subsequenz ermitteln können. (g) Zeichnen Sie auch die ergänzte Matrix für die Wörter anna“ und graphalgo“. Was ist die jeweils ” ” längste palindrome Subsequenz? (h) Ändern Sie Ihren Algorithmus so, dass er die längste palindrome Subsequenz zurückgibt. (i) Überlegen Sie sich, wie Sie Ihren Algorithmus ändern können, sodass er den längsten palindromen Substring findet. Im Wort stirnlappenbasilisk“ ist der längste palindrome Substring silis“, während ” ” die bisher betrachtete palindrome Subsequenz silappalis“ ist. Formulieren Sie die Matrix-Rekurrenzen ” aus Teilaufgabe c) um und beschreiben Sie in Worten, wo sich in der Matrix jetzt der Wert der Lösung befindet und wie Sie die Lösung rekonstruieren können. (j) Falls Sie noch Zeit haben, geben Sie einen Brute-Force-Algorithmus an, der eine längste palindrome Subsequenz findet. Seite 3