Fakultät für Informatik Professur Theoretische Informatik und Informationssicherheit Sommersemester 2008 Prof. Dr. Hanno Lefmann Theoretische Informatik III 1. Übung Aufgabe 1 Wir betrachten die Online-Version des Problems MAXCUT. Eingabe ist ein Graph G = (V, E), und wir suchen eine Partition der Knotenmenge V in zwei Klassen, so dass die Anzahl der Kanten zwischen den beiden Klassen maximal wird. Online bedeutet, dass einem Algorithmus nacheinander Knoten des Graphen zusammen mit allen Kanten, die zwischen bereits betrachteten Knoten verlaufen, präsentiert werden, und der Algorithmus muss für jeden Knoten sofort festlegen, in welche Klasse der Partition er kommt. Besitzt eine Lösung a geschnittene Kanten (d. h. Kanten zwischen den beiden Klassen) und die optimale Lösung b geschnittene Kanten, dann ist die Güte der Lösung gleich b/a. Zeigen Sie für jedes ε > 0, dass kein online-Algorithmus garantieren kann, immer eine Lösung mit Güte maximal 2 − ε zu finden. Aufgabe 2 Beim Problem MINCUT suchen wir im Gegensatz zum Problem MAXCUT nach einer Partition der Knotenmenge in zwei Klassen, so dass möglichst wenig Kanten zwischen den beiden Klassen verlaufen. Eine Idee zur Lösung des Problems MAXCUT wäre die Folgende: Gegeben ein Graph G = (V, E), flippen“ wir alle ” Kanten in E, d. h. wir konstruieren den Graphen G0 = (V, E 0 ), so dass eine Kante in E 0 vorhanden ist genau dann wenn sie in E nicht vorhanden ist. Dann Lösen wir das Problem MINCUT für G0 mit einem beliebigen Algorithmus und geben die Lösung aus. Zeigen Sie, dass das Vorgehen nicht funktioniert, d. h. dass ein minimaler Cut in G0 nicht unbedingt ein maximaler Cut in G ist. Aufgabe 3 Ein Ganzzahliges Programm besitzt eine Menge {x1 , . . . , xn } von ganzzahligen Variablen. Dazu kommt eine lineare Zielfunktion f (x1 , . . . , xn ) = a1 x1 + . . . + an xn mit rationalen Koeffizienten aj sowie eine Menge von m Ungleichungen bi,1 x1 + . . . + bi,n xn ≥ ci , i = 1, . . . , m, wobei die Koeffizienten bi,j und ci rationale Zahlen sind. Gesucht ist eine (ganzzahlige) Belegung der Variablen, so dass alle Ungleichungen erfüllt sind, und der Zielfunktionswert maximal ist. Wir betrachten das Problem UNABHÄNGIGE MENGE: Gegeben ist ein Graph G = (V, E), und gesucht ist eine möglichst große Menge I ⊆ V , so dass für keine Kante aus E beide Endknoten innerhalb von I liegen. 1. Formulieren Sie das Problem UNABHÄNGIGE MENGE als Ganzzahliges Programm, d. h. beschreiben Sie, wie man für einen beliebigen gegebenen Graphen G ein Ganzzahliges Programm P konstruieren kann, dessen optimaler (maximaler) Zielfunktionswert gleich der Größe der größten unabhängigen Menge in G ist. 2. Verändern Sie Ihr Programm P aus der ersten Teilaufgabe so, dass die Variablen nicht nur ganzzahlige, sondern rationale Werte annehmen können (wir relaxieren“ das Programm). Dadurch kann der maximale Zielfunktionswert ” evtl. wachsen. Geben Sie Graphen an, für die die Differenz zwischen dem maximalen Zielfunktionswert von P und der Größe der größten unabhängigen Menge in G möglichst groß ist.