Datenstrukturen und Algorithmen D-INFK

Ähnliche Dokumente
Datenstrukturen und Algorithmen D-INFK

Prüfung Datenstrukturen und Algorithmen, D-INFK. Datenstrukturen & Algorithmen

Datenstrukturen und Algorithmen D-INFK

Datenstrukturen und Algorithmen D-INFK

Beispielprüfung Datenstrukturen und Algorithmen D-INFK

Datenstrukturen & Algorithmen

Datenstrukturen und Algorithmen D-INFK

Datenstrukturen und Algorithmen D-INFK

Datenstrukturen & Algorithmen

Datenstrukturen und Algorithmen D-INFK

Datenstrukturen und Algorithmen D-INFK

Stud.-Nummer: Datenstrukturen & Algorithmen Seite 1

1. Vordiplom D-INFK Prüfung Informatik I + II 2. Oktober 2003

Musterlösung Datenstrukturen und Algorithmen

Stud.-Nummer: Datenstrukturen & Algorithmen Seite 1

Datenstrukturen und Algorithmen D-INFK. Musterlösung 1

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

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

Karlsruher Institut für Technologie. Klausur Algorithmen I

Datenstrukturen und Algorithmen D-INFK

Stud.-Nummer: Datenstrukturen & Algorithmen Seite 1

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

Informatik II: Algorithmen & Datenstrukturen. Blättern Sie nicht um bevor Sie dazu aufgefordert werden!

Datenstrukturen & Algorithmen Lösungen zu Blatt 4 FS 15

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

Stud.-Nummer: Algorithmen & Datenstrukturen Seite 1

Datenstrukturen & Algorithmen Lösungen zu Blatt 11 FS 14

Klausur Algorithmentheorie

Algorithmen und Datenstrukturen 1 VL Übungstest WS Jänner 2009

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

NAME, VORNAME: Studiennummer: Matrikel:

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

Datenstrukturen (SoSe 12) Klausur (Modulabschlussprüfung)

Datenstrukturen und Algorithmen (SS 2013)

DAP2-Klausur

Klausur Algorithmen und Datenstrukturen II 01. Agust 2016

Algorithmen und Datenstrukturen

2. Klausur Datenstrukturen und Algorithmen SS 2014

Klausur Algorithmen und Datenstrukturen

Datenstrukturen und Algorithmen D-INFK. Musterlösung 1

Klausur Algorithmen und Datenstrukturen

Datenstrukturen & Algorithmen Lösungen zu Blatt 5 FS 14

Algorithmen und Datenstrukturen (Informatik II) SS Klausur

Algorithmen & Datenstrukturen Lösungen zu Blatt 9 HS 16

Klausur Algorithmen und Datenstrukturen

Klausur Algorithmen und Datenstrukturen II

Klausur Informatik 2: Algorithmen und Datenstrukturen. Blättern Sie nicht um bevor Sie dazu aufgefordert werden!

Algorithmen und Datenstrukturen 1 VL Übungstest WS Januar 2011

Klausur Algorithmen und Datenstrukturen SS August Arbeitszeit 90 min

Datenstrukturen & Algorithmen Lösungen zu Blatt 6 FS 12

Algorithmen und Datenstrukturen 1 VU 6.0 Nachtragstest SS Oktober 2014

Algorithmen und Datenstrukturen VO 3.0 Vorlesungsprüfung 19. Oktober 2007

Name:... Vorname:... Matr.-Nr.:... Studiengang:...

Algorithmen 1 Tutorium

Datenstrukturen & Algorithmen Lösungen zu Blatt 6 FS 14

Klausur Algorithmen und Datenstrukturen

Klausur Algorithmen und Datenstrukturen

Klausur Algorithmentheorie

Algorithmen & Datenstrukturen Blatt 0 HS 17

1.Aufgabe: Minimal aufspannender Baum

Klausur Algorithmentheorie

Klausur. Diskrete Mathematik I. Donnerstag, den um 14 Uhr

Klausur Algorithmen und Datenstrukturen

Bitte füllen Sie den untenstehenden Abschnitt nicht aus

1. Klausur zur Vorlesung Algorithmentechnik Wintersemester 2005/2006

Name:... Vorname:... Matr.-Nr.:... Studiengang:...

Algorithmen und Datenstrukturen 1 VL Übungstest SS Juni 2009

Humboldt-Universität zu Berlin Berlin, den Institut für Informatik

Vorlesung Datenstrukturen

Datenstrukturen und Algorithmen (SS 2013) Prof. Dr. Leif Kobbelt Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer

Klausur Algorithmentheorie

Vorlesung Datenstrukturen

Algorithmen und Datenstrukturen VO UE 2.0 Nebentermin Vorlesungsprüfung / 4. Übungstest SS

Karlsruher Institut für Technologie Institut für Theoretische Informatik. Übungsklausur Algorithmen I

Algorithmen und Datenstrukturen 1 VL Übungstest SS Juni 2011

Theoretische Informatik 1

1. Aufgabe (6 Punkte): Java-Programmierung (Arrays)

Übungsklausur Algorithmen I

Klausur Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen 2 VU 3.0 Übungstest SS Juni 2013

Aufgaben zur Klausurvorbereitung

Tutoraufgabe 1 (Starke Zusammenhangskomponenten):

2. Präsenzübung Datenstrukturen und Algorithmen SS 2014

Datenstrukturen und Algorithmen 2. Klausur SS 2001

9 Minimum Spanning Trees

Algorithmen und Datenstrukturen Tafelübung 14. Jens Wetzl 8. Februar 2012

Diskrete Strukturen. Name Vorname Studiengang Matrikelnummer. Hörsaal Reihe Sitzplatz Unterschrift ... Allgemeine Hinweise

Informatik II: Algorithmen & Datenstrukturen. Blättern Sie nicht um bevor Sie dazu aufgefordert werden!

Klausur. 18. Juli 2008, 10:15-12:15 Uhr. Name:... Matrikelnummer:... Anzahl beschriebener Blätter (ohne Aufgabenblatt):... D(p) : Y = p x X + p y

Algorithmen & Komplexität

Otto-von-Guericke-Universität Magdeburg Fakultät für Informatik Institut für Simulation und Graphik Prof. Dr. Holger Theisel

Algorithmen & Datenstrukturen Midterm Test 2

Felix Brandt, Jan Johannsen. Vorlesung im Wintersemester 2008/09

Fragenkatalog 1. Kurseinheit

Übung Algorithmen und Datenstrukturen

Aufgabe 1 Pseudocode und Analyse /6 Sei A ein zweidimensionales n n Array mit 0 1 Einträgen A[i][j]. In jeder Zeile stehen alle Nullen vor allen Einse

1. Teilklausur. Name:... Vorname:... Matrikel-Nummer:...

Prüfung Algorithmen und Datenstrukturen I

Informatik II, SS 2018

Transkript:

Eidgenössische Technische Hochschule Zürich Ecole polytechnique fédérale de Zurich Politecnico federale di Zurigo Federal Institute of Technology at Zurich Institut für Theoretische Informatik Peter Widmayer Holger Flier Prüfung Datenstrukturen und Algorithmen D-INFK 26. Januar 2012 Name, Vorname: Stud.-Nummer: Ich bestätige mit meiner Unterschrift, dass ich diese Prüfung unter regulären Bedingungen ablegen konnte und dass ich die untenstehen Hinweise gelesen und verstanden habe. Unterschrift: Hinweise: Ausser einem Wörterbuch dürfen Sie keine Hilfsmittel verwen. Bitte schreiben Sie Ihre Studieren-Nummer auf jedes Blatt. Melden Sie sich bitte sofort, wenn Sie sich währ der Prüfung in irgeiner Weise bei der Arbeit gestört fühlen. Bitte verwen Sie für jede Aufgabe ein neues Blatt. Pro Aufgabe kann nur eine Lösung angegeben werden. Ungültige Lösungsversuche müssen klar durchgestrichen werden. Bitte schreiben Sie lesbar mit blauer oder schwarzer Tinte. Wir werden nur bewerten, was wir lesen können. Die Prüfung dauert 120 Minuten. Keine Angst! Wir rechnen nicht damit, dass irgjemand alles löst! Sie brauchen bei weitem nicht alle Punkte, um die Bestnote zu erreichen. Viel Erfolg!

2

Datenstrukturen & Algorithmen Stud.-Nummer: Aufgabe 1 2 3 4 5 Σ Mögl. Punkte 9 7 9 9 9 43 Punkte

Datenstrukturen & Algorithmen

Stud.-Nummer: Datenstrukturen & Algorithmen Seite 1 Aufgabe 1: Hinweise: 1. In dieser Aufgabe sollen Sie nur die Ergebnisse angeben. Diese können Sie direkt bei den Aufgaben notieren. 2. Sofern Sie die Notationen, Algorithmen und Datenstrukturen aus der Vorlesung Datenstrukturen & Algorithmen verwen, sind Erklärungen oder Begründungen nicht notwig. Falls Sie jedoch andere Methoden benutzen, müssen Sie diese kurz soweit erklären, dass Ihre Ergebnisse verständlich und nachvollziehbar sind. 3. Als Ordnung verwen wir für Buchstaben die alphabetische Reihenfolge, für Zahlen die aufsteige Anordnung gemäss ihrer Grösse. 1 P a) Das Verfahren von Karatsuba/Ofman zur Multiplikation ganzer Zahlen berechnet das Produkt zweier Zahlen rekursiv anhand einer Formel, die bis auf Addition und Multiplikation mit der Basis (hier: 10) drei Produkte enthält. Geben Sie zwei Zahlen x und y an, für welche diese drei Produkte (12 34), (56 78) und (12 ± 78) (56 ± 34) sind. x =, y = 1 P b) Führen Sie auf dem gegebenen Array einen Aufteilungsschritt (in-situ, d.h. ohne Hilfsarray) des Sortieralgorithmus Quicksort durch. Benutzen Sie als Pivot das am rechten Ende stehe Element im Array. 25 12 83 2 58 68 19 34 47 99 37 56 41 1 P c) Das untenstehe Array enthält die Elemente eines Min-Heaps in der üblichen Form gespeichert. Wie sieht das Array aus, nachdem das Minimum entfernt wurde und die Heap- Bedingung wieder hergestellt wurde? 4 24 10 38 30 72 77 75 78 1 2 3 4 5 6 7 8 9 1 P d) Nehmen Sie an, die Schlüssel 1, 7, 42, 46, 35, 41, 18, 9, 30, 28, 31, 24, 19, 15, 27 sollen in dieser Reihenfolge mittels Cuckoo-Hashing in Hashtabellen t 1 und t 2 eingefügt werden. Die Hashfunktion für Tabelle t 1 lautet h 1 (k) = k mod 7, die für Tabelle t 2 lautet h 2 (k) = 3k mod 7. Nehmen Sie ferner an, dass t 1 und t 2 jeweils die Grösse 7 haben. Wie lautet der erste Schlüssel in der oben genannten Folge, der nicht mehr eingefügt werden kann, ohne die Tabellen zu vergrössern (also eine rehash Operation auszuführen)? Schlüssel:

Stud.-Nummer: Datenstrukturen & Algorithmen Seite 2 1 P e) Zeichnen Sie einen Baum mit einer ungeraden Anzahl von Kanten und einer minimalen Anzahl von Knoten, der ein Maximum Indepent Set der Grösse 4 hat. 1 P f) Gegeben sind acht Schlüssel mit der relativen Anzahl der Zugriffe. Erstellen Sie mit Hilfe des Huffman-Algorithmus einen Codierungsbaum (Trie) und zeichnen Sie diesen. Schlüssel a b c d e f g h Anzahl Zugriffe 31 23 60 29 13 15 68 88

Stud.-Nummer: Datenstrukturen & Algorithmen Seite 3 1 P g) Markieren Sie in folgem Graphen G = (V, E) eine kleinstmögliche Menge S an Kanten, so dass der Graph G := (V, E \ S) eine topologische Sortierung hat : 1 P h) Geben Sie eine Teilmenge der Knoten des folgen bipartiten Graphen an, die mit dem Satz von Hall beweist, dass der Graph kein perfektes Matching hat. a b c d e f g h i j 1 P i) Welche Kante des folgen Graphen wird als erste bei der Berechnung eines minimalen Spannbaums (MST) verworfen, wenn man das Verfahren von Kruskal verwet? 6 5 2 6 4 7 3 1 5

Stud.-Nummer: Datenstrukturen & Algorithmen Seite 4 Aufgabe 2: 1 P a) Geben Sie für die untenstehen Funktionen eine Reihenfolge an, so dass folges gilt: Wenn Funktion f links von Funktion g steht, so gilt f O(g). Beispiel: Die drei Funktionen n 3, n 7, n 9 sind bereits in der entsprechen Reihenfolge, da n 3 O(n 7 ) und n 7 O(n 9 ) gilt. 30 n 3 n 2 n! 10n 20 log(n) nlog n n 2 3 3 P b) Gegeben ist die folge Rekursionsgleichung: T (n) := { 4 + 2T ( n 8 ) n > 1 1 n = 1 Geben Sie eine geschlossene (d.h. nicht-rekursive) und möglichst einfache Formel für T (n) an und beweisen Sie diese mit vollständiger Induktion. Hinweise: (1) Sie können annehmen, dass n eine Potenz von 8 ist. (2) Für q 1 gilt: k i=0 qi = qk+1 1 q 1.

Stud.-Nummer: Datenstrukturen & Algorithmen Seite 5 1 P c) Geben Sie die asymptotische Laufzeit in Abhängigkeit von n N für folgen Algorithmus in Theta-Notation an (Sie müssen Ihre Antwort nicht begründen): from j := 1 until j > n loop from k := 2 until k > n loop k := k * 2 from l := 1 until l > n loop l := l + 10 j := j + 1 1 P d) Geben Sie die asymptotische Laufzeit in Abhängigkeit von n N für folgen Algorithmus in Theta-Notation an (Sie müssen Ihre Antwort nicht begründen): from h := 1 until h > n loop from j := 1 until j > n*n loop j := j * 3 from k := 2 until k*k > n loop k := k + 1 h := h + 2 1 P e) Geben Sie die asymptotische Laufzeit in Abhängigkeit von n N für folgen Algorithmus in Theta-Notation an (Sie müssen Ihre Antwort nicht begründen): from j := 1 until j > n loop from k := 1 until k > n*n*n loop k := k + j j := j + 2

Stud.-Nummer: Datenstrukturen & Algorithmen Seite 6 Aufgabe 3: Ein Online-Shop für Smartphones möchte seinen Kunden nur die besten Geräte anbieten. Zwei wichtige Kriterien dabei sind der Preis und die maximale Betriebsdauer (des Akkus) eines Smartphones. Der Shop betreibt eine Datenbank, in der diese Informationen für jedes Smartphone hinterlegt werden. Den Kunden sollen nur die dominanten Smartphones vorgeschlagen werden: Wenn z.b. Gerät A zum Preis von 300CHF eine Betriebsdauer von 8h bietet und Gerät B zum Preis von 350CHF nur eine Betriebsdauer von 6h, so ist B nicht dominant. Formal betrachten wir eine Menge von Punkten in der Ebene, wobei ein Punkt (x, y) ein Smartphone darstellt, wobei x den Preis und y die Betriebsdauer bezeichnet. Wir nehmen an, dass die Punkte in allgemeiner Lage liegen, d.h., keine zwei Punkte haben die gleiche x- oder y-koordinate. Wir sagen, dass ein Punkt (x, y) einen anderen Punkt (x, y ) dominiert, wenn x < x und gleichzeitig y > y gilt. Ein Punkt heisst dominant, wenn er von keinem anderen Punkt dominiert wird. Im folgen Bild dominiert der Punkt A den Punkt B. Punkt C dominiert weder A noch B. Die dominanten Punkte sind schwarz dargestellt. y A B C x 3 P a) Entwerfen Sie einen möglichst effizienten Algorithmus, der für eine gegebene Menge von n Punkten eine Liste aller dominanten Punkte berechnet. Beschreiben Sie Ihren Algorithmus in Worten und/oder Pseudocode. Geben Sie zudem die Laufzeit Ihrer Lösung im schlechtesten Fall an. 6 P b) Wir betrachten nun eine dynamische Version des in a) gelösten Problems, bei der Punkte hinzugefügt werden können. Er können jedoch keine Punkte wieder gelöscht werden. Sie sollen also eine Datenstruktur entwerfen, welche folge Operationen möglichst effizient (in Abhängigkeit der Anzahl an Punkten in der aktuellen Menge) unterstützt: Init(): erstellt eine Datenstruktur, welche eine leere Menge von Punkten repräsentiert Insert(x, y): fügt einen Punkt (x, y) zur aktuellen Menge von Punkten hinzu ListDominant(): gibt die Liste aller dominanten Punkte in der aktuellen Menge aus Beschreiben Sie Ihre Datenstruktur in Worten und die Implementation der obigen drei Operationen in Worten und/oder Pseudocode. Geben Sie die Laufzeit jeder Operation an.

Stud.-Nummer: Datenstrukturen & Algorithmen Seite 7 Aufgabe 4: Alexander (ein Künstler) plant ein Mobile zum Thema Gleichgewicht (siehe die Abbildung unten). Er hat n Scheiben zur Verfügung, welche zu beliebig langen Ketten aufgehangen werden können. Die Scheiben können unterschiedliche Gewichte haben: Scheibe i hat ein ganzzahliges Gewicht w i. Die vorhandenen n Scheiben sollen auf die zwei Seiten (A und B) des Mobiles verteilt werden, so dass dieses im Gleichgewicht ist. Dies ist genau dann der Fall, wenn die Summe der Gewichte der Scheiben in A gleich der Summe der Gewichte der Scheiben in B ist. Zu beachten ist, dass alle n Scheiben benutzt werden müssen. 1 3 4 5 P a) Entwerfen Sie einen Algorithmus nach dem Muster der dynamischen Programmierung, der feststellt, ob für eine gegebene Menge von n Scheiben mit Gewichten w 1, w 2,..., w n ein Gleichgewicht möglich ist. Schreiben Sie die Rekursionsgleichung des entsprechen dynamischen Programms auf, und geben Sie zudem die Laufzeit Ihres Algorithmus an. 1 P b) Beschreiben Sie kurz in Worten, wie der Algorithmus in a) erweitert werden kann, um eine Aufteilung der Scheiben auszugeben, welche ein Gleichgewicht erreicht, falls eine solche existiert. 3 P c) Da die erste Skulptur ein Erfolg war, plant Alexander eine weitere (siehe die Abbildung unten). Für diese müssen die Scheiben in drei Mengen A, B und C aufgeteilt werden, so dass folge Bedingungen gelten: Das Gesamtgewicht der Menge A ist gleich dem Gesamtgewicht der Menge B. Das Gesamtgewicht der Menge C ist gleich dem Gesamtgewicht der Menge A plus dem Gesamtgewicht der Menge B. Wiederum müssen alle Scheiben verwet werden. Entwerfen Sie ein dynamisches Programm, mit dem festgestellt werden kann, ob eine solche Aufteilung möglich ist, und geben Sie die Laufzeit Ihres Algorithmus an. 1 1 3 4 2 5

Stud.-Nummer: Datenstrukturen & Algorithmen Seite 8 Aufgabe 5: Gegeben sei eine Menge von Punkten in der Ebene, sowie eine Menge von iso-orientierten (achsenparallelen) Rechtecken. Wir möchten bestimmen, welche der Rechtecke keine der Punkte überdecken. Im unten stehen Bild ist dies nur Rechteck R. R R Nehmen Sie im Folgen an, dass als Input eine Menge von m iso-orientierten Rechtecken und eine Menge von n Punkten gegeben sind. Dabei ist jeder Punkt P j, j {1,..., n}, durch Koordinaten (x j, y j ) und jedes Rechteck R i, i {1,..., m}, durch seine linke, obere Ecke (l i, o i ) und seine rechte, untere Ecke (r i, u i ), beschrieben. Sie können annehmen, dass alle Koordinaten ganzzahlig sind und im Wertebereich {1,..., m + n} liegen. 5 P a) Entwerfen Sie einen möglichst effizienten Algorithmus, der alle Rechtecke ausgibt, die keinen Punkt überdecken. Beschreiben Sie Ihren Algorithmus in Worten und/oder in Pseudocode. 2 P b) Welche Laufzeit hat Ihr Verfahren im schlechtesten Fall, in Abhängigkeit von m, n und der Anzahl der auszugeben Rechtecke? 2 P c) Nun möchten wir ein Rechteck identifizieren, welches unter allen gegebenen Rechtecken die maximale Anzahl von Punkten überdeckt. Beachten Sie, dass es mehrere solche Rechtecke geben kann. Beachten Sie auch, dass ein Punkt in vielen Rechtecken gleichzeitig liegen kann. Im obigen Beispiel ist das gesuchte Rechteck R, da kein anderes Rechteck mehr Punkte enthält. Entwerfen Sie einen möglichst effizienten Algorithmus, der ein solches Rechteck ausgibt, und beschreiben Sie diesen in Worten und/oder in Pseudocode.