Algorithmen und Datenstrukturen 2 VU 3.0 Nachtragstest SS Oktober 2016

Ähnliche Dokumente
Algorithmen und Datenstrukturen 2 VU 3.0 Übungstest SS Juni 2013

Algorithmen und Datenstrukturen 1 VU 6.0 Nachtragstest SS Oktober 2014

Algorithmen und Datenstrukturen 2 VU 3.0 Nachtragstest SS Oktober 2014

Algorithmen und Datenstrukturen 1 VU Übungstest SS Juni 2013

Algorithmen und Datenstrukturen 1 VL Übungstest WS Januar 2011

Algorithmen und Datenstrukturen 2 VU 3.0 Übungstest SS Juni 2014

Algorithmen und Datenstrukturen 1 VL Übungstest SS Juni 2011

Algorithmen und Datenstrukturen 1 VL Übungstest WS November 2007

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

Algorithmen und Datenstrukturen 1 VL Übungstest SS Juni 2009

Algorithmen und Datenstrukturen 1 VL Übungstest WS November 2008

Klausur Algorithmen und Datenstrukturen II 01. Agust 2016

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

Algorithmen und Datenstrukturen 2. Stefan Florian Palkovits, BSc Juni 2016

1. Klausur zur Vorlesung Algorithmentechnik Wintersemester 2008/2009

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

Klausur Algorithmen und Datenstrukturen II 29. Juli 2013

1. Klausur zur Vorlesung Algorithmentechnik Wintersemester 2005/2006

Approximationsalgorithmen. 19. Dezember / 28

Überblick. TSP Vergleich der Lösungen. Das Travelling Salesman Problem. Nearest-Neighbor Heuristik für TSP

Kap. 7.1 Heuristiken Kap. 7.2 Approximative Algorithmen und Gütegarantien

Algorithmen und Datenstrukturen 2. Stefan Florian Palkovits, BSc Juni 2016

Klausur Algorithmen und Datenstrukturen II

Einführung in Berechenbarkeit, Komplexität und Formale Sprachen

Approximationsalgorithmen

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

Klausur Algorithmen und Datenstrukturen II 10. August 2015

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

Datenstrukturen und Algorithmen (SS 2013)

Dynamische Programmierung II

Heuristische Verfahren

Kombinatorische Optimierung

Approximation im Sinne der Analysis:

2. Klausur zur Vorlesung Algorithmentechnik Wintersemester 2009/2010

Approximationsalgorithmen für NP-harte Optimierungsprobleme

Datenstrukturen und Algorithmen 2. Klausur SS 2001

Approximationsalgorithmen für NP-harte Optimierungsprobleme

Algorithmen und Datenstrukturen

Das Problem des minimalen Steiner-Baumes

Globalübungsaufgabe1 (Rucksackproblem):

2. Klausur Datenstrukturen und Algorithmen SS 2014

Präsenzübung Datenstrukturen und Algorithmen SS 2014

Übung zu Algorithmen und Datenstrukturen (für ET/IT)

Approximationsalgorithmen. Approximation im Sinne der Analysis:

Theoretische Grundlagen der Informatik

Klausur Algorithmen und Datenstrukturen

Klausur Algorithmen und Datenstrukturen

2. Klausur zur Vorlesung Theoretische Grundlagen der Informatik Wintersemester 2016/2017

Lösungen von Übungsblatt 12

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

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

Approximationsalgorithmen

Informatik III - WS07/08

Klausur Algorithmen und Datenstrukturen

Der Branching-Operator B

Algorithmische Methoden für schwere Optimierungsprobleme

Klausur Algorithmen und Datenstrukturen

Übersicht. Aktivitäten-Auswahl-Problem. Greedy Algorithmen. Aktivitäten-Auswahl-Problem. Aktivitäten-Auswahl-Problem. Datenstrukturen & Algorithmen

Datenstrukturen und Algorithmen

Polynomialzeit- Approximationsschema

Übung 2 Algorithmen II

Randomisierte und Approximative Algorithmen. Prof. Dr. Heiko Röglin Institut für Informatik Universität Bonn

Klausur Algorithmentheorie

Algorithmentheorie. 10 Greedy Verfahren

2. Klausur zur Vorlesung Algorithmentechnik Wintersemester 2006/ April 2007

2. Klausur zur Vorlesung Theoretische Grundlagen der Informatik Wintersemester 2017/2018

BERGISCHE UNIVERSITÄT WUPPERTAL FB B: SCHUMPETER SCHOOL OF BUSINESS AND ECONOMICS. Master of Science

Wiederholung. Divide & Conquer Strategie

Rückblick: divide and conquer

Algorithmen und Komplexität Lösungsvorschlag zu Übungsblatt 8

Klausur Algorithmen und Datenstrukturen

Literatur für diese VO. Überblick. Kap. 5: Approximationsalgorithmen für kombinatorische Optimierungsprobleme

Kap. 7 Optimierung. Überblick. Optimierung: Einführung. Motivation. Beispiele für Optimierungsprobleme. Rundreiseprobleme (TSP)

Kap. 5: Approximationsalgorithmen für kombinatorische Optimierungsprobleme

Klausur Algorithmen und Datenstrukturen

1. Klausur zur Vorlesung Algorithmentechnik Wintersemester 2008/2009

NAME, VORNAME: Studiennummer: Matrikel:

Theoretische Informatik. Exkurs: Komplexität von Optimierungsproblemen. Optimierungsprobleme. Optimierungsprobleme. Exkurs Optimierungsprobleme

Rundreiseproblem und Stabilität von Approximationsalg.

Algorithmen und Komplexität

DAP2-Klausur

Das Problem des Handlungsreisenden

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

Algorithmen und Datenstrukturen 2

Algorithmentechnik - U bung 3 4. Sitzung Tanja Hartmann 03. Dezember 2009

Klausur Informatik-Propädeutikum (Niedermeier/Froese/Chen, Wintersemester 2015/16)

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

Kap. 7.3 Enumerationsverfahren Kap. 7.4 Branch-and-Bound Kap. 7.5 Dynamische Programmierung

Stud.-Nummer: Datenstrukturen & Algorithmen Seite 1

Vorlesung Theoretische Informatik (Info III)

Übungsblatt 5. Vorlesung Theoretische Grundlagen der Informatik im WS 17/18

2. Klausur zur Vorlesung Algorithmentechnik Wintersemester 2008/2009

1. Klausur zur Vorlesung Theoretische Grundlagen der Informatik Wintersemester 2017/2018

Betriebswirtschaftliche Optimierung

6.1. Ein Approximationsalgorithmus für das Rucksackproblem

Datenstrukturen und Algorithmen D-INFK

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

Greedy Algorithms - Gierige Algorithmen

1. Klausur zur Vorlesung Algorithmentechnik Wintersemester 2009/2010

Transkript:

Technische Universität Wien Institut für Computergraphik und Algorithmen Algorithms and Complexity Group 186.815 Algorithmen und Datenstrukturen 2 VU 3.0 Nachtragstest SS 2016 5. Oktober 2016 Machen Sie die folgenden Angaben bitte in deutlicher Blockschrift: Nachname: Vorname: Matrikelnummer: Unterschrift: Legen Sie während der Prüfung Ihren Ausweis für Studierende vor sich auf das Pult. Sie dürfen die Lösungen nur auf die Angabeblätter schreiben, die Sie von der Aufsicht erhalten. Es ist nicht zulässig, eventuell mitgebrachtes eigenes Papier zu verwenden. Benutzen Sie bitte dokumentenechte Schreibgeräte (keine Bleistifte!). Die Verwendung von Taschenrechnern, Mobiltelefonen, Tablets, Digitalkameras, Skripten, Büchern, Mitschriften, Ausarbeitungen oder vergleichbaren Hilfsmitteln ist unzulässig. A1: A2: A3: Summe: Erreichbare Punkte: 15 21 14 50 Erreichte Punkte: Viel Erfolg!

Aufgabe A1: Dynamische Programmierung (15 Punkte) Gegeben sei folgende Instanz des Rucksackproblems mit Kapazität G = 8 und Gegenständen {A, B, C, D} mit den in der Tabelle genannten Gewichten beziehungsweise Werten. Gegenstand A B C D Gewicht 4 2 3 1 Wert 10 6 8 4 a) (10 Punkte) Wenden Sie das in der Vorlesung vorgestellte dynamische Programm für das Rucksackproblem auf die gegebenen Gegenstände an. Tragen Sie in den weißen Zellen der unten stehenden Tabelle die Werte aller Teillösungen ein, die der Algorithmus berechnet. 0 1 2 3 4 5 6 7 8 0 0 0 0 0 0 0 0 0 {A} {A, B} {A, B, C} {A, B, C, D} b) (3 Punkte) In der Vorlesung wurde auch der Algorithmus Find-Solution zum Finden der Lösung besprochen. Markieren Sie in den grauen Zeilen genau diejenigen Zellen, die der Algorithmus Find-Solution während seiner Ausführung ausliest. c) (2 Punkte) Geben Sie die Menge der für die optimale Lösung ausgewählten Gegenstände an.

Aufgabe A2: Lokale Suche, Branch and Bound, Approximation (21 Punkte) Betrachten Sie den folgenden Graphen G und das durch die schwarzen Knoten markierte Vertex Cover W. a) (3 Punkte) Führen Sie einen Schritt der Lokalen Suche mittels Nachbarschaftsstruktur für Vertex Cover aus, wie in der Vorlesung vorgestellt. Markieren Sie eindeutig welcher Knoten dabei aus W entfernt wird. b) (3 Punkte) Wie viele verschieden Möglichkeiten gibt es einen Knoten aus W zu entfernen?

Betrachten Sie die folgende Instanz des TSP Problems und die durch die dicken äußeren Kanten markierte Tour. Alle gestrichelten Kanten haben das Gewicht 3. 5 4 3 3 2 c) (5 Punkte) 2 Führen Sie einen Schritt der 2-Opt Lokalen Suche durch, der die größtmögliche Verbesserung erzielt. Zeichnen Sie die resultierende Tour in die folgende Abbildung ein. d) (2 Punkte) Welches Gewicht hat Ihre oben eingezeichnete Tour?

e) (4 Punkte) Welche der folgenden Aussagen über Branch-and-Bound Algorithmen sind korrekt? Kreuzen Sie genau diejenigen Antworten an, die eine wahre Aussage darstellen. Bei einem Fehler (falsches oder fehlendes Kreuz) wird noch 1 Punkt vergeben, bei zwei oder mehr Fehlern werden 0 Punkte für diese Aufgabe vergeben. In einem Maximierungsproblem kann man die Betrachtung eines Teilproblems abbrechen, wenn dessen lokale obere Schranke kleiner ist als die aktuelle globale untere Schranke. Der Wert einer gültigen Lösung in einem Minimierungsproblem ist eine globale obere Schranke. Die asymptotische worst-case Laufzeit eines Branch-and-Bound Algorithmus ist immer polynomiell in der Eingabegröße. Wenn in einem Minimierungsproblem eine gültige Lösung gefunden wird, deren Wert kleiner ist als die bisherige globale obere Schranke, hat man eine optimale Lösung gefunden und kann das Verfahren abbrechen. f) (4 Punkte) Welche der folgenden Aussagen über Approximationsalgorithmen sind korrekt? Kreuzen Sie genau diejenigen Antworten an, die eine wahre Aussage darstellen. Bei einem Fehler (falsches oder fehlendes Kreuz) wird noch 1 Punkt vergeben, bei zwei oder mehr Fehlern werden 0 Punkte für diese Aufgabe vergeben. Algorithmus A ist ein ε-approximativer Algorithmus für ein Maximierungsproblem wenn für ihn gilt, dass er für jede Probleminstanz eine Lösung mit einem Wert zurück liefert, der den optimalen Lösungswert um den Faktor 1/ε nicht unterschreitet. Algorithmus A ist ein ε-approximativer Algorithmus für ein Maximierungsproblem wenn für ihn gilt, dass er für jede Probleminstanz eine Lösung mit einem Wert zurück liefert, der den optimalen Lösungswert um den Faktor ε nicht unterschreitet. Für das symmetrische Traveling Salesman Problem mit beliebiger Kostenmatrix besitzt die Spanning-Tree-Heuristik eine Gütegarantie von 2. Für das Problem ein kleinstes Vertex Cover für einen gegebenen Graphen zu finden gibt es einen Approximationsalgorithmus mit Gütegarantie 3.

Aufgabe A3: Interval Scheduling (14 Punkte) Betrachten Sie folgende Problemdefinition und die darunter angegebene Instanz. Problem (gewichtetes Interval Scheduling mit Strafkosten). Gegeben sei eine Menge von n Jobs J = {J 1, J 2,..., J n } mit folgenden Eigenschaften: Job J i startet zum Zeitpunkt s i und endet zum Zeitpunkt f i > s i. Job J i hat den Wert w i > 0, wenn er ausgeführt wird, und die Strafkosten t i 0, wenn er nicht ausgeführt wird. Zwei Jobs J i und J k sind kompatibel, wenn sie sich nicht überlappen, also f i s k oder f k s i gilt. Gesucht ist eine Teilmenge S J von paarweise kompatiblen Jobs, mit maximalem Gesamtgewinn G(S) = w i t i, J i S J i J \S also dem Wert der ausgeführten Jobs minus den Strafkosten der nicht ausgeführten Jobs. Hinweis: Wenn alle Strafkosten t i = 0 (i = 1,..., n) sind, erhält man genau das aus der Vorlesung bekannte Problem gewichtetes Interval Scheduling. Job Startzeit Ende Wert Strafkosten J 1 s 1 = 1 f 1 = 3 w 1 = 7 t 1 = 10 J 2 s 2 = 0 f 2 = 4 w 2 = 10 t 2 = 0 J 3 s 3 = 3 f 3 = 4 w 3 = 2 t 3 = 0 J 4 s 4 = 3 f 4 = 5 w 4 = 6 t 4 = 5 J 5 s 5 = 4 f 5 = 5 w 5 = 5 t 5 = 2 J 6 s 6 = 3 f 6 = 6 w 6 = 12 t 6 = 7 J 7 s 7 = 5 f 7 = 7 w 7 = 5 t 7 = 5 J 1 J 2 J 3 J 4 J 5 J 6 J 7 0 1 2 3 4 5 6 7 Zeit

a) (2 Punkte) Berechnen Sie für die oben angegebene Instanz, deren Jobs nicht-absteigend nach dem Ende f j (j = 1,..., 7) sortiert sind, die Werte p(j) für j = 1,..., 7. Der Wert p(j) gibt wie in der Vorlesung den größten Index i < j an, so dass Job J i kompatibel zu J j ist. Füllen Sie die Tabelle aus. Existiert kein solcher Job J i sei der Wert als p(j) = 0 definiert. b) (6 Punkte) p(1) p(2) p(3) p(4) p(5) p(6) p(7) 0 0 Ergänzen Sie die beiden fehlenden Zeilen in nachfolgendem Pseudocode, so dass nachdem der Algorithmus ausgeführt wurde, der Eintrag M[j] für j = 1,..., n den Gesamtgewinn eines optimalen Schedules der Jobs J 1, J 2,..., J j enthält. Orientieren Sie sich an dem Bottom-Up Verfahren für gewichtetes Interval Scheduling aus der Vorlesung. Zur Berechnung von M[j] können Sie auf bereits berechnete Werte des Arrays M sowie auf die Werte w i und Strafkosten t i aller Jobs J i zugreifen. weightedschedulingwithpenalties(jobs J 1,..., J n ): initialisiere M Array der Länge n + 1 M[0] 0 berechne Werte p(1),..., p(n) // wie in Aufgabe (a) for j = 1 to n if p(j) = j 1 M[j] else M[j] return M c) (6 Punkte) Füllen Sie die in Aufgabe (b) definierte Tabelle M für die oben angegebene Instanz mit den richtigen Werten aus und geben Sie den optimalen Schedule mit seinem Gesamtgewinn an. M[1] M[2] M[3] M[4] M[5] M[6] M[7] 7 7