Zeitplan 2003 Flüsse in Netzwerken Theorie & Algorithmen Gunnar W. Klau TU Wien Zeitplan 2004 Di, 6.1.2004 Heilige Drei Könige T6 T8 Netzwerke z z z Starke Zusammenhangskomponenten, Ausgabe Übungsblatt 3 Mi, 14.1.2004 T11 Übung 2: „Flüsse in Netzwerken I“, Aufg. 2 Gruppe C, Di, 20.1.2004 Aufg. 3 Gruppe D T12 Mi, 21.1.2004 Übung 3: „Flüsse II + St. Zushgs.komp.“, Aufg. 1 Gruppe D, Aufg. 2 Gruppe E, Aufg. 3, Gruppe F Mi, 21.1.2004 mündliche Prüfungen -Fr.23.1.2004 Netzwerke z Lösung von Übungsblatt 2, Aufgabe 1 (Gruppe B). Di, 13.1.2004 Flüsse für Fortgeschrittene: polynomielle Algorithmen, (totale Unimodularität), ((Multicommodity flows)) T10 Einführung, Netzwerke, Flussprobleme, „Wiederholung“ Maximale Flüsse, Max-Flow- Min-Cut-Theorem, Ford-Fulkerson, aber kein Di, 16.12.2003 Preflow Push. Dafür Edmonds-Karp-Schranke, Anwendungen, kostenminimale Flüsse, Flussdekompositionstheorem, Anwendungen, Mi, 17.12.2003 Optimalitätskriterien, Algorithmen, (Ausgabe Übungsblatt 2). T7 Mi, 7.1.2004 VL fällt aus (Konferenz) T9 Mi, 10.12.2003 z z z Stromnetz Telefonnetz Warenfluss zwischen Herstellern und Konsumenten Verkehr (Straßen, Züge, Flugzeuge, ...) Oft wollen wir Güter von einem Punkt zu einem anderen schicken Ziel z So viel/effizient/billig wie möglich 1 Netzwerkoptimierung z z seit ca. 1940 Definition: Ein (s-t-)Netzwerk N = (V, A, c, l, u, b) besteht aus z z z z z z z z z Netzwerkoptimierung einem gerichteten Graphen (V, A) mit n Knoten und m gerichteten Kanten (Bögen), den Kosten c: A → R, den unteren Schranken l: A → R≥ 0, den oberen Schranken (Kapazitäten) u: A → R≥ 0 und der Überschuss-/Bedarfsfunktion b: V → R. (zwei ausgezeichneten Knoten, der Quelle s und der Senke t) z z Ein Fluss ist eine Funktion f: A → R≥ 0 mit den Eigenschaften 1. 2. l(v,w) · f(v,w) · u(v,w) für alle v, w ∈ V Kapazitätsbeschr. Flusserhaltung für alle v ∈ V z z z b(v) > 0: Knoten mit Überschuss b(v) < 0: Knoten mit Bedarf b(v) = 0: Durchflussknoten Netzwerkoptimierung z z Lemma 1: Für einen Fluss gilt ∑v ∈ V b(v) = 0. Beweis: Tafel. Die Kosten eines Flusses f sind ∑a ∈ Ac(a)f(a). Ein Fluss f ist minimal, wenn kein Fluss g mit geringeren Kosten existiert. Netzwerkoptimierung Minimales Kostenflussproblem: Finde minimalen Fluss im Netzwerk. Spezialfall 1: Kosten, aber keine Kapazitäten Kürzester Weg von s nach t Setze b(s) = 1, b(t) = -1 und b(v) = 0 ∀ v ∈ V \ {s,t} Spezialfall 2: Kapazitäten, aber keine Kosten Problem des maximalen s-t-Flusses (Sende soviel Güter wie z z Bindeglied zwischen linearer und ganzzahliger Optimierung (Flussprobleme sind ganzzahlige lineare Programme, für die effiziente, kombinatorische Lösungsmethoden existieren). Dualitätssatz hat hier die schöne Form des Max-Flow-MinCut-Theorems. möglich von s nach t ohne die Kapazitätsgrenzen zu verletzen.) Setze b(v) = 0 ∀ v ∈ V, c(a) = 0 ∀ a ∈ A. Füge zusätzlichen Bogen (t,s) ein mit Kosten c(t,s) = -1 und Kapazität u(t,s) = ∞. Literatur zur Netzwerkoptimierung Das Netzwerk N z Linz 12 z s Salzburg Gut geschriebener Klassiker (70er), nur 11 Euro. St. Pölten 20 16 4 9 10 Klagenfurt 14 z C. H. Papadimitriou, K. Steiglitz. Combinatorial Optimization: Algorithms and Complexity. Klassiker, auch gut geschrieben, etwas aktueller z W. Cook, W. H. Cunningham, W. R. Pulleyblank, A. Schrijver. Combinatorial Optimization. t Wien 7 13 R. K. Ahuja, J. B. Magnanti, T. L. Orlin. Network Flows. Prentice Hall. Sehr ausführlich, 846 Seiten über Netzwerkfluss Eugene Lawler. Combinatorial Optimization: Networks and Matroids. (1982). 4 Graz 2 Maximale Flüsse: Anwendungen z z z z z z Annahmen Ölfeld s, Raffinerie t, restl. Knoten Pumpstationen, Kanten Pipelines, Ölstrom wird nur durch Netz begrenzt Bipartites Matching Beweis der Existenz eines Flusses Scheduling Matrix Rounding ... s-t-Fluss etwas anders definiert... z 2. 3. z z z Wir erweitern u auf Def.bereich V × V: u(a) := 0 ∀ a ∈ V × V \ A Keine isolierten Knoten (können einfach entfernt werden) Ein Fluss f in N? Ein s-t-Fluss ist eine Funktion f: V × V → R mit den Eigenschaften 1. z z f(v,w) = -f(w,v) für alle v,w ∈ V f(v,w) · u(v,w) für alle v,w ∈ V ∑v ∈ Vf(w,v) = 0 für alle w ∈ V \ {s,t} Schiefsymmetrie Kapazitätsbeschr. Flusserhaltung Der Wert eines s-t-Flusses f ist |f| := ∑u ∈Vf(u,t), der gesamte Fluss, der t erreicht Eigenschaft 1) ⇒ f(u,u) = 0 ∀ u ∈ V s-t-Fluss f ist maximal, wenn es keinen Fluss g mit |g| >|f| gibt. Der Residualgraph Sei f ein Fluss in N. Die Restkapazität einer Kante a ∈ A bzglch. f ist rf(a) := u(a) – f(a) („um wieviel kann ich f auf a erhöhen, ohne die Kapazität u(a) zu überschreiten?“) Kante a ist Restkante, wenn rf(a) > 0, sonst heißt a saturiert. Gf ist der Graph der Restkanten und heißt Residualgraph (oder Residualnetzwerk) bzglch. f Linz 12/12 St. Pölten 15/20 11/16 Salzburg 1/4 4/9 10 8/13 Klagenfurt Wien 7/7 11/14 4/4 Graz Residualgraph Gf für f Linz 5 11 St. Pölten 15 3 11 5 Klagenfurt 3 Salzburg 5 12 8 4 5 Wien 7 4 11 Graz 3 Residualgraph Residualgraph Gf für f Ein Pfad P in Gf von s nach t heißt augmentierender Pfad und kann dazu benutzt werden, den Fluss f zu vergrößern: Linz Sei x die minimale Restkapazität auf P (nach Def. gilt x > 0) “Addiere” x zu dem Fluss auf P, d.h. erhöhe Fluss auf P um x, erniedrige Fluss in Gegenrichtung um x (hierbei wird mindestens eine Kante saturiert) neuer Fluss f’ in f mit |f’| = |f| + x 5 3 11 5 Klagenfurt 3 8 5 4 Linz 1/4 12/12 St. Pölten 4 8/13 4 4/9 0/10 Klagenfurt Wien 7 Graz Augmentierter Fluss f´ 11/16 Salzburg 5 4 11 Ein Fluss f in N St. Pölten 15 11 Salzburg Lemma 2: f’ ist Fluss Beweis: Tafel. 12 4 11/14 7/7 12/12 Linz 15/20 St. Pölten 19/20 11/16 Salzburg Wien 1/4 0/9 0/10 7/7 12/13 4/4 Klagenfurt Graz Schnitte Ein s-t-Schnitt ist eine Knotenmenge S ⊂ V mit s ∈ S und t ∉ S. Sein Komplement ist Die Kapazität eines Schnittes ist 4/4 Graz Max-Flow-Min-Cut-Theorem Theorem 1 (Max-Flow-Min-Cut) [Ford/Fulkerson 1956, Sei f ein Fluss in N. Die folgenden Bedingungen sind äquivalent: Elias/Feinstein/Shannon 1956]: 1. 2. 3. (Gesamtkap. der Kanten, die S verlassen) Lemma 3: Kein Fluss f kann einen Wert haben, der die Kapazität eines beliebigen Schnittes S übersteigt. Beweis: Tafel. 11/14 Wien Es gibt einen Schnitt, der von f saturiert wird. Fluss f ist maximal. Es gibt keinen augmentierenden Pfad im Restgraph Gf. Beweis: Tafel. Lemma 4: Ein saturierter Schnitt ist minimal. Beweis: Tafel. 4 Max-Flow-Min-Cut-Theorem Maximaler Fluss Die Angabe eines saturierten Schnittes ist ein Beweis für die Maximalität eines Flusses (Dualitätstheorie). Beweis: Wert gleich minimaler Schnitt Linz 12 St. Pölten 19/20 10/16 s Salzburg 4 9 2/10 Klagenfurt Die Ford-Fulkerson-Methode Beginne mit dem Nullfluss (ist Fluss!) und augmentiere, solange augmentierende Pfade im Residualgraphen existieren. Residualgraph für f0 Linz 12 Salzburg 4 10 9 f0 := Nullfluss; i := 0; while (∃ s-t-Pfad P in Gf ) do { i x = min. Restkapazität auf P; fi+1 := fi “+” x; ++i; } St. Pölten Linz 20 Graz 12 16 Wien 7 4 Klagenfurt 4 Graz Residualgraph für f0 13 14 11/14 Die Ford-Fulkerson-Methode Das MCMF-Theorem sagt noch nicht, dass jedes Netzwerk einen maximalen Fluss zulässt, legt aber einen konstruktiven Beweis nahe (Schritt (3) ⇒ (2)). Der entsprechende Algorithmus heißt Ford-FulkersonMethode: 16 Wien 7 13 t Salzburg 4 10 9 St. Pölten 20 Wien 7 13 4 Klagenfurt 14 Graz 5 Fluss f1 Residualgraph für f1 Linz 4/12 St. Pölten 20 4/16 Salzburg 4 4/9 10 Klagenfurt 4/14 12 Wien 7 13 8 12 Salzburg 4 4 10 4 5 4 8 5 Salzburg 11 11 3 4 4 St. Pölten Linz 20 11 10 Graz 4/12 St. Pölten 7/20 Salzburg 4 4/9 7/10 Wien 7/7 13 Klagenfurt 11/14 4/4 Graz Residualgraph für f2 St. Pölten Graz 5 Wien 7 8 Linz 13 4 Klagenfurt Wien 7 11/16 Wien 7 13 3 4 20 Fluss f2 7 5 5 4 Residualgraph für f2 Linz Klagenfurt Graz 4 4 10 St. Pölten 4 Graz 4 10 4 4 13 13 Klagenfurt Salzburg 4/4 Residualgraph für f1 Linz 8 Linz Salzburg 11 11 3 4 St. Pölten 13 7 5 4 Wien 7 13 4 Klagenfurt 3 11 Graz 6 Fluss f3 Residualgraph für f3 Linz 12/12 St. Pölten Salzburg Linz 15/20 11/16 1/4 4/9 10 8/13 Klagenfurt Wien 7/7 11/14 12 3 11 5 Klagenfurt 3 8 5 Graz St. Pölten 15 11 Salzburg 4/4 4 5 Wien 7 4 Graz 11 Fluss f4 Residualgraph für f4 Linz 12/12 St. Pölten Linz 19/20 11/16 Salzburg 5 1/4 0/9 10 7/7 12/13 Klagenfurt 11/14 Wien 5 11 Salzburg 3 11 12 19 9 1 12 4/4 Klagenfurt Graz Die Ford-Fulkerson-Methode Korrektheit: (ohne Beweis) Alg. terminiert mit maximalem Fluss f, wenn Kapazitäten ganzzahlig. Es ist einfach zu sehen, dass dann auch f ganzzahlig ist (was nicht heißt, dass es keinen nicht-ganzzahligen Fluss g mit |g| = |f| gibt). St. Pölten 1 Wien 7 4 3 11 Graz Die Ford-Fulkerson-Methode Analyse: Laufzeit hängt davon ab, wie man die augmentierenden Pfade wählt. Bei Wahl eines beliebigen Pfades ergibt sich eine Laufzeit von O(|A|·|f|), wobei f maximaler Fluss ist, denn die Schleife benötigt Zeit O(|A|) (finde Pfad mit DFS oder BFS) und wird höchstens |f| Mal ausgeführt (ein augmentierter Fluss muss mindestens um 1 größer sein). Diese Laufzeit ist pseudo-polynomiell, denn die Inputlänge ist und 7 Ford-Fulkerson: worst case f0 L Gf S L W 1/106 106 106 0/1 S 1 0/106 0/106 f1 0 L 0/106 0/106 Ford-Fulkerson: worst case W 106 106-1 W 1/106 0/106 G G 1 L 0/106 1/1 106 106 G S Gf S 1 1 W 106-1 106 G 1 |f1| = 1 Ford-Fulkerson: noch mehr Probleme Ford-Fulkerson: worst case z Gf f2 L 1/106 S L 1/106 0/1 W 1/106 1/106 G S 1 1 z 106-1 1 106-1 106-1 G W 1 |f2| = 2 ... |f| = 2 · 106 Ford-Fulkerson mit BFS z [Dinits, 1970], [Edmonds & Karp, 1972]: benutze kürzeste augmentierende Pfade (kurz = wenig Kanten) z z Theorem 2: Wenn alle Augmentierungen auf kürzesten Pfaden passieren, gibt es höchstens nm Augmentierungen. Bemerkungen: z z z z nicht-konvergierende Folge von Augmentierungen möglich (∞ Anzahl endlicher Augmentierungen) z Konvergenz gegen nicht-optimale Lösung möglich 2 1 106-1 Irrationale Kapazitäten: Klappt auch für reelle Kantenkosten. Kürzester Weg ist nicht schwerer zu finden als irgendein Weg (BFS braucht Zeit O(m)). Zadeh: O(n3) Augmentierungen nötig. z z Lösungsversuch 1 [Edmonds & Karp]: Wähle augmentierenden Pfad, der den höchsten Flusszuwachs bringt → Verbesserung auf O(m·log |f|) Augmentierungen bei u ∈ Z≥ 0. Immerhin polynomiell... aber immer noch unbefriedigend. Lösungsversuch 2: Preflow-Push (nicht in dieser VL) Laufzeit O(n3) Lösungsversuch 3: Ford-Fulkerson mit BFS... Ford-Fulkerson mit BFS z z Folgerung: Ford-Fulkerson mit BFS löst das Problem des maximalen Flusses in Zeit O(nm2). Beweis von Theorem 2: Betrachte eine typische Augmentierung auf Pfad s = v0, v1, ..., vk-1, vk = t, die aus Fluss f den Fluss f´macht. df(v, w) := kleinste Anzahl Bögen auf v-w-Pfad in Gf = (V, Af) z v1 v2 v3 v4 s = v0 v5 = t Klar: df(s, vi) = i, df(vi, t) = k – i. Auch klar: Neue Bögen in Gf haben die Form (vi, vi-1) für irgendein i. 8 Ford-Fulkerson mit BFS z z Lemma 5: Für alle v ∈ V: df´(s, v) ≥ df(s, v). Beweis: Tafel. Ein Bogen (i, j) eines augmentierenden Pfades P ist ein Flaschenhals (bottleneck arc), wenn seine Residualkapazität gleich der von P ist. z z Lemma 6: Ein Bogen kann höchstens O(n) Mal Flaschenhals sein. Beweis: Tafel. Verbindung zur Graphentheorie z z z z Theorem [Menger, 1927]: Die maximale Anzahl kantendiskjunkter (knotendiskunkter) Pfade von s nach t ist gleich der minimalen Anzahl von Bögen (Knoten), deren Entfernung s von t trennt. Beweis: Übung. Theorem [König, 1931]: In einem bipartiten Graphen ist die maximale Kardinalität jedes Matchings gleich der minimalen Kardinalität jeder Knotenüberdeckung. Beweis: Übung. Knickminimierung z z z Gegeben: 4-planarer Graph G = (V, E), d.h. G planar und ∀ v ∈ V: δ(v) · 4 Gesucht: Planare orthogonale Gitterzeichnung von G mit minimaler Anzahl von Knicken. Formann et al., 1990: NPvollständig zu entscheiden, ob es orthogonale Zeichnung für G ohne Knicke gibt. Ford-Fulkerson mit BFS z z z Bemerkung: Man kann zeigen, dass eine Folge von O(m) Augmentierungen existiert, die einen maximalen Fluss ergeben. Von diesen benutzt keiner einen Rückwärtsbogen. Der (leider nicht konstruktive) Beweis zeigt, dass ein O(m2)-Algorithmus für das maximale Flussproblem möglich ist. Wer ihn findet, kriegt eine Eins. Kostenminimale Flüsse z Anwendungen: Knickminimierung für planare Graphen. Knickminimierung z Aber: z z z Gegeben: 4-planarer Graph mit planarer Einbettung Gesucht: Gitterzeichnung mit minimaler Knickanzahl, die die planare Einbettung beibehält Tamassia, 1987: Transformation des Problems in ein minimales Kostenflussproblem in einem Netzwerk → polynomieller Algorithmus. 9 Exkurs: kombinatorische und planare Einbettungen z z z z z Exkurs: kombinatorische und planare Einbettungen Kombinatorische Einbettung: Äquivalenzklasse von planaren Zeichnungen von G. 2 Zeichnungen äquivalent ↔ zirkuläre Reihenfolge der Kanten um jeden Knoten gleich (Uhrzeigersinn) beschreibt die Topologie einer Zeichnung auf der Kugel; i.A. gibt es exponentiell viele kombinatorische Einbettungen von G Zusätzlich: äußere Region festgelegt: planare Einbettung beschreibt die Topologie einer Zeichnung in der euklidischen Ebene v1 v2 v1 ∼ v3 v4 v3 v5 v4 ¿ v2 v3 v1 f1 v3 v5 f2 z Äquivalent: regionenorientiert In der planaren Einbettung wird für jede Region f wird eine zirkuläre Liste (im Uhrzeigersinn) P(f) der begrenzenden Kanten angegeben. v2 z z z erweitert die planare Einbettung P beschreibt zusätzlich zur Topologie die Form einer planaren orthogonalen Zeichnung ist „dimensionslos“ (es werden keine Angaben über die Längen der Kantensegmente gemacht) ist, wie P, eine Menge von zirkulären, im Uhrzeigersinn sortierten Listen H(f) für jede Region f. Ein Element r ∈ H(f) hat die Form (er, sr, ar), wobei z z z z Binärstring sr beschreibt Form der Kante er. Das k-te Bit in sr beschreibt den k-ten Knick auf er (im Uhrz.sinn). Dabei steht 0 für einen 90°-Knick und 1 für einen 270°-Knick Sei q das auf r folgende Element in H(f). Dann bezeichnet ar den Winkel zwischen er und eq in f. er eine f begrenzende Kante, sr ein Binärstring und ar ∈ {90, 180, 270, 360} eine ganze Zahl ist. Orthogonale Repräsentation orthogonale Repräsentation z v5 orthogonale Repräsentation z z z f2 f3 v4 Knickminimierung z Knickminimierung ¿ f1 v1 ∼ f3 v4 Exkurs: kombinatorische und planare Einbettungen v5 v2 e1 e5 f1 e3 e6 f2 e2 f0 e4 H(f1): ((e1, ε, 90), (e6, ε, 180), (e5, 00, 90)) H(f2): ((e6, ε, 90), (e3, 0, 360), (e3, 1, 90), (e2, 0010, 90), (e4, ε, 90)) H(fo): ((e4, ε, 270), (e2, 1011, 90), (e1, ε, 270), (e5, 11, 90)) 10 Orthogonale Repräsentation Die Anzahl der Knicke von H ist , wobei |sr| die Länge von sr bezeichnet. Theorem: H ist genau dann die orthogonale Rep. einer planaren orthogonale Zeichnung, wenn folgende Eigenschaften erfüllt sind: z z z z Geg.: orthogonale Repräsentation H. z z z z z z z z z z z z z (bedeutet: jede Region ist ein rektilineares Polygon) (P4): Für jeden Knoten v in H gilt: Summe der a-Felder, die zu Kanten gehören, deren Endknoten v ist, beträgt 360°, also Knotenmenge U = UV ∪ UF z UV = {iv | v ∈ V}. Knoten iv ∈ UV haben Überschuss b(iv) = +4 UF = {if | f ∈ F}. Knoten if ∈ UF haben Bedarf z Das gesamte Potenzial beträgt demnach z Geg.: planarer Graph G = (V, E) mit planarer Einbettung h{P(f) | f ∈ F}, f0}i Ges.:orthogonale Repräsentation {H(f) : f ∈ F} mit der minimalen Anzahl von Knicken. Transformation nach Tamassia: Wir konstruieren Netzwerk NP = (U, A, b, l, u, c) Ein Fluss im Netzwerk entspricht den Winkeln der späteren Zeichnung. Winkel sind eine “Ware”, die an den Knoten produziert und in den Regionen konsumiert wird. Flusseinheit entspricht 90°-Grad-Winkel Flusserhaltung an iv ∈ UV garantiert, dass die Winkelsumme um v 360° beträgt. Flusserhaltung um if ∈ UF garantiert, dass f als rektilineares Polygon gezeichnet wird. Beispiel: Tafel. (P3): Def. für jedes r Dann gilt: Transformation Wie können wir aus H eine Zeichnung machen? Anderes Thema... wir konzentrieren uns auf Interpretation Theorem: H ist genau dann die orthogonale Rep. einer planaren orthogonale Zeichnung, wenn folgende Eigenschaften erfüllt sind: z (P1): H ohne die s- und r-Felder ist planare Einbettung eines 4-planaren Graphen. (P2): Seien r, q ∈ H, r ≠ q mit er = eq. Dann erhält man sq aus sr durch Umdrehen der Reihenfolge und Flippen der Bits. Knickminimierung z Orthogonale Repräsentation Transformation z Kantenmenge A = AV ∪ AF z z z z Für die Analyse ist es bequem, A als Multimenge zu modellieren. AV enthält einen Bogen (iv, if) wenn v ∈ V einen Winkel in f ∈ F bildet. Genauer, wir definieren E(v, f) := {e ∈ P(f) | e = (u, v)} und AV = {(iv, if) | e ∈ E(v, f)}, (warum Multimenge?) l(iv, if) = 1 u(iv, if) = 4 c(iv, if) = 0 Interpretation: Die Knoten verteilen ihre Winkel an die Regionen. Jeder Winkel muss mind. 90°, darf aber höchstens 360° betragen. Da dabei keine Knicke entstehen, sind die Kosten Null. 11 Transformation z Kantenmenge A = AV ∪ AF z Transformation z AF enthält für jede Kante e ∈ E zwei Bögen (if, ig) und (ig, if), wobei f und g die Regionen sind, die von e getrennt werden. (Warum Multimenge? Gibt es Schleifen?) z z z l(if, ig) = 0 u(if, ig) = ∞ c(if, ig) = 1 Interpretation: Da i.A. nicht alle Flusseinheiten direkt von den Knoten zu den Regionen abfließen können – das würde einer Zeichnung ohne Knicke entsprechen – müssen wir Knicke ins Flussmodell aufnehmen. Kann der Bedarf nicht direkt gedeckt werden, können benachbarte Regionen Fluss austauschen. Jede solche Flusseinheit entspricht einem Knick. Kosten eines Flusses: Anzahl der Knicke Transformation z z z z Theorem: Für jeden ganzzahligen Fluss x in NP existiert eine orthogonale Repräsentation H mit unterliegender Einbettung P. Die Kosten von x sind b(H). Beweis: Tafel. Theorem: Es existiert ein minimaler Kostenfluss in NP mit ganzzahligen Werten. Beweis: 2004 (Netzwerktheorie... nur ganzzahlige Kapazitäten) z Theorem: Für jede orthogonale Repräsentation H mit unterliegender planarer Einbettung P existiert ein ganzzahliger Fluss x in NP, dessen Kosten gleich der Anzahl der Knicke b(H) ist. Beweis: Tafel. Transformation Theorem: Die minimale Knickanzahl einer orthogonalen Rep. H mit unterliegender planarer Einbettung P ist gleich den Kosten eines kostenminimalen Flusses x in NP. Ferner kann H aus x berechnet werden. Beweis: Folgt aus den 3 letzten Theoremen. Algorithmus zur Knickminimierung: z z z z z z z Konstruiere Netzwerk NP Berechne kostenminimalen Fluss Konstruiere orthogonale Repräsentation Bestimme Kantenlängen 12