Diplomarbeit. Schwerpunkt. Kombinatorische Optimierung. Zum Thema

Größe: px
Ab Seite anzeigen:

Download "Diplomarbeit. Schwerpunkt. Kombinatorische Optimierung. Zum Thema"

Transkript

1 Diplomarbeit Schwerpunkt Kombinatorische Optimierung Zum Thema Praktische Lösung von Minimum Cost Flow Problemen: Ein Vergleich verschiedener Algorithmen Autor: Muhammed Ali Alat bei Institut für Mathematik Technische Universität Berlin Berlin, 4. August 0

2 Inhaltsverzeichnis Einleitung. Zusammenfassung und Ziele der Arbeit Historische Entwicklung Grundlagen 4. Definitionen und Notation Das Minimum Cost Flow Problem Residualgraphen und -netzwerke Annahmen Netzwerkflussprobleme Optimalitätsbedingungen Negative Kreise Reduzierte Kosten Komplementärer Schlupf Dateiformate Der Netzwerk Simplex Algorithmus 9 3. Definitionen und Sätze Ausgangslösung Der Algorithmus Terminierung Laufzeit Der Cost Scaling Algorithmus Definitionen und Sätze Der Algorithmus Verbesserungen Globale Aktualisierung des Potentials Verfeinerung des Potentials Kanten auslassen Push Operationen eliminieren Laufzeit i

3 Inhaltsverzeichnis 5 Vergleich verschiedener Algorithmen Algorithmen und Programme Problemklassen Grid-On-Torus GRIDGRAPH NETGEN TCHAIN Auswertung der Instanzen Analyse des Auswertung Anhang Liste der Abbildungen Liste der Algorithmen Literaturverzeichnis A C E F ii

4 Einleitung Das Minimum Cost Flow Problem beschreibt ein Transportproblem, bei dem die Transportkosten minimiert werden müssen. Die Problemstellung wird durch Standorte beschrieben, in denen ein Angebot oder eine Nachfrage existiert. Mit einem Transportplan muss die Nachfrage dabei befriedigt werden. Um den Transport ausführen zu können, muss das Angebot über günstige Wege zur Nachfrage befördert werden. Der Transport der Ware ist nämlich keineswegs umsonst und verursacht Kosten. Wir betrachten das Problem ganzheitlich und versuchen die gesamte Nachfrage mit dem gesamten Angebot zu decken und gleichzeitig die Transportkosten auf ein Minimum zu senken. Ein weiteres Detail, dass mit dem Minimum Cost Flow Problem modelliert wird, ist die begrenzte Kapazität der Beförderung. Wurde nämlich eine günstige Strecken gefunden, kann es trotzdem sein, dass nur eine relativ kleine Menge auf diesem Weg transportiert werden kann. Um die Nachfrage trotzdem vollständig zu befriedigen, muss in diesen Fällen nach weiteren eventuell teureren Wegen gesucht werden, damit ein Konsument die nachgefragte Menge vollständig erhält. Mann kann sich als Beispiel vorstellen, dass ein Unternehmen für ein bestimmten Rohstoff in den 6 Bundeshauptstädten Deutschlands ein Lager besitzt. Die Vorräte der 6 Lager sind begrenzt und können durchaus unterschiedlich groß sein, decken aber die gesamte Nachfrage Deutschlands ab. Als Abnehmer können alle Städte in Deutschland betrachtet werden. Wenn die Nachfrage der Abnehmer im Verhältnis zur Einwohnerzahl der Stadt steht, ergeben sich ganz unterschiedliche Bedürfnisse. Die Entfernungen zu den Städten können in diesem Beispiel als die Kosten angenommen werden. Je weiter der Rohstoff transportiert wird, desto höhere Kosten entstehen. Es ist dabei auch möglich, dass eine Bundeshauptstadt Städte aus anderen Bundesländern beliefert, weil diese zum Beispiel näher liegen und somit geringere Transportkosten verursachen. Weiterhin wird angenommen, dass die Kapazitäten der Straßen begrenzt sind und unterschiedlich groß sein können oder dass auf einer Straße nur begrenzte Transportmittel zur Verfügung stehen. Dadurch lässt sich keine beliebige Menge zwischen zwei Orten befördern. Das Minimum Cost Flow Problem sucht nun nach einem kostengünstigsten Transportplan, um in diesem Fall alle Abnehmer mit dem Rohstoff zu versorgen und die Bedürfnisse vollständig zu decken.. Zusammenfassung und Ziele der Arbeit Um das Minimum Cost Flow Problem zu modellieren werden wir in Kapitel alle notwendigen Definitionen anhand eines Beispiels einführen. Das Beispiel wird uns durchgehend

5 Einleitung begleiten und unterschiedliche Betrachtungen der Problemstellung aufzeigen. Mit einigen interessanten Beobachtungen und Annahmen wird anschaulich illustriert, unter welchen Bedingungen das Minimum Cost Flow Problem optimal lösbar ist. In den folgenden Kapiteln werden wir zwei Algorithmen, den Netzwerk-Simplex-Algorithmus und Cost Scaling Algorithmus, vorstellen. Dabei untersuchen wir, welche Techniken zum Einsatz kommen und welche Bedingungen zum Finden einer optimalen Lösung in Anspruch genommen werden. Im Folgenden werden mit vier bekannten Programmen 65 Probleme verschiedener Problemklassen gelöst. Die Ergebnisse mit Laufzeiten von weniger als einer Sekunde bis zu fast drei Tagen werden uns Aufschluss darüber geben, welches Programm für den praktischen Einsatz am besten geeignet ist und wo die Vor- und Nachteile der einzelnen Programme liegen.. Historische Entwicklung Alexander Schrijver hat im Jahre 00 eine Arbeit über die historische Entwicklung von Transportproblemen[Sch0] veröffentlicht. Auf mathematischer Basis untersuchte laut Schrijver als einer der ersten der russische Schriftsteller Tolstoi dieses Transportproblem. Tolstoi hat sich in einer Studie von 930[Tol30] mit Methoden zum Lösen von Transportproblemen mit minimalen Kosten auseinandergesetzt und war sich bewusst, dass eine Lösung keine negativen Zyklen beinhalten darf. Die mathematische Modellierung und Lösung von Transportproblemen als lineares Programm geht auf den russischen Mathematiker Kantorovich zurück. In seiner Veröffentlichung an der staatlichen Universität Leningrad von 939[Kan39] betrachtet er dabei unter anderem das Problem der Verteilung von Arbeitskräften an verschiedene Maschinen und die Optimierung von Frachtsendungen. Er gibt teilweise unvollständige mathematische Methoden zur Lösung der Probleme vor. Im Jahre 94[Kan06] und in der gemeinsamen Ausarbeitung mit Gavurin im Jahre 949[MG49] vertieft er das Transportproblem. Unabhängig von Kantorovich und Gavurin erforschten in der USA ungefähr zur selben Zeit auch Hitchcock und Koopmanns Transportprobleme. 94 beschreibt Hitchcock detailliert Transportprobleme[Hit4] und das erste MCFP auf bipartiten Graphen. Bei seinen Lösungsansätzen verwendet Hitchcock Matrizen zur Beschreibung des Transportproblems und zeigt, dass die Lösung in der konvexen Hülle dieser Matrix liegen muss. Eines der Algorithmen zum Lösen von linearen Programmen und damit auch vom Minimum Cost Flow Problem ist der Simplex Algorithmus. Er wurde im Jahre 953 von Dantzig entwickelt [GNS08, Seite 7] und hat sich für den Einsatz in der Praxis bewährt [Gol94]. Der Simplex Algorithmus und dessen Abwandlungen werden immer noch von einer Vielzahl von Softwareunternehmen, wie auch von IBM [IBM09], eingesetzt. Ein weiterer effizienter Algorithmus zum Lösen von Minimum Cost Flow Problemen

6 . Historische Entwicklung ist der Cost Scaling Algorithmus von Goldberg [GK93]. Er beruht auf dem Push Relabel Algorithmus von Goldberg und Tarjan aus dem Jahre 988 [KV08] und wird vom Unternehmen IG Systems weiterentwickelt. 3

7 Grundlagen Das Minimum Cost Flow Problem hat seine Wurzeln sowohl in der Graphentheorie als auch in der kombinatorischen und linearen Optimierung. Dieser Abschnitt wird die zur Modellierung notwendigen Begriffe und Definitionen für das Minimum Cost Flow Problem einführen. Da das Problem als Graph modelliert wird, werden einige Begriffe aus der Graphentheorie vorgestellt. Weiterhin werden auch einige Annahmen eingeführt, welche später in den Algorithmen genutzt werden. Bei der Notation orientieren wir uns weitgehend am Buch Network Flows von Ahuja et al. [AMO93].. Definitionen und Notation Definition (Graph). Ein Graph G = (V, E) ist definiert durch die Knotenmenge V und Kantenmenge E. Mit n = V wird die Anzahl der Knoten und mit m = E die Anzahl der Kanten angegeben. Jede Kante e ij E verbindet zwei Knoten i und j aus V. Wir sagen dann, dass i und j inzident zu e ij sind oder dass i und j adjazent sind [Jun04, Seite ]. Für einen Graphen G bezeichnet weiterhin V (G) = V die Menge der Knoten von G und E(G) = E die Menge der Kanten von G [KV08, Seite 5]. Definition (Gerichtete und ungerichtete Graphen). Ein gerichteter Graph unterscheidet sich von einem ungerichteten Graphen darin, dass die Kanten von einem Startknoten zu einem Zielknoten führen. Es gilt e ij = (i, j) E, wenn die Kante e ij in einem gerichteten Graphen von i nach j führt. Bei einem ungerichteten Graphen führt jede Kante in beide Richtungen [AMO93, Seite 5]. Eine weitere Bezeichnung des gerichteten Graphen lautet Digraph, was für eine Abkürzung der englischen Übersetzung directed Graph steht. Wir werden im folgenden die Bezeichnungen V und E immer in Zusammenhang mit dem Graphen G benutzen. Wenn von der Knotenmenge V oder der Kantenmenge E die Rede ist, wird implizit der Graph G = (V, E) vorausgesetzt. Bevor wir einen Graphen abbilden, gehen wir zunächst auf die Notation eines Graphen ein. i e ij j Abbildung.: Notation In der Notation zeichnen wir zwei Knoten und verbinden diese mit einer Kante. So steht im Knoten der Name des Knoten i aus V und auf der Kante entsprechend der Name der Kante e ij aus E. Es kann durchaus vorkommen, dass wir auch weitere Werte an den 4

8 . Definitionen und Notation Knoten und Kanten wiedergeben. Ist das der Fall, wird neben dem Graphen auch eine entsprechende Notation wie in der Abbildung. wiedergegeben. Als nächstes betrachten wir einen ungerichteten und gerichteten Graphen. e e 3 e 3 3 e 4 e 34 4 e e 3 e 3 3 e 4 e 34 4 Abbildung.: Ungerichteter Graph Abbildung.3: Digraph In der Abbildung. ist ein ungerichteter Graph G mit vier Knoten und fünf Kanten zu sehen. Es gilt: G = (V, E) V = {,, 3, 4} n = 4 E = {e, e 3, e 3, e 4, e 34 } m = 5 Die Knotenmenge V und Kantenmenge E beschreiben den Graphen ausführlich. Dabei ist jede Kante e ij durch zwei Knoten beschrieben, die es verbindet. Die Abbildung.3 zeigt den Digraphen G mit gerichteten Kanten. Definition 3 (Adjazenzmatrix). Eine n n-adjazenzmatrix A bildet den Graphen G als Matrix ab. Die Zeilen und Spalten der Matrix repräsentieren die Knoten und die Einträge geben darüber Auskunft, ob eine Kante zwischen zwei Knoten existiert oder nicht. Die Adjazenzmatrix A besteht nur aus den Einträgen 0 oder : wenn e ij V, a ij = 0 sonst [Jun04, Seite 38]. Definition 4 (Inzidenzmatrix). Eine Inzidenzmatrix A dient der Abbildung eines Digraphen G in Form einer Matrix. Dabei ist A eine n m-matrix, bei dem die Zeilen die Knoten und die Spalten die Kanten darstellen. Die Matrix A hat folgende Einträge: wenn i Startknoten von e ij, a ij = wenn i Zielknoten von e ji, 0 sonst. In jeder Spalte der Inzidenzmatrix A gibt es somit genau einen Eintrag mit und und alle restlichen Einträge sind 0. Mit dem Eintrag wird dabei jeder Kante in einer Spalte der Startknoten und mit der Zielknoten zugeordnet [Jun04, Seite 37]. 5

9 Grundlagen Der Digraph G aus der Abbildung.3 besitzt folgende Adjazenzmatrix A a und Inzidenzmatrix A i : e e 3 e 3 e 4 e A a = A i = Definition 5 (Wege, Pfade und Kreise). Ein Weg W ist eine Abfolge von Knoten und Kanten, bei der jede Kante seine benachbarten Knoten verbindet und nur einmal vorkommt. Ein Pfad ist ein Weg mit der zusätzlichen Eigenschaft, dass jeder Knoten im Pfad nur einmal besucht wird. Ein Weg oder Pfad kann auch als ein s-t-weg oder s-t-pfad bezeichnet werden, wenn er im Knoten s V beginnt und im Knoten t V endet [KV08, Seite 9]. Ein Kreis ist ein Pfad aus mindestens drei Knoten, in der jeder Knoten bis auf den ersten und letzten unterschiedlich sind [Jun04, Seite 5]. Ein Kreis besteht aus mindestens zwei Kanten und zwei unterschiedlichen Knoten. Ein Weg, Pfad oder Kreis ist gerichtet, wenn jede Kante als Startknoten seinen Vorgängerknoten und als Zielknoten seinen Nachfolgeknoten hat und ansonsten ungerichtet. Betrachten wir die Mengen W = (, e 3, 3, e 3,, e,, e 4, 4), W E = (e 3, e 3, e, e 4 ), P = (, e,, e 4, 4) und K = (, e,, e 3, 3, e 3, ) aus der Abbildung.3 so ist W ein ungerichteter Weg, aber kein Pfad und Kreis. P ist hingegen ein gerichteter Pfad und somit auch ein Weg. Schließlich ist K ein ungerichteter Kreis und Weg. Soweit es ersichtlich ist, können Wege, Pfade und Kreise auch als Abfolge von nur Knoten oder Kanten notiert werden [Jun04, Seite 5]. Demnach ist zum Beispiel W mit W E eindeutig über die Kanten identifizierbar. Definition 6 (Zusammenhängender Graph). Ein Graph G = (V, E) heißt zusammenhängend, wenn zu je zwei beliebigen paarweise verschiedenen Knoten in V ein ungerichteter Weg existiert [KV08, Seite 9]. Definition 7 (Subgraph). Ein Graph G s ist ein Subgraph von einem Graphen G = (V, E), wenn G s aus Knoten und Kanten von G besteht. Ist V s V und E s E, so ist G s = (V s, E s ) ein Subgraph. Wir sprechen von einem induzierten Subgraphen G s, wenn V s V gilt und E s aus allen Kanten e ij E mit i V s und j V s besteht. In einem induzierten Subgraphen werden demnach Knoten aus V gewählt und alle verfügbaren Kanten aus E 6

10 . Definitionen und Notation hinzugefügt. Besteht hingegen G s = (V, E s ) aus allen Knoten in G und ist E s E, so heißt G s spannender Subgraph [Jun04, Seite 3]. Definition 8 (Baum). Ein Baum T = (V, E) ist ein zusammenhängender Graph mit m = n Kanten. Insbesondere existieren in einem Baum keine Kreise [Jun04, Seite 8]. Ist T zusätzlich ein spannender Subgraph eines Graphen G, so nennen wir T einen spannenden Baum von G [Jun04, Seite 65]. Definition 9 (Kantenmenge und Grad eines Knotens). Alle Kanten die zu einem Knoten i inzident sind, werden in der Menge δ(i) zusammengefasst. Betrachten wir nur die Kanten mit dem Startknoten i, schreiben wir δ + (i). Entsprechend schreiben wir δ (i) für alle Kanten, die i als Zielknoten haben. Die Anzahl der Kanten, die mit einem Knoten i verbunden sind, heißt Grad eines Knotens und wird mit δ(i) dargestellt. Mit δ (i) bezeichnen wir die Anzahl der eingehenden und mit δ + (i) die Anzahl der ausgehenden Kanten in den Knoten i. δ + (i) wird Ausgangsgrad und δ (i) Eingangsgrad von i genannt [KV08, Seite 7]. So hat zum Beispiel in Abbildung.3 der Knoten den Eingangsgrad, Ausgangsgrad und den Grad 3. Definition 0 (Dichte eines Graphen). Als Dichte bezeichnen wir eine Zahl, die das Verhältnis der Anzahl der Kanten zur Anzahl der Knoten wiedergibt. Die Dichte d entspricht dem Wert m n. Ist d die Dichte eines Graphen, so existieren im Graphen n Knoten und d n Kanten [BJG0, Seite 33]. Definition (Blatt). Ist T = (V, E) ein Baum, so heißt ein Knoten i V mit δ(i) = Blatt. Blätter besitzen demnach nur eine Kante, die sie mit dem restlichen Baum verbindet [KV08, Seite 9]. Bisher haben wir einen Graphen über die Menge V aus Knoten und E aus Kanten beschrieben. Im folgenden werden wir einem Graphen noch weitere Informationen bezüglich seiner Kanten und Knoten hinzufügen. Bernhard Korte und Jens Vygen erweitern den Graphen mit zusätzlichen Informationen zum Netzwerk [KV08, Seite 83]. Im Buch von Ahuja et al. werden die Begriffe Graph und Netzwerk hingegen synonym benutzt [AMO93, Seite 5]. Zusätzliche Informationen werden in ihrem Buch Network Flows [AMO93] einem Graphen oder Netzwerk einfach zugeordnet. Wir werden ein Graphen G, dem weitere Informationen zugeordnet werden, Netzwerk nennen, um genauer differenzieren zu können. So enthält ein Netzwerk neben einem Graphen noch weitere Daten bezüglich seiner Kanten oder Knoten. Definition (Balance). Im Minimum Cost Flow Problem gibt es drei Arten von Knoten. Diese sind Knoten, die über ein Angebot oder über eine Nachfrage verfügen und 7

11 Grundlagen Durchflussknoten. Mit der Balance geben wir für jeden Knoten die Menge an, die angeboten oder nachgefragt wird. Ein Durchflussknoten hat dabei eine Balance von 0, da es weder Einheiten anbietet noch nachfragt. Die Balancen geben wir für einen Knoten i mit b i an. Ist die Balance b i vom Knoten i positiv, so handelt es sich um eine Quelle mit dem Angebot b i. Ist die Balance b i negativ, haben wir es mit einer Senke zu tun, die die Menge b i nachfragt [AMO93, Seite 5]. Nachdem die Balancen der einzelnen Knoten bekannt sind, muss versucht werden das Angebot zur Nachfrage zu transportieren. Dieser Transport, den wir später auch Fluss nennen werden, findet auf den Kanten statt. Da wir bei einem Minimum Cost Flow Problem einen Digraphen betrachten, können die Einheiten auf einer Kante nur in einer Richtung transportiert werden. Bevor wir uns weiteren Details über die Kanten widmen, schauen wir uns erst mal das aus Abbildung.3 bekannte Beispiel mit Balancen an: 0 b i 6 e e 4 4 i e 3 e 3 3 e 34 4 e ij j b j Abbildung.4: Netzwerk mit Balancen Das Netzwerk N = (G, b) besteht aus dem Graphen G und den zusätzlichen Balancen b. Die Balancen b i geben für jeden Knoten i aus V die Werte des Angebots beziehungsweise der Nachfrage an. In der Abbildung.4 haben die Knoten die Balancen b = 6, b = 0, b 3 = und b 4 = 4. Beim Knoten b handelt es sich um eine Quelle, die über ein Angebot von 6 verfügt. Die Knoten b 3 und b 4 fragen eine Menge von und 4 Einheiten nach und bilden somit zwei Senken. Beim Knoten b handelt es sich um einen Durchflussknoten. Die gerichteten Kanten geben an, in welche Richtungen Mengen transportiert werden dürfen. Bei der Bezeichnung der Balance b ohne Index handelt es sich um einen Vektor, wobei in unserem Fall b = (6, 0,, 4) ist. Schreiben wir an die Balance einen Index i wie bei b i, so betrachten wir nur die Balance eines einzelnen Knotens i. Der Vektor b befindet sich im Raum R n, da für jeden Knoten eine Balance angegeben werden muss. Zur einfachen Visualisierung werden wir in Abbildungen für einen Knoten i mit der Balance b i gleich 0 auf eine Beschriftung am Knoten ganz verzichten. 8

12 . Definitionen und Notation Definition 3 (Kapazitäten und Schranken). Jede Kante e ij in E besitzt im Minimum Cost Flow Problem Informationen über ihre Kapazitäten, die angeben wie viele Mengeneinheiten auf ihr maximal transportiert werden dürfen. Die Kapazität für eine Kante wird mit u ij bezeichnet und kann auch als obere Schranke verstanden werden, da sie im Englischen upper bound genannt werden. Eine Kante kann dabei keine negative Kapazität besitzen, da entweder Güter auf dieser Kante transportiert werden können oder nicht. Weiterhin besitzen die Kanten auch eine untere Schranke. Im Englischen lower bound genannt, werden sie mit l ij bezeichnet und geben an, wie viele Mengeneinheiten auf dieser Kante transportiert werden müssen [AMO93, Seite 5]. Die größte Kapazität im Graphen bezeichnen wir mit u max und es gilt u max = max(u ij : e ij E) [BJG0, Seite 64]. 0 b i i u ij j b j Abbildung.5: Netzwerk mit Balancen und Kapazitäten Das Netzwerk N aus Abbildung Abbildung.5 enthält nun neben den Balancen weitere Informationen über die Kapazitäten jeder Kanten. In Abbildungen notieren wir dabei auf der Kante nur den Wert der oberen Schranke, da wir für das erste keine unteren Schranken voraussetzen. Wie wie später sehen werden, stellt diese Voraussetzung keine Beeinträchtigung der Problemstellung dar (Annahme 5). Mit den Kapazitäten der Kanten erschwert sich das Problem in dem Sinne, dass auf einem gefundenen gerichteten Weg zwischen zwei Knoten nicht beliebig viele Mengeneinheiten transportiert werden dürfen. Dadurch wird es unter Umständen notwendig sein, nach weiteren Wegen zu suchen. Wie bei der Balance handelt es sich auch bei der Kapazität u um einen Vektor. Da für alle m Kanten eine Kapazität existiert, befindet sich der Vektor u im Raum R m +. Weil die Kanten nicht wie die Knoten durchnummeriert sind, wird der Vektor u nach den Indizes der Kanten lexikographisch sortiert. In unserem Beispiel ist u = (u, u 3, u 3, u 4, u 34 ) = (4, 4, 3,, 4). Definition 4 (Kosten). Wie die Kapazitäten sind beinhalten auch die Kosten Informationen für Kanten. Die Kosten werden mit c ij dargestellt und beschreiben, wie viel für den 9

13 Grundlagen Transport einer Mengeneinheit auf dieser Kante zu bezahlen ist [BJG0, Seite 7]. Mit c max beschreiben wir die Kosten der teuersten Kante, es gilt c max = max(c ij : e ij E) [BJG0, Seite 64]. Durch die Einführung von Kosten werden wir später in der Lage sein Lösungen zu bewerten. Während es darum geht, die Nachfrage mit dem Angebot zu befriedigen, sind wir nun fähig, zwischen günstigen und teuren Lösungen zu differenzieren. 0 b i 6 (4; 3) (4; ) (3; ) 3 (; 3) (4; 3) 4 4 i (u ij ; c ij ) j b j Abbildung.6: Netzwerk mit Balancen, Kapazitäten und Kosten Das Netzwerk haben wir mit den Kosten endgültig erweitert, um alle Informationen, die wir für das Problem benötigen, abzubilden. Zur Lösung des Problems brauchen wir nun einen Transportplan, der bestimmt wie das Angebot zur Nachfrage gelangt. Um genau das zu beschreiben, werden wir Flüsse einführen. Definition 5 (Fluss). Ein Fluss ist eine Funktion f : E R + 0, die jeder Kante vorgibt, wie viele Mengeneinheiten auf ihr transportiert werden. Wir schreiben statt f(e ij ) auch x ij für den Fluss auf einer Kante e ij. Der Wert x ij beschreibt die Transportmenge auf dieser Kante [Jun04, Seite 47] [AMO93, Seite 5]. Damit ein Fluss unser Problem löst, muss es zwei weitere Bedingung erfüllen, die wir im folgenden einführen. Definition 6 (Kapazitätseinhaltung). Die Kapazitätseinhaltung gilt für einen Fluss x, wenn auf jeder Kante e ij mindestens l ij und maximal u ij Mengeneinheiten transportiert werden. Damit wird modelliert, dass die Kapazitätsschranken auf den Kanten eingehalten werden. Für einen Fluss x, der die Kapazitätseinhaltung erfüllt, gilt für jeden Eintrag die Ungleichung l ij x ij u ij [AMO93, Seite 5]. 0

14 . Definitionen und Notation Definition 7 (Flusserhaltung). Mit der Flusserhaltung wird für einen Fluss x gefordert, dass sich die einfließenden und ausfließenden Einheiten an einem Knoten nur um die Anzahl der Balance unterscheiden dürfen. Die Flusserhaltung gilt für einen Fluss x, wenn folgende Gleichung erfüllt ist x ij x ji = b i e ij δ + (i) e ji δ (i) [Jun04, Seite 47] [AMO93, Seite 5]. Mit der Flusserhaltung wird simuliert, dass keine Einheiten verloren gehen oder dazukommen. Definition 8 (b-fluss). Ein b-fluss x ist ein Fluss, der zusätzlich die Eigenschaften besitzt, dass die Kapazitätseinhaltung und Flusserhaltung gilt [KV08, Seite 9]. Mit dem b-fluss haben wir einen Fluss, der die Bedingungen für eine Lösung unseres Problems erfüllt. Um Flüsse miteinander vergleichen zu können, werden wir als Kriterium die Gesamtkosten einführen. Definition 9 (Gesamtkosten eines Flusses). Für ein gegebenen Fluss x bestimmt die Funktion c(x) = c x = c ij x ij e ij E die Gesamtkosten für den Transport des Flusses [BJG0, Seite 9]. Für die Gesamtkosten eines Flusses und den Preis zum Transport einer Einheit auf einer Kante wird jeweils die gängige Bezeichnung c benutzt. Zu beachten ist dabei, dass der Preis auf einer Kante e ij mit c ij und der Kostenvektor einfach mit c bezeichnet wird. Die Funktion für die Gesamtkosten eines Flusses hat immer x als Eingabevariable und wird mit c(x) bezeichnet. Weiterhin können wir auf die gleiche Art und Weise auch die Gesamtkosten eines Weges, Pfades oder Kreises berechnen. Dabei werden die Kosten der Kanten einfach summiert, da kein Fluss betrachtet wird [BJG0, Seite 88 und 6]. Betrachten wir in der Abbildung.6 ein Pfad P, so gilt für die Gesamtkosten folgendes: P = (e, e 4 ) c(p ) = c + c 4 = = 6 Die Kosten des Pfades können auch als die Kosten des Flusses interpretiert werden, der eine Einheit über die Kanten des Pfades schickt [BJG0, Seite 60].

15 Grundlagen. Das Minimum Cost Flow Problem Das Minimum Cost Flow Problem wird als lineares Programm formuliert. Folgend erfolgt die Erläuterung zum linearen Programm, so dass die Grundlage zur Bearbeitung der anschließenden Problemstellung gegeben ist. Definition 0 (Lineares Programm). Beschreibt c(x) eine Zielfunktion, die unter Einhaltungen linearer Nebenbedingungen minimiert oder maximiert werden muss, so handelt es sich um ein lineares Programm oder kurz LP. Ein lineare Programm hat die Form min oder maxc(x) x R m unter den Nebenbedingungena x = b a R m, b R l i x i u i l, u R n und i =,..., m [GNS08, Seite 5]. Statt unter den Nebenbedingungen schreiben wir kurz u.d.n.. Es können dabei beliebig viele lineare Nebenbedingungen existieren. Hat das lineare Programm die Form min oder max c(x) = c x c, x R m u.d.n. Ax = b A R n m und b R n 0 x i u i u R n und i =,..., m, so sprechen wir von einem LP in Standardform. Die Zielfunktion ist eine lineare Vektormultiplikation. Die Einträge in x haben eine obere Schranke u und sind positiv. Weiterhin gibt es m Nebenbedingungen, die durch die Matrix A und den Vektor b abgebildet werden [GNS08, Seite 00]. Eine Lösung für das Minimum Cost Flow Problem ist ein b-fluss, der in einem Netzwerk jeder Kante die Menge der zu transportierenden Einheiten zuordnet. Dabei muss für die Balancen weiterhin b(i) = 0 i V gelten [Jun04, Seite 3], womit sichergestellt wird, dass das Angebot und die Nachfrage übereinstimmen. Definition (Minimum Cost Flow Problem). Das Minimum Cost Flow Problem besteht aus einem Netzwerk N = (G, b, l, u, c).

16 . Das Minimum Cost Flow Problem Gesucht ist ein b-fluss x für die Zielfunktion: min c(x) = x ij c ij u.d.n. x ij e ij E e ij δ + (i) e ji δ (i) x ji = b i l ij x ij u ij (Flusserhaltung) (Kapazitätseinhaltung) [AMO93, Seite 38]. Ist A die Inzidenzmatrix zum Graphen G, so lautet die Formulierung des linearen Programms min c(x) = c x u.d.n. Ax = b (Flusserhaltung) l ij x ij u ij (Kapazitätseinhaltung) [GNS08, Seite 7]. Sind für eine Lösung x die Gesamtkosten c(x) unter allen zulässigen Lösungen minimal, sprechen wir von einer optimalen Lösung. Schauen wir uns erneut das Beispiel aus Abbildung.6 an, so können wir das Netzwerk als lineares Programm formulieren. min c(x) = c x = 3x + x 3 + x 3 + 3x 4 + 3x 34 x x u.d.n x 3 = 0 x x ij u ij e ij E Unser Ausgangsproblem ist nochmal links in der Abbildung.7 abgebildet. Wir werden jetzt eine Lösung für das vorliegende Problem angeben ohne auf weitere Details einzugehen. Der Graph rechts gibt an, wie unsere Lösung aussieht. Auf den Kanten des Lösungsgraphen steht dabei die Anzahl der zu transportierenden Einheiten geschrieben. Unsere Lösung ist ein b-fluss x, der jeder Kante die Transportmenge zuordnet. Die Gesamtkosten betragen x ij c ij = 6. e ij E x 34 3

17 Grundlagen b i b j b i b j i (u ij ; c ij ) j i x ij j 6 (4; 3) (4; ) (3; ) 3 (; 3) (4; 3) Ausgangsproblem optimale Lösung Abbildung.7: Minimum Cost Flow Problem und die optimale Lösung.3 Residualgraphen und -netzwerke Die nun folgenden Begriffe werden später beim Finden einer Lösung benötigt. Wenn nach einer Lösung gesucht wird, so wird das Netzwerk modifiziert, indem man zum Beispiel von einer Quelle das Angebot stückweise in die Richtung der Senken transportiert. Wir sprechen dann von einem Pseudofluss, der auf den Graphen angewendet wird. Bis alle Angebote tatsächlich bei allen Konsumenten ankommen, haben wir es mit nicht zulässigen Lösungen zu tun, bei denen das Angebot zum Beispiel noch auf dem Weg zum Konsumenten ist. Solche Zustände beinhalten neue Informationen und ändern die Ausgangssituation. Weiterhin muss bei der Suche nach einer Lösung auch die Möglichkeit bestehen, getätigte Flüsse rückgängig zu machen. Da man nicht sofort den optimalen Weg kennt, kann dies durchaus vorkommen. In solchen Situation kann der gesamte Fluss oder nur ein Teil davon zurückgeführt werden. Wir müssen festhalten, dass sich dabei neben den Gesamtkosten des Flusses auch die Balancen und Restkapazitäten ändern. Wird nämlich ein Transport storniert, entstehen auch keine Kosten mehr dafür. Um solche Vorgänge abbilden zu können, werden wir als erstes den sogenannten Pseudofluss einführen. Damit können wir schon einige Einheiten auf unserem Graphen an den Kanten entlang transportieren ohne eine Lösung darzustellen zu müssen. Die neuen Balancen und Restkapazitäten werden in einem neuen modifizierten Netzwerk festgehalten, welches wir Residualnetzwerk nennen. Definition (Pseudofluss). Ein Fluss, der die Kapazitätseinhaltung erfüllt, heißt Pseudofluss [Jun04, Seite 95]. Ein Pseudofluss ist eine Abschwächung eines b-flusses, da es nicht die Flusserhaltung garantiert. Als nächstes werden wir den Residualgraphen und das Residualnetzwerk definieren. Das Residualnetzwerk wird alle Informationen bezüglich eines Flusses im Netzwerk festhalten. Insbesondere werden wir zum Finden einer Lösung mehrmals einen Fluss oder Pseudofluss verändern um uns schrittweise der Lösung zu nähern.betrachten wir das Netzwerk 4

18 .3 Residualgraphen und -netzwerke bezüglich eines Pseudoflusses, ändern sich auch die Balancen der Knoten und die Restkapazitäten der Kanten. Hat der Pseudofluss einer Kante e ij genau eine Einheit zugewiesen, so können auf dieser Kante nur noch u ij Einheiten transportiert werden. Im Residualgraphen besteht weiterhin die Möglichkeiten den Fluss zu annullieren. Daher müssen zu jeder bestehenden Kante Rückwärtskanten eingeführt werden, auf dem der Fluss verringert werden kann. Die Kapazität der Rückwärtskante entspricht dem Fluss auf der Vorwärtskante [AMO93, Seite 44]. Definition 3 (Vor- und Rückwärtskanten eines Digraphen). Ist ein Digraph G gegeben, so heißt jede Kante e ij in E Vorwärtskante. Die Kante e ij, die in entgegengesetzter Richtung von e ij führt, heißt Rückwärtskante. Die Kantenmenge E enthält dabei alle Vorwärts- und Rückwärtskanten. Der Graph G entsteht aus dem Graphen G, indem alle Rückwärtskanten dem Graphen hinzugefügt werden. Dabei können durchaus parallele Kanten vorkommen [KV08, Seite 85]. Der Residualgraph wird auf dem Graphen G aufbauen. Zu beachten ist jedoch, dass im Graphen G auch Kanten existieren können, die keine Kapazitäten besitzen. Wenn wir einen leeren Fluss betrachten, dann haben in G alle Rückwärtskanten keine Kapazität. Solche Kanten werden für uns nicht weiter interessant sein, so dass wir sie im Residualgraphen ignorieren werden. Definition 4 (Residualnetzwerk). Das Residualnetzwerk besteht aus den Mengen N (x) = (G(x), b(x), l(x), u(x), c(x)). Insgesamt gelten für das Residualnetzwerk mit einem Fluss x und Netzwerk N = (G, b, l, u, c) folgende Bedingungen: b i (x) = b i x ij x ji () e ij δ + (i) e ji δ (i) u ij (x) = u ij x ij e ij E und u ij (x) = x ij e ij E : x ij > 0 () l ij (x) = max(l ij x ij, 0) e ij E und l ij (x) = 0 e ij E : x ij > 0 (3) c ij (x) = c ij e ij E und c ij (x) = c ij e ij E : x ij > 0 (4) E(x) = E \ ( e ij : u ij = 0) und G(x) = (V, E(x)) (5) [AMO93, Seite 44] In einem Residiualnetzwerk werden die Informationen aus dem ursprünglichen Netzwerk N = (G, b, l, u, c) durch einen Fluss x verändert und in N (x) festgehalten [BJG0, Seite 98]. Wir schauen uns diese Veränderungen nun genauer an:. Die Balancen haben das Angebot und die Nachfrage der einzelnen Knoten dargestellt. Durch einen positiven Fluss auf einer Kante, wird die Balance am Startknoten vermindert und am Zielknoten erhöht. Den aktuellen Status der Balancen bezüglich des Flusses x beschreibt b(x). 5

19 Grundlagen. Die Restkapazitäten werden im Residualgraphen in u(x) festgehalten. Wurde auf einer Kante eine bestimmte Mengeneinheit durch den Fluss x transportiert, so verringert sich die Kapazität um diese Menge. Da wir auch die Möglichkeit haben, den Fluss wieder zu verringern, wird die Kapazität der Rückwärtskante auf die transportierte Menge gesetzt. 3. Die untere Schranke verringert sich auf einer Vorwärtskante um die transportierten Einheiten. Der Wert der unteren Schranke ist l(x ij ) 0, da keine negativen Einheiten transportiert werden können. Rückwärtskanten haben stets die untere Schranke l ij (x) = 0, weil sonst ein Transport auf dieser Kante getätigt werden müsste. Da es sich aber um eine Rückwärtskante handelt, kann dieser Fall nur eintreten, wenn ursprünglich zu viele Einheiten auf der Vorwärtskante transportiert wurden, was nicht erlaubt war. 4. Die Kosten sind nicht vom Fluss x abhängig. Die Kosten bleiben auf allen Vorwärtskanten erhalten, während sie auf den Rückwärtskanten genau die negative Größe haben. Wird durch die Rückwärtskante der Fluss auf einer Kante verringert, sinken die Kosten. 5. Als letztes erstellen wir den Graphen, in dem wir alle Kanten mit leeren Kapazitäten ignorieren. Da auf diesen Kanten nichts transportiert werden kann, sind sie für uns uninteressant. Zu beachten ist dabei, dass wir durch das Hinzufügen von Rückwärtskanten zwar die Anzahl der Kanten erhöhen aber mit der Streichung der Kanten mit leeren Kapazitäten die Anzahl auch wieder verringern. Letztendlich werden wir im Zusammenhang mit dem Residualgraphen wieder mit m = E(x) die Anzahl der Kanten festhalten. Wie wir wissen haben auch u(x) und l(x) m Einträge. An einem Beispiel schauen wir uns den Residualgraphen der Lösung aus der Abbildung.7 an. (; 3) (; 3) (4; ) (3; ) 3 (; 3) (; 3) (; 3) 4 i (u ij (x); c ij (x)) j Abbildung.8: Residualgraph der Lösung aus Abbildung.7 In der Abbildung.8 ist der Residualgraph aus unserem ursprünglichen Netzwerk bezüglich der optimalen Lösung x zu sehen. Im Residualgraphen sehen wir weiterhin die Restkapazitäten und Restbalancen. Da unsere Lösung das gesamte Angebot und die gesamte Nachfrage befriedigt hat, haben alle Knoten i V die Balance b x i = 0. An den 6

20 .3 Residualgraphen und -netzwerke Kanten sehen wir, dass wir die Flüsse umkehren können. Die Rückwärtskanten haben die negativen Kosten der Vorwärtskanten und als Kapazität den Fluss auf den Vorwärtskanten. Um die Rückwärtskanten hervorzuheben, wurden sie in der Abbildung.8 gekrümmt eingezeichnet. Kanten, die keine Kapazitäten mehr haben, werden vom Residualgraphen entfernt. Das hat in diesem Fall die Kanten e 3 = (v, v 3 ) und e 4 = (v, v 4 ) betroffen, da die gesamte Kapazität auf diesen Kanten ausgeschöpft wurde. Wir sagen dann, dass die Kanten gesättigt sind. Lemma (Fluss im Residiualnetzwerk). Sei x ein Fluss im Netzwerk N und x R ein Fluss im Residiualnetzwerk N (x). Dann ist x = x x R ein neuer Fluss in N mit: x ij = x ij, wenn x R ij = x R ji = 0 (.) x ij = x ij + x R ij, wenn x R ij > 0 (.) x ij = x ij x R ji, wenn x R ji > 0 (.3) Wir gehen dabei davon aus, dass der Fluss im Residualnetzwerk für eine Kante aus E nur auf der Vorwärtskante oder nur auf Rückwärtskante existiert [BJG0, Seite 37]. Insbesondere gilt für die Gesamtkosten von x dann c(x ) = c(x) + c(x R ) [BJG0, Seite 38]. Beweis. Um zu zeigen, dass x ein Fluss in N ist, müssen wir die Kapazitätseinhaltung zeigen. Da x ein Fluss ist, ist für denn Fall. auch x ein Fluss auf dieser Kante. Im Fall. wird der Vorwärtskante e ij ein Fluss x R ij zugeordnet. Da xr ein Fluss ist, kann der Fluss auf der Vorwärtskante maximal den Wert u ij (x) = u ij x ij haben, weil sonst die Kapazitätseinhaltung verletzt wird. Demnach erfüllt auch der neue Fluss die Kapazitätseinhaltung auf dieser Kante, weil x ij = x ij + x R ij x ij + u ij x ij = u ij gilt. Analog gilt für denn Fall.3, dass x R auf einer Rückwärtskante maximal den Wert u ji (x) = x ij haben kann und dadurch x ij wieder die Kapazitätseinhaltung mit x ij = x ij x R ij x ij x ij = 0 7

21 Grundlagen erfüllt. Für die Gesamtkosten folgt aus dieser Beobachtung dann: c(x ) = e ij E x ij c ij = e ij E x R ij =0 = e ij E x ij c ij + (x ij + x R ij) c ij + (x ij x R ji) c ij e ij E x R ij >0 x ij c ij + e ij E x R ij >0 = c(x) + x R ij c xr ij e ij E xr = c(x) + c(x R ) x R ij c ij e ij E x R ji >0 e ij E x R ji >0 x R ji c ij.4 Annahmen Wir werden nach Algorithmen suchen, die unser Problem effizient lösen können. Dabei können einige Annahmen für das Netzwerk vorausgesetzt werden. Wir werden diese Annahmen einführen und zeigen, dass sie keine Beeinträchtigung für eine Lösung darstellen. Annahme (Alle Daten sind ganzzahlig). Da die Algorithmen von Computern durchgeführt werden, ist es ohnehin nicht möglich echte reelle Zahlen abzubilden [Zul07]. Da Computer nur über einen beschränkten Speicherplatz verfügen, können alle Nachkommastellen nicht dargestellt werden und müssen nach einer bestimmten Stelle abgeschnitten und gerundet werden. Demnach existiert aber ein wohl möglich sehr großer Faktor, mit dem alle Zahlen multipliziert werden können, so dass alle Zahlen ganzzahlig werden. Unter Berücksichtigung dieser Beobachtung können wir annehmen, dass alle Werte am Anfang des Problems ganzzahlig sind. Dies betrifft insbesondere die Balancen, Kapazitäten und Kosten der Problemstellung [AMO93, Seite 97]. Annahme (Die Kosten sind nicht negativ). Zum Transport der Einheiten auf den Kanten sind Kosten zu entrichten. Die Gesamtkosten werden letztendlich über die Qualität der Lösung bestimmen. Dabei können wir annehmen, dass am Anfang alle Kosten c ij 0 auf den Kanten nicht negativ sind. Sollte dieser Fall nicht gegeben sein, können wir durch einen Pseudofluss die Gegebenheiten des Problems so umformen, dass alle Kosten nicht negativ werden. Dazu betrachten wir alle Kanten, auf denen die Kosten negativ sind. Dort sättigen wir mit einem Pseudofluss diese Kanten. Daraus resultiert, dass beim Startknoten eine zusätzliche Nachfrage in der Menge der Kapazität der Kante entsteht. Im Zielknoten entsteht dagegen ein, um die gleiche Menge erhöhtes, Angebot. Die zusätzliche Nachfrage und das zusätzliche Angebot werden mit der Balance des Knotens verrechnet. Wie in Abbildung.9 zu sehen ist, wurde im Residiualnetzwerk die gesättigte Kante mit den negativen Kosten entfernt und eine Rückwärtskante hinzugefügt. Die Rückwärtskante 8

22 .4 Annahmen hat dabei die gleiche Kapazität wie die ursprüngliche Vorwärtskante, da alle Einheiten abtransportiert wurden. Da die Kosten der Rückwärtskanten gerade der negative Kostenwert der Vorwärtskanten sind, werden dadurch alle Kosten ins positive umgewandelt [AMO93, Seite 40 und 97]. 4 4 (, 4) 4 (4, 3) 3 (, 4) 6 (4, 3) 3 Abbildung.9: Umformung eines Netzwerks mit negativen Kosten Unser Pseudofluss x sättigt alle Kanten mit negativen Kosten. Es gilt x ij = u ij c ij < 0 und x ij = 0 c ij 0. Bezüglich diesem Pseudofluss bleiben im Residiualnetzwerk keine negativen Kosten erhalten. Dieses Residiualnetzwerk kann man nun als Ausgangsproblem für die Algorithmen benutzen. Da diese Umformung immer möglich ist, nehmen wir an, dass im Ausgangsproblem alle Kosten nicht negativ sind. Annahme 3 (Der Graph ist gerichtet). Theoretisch hätten wir auch Graphen benutzen können, in denen ungerichtete Kanten existieren. Dass wir in Zusammenhang mit dem Minimum Cost Flow Problem nur gerichtete Graphen betrachten, wird sich aber nicht als Einschränkung erweisen. Sei dabei e u ij E eine ungerichtete Kante im Graphen G = (V, E). Wir können nun diese Kante entfernen und durch zwei gerichtete Kanten e ij und e ji ersetzen. Beide der neuen gerichteten Kanten erhalten die Kapazität und die Kosten der ursprünglichen ungerichteten Kante. Wenn beiden Kanten ein positiver Fluss zugeordnet werden sollte, also x ij 0 und x ji 0 gilt, können wir die Kante mit dem niedrigeren Fluss subtrahieren. Dann gilt x neu ij = x ij x ji und x neu ji = 0, falls x ij > x ji. Sind die Flüsse gleich groß, können wir den Fluss auf beiden Kanten mit x ij = x ji = 0 annullieren. Dadurch stellen wir sicher, dass ein positiver Fluss nur in einer Richtung existiert. Da nach der Annahme alle Kosten positiv sind, werden dadurch die Gesamtkosten minimiert und es entstehen keine Einschränkungen für das Optimierungsproblem [AMO93, Seite 39 und 97]. Annahme 4 (Das gesamte Angebot und die gesamte Nachfrage stimmen überein). Im Minimum Cost Flow Problem geht es um die Befriedigung aller Zulieferer und Abnehmer. Sollte die Nachfrage größer als das Angebot sein, ist es ohnehin nicht möglich die Nachfrage zu befriedigen. Andersherum haben wir das Problem, dass das Angebot nicht komplett geräumt werden kann. Beide Fälle führen dazu, dass kein b-fluss gefunden werden kann. 9

23 Grundlagen Daher wird im Minimum Cost Flow Problem dieser Fall nicht betrachtet. Durch das Vergleichen des gesamten Angebots und der Nachfrage können wir leicht die Lösbarkeit des Problems überprüfen. Ist die Gleichung b i = 0 nicht erfüllt, so ist das Problem auch nicht lösbar [AMO93, Seite 97]. i V Annahme 5 (Die unteren Schranken der Kantenkapazitäten sind 0). Das Netzwerk N bestand aus den Mengen (G, b, l, u, c). Wir können nun zeigen, dass wir für die unteren Schranken immer den Wert l ij = 0 annehmen können. Jedes Problem mit positiven unteren Schranken kann in diese Form umgeformt werden. Dazu führt man auf allen Kanten die Menge der unteren Schranke l ij vom Startknoten zum Zielknoten. Danach sind auf einer Kante noch u ij l ij Restkapazitäten übrig. Weiterhin haben sich auch die Balancen der betroffenen Knoten verändert. Wir aktualisieren die Informationen, in dem wir u neu ij = u ij l ij und b neu i = b j l ij + l jk neu bestimmen und die alten Werte durch die neuen ersetzen [BJG0, Seite 3]. Nach der Umformung enthält der Graph keine untere Schranke mehr, sondern nur noch die neuen aktualisierten oberen Schranken u neu ij. (, ) (, 4) Graph mit unteren Schranken Graph ohne unteren Schranken Abbildung.0: Eliminierung der unteren Schranken Die untere Schranke hat die Mengeneinheiten angegeben, die mindesten auf einer Kante transportiert werden mussten. Daher können wir diesen Transport ausführen und brauchen dafür keine Rückwärtskante einzufügen. Insgesamt ändert diese Umformung daher nicht die Problemstellung. Im folgenden werden in Bezug auf die Annahmen 5 das Netzwerk N eines Minimum Cost Flow Problems mit den Mengen (G, b, u, c) beschreiben und auf die unteren Schranken l verzichten, da wir sie implizit mit l ij = 0 e ij E voraussetzen können. Annahme 6 (Es existieren keine parallelen Kanten). Wir können im Zusammenhang mit dem Minimum Cost Flow Problem davon ausgehen, dass keine parallelen Kanten existieren. Diese Einschränkung erspart uns eine komplexere Notation der Informationen eines Netzwerkes [AMO93, Seite 37]. Weiterhin ist es durch Hinzufügen neuer Knoten und Kanten in einen Graphen möglich, alle parallelen Kanten so zu transformieren, dass sie nicht mehr parallel sind. 0

24 .5 Netzwerkflussprobleme Für jede parallele Kante wird ein Zwischenknoten und eine weitere Kante wie in Abbildung. hinzugefügt. Dadurch werden die parallelen Kanten eliminiert. Jeder Zwischenknoten hat einen Grad von und bekommt eine Balance von 0, was bedeutet, dass jede ankommende Einheit auch wieder abgegeben werden muss. Die neue Kante, die vom Zwischenknoten zum Zielknoten führt, hat dabei die Kapazität der ursprünglichen Kante, womit die Einheiten weitergeleitet werden können. Da die neue Kante zum Zielknoten keine Kosten hat, werden auch die Gesamtkosten nicht verändert. Mit dem gleichen Prinzip kann man auch parallele Kanten, die in entgegengesetzter Richtung verlaufen, eliminieren. (, ) 0 3 (, ) (, 0) (, ) (, ) 0 (, 0) 4 Mit parallelen Kanten Ohne parallele Kanten Abbildung.: Eliminierung von parallelen Kanten Annahme 7 (Der Graph ist zusammenhängend). Sollte der Graph G = (V, E) nicht zusammenhängend sein, so können wir den Graphen in mehrere Subprobleme aufteilen. Dazu seien G = (V, E ),..., G k = (V k, E k ) zusammenhängende Subgraphen von G mit E = E... E k und V = V... V k. Lösen wir nun das Minimum Cost Flow Problem in jedem Subgraphen G,..., G k separat, so können wir die Lösung später zusammenführen. Sind nämlich die Flüsse x,..., x k Lösungen der einzelnen Subgraphen, so ist x = x x k die Lösung für G..5 Netzwerkflussprobleme Das Minimum Cost Flow Problem wird als ein Netzwerkflussproblem bezeichnet [AMO93, Seite 4]. Dabei gilt es eine Zielfunktion in einem Netzwerk zu minimieren. Neben dem Minimum Cost Flow Problem gibt es weitere Netzwerkflussprobleme, die als Subproblem des Minimum Cost Flow Problems bezeichnet werden können. Diese sind unter Anderem das Shortest Path Problem und Maximum Flow Problem, weil sie als ein Spezialfall des Minimum Cost Flow Problems formuliert werden können. Das Shortest Path Problem sucht nach einem kürzesten Weg in einem Graphen, wobei die Länge des Weges äquivalent zu den Kosten im Minimum Cost Flow Problem verstanden werden kann. Kosten und Längen sind Bewertungen für Kanten [AMO93, Seite 6] und werden manchmal auch als Gewichte bezeichnet [KV08, Seite 67]. Definition 5 (Shortest Path Problem). Im Shortest Path Problem geht es darum, in einem Netzwerk N = (G, c) einen kürzesten Weg von einem Startknoten s V zu einem

25 Grundlagen Zielknoten t V zu finden [KV08, Seite 67]. Eine Formulierung als LP hat die Form min c(x) = x ij c ij e ij E u.d.n. x ij wenn i = s, x ji = wenn i = t, e ij δ + (i) e ji δ (i) 0 sonst, 0 x ij. Aus der Formulierung des LP geht hervor, dass im Netzwerk nach einem Fluss x auf dem kürzesten Weg gesucht wird, der eine Einheit vom Startknoten s zum Zielknoten t transportiert [AMO93, Seite 6]. Weiterhin muss x positiv sein, um keine negativen Einheiten transportieren zu müssen. Wir werden das Shortest Path Problem als einen Spezialfall vom Minimum Cost Flow Problem formulieren. Sei das Netzwerk N = (G, c) für ein Shortest Path Problem gegeben und sei o.b.d.a. der Knoten s = V und t = n V. Betrachte nun das Minimum Cost Flow Problem in einem Netzwerk N MCF P = (G, b, u, c), wobei G und c aus dem ursprünglichen Netzwerk N stammen. Setze u = (,..., ) und b = (,..., n). Dann ist jede Lösung des Minimum Cost Flow Problems auch eine Lösung des Shortest Path Problems [Jun04, Seite 33]. Insbesondere ist eine optimale Lösung im Minimum Cost Flow Problem auch im Shortest Path Problem optimal. Definition 6 (Maximum Flow Problem). Für das Maximum Flow Problem ist ein Netzwerk N = (G, u), sowie ein Startknoten s V und Zielknoten t V gegeben. Das Ziel ist es, einen maximalen Fluss von s nach t zu finden. Der Fluss muss also möglichst viele Einheiten zwischen den Knoten s und t transportieren [KV08, Seite 83]. Die LP-Formulierung lautet u.d.n. max c(x) = x sj x ij e sj E e ij δ + (i) e ji δ (i) e js δ (i) x js x ji = 0 i s, i t, 0 x ij u ij. Auch das Maximum Flow Problem lässt sich als einen Spezialfall des Minimum Cost Flow Problems darstellen. Dazu modifizierten wir den Graphen insofern, dass wir eine neue Kante e ts von t nach s hinzufügen. Sei der modifizierte Graph G m = (V, E e ts ), b = (0,..., 0), c ij = 0 e ij E, c ts = und u wie im ursprünglichen Netzwerk N des Maximum Flow Problems mit dem zusätzlichen Eintrag u ts =. Dann ist eine Lösung des Minimum Cost Flow Problems mit dem Netzwerk N MCF P = (G m, b, u, c) auch eine Lösung des Maximum Flow Problems [AMO93, Seite 6]. Da alle Balancen 0 sind, muss

26 .6 Optimalitätsbedingungen jeder austretende Fluss aus s auch wieder dort ankommen. Um die Gesamtkosten zu minimieren, muss der Fluss im Knoten t ankommen, um danach durch die neue Kante e ts zurück zu fließen. Durch jede Einheit die von t nach s zurückfließt werden die Gesamtkosten genau um vermindert..6 Optimalitätsbedingungen Im Minimum Cost Flow Problem geht es darum, eine kostenminimale Lösung zu finden. Wurde eine Lösung gefunden und gibt es noch eine Möglichkeit die Gesamtkosten weiterhin zu senken, so hat es sich nicht um eine optimale Lösung gehandelt. Bei der Analyse des Minimum Cost Flow Problems werden wir sehen, dass es einige Bedingungen gibt, die Auskunft geben, ob ein Lösung optimal ist. Das betrifft neben weiteren Indizien insbesondere negative Kreise im Graphen. Viele Algorithmen kontrollieren während der Berechnung einer Lösung sukzessiv diese Bedingungen, um die Optimalität festzustellen. Erfüllt eine Lösung nämlich diese Bedingungen, so handelt es sich bereits um eine optimale Lösung..6. Negative Kreise Da uns ein gerichteter Graph vorliegt, betrachten wir nur gerichtete Kreise. Die Kanten auf einem Kreis müssen weiterhin über eine positive Kapazität verfügen, damit ein Fluss den Kanten einen positiven Wert zuweisen kann. Wenn wir einen positiven Fluss dem Kreis C zuweisen, sprechen wir von einem C augmentierenden Fluss. Definition 7 (Augmentierende Wege). Ist W ein gerichteter Weg in einem Netzwerk N = (G, u) und existiert ein positiver Fluss x auf den Kanten von W, so ist W ein augmentierender Weg in N. Gilt weiterhin γ(w ) = min{u ij : e ij W }, so kann man den Weg W maximal um γ(w ) Einheiten augmentieren [BJG0, Seite 4]. Mit γ(w ) wird die maximale Kapazität auf den Kanten des Weges W bestimmt. Dafür müssen wir auf dem Weg die Kante mit der kleinstmöglichen Kapazität finden, da ein größerer Fluss die Kapazität genau dieser Kante überschreiten würde. Ist W ein Pfad oder Kreis, spricht man entsprechend von augmentierenden Pfaden und Kreisen[BJG0, Seite 6]. Ein Negativer Kreis ist ein Kreis C mit negativen Kosten c(c), der um mindesten eine Einheit augmentiert werden kann. Praktisch an einem Kreis ist, dass wir an ihm entlang Einheiten transportieren können, ohne dass sich dabei die Balancen der betroffenen Knoten verändern. Durch einen Fluss, der einen Kreis augmentiert, verändern sich durchaus die Kapazitäten der betroffenen Kanten. Weiterhin werden bezüglich des Flusses dem Residualnetzwerk weitere Rückwärtskanten hinzugefügt [BJG0, Seite 63]. 3

27 Grundlagen Bereits Morton Klein hat darauf hingewiesen, dass Lösungen eines Minimum Cost Flow Problems, in denen noch negative Kreise existieren, nicht optimal sein können [Kle67]. Satz (Klein). Sei N = (G, u, b, c) eine Instanz des Minimum Cost Flow Problems. Ein b-fluss x hat genau dann minimale Kosten, wenn es im Residualnetzwerk N (x) keinen augmentierbaren Kreis C mit negativen Kosten gibt [Kle67, Seite 06]. Beweis. Wie wir bereits wissen, bestimmt das Residiualnetzwerk N (x) den aktuellen Status des Netzwerkes N bezüglich eines Flusses x. Wenn es dann einen negativen Kreis C im Residiualnetzwerk gibt, können wir diesen um γ(c) Einheiten augmentieren. Dadurch ändern sich nicht die Balancen und auch die Kapazitätseinhaltung wird gewährleistet. Sei x C der Fluss, der den negativen Kreis C um γ(c) Einheiten augmentiert. Für den resultierenden Fluss x ergeben sich geringere Gesamtkosten als x, da und c(x C ) negativ war. x = x x C c(x ) = c(x) + c(x C ) < c(x) }{{} <0 Andersherum kann man die Gesamtkosten von x in einem Netzwerk N (x) ohne einen negativen Kreis nicht mehr verringern. Sei dazu x opt eine optimale Lösung für das Netzwerk N. Da sowohl x als auch x opt einen b-fluss darstellen, kann man die Differenz der Flüsse durch eine Anzahl k m von augmentierenden Kreisen darstellen. Denn nur durch einen Kreis kann erneut ein b-fluss hergestellt werden, weil sonst die Flusserhaltung verletzt wird und wir keine Lösung erhalten. Seien dazu x,..., x k Flüsse, wodurch Kreise C,..., C k so augmentiert werden können, dass für gilt [BJG0, Seite 40]. Dann ist aber x opt = x + k i= c(x) c(x opt ) = c(x) + x i k c(x ), }{{} 0 i= da die Kosten für jeden Kreis c(c i ) nicht negativ sind..6. Reduzierte Kosten Es gibt eine weitere Bedingung über reduzierte Kosten, anhand der man erkennen kann, ob es in einem Residualnetzwerk N (x) keine negativen Kreise mehr gibt. Ist dies der Fall, so wissen aus Satz von Klein, dass der Fluss x optimal ist [AMO93, Seite 308]. Definition 8 (Reduzierte Kosten und Potentiale). Existiert für ein Netzwerk N = (G, c) 4

Klausur zum Modul Einführung in die Diskrete Mathematik

Klausur zum Modul Einführung in die Diskrete Mathematik Klausur zum Modul Einführung in die Diskrete Mathematik 11.2.2014 Aufgabe 1 [10 Punkte] Sei G ein ungerichteter Graph, k N und x, y, z V (G). Zeigen Sie: Gibt es k paarweise kantendisjunkte x-y-wege und

Mehr

Flüsse in Netzwerken

Flüsse in Netzwerken Proseminar Theoretische Informatik, Prof. Wolfgang Mulzer, SS 17 Flüsse in Netzwerken Zusammenfassung Gesa Behrends 24.06.2017 1 Einleitung Unterschiedliche technische Phänomene wie der Flüssigkeitsdurchfluss

Mehr

Minimum Cost Flow Grundlagen und erste Algorithmen. Philip Ralph Weber

Minimum Cost Flow Grundlagen und erste Algorithmen. Philip Ralph Weber Minimum Cost Flow Grundlagen und erste Algorithmen Philip Ralph Weber..5 Grundlagen. Voraussetzungen Sei G=(V,E) ein gerichteter Graph. c ij bezeichne die Kosten für der Kante (i, j) E C := max (i,j) E

Mehr

Bipartite Graphen. Beispiele

Bipartite Graphen. Beispiele Bipartite Graphen Ein Graph G = (V, E) heiÿt bipartit (oder paar), wenn die Knotenmenge in zwei disjunkte Teilmengen zerfällt (V = S T mit S T = ), sodass jede Kante einen Knoten aus S mit einem Knoten

Mehr

Einheit 11 - Graphen

Einheit 11 - Graphen Einheit - Graphen Bevor wir in medias res (eigentlich heißt es medias in res) gehen, eine Zusammenfassung der wichtigsten Definitionen und Notationen für Graphen. Graphen bestehen aus Knoten (vertex, vertices)

Mehr

1.Aufgabe: Minimal aufspannender Baum

1.Aufgabe: Minimal aufspannender Baum 1.Aufgabe: Minimal aufspannender Baum 11+4+8 Punkte v 1 v 2 1 3 4 9 v 3 v 4 v 5 v 7 7 4 3 5 8 1 4 v 7 v 8 v 9 3 2 7 v 10 Abbildung 1: Der Graph G mit Kantengewichten (a) Bestimme mit Hilfe des Algorithmus

Mehr

Algorithmische Graphentheorie

Algorithmische Graphentheorie Algorithmische Graphentheorie Vorlesung 13: Flüsse und Zuordnungen Babeş-Bolyai Universität, Department für Informatik, Cluj-Napoca csacarea@cs.ubbcluj.ro 9. Juni 2017 DURCHSATZ D(e) ist die maximale Flussmenge,

Mehr

Algorithmik WS 07/ Vorlesung, Andreas Jakoby Universität zu Lübeck. 10 Matching-Probleme

Algorithmik WS 07/ Vorlesung, Andreas Jakoby Universität zu Lübeck. 10 Matching-Probleme 10 Matching-Probleme 10.1 Definition von Matching-Probleme Definition 21 [2-dimensionales Matching] Sei G = (V, E) ein ungerichteter Graph und E E. E ist ein Matching, wenn für alle Kantenpaare e 1, e

Mehr

3.6 Branch-and-Bound-Verfahren

3.6 Branch-and-Bound-Verfahren 36 Branch-and-Bound-Verfahren Die Branch-and-Bound -Methode beruht darauf, auf eine intelligente Weise alle zulässigen Lösungen eines kombinatorischen Optimierungsproblems aufzulisten und mit Hilfe von

Mehr

Aufgabe 1: Berechnen Sie für den in Abbildung 1 gegebenen Graphen den. Abbildung 1: Graph für Flussproblem in Übungsaufgabe 1

Aufgabe 1: Berechnen Sie für den in Abbildung 1 gegebenen Graphen den. Abbildung 1: Graph für Flussproblem in Übungsaufgabe 1 Lösungen zu den Übungsaufgaben im Kapitel 4 des Lehrbuches Operations Research Deterministische Modelle und Methoden von Stephan Dempe und Heiner Schreier Aufgabe 1: Berechnen Sie für den in Abbildung

Mehr

Effiziente Algorithmen I

Effiziente Algorithmen I 9. Präsenzaufgabenblatt, WiSe 2013/14 Übungstunden am 13.01. & 15.01.2014 Aufgabe Q Gegeben sei ein Fluss-Netzwerk mit Digraph D = (V, A), Knotenkapazitäten c(u, v) 0, Quelle s und Senke t. Kann sich der

Mehr

Datenstrukturen & Algorithmen Lösungen zu Blatt 11 FS 14

Datenstrukturen & Algorithmen Lösungen zu Blatt 11 FS 14 Eidgenössische Technische Hochschule Zürich Ecole polytechnique fédérale de Zurich Politecnico federale di Zurigo Federal Institute of Technology at Zurich Institut für Theoretische Informatik 14. Mai

Mehr

Kapitel 7: Flüsse in Netzwerken und Anwendungen Gliederung der Vorlesung

Kapitel 7: Flüsse in Netzwerken und Anwendungen Gliederung der Vorlesung Gliederung der Vorlesung 1. Grundbegriffe. Elementare Graphalgorithmen und Anwendungen 3. Kürzeste Wege 4. Minimale spannende Bäume 5. Färbungen und Cliquen 6. Traveling Salesman Problem 7. Flüsse in Netzwerken

Mehr

Optimierung. Vorlesung 08

Optimierung. Vorlesung 08 Optimierung Vorlesung 08 Heute Dualität Ganzzahligkeit Optimierung der Vorlesung durch Evaluierung 2 Das duale LP Das primale LP Maximiere c T x unter Ax b, x R d 0. wird zu dem dualen LP Minimiere b T

Mehr

Einführung in die Mathematik des Operations Research

Einführung in die Mathematik des Operations Research Universität zu Köln Mathematisches Institut Prof. Dr. F. Vallentin Einführung in die Mathematik des Operations Research Sommersemester 3 en zur Klausur (7. Oktober 3) Aufgabe ( + 3 + 5 = Punkte). Es sei

Mehr

Wir gewichten die Kanten von G wie folgt: Kante e 1 e 2 e 3 e 4 e 5 e 6 e 7 e 8 d(e i )

Wir gewichten die Kanten von G wie folgt: Kante e 1 e 2 e 3 e 4 e 5 e 6 e 7 e 8 d(e i ) Prof. Dr. U. Faigle J. Voss SS 2011 12. Übung zur Einführung in die Mathematik des Operations Research Dieses Übungsblatt wird nicht mehr gewertet. Aufgabe 1: Sei G = (V, E) ein gerichteter Graph und x

Mehr

Algo&Komp. - Wichtige Begriffe Mattia Bergomi Woche 6 7

Algo&Komp. - Wichtige Begriffe Mattia Bergomi Woche 6 7 1 Kürzeste Pfade Woche 6 7 Hier arbeiten wir mit gewichteten Graphen, d.h. Graphen, deren Kanten mit einer Zahl gewichtet werden. Wir bezeichnen die Gewichtsfunktion mit l : E R. Wir wollen einen kürzesten

Mehr

Fortgeschrittene Netzwerk- und Graph-Algorithmen

Fortgeschrittene Netzwerk- und Graph-Algorithmen Fortgeschrittene Netzwerk- und Graph-Algorithmen Prof. Dr. Hanjo Täubig Lehrstuhl für Effiziente Algorithmen (Prof. Dr. Ernst W. Mayr) Institut für Informatik Technische Universität München Wintersemester

Mehr

Ausarbeitung zum Modulabschluss. Graphentheorie. spannende Bäume, bewertete Graphen, optimale Bäume, Verbindungsprobleme

Ausarbeitung zum Modulabschluss. Graphentheorie. spannende Bäume, bewertete Graphen, optimale Bäume, Verbindungsprobleme Universität Hamburg Fachbereich Mathematik Seminar: Proseminar Graphentheorie Dozentin: Haibo Ruan Sommersemester 2011 Ausarbeitung zum Modulabschluss Graphentheorie spannende Bäume, bewertete Graphen,

Mehr

Operations Research. Flüsse in Netzwerken. Flüsse in Netzwerken. Unimodularität. Rainer Schrader. 2. Juli Gliederung.

Operations Research. Flüsse in Netzwerken. Flüsse in Netzwerken. Unimodularität. Rainer Schrader. 2. Juli Gliederung. Operations Research Rainer Schrader Flüsse in Netzwerken Zentrum für Angewandte Informatik Köln 2. Juli 2007 1 / 53 2 / 53 Flüsse in Netzwerken Unimodularität Gliederung Netzwerke und Flüsse bipartite

Mehr

Optimierung für Wirtschaftsinformatiker: Dualität, Ganzzahlige lineare Optimierung

Optimierung für Wirtschaftsinformatiker: Dualität, Ganzzahlige lineare Optimierung Optimierung für Wirtschaftsinformatiker: Dualität, Ganzzahlige lineare Optimierung Dr. Nico Düvelmeyer Freitag, 24. Juni 2011 1: 1 [1,1] Inhaltsübersicht für heute 1 Dualität Motivation Duales LP Dualitätssätze

Mehr

Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen

Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen 186.172 Algorithmen und Datenstrukturen 1 VL 4.0 Übungsblatt 4 für die Übung

Mehr

Perlen der Informatik I Wintersemester 2012 Aufgabenblatt 7

Perlen der Informatik I Wintersemester 2012 Aufgabenblatt 7 Technische Universität München WS 2012 Institut für Informatik Prof. Dr. H.-J. Bungartz Prof. Dr. T. Huckle Prof. Dr. M. Bader Kristof Unterweger Perlen der Informatik I Wintersemester 2012 Aufgabenblatt

Mehr

Algorithmische Graphentheorie

Algorithmische Graphentheorie c NASA (earthasart.gsfc.nasa.gov/ganges.html) 1 Algorithmische Graphentheorie Sommersemester 2015 2. Vorlesung Flüsse Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I 2 Gewinnmaximierung Sie sind Chef

Mehr

Vorlesung Lineare Optimierung (Sommersemester 2007)

Vorlesung Lineare Optimierung (Sommersemester 2007) 1 Vorlesung Lineare Optimierung (Sommersemester 007) Kapitel 9: Ganzzahlige Polyeder und Kombinatorische Dualität Volker Kaibel Otto-von-Guericke Universität Magdeburg Montag, 9. Juli 007 Gliederung Ganzzahlige

Mehr

6. Übung zur Linearen Optimierung SS08

6. Übung zur Linearen Optimierung SS08 6 Übung zur Linearen Optimierung SS08 1 Sei G = (V, E) ein schlichter ungerichteter Graph mit n Ecken und m Kanten Für eine Ecke v V heißt die Zahl der Kanten (u, v) E Grad der Ecke (a) Ist die Anzahl

Mehr

Effiziente Algorithmen I 11. Übungsblatt, Wintersemester 2015/16 Abgabetermin:

Effiziente Algorithmen I 11. Übungsblatt, Wintersemester 2015/16 Abgabetermin: 11 11. Übungsblatt, Wintersemester 2015/16 Abgabetermin: 19.01.2016 Aufgabe 29 Bestimmen Sie mit der Stepping-Stone-ethode einen Transportplan mit minimalen Kosten für das klassische Transportproblem mit

Mehr

Algorithmische Graphentheorie

Algorithmische Graphentheorie Algorithmische Graphentheorie Vorlesung 4: Suchstrategien Babeş-Bolyai Universität, Department für Informatik, Cluj-Napoca csacarea@cs.ubbcluj.ro 14. April 2017 HALBORDNUNG TOPOLOGISCHE ORDNUNG TOPOLOGISCHES

Mehr

Kombinatorische Optimierung

Kombinatorische Optimierung Kombinatorische Optimierung Juniorprof. Dr. Henning Meyerhenke PARALLELES RECHNEN INSTITUT FÜR THEORETISCHE INFORMATIK, FAKULTÄT FÜR INFORMATIK KIT Universität des Landes Baden-Württemberg und nationales

Mehr

6. Flüsse und Zuordnungen

6. Flüsse und Zuordnungen 6. Flüsse und Zuordnungen Flußnetzwerke 6. Flüsse und Zuordnungen In diesem Kapitel werden Bewertungen von Kanten als maximale Kapazitäten interpretiert, die über diese Kante pro Zeiteinheit transportiert

Mehr

Betriebliche Optimierung

Betriebliche Optimierung Betriebliche Optimierung Joachim Schauer Institut für Statistik und OR Uni Graz Joachim Schauer ( Institut für Statistik und OR Uni Graz Betriebliche ) Optimierung 1 / 22 1 Das Travelling Salesperson Problem

Mehr

Lernmodul 7 Algorithmus von Dijkstra

Lernmodul 7 Algorithmus von Dijkstra Folie 1 von 30 Lernmodul 7 Algorithmus von Dijkstra Quelle: http://www.map24.de Folie 2 von 30 Algorithmus von Dijkstra Übersicht Kürzester Weg von A nach B in einem Graphen Problemstellung: Suche einer

Mehr

Kantengraphen und Planare Graphen. Seminararbeit

Kantengraphen und Planare Graphen. Seminararbeit Kantengraphen und Planare Graphen Seminararbeit in Mathematisches Seminar für LAK 621.378 SS 2018 vorgelegt von Anna Maria Gärtner bei: Baur, Karin, Univ.-Prof. Dr.phil. Graz, 2018 Inhaltsverzeichnis 1

Mehr

11. GRAPHEN 3 FLÜSSE UND SPANNBÄUME

11. GRAPHEN 3 FLÜSSE UND SPANNBÄUME Algorithmen und Datenstrukturen 11. GRAPHEN 3 FLÜSSE UND SPANNBÄUME Algorithmen und Datenstrukturen - Ma5hias Thimm (thimm@uni-koblenz.de) 1 Algorithmen und Datenstrukturen 11.1. BERECHNUNG MAXIMALER FLÜSSE

Mehr

Algorithmen und Datenstrukturen SS09. Foliensatz 16. Michael Brinkmeier. Technische Universität Ilmenau Institut für Theoretische Informatik

Algorithmen und Datenstrukturen SS09. Foliensatz 16. Michael Brinkmeier. Technische Universität Ilmenau Institut für Theoretische Informatik Foliensatz 16 Michael Brinkmeier Technische Universität Ilmenau Institut für Theoretische Informatik Sommersemester 2009 TU Ilmenau Seite 1 / 45 Graphen TU Ilmenau Seite 2 / 45 Graphen 1 2 3 4 5 6 7 8

Mehr

Laufzeit. Finden eines Matchings maximaler Kardinalität dauert nur O( E min{ V 1, V 2 }) mit der Ford Fulkerson Methode.

Laufzeit. Finden eines Matchings maximaler Kardinalität dauert nur O( E min{ V 1, V 2 }) mit der Ford Fulkerson Methode. Effiziente Algorithmen Flußprobleme 81 Laufzeit Finden eines Matchings maximaler Kardinalität dauert nur O( E min{ V 1, V 2 }) mit der Ford Fulkerson Methode. Der Fluß ist höchstens f = min{ V 1, V 2 }.

Mehr

Wiederholung zu Flüssen

Wiederholung zu Flüssen Universität Konstanz Methoden der Netzwerkanalyse Fachbereich Informatik & Informationswissenschaft SS 2008 Prof. Dr. Ulrik Brandes / Melanie Badent Wiederholung zu Flüssen Wir untersuchen Flüsse in Netzwerken:

Mehr

A2.3 Lineare Gleichungssysteme

A2.3 Lineare Gleichungssysteme A2.3 Lineare Gleichungssysteme Schnittpunkte von Graphen Bereits weiter oben wurden die Schnittpunkte von Funktionsgraphen mit den Koordinatenachsen besprochen. Wenn sich zwei Geraden schneiden, dann müssen

Mehr

6 Flüsse und Matchings

6 Flüsse und Matchings 6. Flüsse in Netzwerken Flußnetzwerke 6 Flüsse und Matchings In diesem Kapitel werden Bewertungen von Kanten als maximale Kapazitäten interpretiert, die über diese Kante pro Zeiteinheit transportiert werden

Mehr

Flüsse, Schnitte, bipartite Graphen

Flüsse, Schnitte, bipartite Graphen Flüsse, Schnitte, bipartite Graphen Thomas Fersch mail@t-fersch.de 11.06.2010 Seminar "Hallo Welt!" für Fortgeschrittene 1 Übersicht Maximale Flüsse in Netzwerken Worum geht s? Lösung nach Ford-Fulkerson

Mehr

Lineare (Un-)Gleichungen und lineare Optimierung

Lineare (Un-)Gleichungen und lineare Optimierung Lineare (Un-)Gleichungen und lineare Optimierung Franz Pauer Institut für Mathematik, Universität Innsbruck Technikerstr. 13/7, A-6020 Innsbruck, Österreich franz.pauer@uibk.ac.at 1 Einleitung In der linearen

Mehr

Betriebswirtschaftliche Optimierung

Betriebswirtschaftliche Optimierung Institut für Statistik und OR Uni Graz 1 Das Travelling Salesperson Problem 2 Das Travelling Salesperson Problem Zentrales Problem der Routenplanung Unzählige wissenschaftliche Artikel theoretischer sowie

Mehr

Effiziente Algorithmen I

Effiziente Algorithmen I H 10. Präsenzaufgabenblatt, Wintersemester 2015/16 Übungstunde am 18.01.2015 Aufgabe Q Ein Reiseveranstalter besitzt ein Flugzeug, das maximal p Personen aufnehmen kann. Der Veranstalter bietet einen Flug

Mehr

Graphentheorie Graphentheorie. Grundlagen Bäume Eigenschaften von Graphen Graphen-Algorithmen Matchings und Netzwerke

Graphentheorie Graphentheorie. Grundlagen Bäume Eigenschaften von Graphen Graphen-Algorithmen Matchings und Netzwerke Graphen Graphentheorie Graphentheorie Grundlagen Bäume Eigenschaften von Graphen Graphen-Algorithmen Matchings und Netzwerke 2 Was ist ein Graph? Ein Graph ist in der Graphentheorie eine abstrakte Struktur,

Mehr

ADS: Algorithmen und Datenstrukturen 2

ADS: Algorithmen und Datenstrukturen 2 ADS: Algorithmen und Datenstrukturen 2 Teil 7 Prof. Dr. Gerhard Heyer Institut für Informatik Abteilung Automatische Sprachverarbeitung Universität Leipzig 2. Mai 2018 [Letzte Aktualisierung: 2/05/2018,

Mehr

Vorlesung Datenstrukturen

Vorlesung Datenstrukturen Vorlesung Datenstrukturen Graphen (2) Spannbäume Kürzeste Wege Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 455 Wiederholung Traversierung eines Graphen via Tiefendurchlaufs

Mehr

Flüsse, Schnitte, bipartite Graphen

Flüsse, Schnitte, bipartite Graphen Flüsse, chnitte, bipartite Graphen Matthias Hoffmann 5.5.009 Matthias Hoffmann Flüsse, chnitte, bipartite Graphen 5.5.009 / 48 Übersicht Einführung Beispiel Definitionen Ford-Fulkerson-Methode Beispiel

Mehr

Algorithmische Graphentheorie

Algorithmische Graphentheorie Algorithmische Graphentheorie Vorlesung 7 und 8: Euler- und Hamilton-Graphen Babeş-Bolyai Universität, Department für Informatik, Cluj-Napoca csacarea@cs.ubbcluj.ro 17. April 2018 1/96 WIEDERHOLUNG Eulersche

Mehr

Optimierung. Optimierung. Vorlesung 9 Lineare Programmierung & Kombinatorische Optimierung Fabian Kuhn

Optimierung. Optimierung. Vorlesung 9 Lineare Programmierung & Kombinatorische Optimierung Fabian Kuhn Optimierung Vorlesung 9 Lineare Programmierung & Kombinatorische Optimierung 1 Assignment Problem (Zuordnungsproblem) Gewichtetes Perfektes Bipartites Matching agents Costs tasks Weise jedem Agenten genau

Mehr

Optimierung. Vorlesung 02

Optimierung. Vorlesung 02 Optimierung Vorlesung 02 LPs in kanonischer Form Für i = 1,, m und j = 1,, d seien c j, b i und a ij reele Zahlen. Gesucht wird eine Belegung der Variablen x 1,, x d, so das die Zielfunktion d c j x j

Mehr

Flüsse und Zuordnungen. Kapitel 6. Peter Becker (H-BRS) Graphentheorie Wintersemester 2018/ / 296

Flüsse und Zuordnungen. Kapitel 6. Peter Becker (H-BRS) Graphentheorie Wintersemester 2018/ / 296 Kapitel 6 Peter Becker (H-BRS) Graphentheorie Wintersemester 2018/19 227 / 296 Inhalt Inhalt 6 Flussnetzwerke Berechnung maximaler Flüsse Max-Flow-Min-Cut Matchings Peter Becker (H-BRS) Graphentheorie

Mehr

Algorithmik WS 07/ Vorlesung, Andreas Jakoby Universität zu Lübeck

Algorithmik WS 07/ Vorlesung, Andreas Jakoby Universität zu Lübeck Lemma 15 KLP 1 ist genau dann lösbar, wenn das dazugehörige LP KLP 2 eine Lösung mit dem Wert Z = 0 besitzt. Ist Z = 0 für x 0, x 0, dann ist x eine zulässige Lösung von KLP 1. Beweis von Lemma 15: Nach

Mehr

Graphentheorie. Kardinalitätsmatchings. Kardinalitätsmatchings. Kardinalitätsmatchings. Rainer Schrader. 11. Dezember 2007

Graphentheorie. Kardinalitätsmatchings. Kardinalitätsmatchings. Kardinalitätsmatchings. Rainer Schrader. 11. Dezember 2007 Graphentheorie Rainer Schrader Zentrum für Angewandte Informatik Köln 11. Dezember 2007 1 / 47 2 / 47 wir wenden uns jetzt einem weiteren Optimierungsproblem zu Gliederung Matchings in bipartiten Graphen

Mehr

Algorithmen und Datenstrukturen 2-1. Seminar -

Algorithmen und Datenstrukturen 2-1. Seminar - Algorithmen und Datenstrukturen 2-1. Seminar - Dominic Rose Bioinformatics Group, University of Leipzig Sommersemster 2010 Outline 1. Übungsserie: 3 Aufgaben, insgesamt 30 28 Punkte A1 Spannbäume (10 8

Mehr

1. Transport- und Zuordnungsprobleme Optimierungsalgorithmus für Transportprobleme. Duales Problem. a i u i + i=1. j=1

1. Transport- und Zuordnungsprobleme Optimierungsalgorithmus für Transportprobleme. Duales Problem. a i u i + i=1. j=1 1. Transport- und Zuordnungsprobleme Optimierungsalgorithmus für Transportprobleme Duales Problem Lemma 1.4. Das zum Transportproblem duale Problem lautet: max unter den Nebenbedingungen m a i u i + i=1

Mehr

EDM, Algorithmen und Graphenspeicherung

EDM, Algorithmen und Graphenspeicherung EDM, Algorithmen und Graphenspeicherung 1 Graphenspeicherung Gespeichert werden soll ein Graph G = (V, E) bzw. Digraph D = (V, A). Man beachte: E ( ) V 2 bzw. E V 2 1.1 Adjazenzmatrix Graph G: A = (a vw

Mehr

Graphen KAPITEL 3. Dieses Problem wird durch folgenden Graph modelliert:

Graphen KAPITEL 3. Dieses Problem wird durch folgenden Graph modelliert: KAPITEL 3 Graphen Man kann als Ursprung der Graphentheorie ein Problem sehen, welches Euler 1736 von Studenten aus Königsberg gestellt bekam. Der Fluss Pregel wird von 7 Brücken überquert, und die Frage

Mehr

Kapitel IV Minimale Spannbäume

Kapitel IV Minimale Spannbäume Kapitel IV Minimale Spannbäume 1. Grundlagen Ein Graph G = (V, E) besteht aus einer Menge V von Knoten und einer Menge E von Kanten. Wir werden nur endliche Knoten- (und damit auch Kanten-) Mengen betrachten.

Mehr

1 Lineare Optimierung, Simplex-Verfahren

1 Lineare Optimierung, Simplex-Verfahren 1 Lineare Optimierung, Simplex-Verfahren 1.1 Einführung Beispiel: In einer Fabrik werden n Produkte A 1, A 2,..., A n hergestellt. Dazu werden m Rohstoffe B 1, B 2,..., B m (inklusive Arbeitskräfte und

Mehr

Satz 324 Sei M wie oben. Dann gibt es für ein geeignetes k Konstanten c i > 0 und Permutationsmatrizen P i, i = 1,...

Satz 324 Sei M wie oben. Dann gibt es für ein geeignetes k Konstanten c i > 0 und Permutationsmatrizen P i, i = 1,... Satz 324 Sei M wie oben. Dann gibt es für ein geeignetes k Konstanten c i > 0 und Permutationsmatrizen P i, i = 1,..., k, so dass gilt M = k c i P i i=1 k c i = r. i=1 Diskrete Strukturen 7.1 Matchings

Mehr

Lineare Optimierung: Simplexverfahren Phase Ⅰ

Lineare Optimierung: Simplexverfahren Phase Ⅰ Lineare Optimierung: Simplexverfahren Phase Ⅰ Zur Erinnerung: Die Lineare Optimierungsaufgabe in Standardform lautet z = c T x + c 0 min (.) bei Ax = b, x 0. Revidiertes Simplexverfahren Mit dem Simplexverfahren

Mehr

Isomorphie von Bäumen

Isomorphie von Bäumen Isomorphie von Bäumen Alexandra Weinberger 23. Dezember 2011 Inhaltsverzeichnis 1 Einige Grundlagen und Definitionen 2 1.1 Bäume................................. 3 1.2 Isomorphie..............................

Mehr

Ecken des Zuordnungsproblems

Ecken des Zuordnungsproblems Total unimodulare Matrizen Ecken des Zuordnungsproblems Definition.6 Ein Zuordnungsproblem mit den Vorzeichenbedingungen 0 apple x ij apple für i, j =,...,n statt x ij 2{0, } heißt relaxiertes Zuordnungproblem.

Mehr

Bäume und Wälder. Seminar: Graphentheorie Sommersemester 2015 Dozent: Dr. Thomas Timmermann

Bäume und Wälder. Seminar: Graphentheorie Sommersemester 2015 Dozent: Dr. Thomas Timmermann Bäume und Wälder Seminar: Graphentheorie Sommersemester 2015 Dozent: Dr. Thomas Timmermann Ida Feldmann 2-Fach Bachelor Mathematik und Biologie 6. Fachsemester Inhaltsverzeichnis Einleitung 1 1. Bäume

Mehr

= n (n 1) 2 dies beruht auf der Auswahl einer zweielementigen Teilmenge aus V = n. Als Folge ergibt sich, dass ein einfacher Graph maximal ( n E = 2

= n (n 1) 2 dies beruht auf der Auswahl einer zweielementigen Teilmenge aus V = n. Als Folge ergibt sich, dass ein einfacher Graph maximal ( n E = 2 1 Graphen Definition: Ein Graph G = (V,E) setzt sich aus einer Knotenmenge V und einer (Multi)Menge E V V, die als Kantenmenge bezeichnet wird, zusammen. Falls E symmetrisch ist, d.h.( u,v V)[(u,v) E (v,u)

Mehr

Mathematische Modelle in den Naturwissenschaften Proseminar

Mathematische Modelle in den Naturwissenschaften Proseminar Mathematische Modelle in den Naturwissenschaften Proseminar Johannes Kepler Universität Linz Technische Mathematik Der Algorithmus von Ford und Fulkerson Ausgearbeitet von Julia Eder, Markus Eslitzbichler,

Mehr

Diskrete Strukturen. Hausaufgabe 1 (5 Punkte) Hausaufgabe 2 (5 Punkte) Wintersemester 2007/08 Lösungsblatt Januar 2008

Diskrete Strukturen. Hausaufgabe 1 (5 Punkte) Hausaufgabe 2 (5 Punkte) Wintersemester 2007/08 Lösungsblatt Januar 2008 Technische Universität München Fakultät für Informatik Lehrstuhl für Informatik 15 Computergraphik & Visualisierung Prof. Dr. Rüdiger Westermann Dr. Werner Meixner Wintersemester 2007/08 Lösungsblatt 9

Mehr

5. Musterlösung. Problem 1: Vitale Kanten * ω(f) > ω(f ). (a) Untersuchen Sie, ob es in jedem Netzwerk vitale Kanten gibt.

5. Musterlösung. Problem 1: Vitale Kanten * ω(f) > ω(f ). (a) Untersuchen Sie, ob es in jedem Netzwerk vitale Kanten gibt. Universität Karlsruhe Algorithmentechnik Fakultät für Informatik WS 05/06 ITI Wagner 5. Musterlösung Problem : Vitale Kanten * In einem Netzwerk (D = (V, E); s, t; c) mit Maximalfluß f heißen Kanten e

Mehr

Seien u, v V, u v. Da G zusammenhängend ist, muss mindestens ein Pfad zwischen u und v existieren.

Seien u, v V, u v. Da G zusammenhängend ist, muss mindestens ein Pfad zwischen u und v existieren. Beweis: 1. 2. Seien u, v V, u v. Da G zusammenhängend ist, muss mindestens ein Pfad zwischen u und v existieren. Widerspruchsannahme: Es gibt zwei verschiedene Pfade zwischen u und v. Dann gibt es einen

Mehr

Aufgaben zur Klausurvorbereitung

Aufgaben zur Klausurvorbereitung Vorlesung Graphen und Optimierung Sommersemester 2013/14 Prof. S. Lange Aufgaben zur Klausurvorbereitung Hier finden Sie eine Reihe von Übungsaufgaben, die wir an den beiden Vorlesungsterminen am 29.01.2014

Mehr

Kapitel 7: Flüsse in Netzwerken und Anwendungen Gliederung der Vorlesung

Kapitel 7: Flüsse in Netzwerken und Anwendungen Gliederung der Vorlesung Gliederung der Vorlesung. Grundbegriffe. Elementare Graphalgorithmen und Anwendungen 3. Kürzeste Wege 4. Minimale spannende Bäume 5. Färbungen und Cliquen 6. Traveling Salesman Problem 7. Flüsse in Netzwerken

Mehr

2. Optimierungsprobleme 6

2. Optimierungsprobleme 6 6 2. Beispiele... 7... 8 2.3 Konvexe Mengen und Funktionen... 9 2.4 Konvexe Optimierungsprobleme... 0 2. Beispiele 7- Ein (NP-)Optimierungsproblem P 0 ist wie folgt definiert Jede Instanz I P 0 hat einen

Mehr

Fortgeschrittene Netzwerk- und Graph-Algorithmen

Fortgeschrittene Netzwerk- und Graph-Algorithmen Fortgeschrittene Netzwerk- und Graph-Algorithmen Dr. Hanjo Täubig Lehrstuhl für Eziente Algorithmen (Prof. Dr. Ernst W. Mayr) Institut für Informatik Technische Universität München Wintersemester 2007/08

Mehr

Fortgeschrittene Netzwerk- und Graph-Algorithmen

Fortgeschrittene Netzwerk- und Graph-Algorithmen Fortgeschrittene Netzwerk- und Graph-Algorithmen Prof. Dr. Hanjo Täubig Lehrstuhl für Effiziente Algorithmen (Prof. Dr. Ernst W. Mayr) Institut für Informatik Technische Universität München Wintersemester

Mehr

Datenstrukturen und Algorithmen (SS 2013)

Datenstrukturen und Algorithmen (SS 2013) Datenstrukturen und Algorithmen (SS 2013) Übungsblatt 10 Abgabe: Montag, 08.07.2013, 14:00 Uhr Die Übungen sollen in Gruppen von zwei bis drei Personen bearbeitet werden. Schreiben Sie die Namen jedes

Mehr

Zentralübung zur Vorlesung Diskrete Strukturen (Prof. Esparza)

Zentralübung zur Vorlesung Diskrete Strukturen (Prof. Esparza) WS 2013/14 Zentralübung zur Vorlesung Diskrete Strukturen (Prof. Esparza) Dr. Werner Meixner Fakultät für Informatik TU München http://www14.in.tum.de/lehre/2013ws/ds/uebung/ 22. Januar 2014 ZÜ DS ZÜ XIII

Mehr

Algorithmen und Datenstrukturen Kapitel 10

Algorithmen und Datenstrukturen Kapitel 10 Algorithmen und Datenstrukturen Kapitel 10 Flüsse Frank Heitmann heitmann@informatik.uni-hamburg.de 6. Januar 2016 Frank Heitmann heitmann@informatik.uni-hamburg.de 1/8 Flüsse Graphen Grundlagen Definition

Mehr

1. Über stückweise lineare Zielfunktionen bei der Transportmethode

1. Über stückweise lineare Zielfunktionen bei der Transportmethode - 2-1. Über stückweise lineare Zielfunktionen bei der Transportmethode Die Transportkosten entlang eines Transportweges sind stückweise linear, konkret, sie setzen sich aus drei linearen Teilstücken zusammen:

Mehr

Vorlesung Datenstrukturen

Vorlesung Datenstrukturen Vorlesung Datenstrukturen Graphen (1) Darstellung Traversierung Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 441 Generalisierung von Bäumen Verallgemeinerung (von Listen zu Graphen)

Mehr

Ausarbeitung über den Satz von Menger und den Satz von König

Ausarbeitung über den Satz von Menger und den Satz von König Ausarbeitung über den Satz von Menger und den Satz von König Myriam Ezzedine, 0326943 Anton Ksernofontov, 0327064 Jürgen Platzer, 0025360 Nataliya Sokolovska, 0326991 1. Beweis des Satzes von Menger Bevor

Mehr

Lineare (Un-)Gleichungen und lineare Optimierung

Lineare (Un-)Gleichungen und lineare Optimierung Lineare (Un-)Gleichungen und lineare Optimierung Franz Pauer Institut für Mathematik Universität Innsbruck Lehrer/innen/fortbildungstag Wien 2010 9. April 2010 Eine Maximumsaufgabe Eine Firma stellt aus

Mehr

Problemlösen in grafischen Strukturen

Problemlösen in grafischen Strukturen Problemlösen in grafischen Strukturen Modul 31801 - Zusammenfassung Version vom 01.04.2019 Fernstudium Guide - Problemlösen in graphischen Strukturen - Seite 1 Impressum Herausgeber: FSGU AKADEMIE - Ein

Mehr

Kapitel 8: Bipartite Graphen Gliederung der Vorlesung

Kapitel 8: Bipartite Graphen Gliederung der Vorlesung Gliederung der Vorlesung 1. Grundbegriffe. Elementare Graphalgorithmen und Anwendungen 3. Kürzeste Wege 4. Minimale spannende Bäume 5. Färbungen und Cliquen 6. Traveling Salesman Problem 7. Flüsse in Netzwerken

Mehr

Probeklausur Optimierung

Probeklausur Optimierung Universität Hamburg Fakultät für Mathematik, Informatik und Naturwissenschaften Dr. Nico Düvelmeyer Hamburg, 4. Juli 2011 Probeklausur Optimierung Bitte selber ausfüllen: Name: (darf anonymisiert werden)

Mehr

Datenstrukturen & Algorithmen

Datenstrukturen & Algorithmen Datenstrukturen & Algorithmen Matthias Zwicker Universität Bern Frühling 2010 Graphenalgorithmen Maximaler Fluss Einleitung Flussnetzwerke Ford-Fulkerson Fulkerson Methode Maximales bipartites Matching

Mehr

Algorithmentechnik - U bung 3 4. Sitzung Tanja Hartmann 03. Dezember 2009

Algorithmentechnik - U bung 3 4. Sitzung Tanja Hartmann 03. Dezember 2009 Algorithmentechnik - U bung 3 4. Sitzung Tanja Hartmann 03. Dezember 2009 I NSTITUT F U R T HEORETISCHE I NFORMATIK, P ROF. D R. D OROTHEA WAGNER KIT Universita t des Landes Baden-Wu rttemberg und nationales

Mehr

Graphdurchmusterung, Breiten- und Tiefensuche

Graphdurchmusterung, Breiten- und Tiefensuche Prof. Thomas Richter 18. Mai 2017 Institut für Analysis und Numerik Otto-von-Guericke-Universität Magdeburg thomas.richter@ovgu.de Material zur Vorlesung Algorithmische Mathematik II am 18.05.2017 Graphdurchmusterung,

Mehr

Inhalt. 1. Flußprobleme. 2. Matching. 3. Lineares Programmieren. 4. Ganzzahliges Programmieren. 5. NP-Vollständigkeit. 6. Approximationsalgorithmen

Inhalt. 1. Flußprobleme. 2. Matching. 3. Lineares Programmieren. 4. Ganzzahliges Programmieren. 5. NP-Vollständigkeit. 6. Approximationsalgorithmen Effiziente Algorithmen Einführung 1 Inhalt 1. Flußprobleme 2. Matching. Lineares Programmieren 4. Ganzzahliges Programmieren 5. NP-Vollständigkeit 6. Approximationsalgorithmen 7. Backtracking und Branch-and-Bound

Mehr

Lineare Optimierung und Simplex-Algorithmus

Lineare Optimierung und Simplex-Algorithmus Lineare Optimierung und Simplex-Algorithmus Problemstellung Beispiel : Unser Unternehmen verfügt über drei Maschinen A, B, C, mit denen zwei verschiedene Produkte P, P2 hergestellt werden. Die Maschinen

Mehr

6. Flüsse und Zuordnungen

6. Flüsse und Zuordnungen 6. Flüsse und Zuordnungen In diesem Kapitel werden Bewertungen von Kanten als maximale Kapazitäten interpretiert, die über solch eine Kante pro Zeiteinheit transportiert werden können. Wir können uns einen

Mehr

Dualitätssätze der linearen Optimierung

Dualitätssätze der linearen Optimierung Kapitel 9 Dualitätssätze der linearen Optimierung Sei z = c T x min! Ax = b 9.1 x 0 mit c, x R n, b R m, A R m n ein lineares Programm. Definition 9.1 Duales lineares Programm. Das lineare Programm z =

Mehr

Relationen und Graphentheorie

Relationen und Graphentheorie Seite Graphentheorie- Relationen und Graphentheorie Grundbegriffe. Relationen- und Graphentheorie gehören zu den wichtigsten Hilfsmitteln der Informatik, die aus der diskretenmathematik stammen. Ein Graph

Mehr

mit. Wir definieren (Skalarprodukt = Winkel).

mit. Wir definieren (Skalarprodukt = Winkel). 1 Grundidee des Simplexverfahrens (von George Dantzig): Man bestimmt eine beliebige Ecke (Extremalpunkt) einer Lösungsmenge eines Ungleichungssystems. Nun geht man an den Kanten vom Punkt entlang und kontrolliert

Mehr

\ E) eines Graphen G = (V, E) besitzt die gleiche Knotenmenge V und hat als Kantenmenge alle Kanten des vollständigen Graphen ohne die Kantenmenge E.

\ E) eines Graphen G = (V, E) besitzt die gleiche Knotenmenge V und hat als Kantenmenge alle Kanten des vollständigen Graphen ohne die Kantenmenge E. Das Komplement Ḡ = (V, ( V ) \ E) eines Graphen G = (V, E) besitzt die gleiche Knotenmenge V und hat als Kantenmenge alle Kanten des vollständigen Graphen ohne die Kantenmenge E. Ein Graph H = (V, E )

Mehr

Kapitel 7 : Lineare Programmierung Die Simplexmethode (G.B.Dantzig, 1947) Beispiel:

Kapitel 7 : Lineare Programmierung Die Simplexmethode (G.B.Dantzig, 1947) Beispiel: Kapitel 7 : Lineare Programmierung Die Simplexmethode (G.B.Dantzig, 1947) Beispiel: Eine Firma produziert die Produkte P 1, P 2,..., P q aus den Rohstoffen R 1, R 2,..., R m. Dabei stehen b j Einheiten

Mehr

Unimodularität. Kapitel 1. Peter Becker (H-BRS) Operations Research II Wintersemester 2015/16 11 / 206

Unimodularität. Kapitel 1. Peter Becker (H-BRS) Operations Research II Wintersemester 2015/16 11 / 206 Kapitel 1 Unimodularität Peter Becker (H-BRS) Operations Research II Wintersemester 2015/16 11 / 206 Inhalt 1 Unimodularität Total unimodulare Matrizen Inzidenzmatrix Optimierungsprobleme auf Graphen Peter

Mehr

Informatik II, SS 2014

Informatik II, SS 2014 Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 16 (2.7.2014) Graphtraversierung II, Minimale Spannbäume I Algorithmen und Komplexität Tiefensuche: Pseusocode DFS Traversal: for all u in

Mehr

Graphentheorie. Maximale Flüsse. Maximale Flüsse. Maximale Flüsse. Rainer Schrader. 31. Oktober Gliederung. sei G = (V, A) ein gerichteter Graph

Graphentheorie. Maximale Flüsse. Maximale Flüsse. Maximale Flüsse. Rainer Schrader. 31. Oktober Gliederung. sei G = (V, A) ein gerichteter Graph Graphentheorie Rainer Schrader Zentrum ür Angewandte Inormatik Köln 31. Oktober 2007 1 / 30 2 / 30 Gliederung maximale Flüsse Schnitte Edmonds-Karp-Variante sei G = (V, A) ein gerichteter Graph sei c eine

Mehr

Vorkurs Informatik WiSe 16/17

Vorkurs Informatik WiSe 16/17 Institut für Programmierung Konzepte der Informatik Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 12.10.2016 Technische Universität Braunschweig, IPS Inhaltsverzeichnis Schilda-Rallye Was steckt

Mehr