Übersicht Pfad und Fluss Polyeder Vollständige Unimodularität Path and flow polyhedra and total unimodularity Martin Günther Institut für Mathematik, TU Berlin Seminar: Algorithmische Diskrete Mathematik 15. April 2008 Martin Günther Zusammenfassung Übersicht Pfad und Fluss Polyeder Vollständige Unimodularität Übersicht 1 Pfad und Fluss Polyeder Induzierte Polyeder Pfad Polyeder Blocking Polyhedra Anwendung 2 Vollständige Unimodularität Definition Knoten-Kanten-Inzidenzmatrizen 3 Zusammenfassung Martin Günther Zusammenfassung Übersicht Pfad und Fluss Polyeder Vollständige Unimodularität Zusammenfassung Induzierte Polyeder Motivation Abstrakte Sicht auf kombinatorische Optimierungsprobleme Geometrische Interpretation kombinatorischer Optimierungsprobleme Anwendung von (Beweis-)Methoden aus der Linearen Programmierung und Polyedertheorie Aussagen über Ganzzahligkeit Martin Günther Übersicht Pfad und Fluss Polyeder Vollständige Unimodularität Zusammenfassung Induzierte Polyeder Kombinatorische Optimierungsprobleme Was ist eine Instanz eines kombinatorisches Optimierungsproblem? Definition: Eine Instanz eines (abstrakten) kombinatorischen Optimierungsproblems ist ein Tripel (A, F, c) mit A ist eine endliche Menge, die Grundmenge F ist das Mengensystem der zulässigen Lösungen F ⊆ A P c : A → R mit c(F ) := a∈F c(a) gibt den Wert der zulässigen Lösung an Martin Günther Übersicht Pfad und Fluss Polyeder Vollständige Unimodularität Zusammenfassung Induzierte Polyeder Induzierte Polyeder Definition: Das von (A, F, c) induzierte Polyeder PF ergibt sich folgendermaßen Für eine Menge F ⊆ A betrachten wir den Inzidenzvektor x F ∈ RA mit 1 a∈F F xa := 0 a 6∈ F Dann ist PF := conv {x F | F ∈ F}. Martin Günther Übersicht Pfad und Fluss Polyeder Vollständige Unimodularität Zusammenfassung Induzierte Polyeder Bemerkungen PF ist ein Polytop die Ecken von PF sind Inzidenzvektoren von zulässigen Lösungen Es gibt ein lineares Ungleichungssystem Mx ≤ b, x ≥ 0, dessen Lösungsmenge PF ist Wir können (A, F, c) mit linearer Optimierung lösen, wenn wir eine lineare Beschreibung Mx ≤ b, x ≥ 0 von PF haben Das Optimum von (A, F, c) wird auf einer Ecke von Mx ≤ b, x ≥ 0 angenommen Wie findet man eine (lineare) Beschreibung? Martin Günther Übersicht Pfad und Fluss Polyeder Vollständige Unimodularität Zusammenfassung Pfad Polyeder Pfad Polyeder Definition: Sei D = (V , A) ein Digraph und seien s, t ∈ V . Dann ist das s-t Pfad Polytop Ps−t path (D) die konvexe Hülle der Inzidenzvektoren in RA von s-t Pfaden in D. Problem: Das max-path Problem ist NP-vollständig. ⇒ Das Separierungsproblem für Ps−t path (D) ist NP-schwer. Martin Günther Übersicht Pfad und Fluss Polyeder Vollständige Unimodularität Zusammenfassung Pfad Polyeder Die Dominante von Ps−t path (D) Definition: Für jedes P ⊆ Rn ist P ↑ := {y ∈ Rn | ∃x ∈ P : y ≥ x} = P + Rn+ . P ↑ heißt Dominante von P. Definition: ↑ Die Dominante Ps−t path (D) von Ps−t path (D) ist definifert durch: ↑ A Ps−t path (D) = {x ∈ R | x ≥ y für y ∈ Ps−t path (D)}. Martin Günther Übersicht Pfad und Fluss Polyeder Vollständige Unimodularität Zusammenfassung Pfad Polyeder Theorem 13.1 Theorem Q := x∈ RA : x(a) ≥ 0 ∀a ∈ A x(C) ≥ 1 für jeden s-t Schnitt C ↑ ist eine lineare Beschreibung von Ps−t path (D). Vorüberlegung: Theorem 7.1 Martin Günther Übersicht Pfad und Fluss Polyeder Vollständige Unimodularität Zusammenfassung Pfad Polyeder Theorem 7.1 Theorem Sei D = (V , A) ein Digraph, seien s, t ∈ V und sei l : A → Z+ . Dann ist die minimale Länge l(P) eines s-t Pfades gleich der maximalen Kardinalität k einer Familie von s-t Schnitten C1 , · · · , Ck , sodass jede Kante a in höchstens l(a) der Schnitte Ci enthalten ist. Beweis: Beweis für Spezialfall: l(a) = 1 ∀a ∈ A Jeder Pfad muss mit jedem Schnitt mindestens eine gemeinsame Kante haben. ⇒ l(P) ≥ k Sei dist(s, t) = d und Ui := {u ∈ V | dist(s, u) ≤ i}. Dann ist {δU−i | i = 1, · · · , d} die Menge der gesuchten Schnitte. Martin Günther Übersicht Pfad und Fluss Polyeder Vollständige Unimodularität Zusammenfassung Pfad Polyeder Beweis von Theorem 13.1 Theorem Q := x ∈ RA : x(a) ≥ 0 ∀a ∈ A x(C) ≥ 1 für jeden s-t Schnitt C ↑ ist eine lineare Beschreibung von Ps−t path (D). Martin Günther Übersicht Pfad und Fluss Polyeder Vollständige Unimodularität Zusammenfassung Pfad Polyeder Beweis von Theorem 13.1 Beweis: x∈P ↑ s−t path (D) = y∈Ps−t path (D) + z∈RA + Jeder Pfad y∈Ps−t path (D) erfüllt y (C) ≥ 1 für alle s-t Schnitte ⇒y ∈Q⇒x ∈Q ↑ ⇒ Ps−t path (D) ⊆ Q ↑ Annahme: Q 6⊆ Ps−t path (D) A ⇒ ∃ l ∈ Z+ mit minx∈Q l T x < miny∈P ↑ s−t path Martin Günther (D) lT y Übersicht Pfad und Fluss Polyeder Vollständige Unimodularität Zusammenfassung Pfad Polyeder Beweis von Theorem 13.1 Dann ist miny∈P ↑ s−t path (D) l T y = miny ∈Ps−t path (D) l T y =: k gleich der Länge k eines kürzesten s-t Pfades mit l als Längenfunktion Theorem 7.1 =⇒ Es existieren s-t Schnitte C1 , · · · , Ck , sodass jede Kante a in höchstens l(a) der Ci enthalten ist. Also giltPfür alle x ∈ Q: P l T x ≥ ( ki=1 χCi )T x = ki=1 x(Ci ) ≥ k = miny∈P ↑ l T y ⇒ Widerspruch zur Annahme (D) s−t path Martin Günther Übersicht Pfad und Fluss Polyeder Vollständige Unimodularität Zusammenfassung Pfad Polyeder Theorem 13.1a Theorem Das Polyeder Q := x ∈ RA : x(a) ≥ 0 ∀a ∈ A x(C) ≥ 1 für jeden s-t Schnitt C ist ganzzahlig. Beweis: Die Ecken des Polyeders sind ganzzahlig, da sie Inzidenzvektoren von Pfaden sind. Martin Günther Übersicht Pfad und Fluss Polyeder Vollständige Unimodularität Zusammenfassung Pfad Polyeder Schnitt Polytop Definition: Sei D = (V , A) ein Digraph und seien s, t ∈ V . Dann ist das s-t Schnitt Polytop Ps−t cut (D) die konvexe Hülle der Inzidenzvektoren in RA von s-t Schnitten in D. Definition: ↑ Die Dominante Ps−t cut (D) von Ps−t cut (D) ist definifert durch: ↑ A Ps−t cut (D) = {x ∈ R | x ≥ y für y ∈ Ps−t cut (D)}. Martin Günther Übersicht Pfad und Fluss Polyeder Vollständige Unimodularität Zusammenfassung Pfad Polyeder Theorem 13.1b Theorem C := x∈ RA : x(a) ≥ 0 ∀a ∈ A x(AQ) ≥ 1 für jeden s-t Pfad Q ↑ ist eine lineare Beschreibung von Ps−t cut (D). Beweis: Folgt mit der Theorie der Blocking Polyhedra aus Theorem 13.1. Martin Günther Übersicht Pfad und Fluss Polyeder Vollständige Unimodularität Zusammenfassung Blocking Polyhedra blocking type Definition: Ein Polyeder P hat die Eigenschaft blocking type, genau dann wenn ∃x1 , · · · , xk ∈ Rn+ : P = conv {x1 , · · · , xk }↑ und genau dann wenn P = {x ∈ Rn+ | Mx ≥ 1} für eine positive Matrix M. Martin Günther Übersicht Pfad und Fluss Polyeder Vollständige Unimodularität Zusammenfassung Blocking Polyhedra Blocking Polyhedra ∃x1 , · · · , xk ∈ Rn+ : P = conv {x1 , · · · , xk }↑ ⇐⇒ P = {x ∈ Rn+ | Mx ≥ 1} Definition: Für jedes Polyeder P ∈ Rn ist das blocking polyhedron B(P) definiert als n o B(P) := z ∈ Rn+ | x T z ≥ 1 für jedes x ∈ P . Martin Günther Übersicht Pfad und Fluss Polyeder Vollständige Unimodularität Zusammenfassung Blocking Polyhedra Theorem 5.8 Theorem Sei P ⊆ Rn+ ein Polyeder mit der Eigenschaft blocking type. Dann ist B(P) ebenfalls ein Polyeder mit der Eigenschaft blocking type und B(B(P)) = P. Desweiteren gilt für x1 , · · · , xk ∈ Rn+ und z1 , · · · , zd ∈ Rn+ : n o conv {x1 , · · · , xk } + Rn+ = x ∈ Rn+ | zjT x ≥ 1 für j = 1, · · · , d ⇐⇒ n o conv {z1 , · · · , zd } + Rn+ = z ∈ Rn+ | xiT z ≥ 1 für i = 1, · · · , k Martin Günther Übersicht Pfad und Fluss Polyeder Vollständige Unimodularität Zusammenfassung Blocking Polyhedra Theorem 13.1d ↑ Ps−t path (D) n = conv {x ∈ R+ | x ist Inzidenzvektor eines s-t Pfades}↑ x(a) ≥ 0 ∀a ∈ A A = x ∈R : x(C) ≥ 1 für jeden s-t Schnitt C und ↑ Ps−t cut (D) n = conv {x ∈ R+ | x ist Inzidenzbektor eines s-t Schnittes}↑ x(a) ≥ 0 ∀a ∈ A A = x ∈R : x(AQ) ≥ 1 für jeden s-t Pfad Q sind Blocking Polyhedra. Martin Günther Übersicht Pfad und Fluss Polyeder Vollständige Unimodularität Zusammenfassung Blocking Polyhedra Theorem 13.1d Definition: Zwei Polyeder P, R heißen blocking pair (of polyhedra), wenn sie die Eigenschaft blocking type haben und R = B(P). Ist P, R ein blocking pair, so ist auch R, P ein blocking pair. Theorem (Theorem 13.1d) ↑ ↑ Die Polyeder Ps−t path (D) und Ps−t cut (D) bilden ein blocking pair von Polyedern. Beweis: folgt direkt aus dem Vorangegangenen Martin Günther Übersicht Pfad und Fluss Polyeder Vollständige Unimodularität Zusammenfassung Blocking Polyhedra Theorem 13.1b Theorem C := x∈ RA : x(a) ≥ 0 ∀a ∈ A x(AQ) ≥ 1 für jeden s-t Pfad Q ↑ ist eine lineare Beschreibung von Ps−t cut (D). Beweis: Folgt mit der Theorie der Blocking Polyhedra aus Theorem 13.1. Martin Günther Übersicht Pfad und Fluss Polyeder Vollständige Unimodularität Zusammenfassung Blocking Polyhedra Theorem 13.1c Theorem Das Polyeder C := x ∈ RA : x(a) ≥ 0 ∀a ∈ A x(AQ) ≥ 1 für jeden s-t Pfad Q ist ganzzahlig. Beweis: Die Ecken des Polyeders sind ganzzahlig, da sie Inzidenzvektoren von s-t Schnitten sind. Martin Günther Übersicht Pfad und Fluss Polyeder Vollständige Unimodularität Anwendung µ := minx∈P ↑ s−t cut (D) c T x= minx∈Ps−t cut (D) c Tx ist die minimale Kapazität eines s-t Schnittes. µ = minx∈P ↑ s−t cut Theorem 13.1b = Dualiät min (D) cT x cT x mit x(a) ≥ 0 x(AQ) ≥ 1 P = max Q λQ λQ ≥ 0 für jeden s-t Pfad Q mit P AQ ≤ c λ χ Q Q P Dann ist f := Q λQ χAQ ein s-t Fluss mit Wert µ. Martin Günther Zusammenfassung Übersicht Pfad und Fluss Polyeder Vollständige Unimodularität Zusammenfassung Anwendung Theorem 13.1e Theorem (max-flow min-cut) Sei D = (V , A), seien s, t ∈ V und sei c : A → R+ eine Kapazitätsfunktion. Dann ist der Wert eines maximalen s-t Flusses f ≤ c gleich dem minimalen Wert der Kapazität eines s-t Schnittes. Martin Günther Übersicht Pfad und Fluss Polyeder Vollständige Unimodularität Übersicht 1 Pfad und Fluss Polyeder Induzierte Polyeder Pfad Polyeder Blocking Polyhedra Anwendung 2 Vollständige Unimodularität Definition Knoten-Kanten-Inzidenzmatrizen 3 Zusammenfassung Martin Günther Zusammenfassung Übersicht Pfad und Fluss Polyeder Vollständige Unimodularität Zusammenfassung Definition Unimodular und vollständig unimodular Definition: Eine quadratische Matrix M ∈ Zn×n heißt unimodular, wenn gilt det M = ±1. Definition: Eine Matrix M ∈ Zm×n heißt vollständig unimodular, wenn jede quadratische reguläre Teilmatrix von M unimodular ist. Martin Günther Übersicht Pfad und Fluss Polyeder Vollständige Unimodularität Definition Theorem 5.20 Theorem Sei M eine vollständig unimodulare m × n Matrix und sei b ∈ Zm . Dann ist das Polyeder P := {x | Mx ≤ b} ganzzahlig. Beweis: siehe Vorlesungsmitschrift vom 14.02.2008 Martin Günther Zusammenfassung Übersicht Pfad und Fluss Polyeder Vollständige Unimodularität Zusammenfassung Definition Theorem 5.20a Theorem Sei M eine vollständig unimodulare m × n Matrix, sei b ∈ Zm und sei c ∈ Zn . Dann besitzen beide Optima in der LP-Dualitätsgleichung max{c T x | Mx ≤ b} = min{y T b | y ≥ 0, y T M = c T } ganzzahlige optimale Lösungen (sofern die Optima endlich sind). Martin Günther Übersicht Pfad und Fluss Polyeder Vollständige Unimodularität Knoten-Kanten-Inzidenzmatrizen Theorem 13.9 Theorem Die Inzidenzmatrix M jedes Dirgaphen D ist vollständig unimodular. Beweis: Sei B eine quadratische Teilmatrix der Ordnung k. zu zeigen: detB ∈ {0, ±1} durch Induktion über k k = 1 trivial Martin Günther Zusammenfassung Übersicht Pfad und Fluss Polyeder Vollständige Unimodularität Zusammenfassung Knoten-Kanten-Inzidenzmatrizen Beweis zu Theorem 13.9 Fall 1: B hat eine Nullspalte ⇒ detB = 0 Fall 2: B hat eine Spalte mit genau einem Nichtnulleintrag ±1 bT B= 0 B‘ Induktionsvoraussetzung: detB 0 ∈ {0, ±1} ⇒ detB ∈ {0, ±1} Fall 3: Jede Spalte von B enthält zwei Nichtnulleinträge. Dann enthält jede Spalte eine +1 und eine −1, alle anderen Einträge sind 0. Jede Spalte addiert sich zu 0 ⇒ detB = 0 Martin Günther Übersicht Pfad und Fluss Polyeder Vollständige Unimodularität Zusammenfassung Knoten-Kanten-Inzidenzmatrizen Theorem 13.9a Theorem (max-flow min-cut) Sei D = (V , A), seien s, t ∈ V und sei c : A → R+ eine Kapazitätsfunktion. Dann ist der Wert eines maximalen s-t Flusses f ≤ c gleich dem minimalen Wert der Kapazität eines s-t Schnittes. Beweis: Der maximale Flusswert 6> dem minimalen Schnittwert Daher reicht es zu zeigen, dass ein s-t Fluss x ≤ c existiert und ein s-t Schnitt, dessen Kapazität nicht größer als der Wert von x ist. Martin Günther Übersicht Pfad und Fluss Polyeder Vollständige Unimodularität Zusammenfassung Knoten-Kanten-Inzidenzmatrizen Beweis zu Theorem 13.9a Sei M die Inzidenzmatrix von D und sei M 0 die Matrix, die aus M durch Löschen der Zeilen zu s und t entsteht. Dann entspricht M 0 x = 0 der Flusserhaltung. Sei w die zu t korrespondierende Zeile von M mit +1 t ist Zielknoten von a −1 t ist Startknoten von a . w(a) = 0 sonst Dann ist max{w T x | 0 ≤ x ≤ c; M 0 x = 0} der maximale Wert eines s-t Flusses. Martin Günther Übersicht Pfad und Fluss Polyeder Vollständige Unimodularität Zusammenfassung Knoten-Kanten-Inzidenzmatrizen Beweis zu Theorem 13.9a max{w T x | 0 ≤ x ≤ c; M 0 x = 0} Dualiät = min{y T c | y ≥ 0; ∃z : y T + z T M 0 ≥ w T } Da M 0 vollständig unimodular und w ganzzahlig ist =⇒ y und z sind ganzzahlig. Erweitere z durch zt := −1 und zs := 0 ⇐⇒ y T + z T M ≥ 0 Martin Günther Übersicht Pfad und Fluss Polyeder Vollständige Unimodularität Zusammenfassung Knoten-Kanten-Inzidenzmatrizen Beweis zu Theorem 13.9a Definiere U := {v ∈ V | zv ≥ 0} Dann ist U ⊂ V mit s ∈ U und t 6∈ U. Es reicht zu zeigen, dass c(δ − (U)) ≤ y T c, da y T c dem maximalen Flusswert entspricht. Dafür reicht es zu zeigen, dass wenn a = (u, v ) ∈ δ − (U), dann ya ≥ 1. Martin Günther Übersicht Pfad und Fluss Polyeder Vollständige Unimodularität Zusammenfassung Knoten-Kanten-Inzidenzmatrizen Beweis zu Theorem 13.9a zu zeigen: ya ≥ 1 Aufgrund der Ganzzahligkeit gilt zu ≥ 0 und zv ≤ −1. y T + z T M ≥ 0 =⇒ ya + zv − zu ≥ 0 =⇒ ya ≥ zu − zv ≥ 1 Martin Günther Übersicht Pfad und Fluss Polyeder Vollständige Unimodularität Zusammenfassung Knoten-Kanten-Inzidenzmatrizen Bemerkungen Die Menge aller s-t Flüsse mit Wert 1 ist ein Polyeder für alle a ∈ A, x(a) ≥ 0 x(δ − (v )) = x(δ + (v )) für alle v ∈ V \{s, t} Ps−t flow (D) := − + x(δ (s)) − x(δ (s)) = 1. Die Menge aller s-t Flüsse mit Wert Φ ist Φ · Ps−t flow (D). Martin Günther Übersicht Pfad und Fluss Polyeder Vollständige Unimodularität Zusammenfassung Knoten-Kanten-Inzidenzmatrizen Theorem 13.10 Theorem Sei D = (V , A) ein Digraph, seien s, t ∈ V und sei Φ ∈ Z+ . Dann bildet die Menge der s-t Flüsse x ≤ c mit Wert Φ ein ganzzahliges Polytop. Beweis: folgt aus der vollständigen Unimodularität der Inzidenzmatrix eines Digraphen. Martin Günther Übersicht Pfad und Fluss Polyeder Vollständige Unimodularität Knoten-Kanten-Inzidenzmatrizen Theorem 13.10a Theorem Sei D = (V , A) ein Digraph, seien s, t ∈ V , c : A → Z und Φ ∈ Z. Existiert ein s-t Fluss x ≤ c mit Wert Φ, dann existiert ein ganzzahliger Fluss mit Wert Φ. Beweis: folgt aus Theorem 13.10. Martin Günther Zusammenfassung Übersicht Pfad und Fluss Polyeder Vollständige Unimodularität Übersicht 1 Pfad und Fluss Polyeder Induzierte Polyeder Pfad Polyeder Blocking Polyhedra Anwendung 2 Vollständige Unimodularität Definition Knoten-Kanten-Inzidenzmatrizen 3 Zusammenfassung Martin Günther Zusammenfassung Übersicht Pfad und Fluss Polyeder Vollständige Unimodularität Zusammenfassung Geometrische Repräsentation kombinatorischer Optimierungsprobleme Dominanten von Polyedern und Blocking Polyhedra Alternative Beweise für das max-flow min-cut Theorem Digraphen und Vollständige Unimodularität Martin Günther Übersicht Pfad und Fluss Polyeder Vollständige Unimodularität Danke für die Aufmerksamkeit! Ende Martin Günther Zusammenfassung