• Keine Ergebnisse gefunden

Nachklausur Grundlagen der Algorithmik

N/A
N/A
Protected

Academic year: 2021

Aktie "Nachklausur Grundlagen der Algorithmik"

Copied!
6
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Berlin, 8. Oktober 2018

Name: ... Matr.-Nr.: ...

Nachklausur Grundlagen der Algorithmik

(Niedermeier/Bentert, Sommersemester 2018)

Aufgabe Nr.: 1 2 3 4 5 Summe

Punktzahl: 10 10 10 10 10 50

Davon erreicht:

Einlesezeit: 15 Minuten Bearbeitungszeit: 60 Minuten Max. Punktezahl: 50 Punkte

Allgemeine Hinweise:

• Es sind keinerlei Hilfsmittel erlaubt.

• Benutzen Sie keinen Bleistift, sondern einen Kugelschreiber in der Farbe Schwarz oder Blau.

• Beschriften Sie jedes Blatt mit Vor- und Nachnamen sowie Matrikelnummer.

• Falls in der Aufgabenstellung nicht explizit ausgeschlossen, so sind alle Ant- worten zu begründen! Antworten ohne Begründung erhalten 0 Punkte.

• Sätze aus der Vorlesung dürfen ohne Beweis verwendet werden.

Viel Erfolg!

(2)

Aufgabe 1: Modellieren mit Maximum Flow (10 Punkte) Gegeben ist folgendes Problem.

Three Per Line

Eingabe: Gegeben ist ein n× n großes Schachbrett und eine Menge M = {(x1, y1), . . . ,(xm, ym)} von mzulässigen Feldern.

Frage: Ist es möglich, 3n Felder ausM so auszuwählen, dass in jeder Zeile und in jeder Spalte des Spielbretts genau drei Felder ausgewählt sind?

Modellieren Sie Three Per Line als einMaximum Flow-Problem, sodass die Anzahl der Knoten und die Anzahl der Kanten im Flussnetzwerk polynomiell in n+m ist. Ge- ben Sie hierfür die Knoten, Kanten und Kantenkapazitäten Ihres Flussnetzwerks an und begründen Sie, wie die Antwort bestimmt werden kann.

Hinweis: Das Tupel(xi, yi)steht für das Feld in derxi-ten Zeile und deryi-ten Spalte des Sprielbretts.

2

(3)

Aufgabe 2: Lineares Programmieren (10 Punkte) Geben Sie für das folgende Problem eine Formulierung als ganzzahliges lineares Programm (ILP) an (ohne Begründung).

Definieren Sie dazu die verwendeten Variablen, alle Nebenbedingungen sowie die Zielfunk- tion und geben Sie an, ob diese minimiert oder maximiert wird.

Max-SAT

Eingabe: Eine aussagenlogische Formel F in konjunktiver Normalform mit nVariablen und m Klauseln.

Aufgabe: Finden Sie eine Belegung der Variablen inF, sodass möglichst viele Klauseln in F erfüllt werden.

3

(4)

Aufgabe 3: Diverses zu NP (10 Punkte) Kreuzen Sie die korrekten Aussagen an (ohne Begründung).

Ist ein Problem A NP-schwer, so existiert eine nichtdeterministische Turingmaschi- ne MA, dieA in polynomieller Zeit (in der Eingabegröße) löst.

Sind zwei Probleme A, B∈P, so gibt es eine Polynomzeitreduktion von A aufB. Ist ein Problem A in NP, so kannSAT in polynomieller Zeit (in der Eingabegröße) auf A reduziert werden.

Ist ein Problem Ain NP, so kann A in polynomieller Zeit (in der Eingabegröße) auf SAT reduziert werden.

Hinweise:

Eine nichtdeterministische Turingmaschine MA, die A in polynomieller Zeit (in der Ein- gabegröße) löst, kann als ein Polynomzeit-VerifiziererC:{0,1}× {0,1} →{JA, NEIN}

interpretiert werden, der für eine gegebene binär kodierte Eingabesund ein binär kodiertes Zertifikattmit|t|≤|s|O(1)in polynomieller Zeit (in|s|+|t|) entscheidet, obC(s, t) =JA (also ob s∈Agilt).

SAT

Eingabe: Eine aussagenlogische Formel F in konjunktiver Normalform mit nVariablen und mKlauseln.

Frage: IstF erfüllbar?

4

(5)

Aufgabe 4: Parametrisierter Algorithmus (10 Punkte) Zeigen Sie, dassClique„fixed-parameter tractable“ bezüglich des Parameters „maximaler Knotengrad“ ist. Geben Sie hierzu einen Algorithmus an, der Clique auf einem Graph mit nKnoten,mKanten und maximalem Knotengrad�inf(�)·(n+m)O(1) Zeitschritten löst.

Hinweise:

Clique

Eingabe: Ein ungerichteter Graph G = (V, E) mit n Knoten und m Kanten und eine natürliche Zahlk.

Frage: Gibt es eine MengeK ⊆V aus genau kKnoten inG, die alle paar- weise miteinander durch eine Kante verbunden sind?

Der maximale Knotengrad eines Graph ist die maximale Anzahl von Knoten, die zu einem einzelnen Knoten benachbart (mit diesem durch eine Kante verbunden) sind.

5

(6)

Aufgabe 5: Approximation (10 Punkte) Beweisen oder widerlegen Sie folgende Aussage:

Es existiert ein AlgorithmusA, der in polynomieller Zeit (in der Eingabegröße) eine 1/2- Approximation für Max-SATberechnet.

Hinweise:

Max-SAT

Eingabe: Eine aussagenlogische Formel F in konjunktiver Normalform mit nVariablen und m Klauseln.

Aufgabe: Finden Sie eine Belegung der Variablen inF, sodass möglichst viele Klauseln in F erfüllt werden.

Ein Algorithmus ist eine 1/2-Approximation fürMax-SAT, wenn er für jede FormelF in der maximal optviele Klauseln gleichzeitig erfüllt werden können, eine Belegung berech- net, die mindestensopt/2 Klauseln erfüllt.

Betrachten Sie zunächst was bei der Belegung passiert, die alle Variablen auf „true“ setzt.

6

Referenzen

ÄHNLICHE DOKUMENTE

Wenn das int nicht steht, dann ist der eingegebene Wert für die Anzahl Personen quasi ein Text, mit der der Computer nicht rechnen kann.. Erst der Befehl int macht aus dem

private TreeNode addNode(TreeNode parent, string name, int sym1, int sym2). TreeNode node = new TreeNode(name,

Modellieren Sie obiges Problem als ein Maximum Flow -Problem, sodass die Anzahl der Knoten und die Anzahl der Kanten im Flussnetzwerk polynomiell in n ist.. Geben Sie hierfür

Frage: Können alle Knoten in G so mit drei Farben gefärbt werden, dass kei- ne zwei Knoten mit der gleichen Farbe durch eine Kante verbunden sind.. Nachfolgend sind einige

(b) Zeigen Sie, dass der Algorithmus immer eine 3-Approximation liefert, wenn (7 P) jeder Knoten im Eingabegraph h¨ ochstens drei Nachbarn

Eingabe: Eine aussagenlogische Formel F in konjunktiver Normalform mit m Klauseln, die jeweils maximal zwei Literale enthalten und ei- ne natürliche Zahl k.. Frage: Gibt es

F¨ur jede richtige Antwort gibt es einen Punkt, f¨ur jede falsche Antwort wird ein Punkt abgezogen und nicht bearbeitete Aussagen (Zeilen, in denen kein Kreuz gemacht wurde) werden

Es wird daher empfohlen, die Bearbeitungsreihenfolge der Aufgaben selbst durch Absch¨atzung des Aufwands f¨ur die einzelnen Aufgaben festzulegen, und dabei zu beachten dass