Probeklausur Computerorientierte Mathematik II

Ähnliche Dokumente
Klausur Algorithmen und Datenstrukturen

Alle bislang betrachteten Sortieralgorithmen hatten (worst-case) Laufzeit Ω(nlog(n)).

Abgabe: (vor der Vorlesung) Aufgabe 2.1 (P) O-Notation Beweisen Sie die folgenden Aussagen für positive Funktionen f und g:

Untersuchen Sie, inwiefern sich die folgenden Funktionen für die Verwendung als Hashfunktion eignen. Begründen Sie Ihre Antwort.

Übungsblatt 1. f(n) = f(n) = O(g(n)) g(n) = O(f(n)) Zeigen oder widerlegen Sie: 3 n = Θ(2 n ) Aufgabe 1.2 Gegeben sei die folgende Funktion:

Abschnitt 18: Effizientes Suchen in Mengen

DAP2-Klausur

Beispiellösung zur Prüfung Datenstrukturen und Algorithmen D-INFK

Binäre Suchbäume. Mengen, Funktionalität, Binäre Suchbäume, Heaps, Treaps

Datenstrukturen & Algorithmen

Klausur Datenstrukturen und Algorithmen SoSe 2012

Entscheidungsbäume. Definition Entscheidungsbaum. Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen?

Kapiteltests zum Leitprogramm Binäre Suchbäume

Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen

Algorithmen & Datenstrukturen Lösungen zu Blatt 9 HS 16

Randomisierte Algorithmen 2. Erste Beispiele

Datenstrukturen & Algorithmen

Balancierte Bäume. Minimale Knotenanzahl von AVL-Bäumen. AVL-Bäume. Definition für "balanciert":

2 Sortieren. Beispiel: Es seien n = 8 und a = i : a i : ϕ(i) : a ϕ(i) :

Übersicht. Datenstrukturen und Algorithmen. Übersicht. Divide-and-Conquer. Vorlesung 9: Quicksort (K7)

Beispiellösungen zu den Übungen Datenstrukturen und Algorithmen SS 2008 Blatt 6

Es sei a 2 und b 2a 1. Definition Ein (a, b)-baum ist ein Baum mit folgenden Eigenschaften:

Abschnitt: Algorithmendesign und Laufzeitanalyse

Wiederholung ADT Menge Ziel: Verwaltung (Finden, Einfügen, Entfernen) einer Menge von Elementen

Tutoraufgabe 1 (Vollständige Induktion): Tutoraufgabe 2 (Rotationen): Datenstrukturen und Algorithmen SS15 Übungsblatt 5 (Abgabe 3.6.

Algorithmen & Datenstrukturen 1. Klausur

1. Musterlösung. Problem 1: Average-case-Laufzeit vs. Worst-case-Laufzeit

Übungsblatt 2 - Lösung

Algorithmen und Datenstrukturen

3.2 Binäre Suche. Usr/local/www/ifi/fk/menschen/schmid/folien/infovk.ppt 1

Kapitel 9. Komplexität von Algorithmen und Sortieralgorithmen

Klausur Informatik B April Teil I: Informatik 3

Musterlösung zur Hauptklausur Theoretische Grundlagen der Informatik Wintersemester 2013/14

Algorithmen und Datenstrukturen

Name: Seite 2. Beantworten Sie die Fragen in den Aufgaben 1 und 2 mit einer kurzen, prägnanten Antwort.

Prof. Dr. Heinrich Müller; Dr. Frank Weichert 7. September 2015

4.4.1 Statisches perfektes Hashing. des Bildbereichs {0, 1,..., n 1} der Hashfunktionen und S U, S = m n, eine Menge von Schlüsseln.

Informatik II, SS 2014

Algorithmen und Datenstrukturen 1 VL Übungstest WS 2010/ November 2010

Datenstrukturen & Algorithmen

Kapitel 9. Komplexität von Algorithmen und Sortieralgorithmen

Copyright, Page 1 of 8 AVL-Baum

Sortierverfahren für Felder (Listen)

Name:... Vorname:... Matrikel-Nr.:... Unterschrift:...

Multiplikationsmethode. Informatik I. goldener Schnitt. Der goldene Schnitt. Einführung. Rainer Schrader. 30. Mai Konstruktionsmethode

Algorithmen und Datenstrukturen Balancierte Suchbäume

Algorithmen und Datenstrukturen SoSe 2008 in Trier. Henning Fernau Universität Trier

Datenstrukturen und Algorithmen

Algorithmen und Datenstrukturen

Wörterbucher. Das Wörterbuch 1 / 71

Informatik II, SS 2014

Proseminar Kodierverfahren bei Dr. Ulrich Tamm Sommersemester 2003 Thema: Codierung von Bäumen (Prüfer Codes...)

Algorithmische Bioinformatik 1

Vorlesung Algorithmische Geometrie. Streckenschnitte. Martin Nöllenburg

Was bisher geschah ADT Menge mit Operationen: Suche nach einem Element Einfügen eines Elementes Löschen eines Elementes Realisierung durch

Folge 13 - Quicksort

1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie

Inhaltsverzeichnis. Einführende Bemerkungen 11. Das Fach Informatik 11 Zielsetzung der Vorlesung Grundbegriffe

Kapitel 3: Untere Schranken für algorithmische Probleme Gliederung

Referat zum Thema Huffman-Codes

Übung zur Vorlesung Algorithmische Geometrie

12 (2-4)-Bäume Implementierbare Funktionen. (2-4)-Bäume sind durch folgende Eigenschaften deniert: 1. Alle Äste sind gleich lang

Komplexität. G. Zachmann Clausthal University, Germany Leistungsverhalten von Algorithmen

Kapitel 6 Elementare Sortieralgorithmen

Asymptotische Laufzeitanalyse: Beispiel

Klausur: Diskrete Strukturen I

Binary Decision Diagrams (Einführung)

Studientag zur Algorithmischen Mathematik

Kapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete

MafI I: Logik & Diskrete Mathematik (F. Hoffmann)

Sortieralgorithmen. Jan Pöschko. 18. Januar Problemstellung Definition Warum Sortieren?... 2

Algorithmentheorie Randomisierung. Robert Elsässer

Grundlagen der Programmierung 2. Sortierverfahren

Kostenmodell. Daniel Graf, Tobias Pröger. 22. September 2016 (aktualisierte Fassung 5 vom 9. Oktober 2016)

Klausur Grundlagen der Informatik Hochschule Ravensburg-Weingarten

WS 2009/10. Diskrete Strukturen

Klausur Informatik B. Teil 1: Informatik 3 Juli 2005

Klausur Informatik-Propädeutikum (Niedermeier/Hartung/Nichterlein, Wintersemester 2012/13)

2. Übungsblatt zu Algorithmen II im WS 2016/2017

3. Musterlösung. Problem 1: Boruvka MST

13. Binäre Suchbäume

Natürliche Zahlen, Summen und Summenformeln

Aufgabe 4.2 Sei G = (V, E, l) ein ungerichteter, gewichteter und zusammenhängender Graph.

1. Einfach verkettete Liste unsortiert 2. Einfach verkettete Liste sortiert 3. Doppelt verkettete Liste sortiert

Universität des Saarlandes

Kurs 1613 Einführung in die imperative Programmierung

Bäume, Suchbäume und Hash-Tabellen

Sortieralgorithmen. Inhalt: InsertionSort BubbleSort QuickSort. Marco Block

Datenstrukturen und Algorithmen

Vorlesung : Binäre Entscheidungsdiagramme (BDDs) Dr. Carsten Sinz

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny

9. Übung Algorithmen I

Textkomprimierung. Stringologie. Codes. Textkomprimierung. Alle Komprimierung beruht auf Wiederholungen im Text. Textkomprimierung

4. Hashverfahren. geg.: Wertebereich D, Schlüsselmenge S = {s 1,..., s n } D. Menge A von Speicheradressen; oft: A = {0,..., m 1}

Informatik I Komplexität von Algorithmen

14. Rot-Schwarz-Bäume

Kapitel 5: Dynamisches Programmieren Gliederung

Algorithmen und Datenstrukturen 1-1. Seminar -

16. All Pairs Shortest Path (ASPS)

Grundlagen der Programmierung

Transkript:

Technische Universität Berlin SS 2012 Fakultät II, Institut für Mathematik Sekretariat MA 5 1, Frau Klink Prof. Dr. Rolf Möhring Torsten Gellert Jan-Philipp Kappmeier Jens Schulz Catharina Broermann, Christian Döblin, Pierluigi Ferrari, Alexander Müller, Benjamin Müller, Yannick Reichelt, Robert Rudow, Christopher Ryll, Daniel Schmand, Judith Simon, Fabian Wegscheider, Jan Zur Probeklausur Computerorientierte Mathematik II September 2012 Name Vorname Matrikelnummer Studiengang Die hier vorliegende Zusammenstellung von Aufgaben soll euch einen Hinweis auf den Stil der Fragestellungen und die auftretenden Aufgabentypen in der Modulklausur geben. Das hier vorliegenden Schwierigkeitsniveau kann von der Modulklausur abweichen. Die angegebenen Punkte zeigen euch, worauf wir Wert legen. Wir stellen euch keine Musterlösung zur Verfügung. Wir wünschen dir viel Erfolg!

O-Notation 1. Aufgabe (5.5 Punkte) (a) [1 Punkt] Definiere für eine Funktion f : N R die Aussage: f o(g) (b) [4,5 Punkte] Es sei f : N R mit f(n) := n 0, 5 log(n). Welche der folgenden log(n) Aussagen sind korrekt? Es gibt je 1 Punkt pro richtiger Antwort und 1 bei falscher 2 2 Antwort. Nr. Frage Ja Nein 1 f(n) Ω(log(n)) ( ) ( ) 2 f(n) Ω(n) ( ) ( ) 3 f(n) O(1) ( ) ( ) 4 f(n) O(n) ( ) ( ) 5 f(n) Θ(n) ( ) ( ) 6 f(n) Θ(n log(n)) ( ) ( ) 7 f(n) o(log(n)) ( ) ( ) 8 f(n) o(n) ( ) ( ) 9 f(n) o(n 3 ) ( ) ( ) Seite 2 von 12

Name: Aufteilungs- und Beschleunigungssatz 2. Aufgabe (3 Punkte) Verwende den allgemeinen ABS zur asymptotischen Lösung der Rekursionsgleichung T (2n) = 16 T (n) + 5 n 4 + log(n) mit T (1) = 1. Formuliere hierzu den anzuwendenden Fall und weise gegebenenfalls nach, dass die Voraussetzungen zur Anwendung des benutzten Falls erfüllt sind. Wir nehmen jeweils an, dass n eine passende Größe hat, so dass wir uns nicht um Abrunden und Aufrunden kümmern müssen. Seite 3 von 12

Kürzeste Wege 3. Aufgabe (11 Punkte) Für diese Aufgaben nehmen wir einen gerichteten Graphen G = (V, E) mit einer Kantenbewertungsmatrix A als gegeben an und wollen kürzeste Wege berechnen. (a) [3 Punkte] Berechne für die Kantenbewertungsmatrix A und die Matrix U (2) die leeren Stellen in der Matrix U (3) mit Hilfe der speziellen Matrixmultiplikation des Bellman- Ford-Algorithmus. Hierbei soll die Tree-Matrix T (3) gleichzeitig aktualisiert werden. Wie lautet ein kürzester Weg vom Knoten 2 zum Knoten 4? A = 1 2 3 4 1 0 4 2 2 0 3 3 1 1 0 4 2 0 U (2) = 1 2 3 4 1 0 2 4 2 2 0 1 2 3 1 1 0 4 4 1 1 2 0 T (2) = 1 2 3 4 1 1 1 4 1 2 2 1 4 1 3 2 3 1 2 4 3 3 4 1 U (3) = 1 2 3 4 1 2 3 4 T (3) = 1 2 3 4 1 2 3 4 (b) [5 Punkt] Gib den Bellman-Ford Algorithmus in Pseudocode an. Als Eingabe sind ist ein Graph G = (V, E) mit einer Kantenbewertungsmatrix A gegeben. Berechnet werden soll die Matrix der kürzesten Distanzen U (m) und die Matrix der Vorgängerknoten. (c) [3 Punkt] Welche Laufzeit hat der Bellman-Ford Algorithmus? Beweise deine Aussage. Seite 4 von 12

Name: Quicksort 4. Aufgabe (9 Punkte) a) [1,5 Punkte] Welche der drei Eigenschaften adaptiv, stabil und in-place hat Quicksort? Mache deutlich, wenn eine Eigenschaft von der Wahl des Pivotelements abhängt. Zur Erinnerung: Adaptiv. Ein Sortieralgorithmus ist adaptiv, wenn ein sortierter Array eine Best- Case-Eingabe für ihn ist und er auf dieser Eingabe asymptotisch schneller als im Worst-Case ist. In-Place. Ein Sortieralgorithmus arbeitet in-place, wenn er für jede Eingabe nur O(1) zusätzlichen Speicher benutzt. Stabil. Ein Sortieralgorithmus ist stabil, wenn für jede Eingabe zwei (bezüglich der Sortierordnung) gleiche Elemente in der Ausgabe in derselben Reihenfolge stehen wie in der Eingabe. b) [1,5 Punkte] Du hast ein Paper von Henry Hieronymus Hatter vorliegen, in dem der neue Sortieralgorithmus QuickerSort vorgestellt wird. Der neue Algorithmus unterscheidet sich von Quicksort allerdings nur darin, dass der Array statt in zwei Teile in vier Teile geteilt wird mittels dreier Pivotelemente und entsprechendem Mehraufwand. Ist dieser Algorithmus asymptotisch schneller als QuickSort? Gehe davon aus, dass beide Algorithmen vergleichbare Pivotelemente wählen und begründe deine Antwort in einem oder zwei Sätzen hier ist kein formaler Beweis erforderlich. c) [2 Punkte] Die Firma QS-Systems hat dich beauftragt, mit ihrer Quicksort-Bibliothek ein fast vollständig sortiertes Array zu Ende zu sortieren. Welches Pivotelement solltest du die Bibliothek wählen lassen, und wieso? Ein Satz Begründung genügt. d) [4 Punkte] Das Münchhausen Institut für Technologien hat einen O(1) Algorithmus zur Berechnung des Medians eines beliebigen Arrays vorgestellt. Der Median eines Arrays mit den Werten a 1 < a 2 < < a n ist hier definiert als a n 2. Kannst du mit diesem Algorithmus die von Quicksort im Worst-Case benötigten Vergleiche reduzieren? Begründe deine Behauptung kurz. Falls du die benötigten Vergleiche reduzieren kannst, gib die neue Worst-Case-Anzahl an (in Θ-Notation) und beweise sie. Du darfst Gaußklammern (, ) in deinem Beweis vernachlässigen. Seite 5 von 12

Untere Sortierschranke 5. Aufgabe Betrachte InsertionSort für das Array A = [a 1, a 2, a 3, a 4, a 5 ]. (2 Punkte) InsertionSort Input: Array A mit n Komponenten [a 1,..., a n ] Output: A in aufsteigender Reihenfolge sortiert s:=2 FOR i:=2 TO n DO cur := A[i] finde Einfügeposition j für cur in A[1]... A[s] mit linearer Suche von vorne verschiebe Elemente von A[j]... A[i 1] um eine Position nach rechts A[j] := cur s := s + 1 ENDFOR RETURN A Trage die entsprechenden Vergleiche in der Form x < y in die vorgegebenen 8 Knoten des Entscheidungsbaums ein. Wie drückt sich Worst-Case-Aufwand in einem Entscheidungsbaum aus? ja nein ja nein...... ja... ja............... Seite 6 von 12

Name: Kompression 6. Aufgabe (8 Punkte) a) [1 Punkt] Wann ist ein Code eindeutig dekodierbar? b) [1 Punkt] Wie ist ein Präfixcode definiert? c) [2 Punkte] Stelle den folgenden Code als Baum dar. Ist der Code ein Präfixcode? Zeichen Codewort a 0 b 1 c 00 d 01 e 10 f 11 g 000 h 001 e) (4 Punkte) Beweise folgendes Lemma: sei Σ ein Alphabet, x und y Zeichen mit minimaler Häufigkeit. Sei T ein Präfixcode in dem x und y einen gemeinsamen Elter haben und T der Baum, der entsteht wenn x und y durch z ersetzt werden, mit der Summe der Häufigkeiten f (z) = f(x) + f(y) und f (a) = f(a) sonst. T ist ein Präfixcode für das Alphabet Σ := Σ \ {x, y} {z}. Dann gilt: T optimal für Σ, f T ist optimal für Σ, f Seite 7 von 12

Suchbäume 7. Aufgabe (9 Punkte) (a) [2 Punkte] Füge die Schlüssel 1, 2,..., 7 in die jeweiligen Bäume ein, so dass Suchbäume folgender Gestalt entstehen: (b) [2 Punkte] Lösche aus beiden Bäumen das Wurzelelement und stelle die entstehenden Suchbäume dar. Erkläre dabei, wie die neue Lösung zustande kommt. (c) [1 Punkt] Definiere die Höhe h(t ) eines binären Suchbaums T rekursiv. (d) [4 Punkte] Angenommen, die Suche nach einem Schlüssel k in einem Suchbaum T endet in einem Blatt und die Schlüsselmenge von T wird in die drei Mengen A, B, C mit folgender Eigenschaft zerlegt: A enthält die Schlüssel links des Suchpfades, B enthält genau die Schlüssel auf dem Suchpfad und C enthält die Schlüssel rechts des Suchpfades. Finde ein möglichst kleines Gegenbeispiel zu der Behauptung, dass dann gilt: a b c für beliebige a A, b B, c C. Seite 8 von 12

Name: AVL-Bäume 8. Aufgabe (14 Punkte) (a) [3 Punkte] Was bedeutet die Aussage, dass eine Klasse von Suchbäumen balanciert in f(n) ist. (b) [3 Punkte] Beweise, dass einfache Suchbäume balanciert in O(n) sind. (c) [1 Punkt] Wie hoch können AVL-Bäume mit n Schlüsseln höchstens werden? (O-Notation genügt, ohne Beweis/Begründung) (d) [2 Punkte] Welches ist die größte Anzahl an Knoten, die ein ein AVL-Baum mindestens enthalten muss, um Höhe 5 zu haben? Antworte ohne Beweis, aber mit Begründung mit Hilfe einer Formel oder einer Zeichnung. (e) [5 Punkte] Beweise deine in (b) getroffene Aussage über die Höhe. Genauer: Stelle eine geeignete Rekursionsgleichung für die Abschätzung auf und begründe diese. Erkläre, wie man aus der Rekursionsgleichung die Abschätzung n(h) 2 h 2 beweist. Erkläre außerdem wie man aus der Abschätzung die Höhe ableitet. Seite 9 von 12

Optimale statische Suchbäume 9. Aufgabe (4 Punkte) (a) [1 Punkt] Wie lauten die Rekursionsgleichungen zur Berechnung eines optimalen statischen Suchbaums? (b) [3 Punkte] Berechne und zeichne für die vier Schlüssel {1, 2, 3, 4} und die nachfolgende Wahrscheinlichkeitsverteilung den optimalen statischen Suchbaum. Nutze hierzu den Algorithmus aus der Vorlesung. Für Intervalle der Länge 1 ist keine Begründung anzugeben. Schlüssel 1 2 3 4 Wahrscheinlichkeit 0.1 0.6 0.2 0.1 Seite 10 von 12

Name: Hashing 10. Aufgabe (11 Punkte) (a) [1 Punkt] Was ist die Ausgangssituation beim Hashing? (Fasse dich kurz!) Wie ist eine Kollision definiert? (b) [2 Punkte] Chaining mit Überlauflisten ist ein Verfahren, welches Kollisionen behandeln kann. Wie funktioniert es? Wie hoch ist der Aufwand im Average-Case für die Operation Suchen nach einem Element, wenn sich n Schlüssel in der Hashtabelle befinden? (c) [2 Punkte] Für Hashing wurden in der Vorlesung unter anderem die Kollisionsstrategien quadratisches Sondieren und der Doppel-Hash vorgestellt. Die Kollisionsbehandlung bei einer Hashfunktion wird für einen Schlüssel k durch eine Sondierungsfolge h(k, 0), h(k, 1), h(k, 2) usw. festgelegt. Gib für die beiden Strategien die jeweilige Hashfunktion an. (d) [1 Punkt] Formuliere die Bedingung, die äquivalent zur Permutationsbedingung beim Doppel-Hash ist (ohne Beweis). (e) [5 Punkte] Beim Beweis zur Anzahl der notwendigen Sondierungen beim Doppel-Hash bis ein Einfügeplatz gefunden wurde, kommt das Urnenmodell zum Einsatz. Definiere das Urnenmodell und gib eine Formel für die erwartete Anzahl an Ziehungen einer weißen Kugel (ohne Beweis) an. Nutze nun diese Aussage zum Beweis einer Aussage über die erwartete Anzahl an Sondierungen beim Doppelhash. 11. Aufgabe (3, 5 Punkte) Es sei eine Hashtabelle mit m n+1 Speicherplätzen gegeben, in die schon n Schlüssel zufällig durch Hashing mit offener Adressierung (Gleichverteilungsannahme / uniform hashing!) eingefügt worden seien. Für die Einfügung des n + 1-ten Schlüssels gilt die Rekursionsformel f(n, m) = 1 + n f(n 1, m 1), welche die erwartete Anzahl an besuchten Speicherzellen m bei Einfügung des n + 1-ten Schlüssels angibt. (a) [1,5 Punkte] Erkläre, warum die behauptete Rekursionsformel gilt. (b) [1 Punkt] Beweise, dass f(n, m) = m+1 m+1 n gilt. (c) [1 Punkt] Wie ist der Zusammenhang zur Abschätzung der erwarteten Anzahl an Sondierungen beim Doppel-Hash? Seite 11 von 12

Seite 12 von 12 Probeklausur CoMa, SS 12