29.10.2013 Aufrufe

Skript zur Vorlesung Komplexitätstheorie im SS 1996

Skript zur Vorlesung Komplexitätstheorie im SS 1996

Skript zur Vorlesung Komplexitätstheorie im SS 1996

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

1 PROBLEME UND ALGORITHMEN 9<br />

Beispiel:<br />

s<br />

i❥<br />

C ✒ ✻<br />

C<br />

1 ✒ ❘ t<br />

❘ ❥<br />

j<br />

Wenn der Algorithmus für REACHABILITY <strong>im</strong>mer die Kanten (i, j) oder<br />

(j, i) durchläuft, werden mindestens 2C Iterationen benötigt!<br />

Bei binärer Kodierung benötigt die Darstellung von C ⌈log C⌉ Bits. Wenn<br />

etwa log C > n2 ist, wird die Länge der Problembeschreibung, d. h. die Beschreibung<br />

des aktuellen Problemfalls durch O(n2 log C) beschränkt. Wählt<br />

man beispielsweise <strong>im</strong> obigen Beispiel C = 2n3, dann ist die Laufzeit<br />

O(n3C) = O(n32n3) eine exponentielle Funktion der Eingabelänge, der Algorithmus<br />

für MAXFLOW ist exponentiell.<br />

Einfache Verbesserung: Statt irgendeinen Pfad von s nach t in N(f) zu<br />

suchen, gehe den Weg mit den wenigsten Knoten (z. B. mit der ” breadthfirst“-Version<br />

bei REACHABILITY). Man kann dann zeigen, daß höchstens<br />

n 3 Iterationen mit diesem Algorithmus nötig sind, also MAXFLOW in O(n 5 )<br />

ist. (Anmerkung: Es geht sogar noch schneller.) Damit ist die Schranke von<br />

einem exponentiellen zu einem polynomiellen Algorithmus durchbrochen.<br />

Wir werden sehen, daß das leider wohl nicht <strong>im</strong>mer möglich ist.<br />

Bipartites Matching (Heiratsproblem): Gegeben sei ein bipartiter<br />

Graph B(U, V, E) mit U, V Knoten, E ⊆ U × V und |U| = |V | = n.<br />

Frage: Gibt es ein (perfektes) MATCHING, d. h. existiert eine Menge M ⊆<br />

E mit |M| = n, und für alle (u, v), (u ′ , v ′ ) ∈ M gilt: u = u ′ und v = v ′ ?<br />

Beispiel:<br />

<br />

<br />

<br />

<br />

<br />

C<br />

C<br />

U V<br />

Wir suchen also Paare von Männern und Frauen, die sich sympathisch sind.<br />

Jede Person soll einen Partner finden. Wir können dieses Problem reduzieren<br />

auf ein Flußproblem in folgendem Netzwerk:<br />

Die Knotenmenge ist U ∪ V ∪ {s, t}, die Kantenmenge {(s, u)|u ∈ U} ∪ E ∪<br />

{(v, t)|v ∈ V } und die Kapazität aller Kanten ist 1. Das zugehörige Netzwerk<br />

sieht dann folgendermaßen aus:

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!