III. Transportaufgaben 1. Problemstellung 2. Analyse 3. Bestimmung der Startecke 4. Eckenaustausch 5. Umladeprobleme 6. Zuordnungsprobleme H. Weber, FHW, OR SS07, Teil 6, Seite 1
1. Problemstellung Wir beschäftigen uns hier mit einer speziellen Form von linearen Optimierungsproblemen, den sog. Transportproblemen. Hierbei sollen die Kosten für den Transport von Gütern von einer Reihe von Lagerplätzen zu Verbrauchsplätzen minimiert werden. Annahme: es existieren m Lagerplätze R 1, R 2,..., R m (z.b. Lagerhäuser) n Verbrauchsplätze D 1, D 2,..., D n (z.b. Fabriken) a i bezeichne die Anzahl der vorrätigen Waren am Lagerplatz R i. b j bezeichne die Zahl der benötigten Waren am Verbrauchsplatz D j. c ij seine die Kosten pro Einheit für den Transport von R i nach D j. C = (c ij ) ist die Kostenmatrix. H. Weber, FHW, OR SS07, Teil 6, Seite 2
Gesucht sind die Anzahlen x ij der von R i nach D j zu transportierenden Waren, so daß die Kosten minimiert werden. X = (x ij ) ist die Transportmatrix. Mathematisch kann das Problem folgendermaßen formuliert werden: m n Minimiere f = c ij x ij (1) i=1 j=1 n unter den Nebenbedingungen x ij = a i, i = 1,..., m (2) j=1 m x ij = b j, j = 1,..., n (3) i=1 und Vorzeichenbedingungen x ij 0, i = 1,..., m, j = 1,..., n. (4) H. Weber, FHW, OR SS07, Teil 6, Seite 3
Dies ist ein LOP mit m*n Variablen und m+n Nebenbedingungen. Wir nehmen ferner an, daß der totale Bedarf gleich dem totalen Vorrat an Waren ist (Geschlossenheitsbedingung): n m a i = b j = c i=1 j=1 Man kann jedes Transportproblem in ein geschlossenes Transportproblem überführen. Im Fall n m a i > b j i=1 j=1 führt man einen fiktiven Kunden D n+1 mit dem Bedarf n m b n+1 = a i - b j ein. c i,n+1 sind dann die Lagerkosten des Lagers R i. i=1 j=1 H. Weber, FHW, OR SS07, Teil 6, Seite 4
Im Fall n m a i < b j i=1 j=1 führt man ein fiktives Lager R m+1 mit dem Vorrat m n a m+1 = b j - a i ein. c m+1,j sind dann die Kosten der j =1 i =1 Nichtbelieferung. Wir legen also in Zukunft o.b.d.a. ein geschlossenes Transportproblem zugrunde. H. Weber, FHW, OR SS07, Teil 6, Seite 5
2. Analyse Dieses Transportproblem wurde erstmals von Hitchcock (1941) und Koopmans (1947) betrachtet. Es weist gegenüber normalen LOPs einige Besonderheiten in der Struktur der Nebenbedingungen auf: Nur Gleichungsnebenbedingungen. Alle Nichtnull-Koeffizienten der Nebenbedingungen sind gleich 1. Die Koeffizienten erscheinen in einer Dreiecksform. Jede Variable erscheint nur einmal in den ersten m Gleichungen und einmal in den folgenden n Gleichungen. H. Weber, FHW, OR SS07, Teil 6, Seite 6
Das Transportproblem hat also die Form x 11 +x 21 +... +x 1n = a 1 x 21 +x 22 +... +x 2n = a 2...... x m1 +x m2 +... + x mn = a m x 11 +x 21 +x m1 = b 1 x 12 +x 22 +x m2 = b 2........................ x 1n +x 2n +x mn = b n c 11 x 11 +c 12 x 12 +...+c 1n x 1n +... + c m1 x m1 +c m2 x m2 +...+c mn x mn = f H. Weber, FHW, OR SS07, Teil 6, Seite 7
Transportprobleme können leicht als Graphen dargestellt werden: Lagerplätze I, II, III, Verbrauchsplätze A, B, C, D H. Weber, FHW, OR SS07, Teil 6, Seite 8
Das oben definierte Transportproblem kann mit einem ganz normalen Programm für den Simplex-Algorithmus aufgelöst werden (2 Phasen). Jedoch ist dies wegen der Grösse der üblichen Probleme sehr aufwendig und nicht optimal. Vielmehr gibt es wegen der genannten besonderen Struktur sog. Transport-Techniken bzw. -Algorithmen, die speziell angepasste Simplex-Algorithmen darstellen. Satz 1: Die mxn Matrix der Nebenbedingungen 11...1 11...1... 11...1 1 1 1 1 1 1......... 1 1 1 H. Weber, FHW, OR SS07, Teil 6, Seite 9
des Transportproblems hat den Rang m+n-1, da die Summe der Zeilen 1 bis m gleich der der Zeilen m+1 bis m+n ist. Satz 2: Sind alle a i und b j positiv, also auch c, so besitzt das Transportproblem mindestens eine zulässige Lösung, nämlich x ij = a i b j /c Dies ist allerdings keine Ecke! Da der zulässige Bereich wegen 0 x ij min(a i, b j ) beschränkt ist, existiert ein Optimum der Zielfunktion, es liegt in einer Ecke. H. Weber, FHW, OR SS07, Teil 6, Seite 10
Vorgehensweise bei der Lösung des Transportproblems: 1. Bestimmung einer zulässigen Startlösung (Ausgangsecke). 2. Optimalitätstest für die gegenwärtige zulässige Lösung: falls die Lösung optimal ist, gehe nach 6, andernfalls nach 3. 3. Auswahl einer Variablen, die Basisvariable werden soll. 4. Auswahl einer Variablen, die Nichtbasisvariable werden soll. 5. Bestimmung einer neuen zulässigen Lösung, dann nach 2. 6. Fertig! H. Weber, FHW, OR SS07, Teil 6, Seite 11
3. Bestimmung der Startecke Zur Bestimmung der Anfangsecke gibt es eine Reihe von Verfahren, unter anderem: die Nordwesteckenregel, die Vogel sche Approximationsmethode, die Spaltenminimum-Methode, die Matrixminimum-Methode und andere mehr. Am einfachsten ist die Nordwesteckenregel, da sie die Kostenmatrix nicht beachtet. Die Nordwesteckenregel Hier ermittelt man im Transporttableau von links oben nach rechts unten fortschreitend die anfänglichen Basisvariablen. H. Weber, FHW, OR SS07, Teil 6, Seite 12
Start : i := j := 1. Iteration: x ij = min { a i, b j } ; a i := a i - x ij ; b j := b j - x ij ; if a i = 0 then i:= i+1 else j:= j+1; Gehe zu nächsten Iteration. Abbruch: Falls i = m und j=n, wird nach der ersten Zeile der Iteration abgebrochen. x ij ist jeweils ein größtmöglicher Transport von R i nach D j. In der ersten Zeile der Iteration werden Vorrat und Bedarf neu berechnet. Wenn a i = 0 ist, ist der Vorrat in R i aufgebraucht, man geht zur nächsten Zeile, i+1, weil aus R i kein Transport mehr erfolgen kann. Wenn b j = 0 ist, ist der Bedarf von D j gedeckt, man geht zur nächsten Spalte, j+1, weil zum Kunden D j kein Transport mehr erfolgen soll. Werden zwischendurch nie a i und b j beide Null, so werden m+n-1 Plätze H. Weber, FHW, OR SS07, Teil 6, Seite 13
in der Transportmatrix mit positiven Zahlen besetzt, darunter x 11 und x mn. Sie sind die Basisvariablen. Die übrigen Werte werden implizit gleich Null gesetzt. Wird bei diesem Verfahren zwischendurch zugleich a i = 0 und b j = 0, so fährt man bei R i+1 und D j+1 fort, nimmt aber x i+1,j oder x i,j+1 als Basisvariable mit Wert 0 in die Basis auf. Die Ecke ist dann entartet. Beispiel: Ausgangspunkt D 1 D 2 D 3 D 4 a i i=1, j=1 R 1 4000 R 2 7000 b j 2000 3000 5000 1000 H. Weber, FHW, OR SS07, Teil 6, Seite 14
D 1 D 2 D 3 D 4 a i x 11 = 2000, a 1 = 2000, b 1 = 0 R 1 2000 2000 i=1, j = 2 R 2 7000 b j 0 3000 5000 1000 D 1 D 2 D 3 D 4 a i x 12 = 2000, a 1 = 0, b 2 = 1000 R 1 2000 2000 0 i=2, j = 2 R 2 7000 b j 0 1000 5000 1000 H. Weber, FHW, OR SS07, Teil 6, Seite 15
D 1 D 2 D 3 D 4 a i x 22 = 1000, a 2 = 6000, b 2 = 0 R 1 2000 2000 0 i=2, j = 3 R 2 1000 6000 b j 0 0 5000 1000 D 1 D 2 D 3 D 4 a i x 23 = 5000, a 2 = 1000, b 3 = 0 R 1 2000 2000 0 i=2, j = 4 R 2 1000 5000 1000 b j 0 0 0 1000 H. Weber, FHW, OR SS07, Teil 6, Seite 16
D 1 D 2 D 3 D 4 a i x 24 = 1000, a 2 = 0, b 4 = 0 R 1 2000 2000 0 R 2 1000 5000 1000 0 b j 0 0 0 0 Insgesamt ergibt sich so ein Zickzackweg von links oben nach rechts unten. Die Nordwesteckenregel ist ein sehr einfaches, heuristisches Verfahren zur Bestimmung der Anfangsecke. Sie benutzt die Werte c ij der Kostenmatrix überhaupt nicht. Dadurch ergibt sich meist keine besonders gute Startlösung. H. Weber, FHW, OR SS07, Teil 6, Seite 17
4. Eckenaustausch Die MODI Methode (u-v-methode) von Vajda Die zum Transportproblem (1)-(4) duale Aufgabenstellung lautet m n Maximiere z = a i u i + b j v j i=1 j=1 unter den Nebenbedingungen u i + v j c ij, i=1,,m, j=1, n mit nicht vorzeichenbeschränkten, reellen Variablen u i, v j. Seien x = (x 11,...,x ij,... x mn ) T und (u T, v T ) T optimale, zulässige Lösungen von Primal- und Dualproblem. Dann entsprechen den Problemvariablen x ij des Primalproblems die Schlupfvariablen d ij = c ij u i v j des Dualproblems. H. Weber, FHW, OR SS07, Teil 6, Seite 18
Nach dem Satz über den komplementären Schlupf gilt x ij * d ij = 0. D.h. für Basisvariable x ij > 0 gilt d ij = c ij u i v j = 0, und aus d ij 0, d.h. c ij u i v j 0 folgt x ij = 0. Satz 3: Für die Indizes (i,j) der Basisvariablen x ij stellen u i + v j = c ij m+n-1 lineare (unterbestimmte) Gleichungen für die m+n Unbekannten u i, v j dar. Setzt man etwa u 1 = 0 (oder v 1 = 0), so kann man alle u i, v j eindeutig berechnen. Für die Indizes (i,j) der Nichtbasisvariablen x ij berechnet man daraus die Koeffizienten d ij = c ij u i v j, die den Werten der Zielfunktionszeile im üblichen Simplextableau entsprechen. Falls alle d ij 0 sind, i=1,...,m, j=1,...,n, so ist die Basislösung optimal. H. Weber, FHW, OR SS07, Teil 6, Seite 19
Andernfalls wird diejenige Nichtbasisvariable aufgenommen x rs, für die d rs = min {d ij } < 0. i, j x rs soll nun Basisvariable werden und einen möglichst großen Wert x rs (θ) = θ > 0 bekommen. Die übrigen Nichtbasisvariablen sollen den Wert 0 behalten. Die Basisvariablen sind neu zu berechnen, so daß alle Nebenbedingungen erfüllt sind. Die aus der Basis zu eliminierende Variable wird bei Simplex-Algorithmus durch Minimumbildung von Quotienten im Tableau bestimmt. Dies ist hier nicht möglich. Man bestimmt hier dazu im Transport-Tableau einen Pfad aus jenen Basiselementen, deren Wert sich bei Erhöhung des Wertes von x rs ändert, damit die Gleichungen der Nebenbedingungen eingehalten werden (Stepping Stone Path). Durch Hinzufügen von x rs entsteht ein Zyklus. H. Weber, FHW, OR SS07, Teil 6, Seite 20
Für die x ij des geschlossenen Zickzackweges, der von x rs ausgeht und durch Basisvariable zu x rs zurückführt, setzt man abwechselnd x* ij (θ) = x ij θ und x* ij (θ) + θ Dann sind die Nebenbedingungen erfüllt, weil in einer Zeile bzw. Spalte jeweils θ addiert und subtrahiert wird. Nun suchen wir das grösstmögliche θ so, daß noch alle Vorzeichenbedingungen erfüllt sind, d.h. es darf beim Subtrahieren nie etwas Negatives entstehen. Es ergibt sich θ = min { x ij alte Basisvar. in Zickzackweg}. Ein x* ij (θ), das Null wird, wird neue Nichtbasisvariable, also gegen x rs mit Wert θ ausgetauscht. Der Zielfunktionswert verbessert, d.h. verringert sich bei diesem Basistausch um d rs *θ. Im Tableau wird der Zyklus durch Einzeichnen von + und markiert. H. Weber, FHW, OR SS07, Teil 6, Seite 21
Beispiel: Es sei der optimale Transportplan zu finden für folgendes Problem: Lager R 1, R 2 und R 3 mit Vorräten a 1 = 20, a 2 = 25 und a 3 = 40 des Produktes P, Verbraucher D 1, D 2, D 3 und D 4 mit Nachfragen b 1 = 10, b 2 = 25, b 3 = 15, b 4 = 35 Die Transportkosten ergeben sich aus der Matrix D 1 D 2 D 3 D 4 R 1 1 8 4 7 R 2 9 0 5 7 R 3 3 6 8 1 H. Weber, FHW, OR SS07, Teil 6, Seite 22
Die Nordwestecken-Regel führt zur Ausgangslösung: D 1 D 2 D 3 D 4 a i R 1 10 10 20 R 2 15 10 25 R 3 5 35 40 b j 10 25 15 35 215 Basisvariablen sind: x 11, x 12, x 22, x 23, x 33, x 34. Zur Bestimmung der d ij ist das folgende Gleichungssystem für die Basisvariablen (mit v 1 = 0) zu lösen: u 1 + v 1 = c 11 = 1 u 2 + v 3 = c 23 = 5 => u 1 = 1, u 2 = -7, u 3 = -4, u 1 + v 2 = c 12 = 8 u 3 + v 3 = c 33 = 8 v 1 = 0, v 2 = 7, v 3 = 12, u 2 + v 2 = c 22 = 0 u 3 + v 4 = c 34 = 1 v 4 = 5 H. Weber, FHW, OR SS07, Teil 6, Seite 23
Nun wird für alle Nichtbasisvariablen d ij = c ij u i v j berechnet. Die jeweils zweite Zahl im Tableau ist d ij. D 1 D 2 D 3 D 4 u i R 1 1/0 8/0 4/-9 7/1 1 R 2 9/16 0/0 5/0 7/9-7 R 3 3/7 6/3 8/0 1/0-4 v j 0 7 12 5 Die durch die Nordwestecken-Regel gefundene Ausgangslösung ist nicht optimal, wie d 13 = -9 < 0 aussagt. Die Nichtbasisvariable x 13 ist also in die Basis aufzunehmen. Das folgende Tableau zeigt den Zickzackweg, der x 13 enthält. H. Weber, FHW, OR SS07, Teil 6, Seite 24
D 1 D 2 D 3 D 4 a i R 1 10 10 - + 20 R 2 15 + 10-25 R 3 5 35 40 b j 10 25 15 35 215 Es ergibt sich θ = 10 und damit der neue Plan : D 1 D 2 D 3 D 4 a i R 1 10 10 20 R 2 25 0 25 R 3 5 35 40 b j 10 25 15 35 125 H. Weber, FHW, OR SS07, Teil 6, Seite 25
Wegen der Entartung konnten wir hier wählen, ob x 23 oder x 12 Basisvariable mit Wert Null bleiben sollten. Wir haben uns für x 23 entschieden. Ist dieser Plan optimal? Es müssen wieder die dualen Vektoren u und v berechnet werden und aus ihnen die d ij. Basisvariablen sind: x 11, x 13, x 22, x 23, x 33, x 34. Zur Bestimmung der d ij ist das folgende Gleichungssystem für die Basisvariablen (mit v 1 = 0) zu lösen: u 1 + v 1 = c 11 = 1 u 2 + v 3 = c 23 = 5 => u 1 = 1, u 2 = 2, u 3 = 5, u 1 + v 3 = c 13 = 4 u 3 + v 3 = c 33 = 8 v 1 = 0, v 2 = -2, v 3 = 3, u 2 + v 2 = c 22 = 0 u 3 + v 4 = c 34 = 1 v 4 = -4 Im Tableau stehen wieder die d ij = c ij u i v j rechts neben den c ij. H. Weber, FHW, OR SS07, Teil 6, Seite 26
D 1 D 2 D 3 D 4 u i R 1 1/0 8/9 4/0 7/10 1 R 2 9/7 0/0 5/0 7/9 2 R 3 3/-2 6/3 8/0 1/0 5 v j 0-2 3-4 Wegen d 31 = -2 < 0 ist diese Lösung noch nicht optimal, wir müssen x 31 neu in die Basis aufnehmen. Die Schleife ist wie üblich bezeichnet: D 1 D 2 D 3 D 4 a i R 1 10-10 + 20 R 2 25 0 25 R 3 + 5-35 40 b j 10 25 15 35 125 H. Weber, FHW, OR SS07, Teil 6, Seite 27
Mit θ = 5 verläßt x 33 die Basis. Es ergibt sich der neue Plan D 1 D 2 D 3 D 4 a i R 1 5 15 20 R 2 25 0 25 R 3 5 35 40 b j 10 25 15 35 115 Wir überprüfen die Optimalität: Basisvariablen sind: x 11, x 13, x 22, x 23, x 31, x 34. Aufzulösen ist (v 1 = 0!): u 1 + v 1 = c 11 = 1 u 2 + v 3 = c 23 = 5 => u 1 = 1, u 2 = 2, u 3 = 3, u 1 + v 3 = c 13 = 4 u 3 + v 1 = c 31 = 3 v 1 = 0, v 2 = -2, v 3 = 3, u 2 + v 2 = c 22 = 0 u 3 + v 4 = c 34 = 1 v 4 = -2 H. Weber, FHW, OR SS07, Teil 6, Seite 28
Die d ij stehen rechts neben den c ij im neuen Tableau: D 1 D 2 D 3 D 4 u i R 1 1/0 8/9 4/0 7/8 1 R 2 9/7 0/0 5/0 7/7 2 R 3 3/0 6/5 8/2 1/0 3 v j 0-2 3-2 Alle d ij sind positiv. Dies zeigt die Optimalität der Lösung: x 11 = 5, x 13 = 15, x 22 = 25, x 23 = 0, x 31 = 5, x 34 = 5 mit Zielfunktionswert 115. H. Weber, FHW, OR SS07, Teil 6, Seite 29
5. Umladeprobleme Es gibt verschiedene, kompliziertere Varianten von Transportproblemen, darunter Umladeprobleme. Hier wird ein Produkt nicht direkt zu den Bedarfsorten, sondern zunächst zu Umladeorten versandt. Von dort erfolgt der Transport zu den Bedarfsorten. An den Umladeorten kann u.u. auch eine Lagerung bzw. Bearbeitung des Produkts stattfinden. Zur Lösung von Umladeproblemen verwendet man ganz ähnliche Methode wie bei Transportproblemen. Beispiel: In Rohstoffbetrieben A und B wird ein Produkt zu Kosten von 50 Euro bzw. 60 Euro je ME hergestellt. Die Kapazitäten betragen 2000 bzw. 1500 ME pro Woche. In den Betrieben C, D und E wird das Produkt weiterbearbeitet, wobei die Kosten von 40, 55 bzw. 48 Euro pro ME entstehen. Die Kapazitäten sind durch 1000, 1200 und 1800 ME pro Woche begrenzt. H. Weber, FHW, OR SS07, Teil 6, Seite 30
Die Transportkosten von A nach C,D und E betragen 8, 4 und 3 Euro/ME. Die Transportkosten von B aus sind 4, 6 und 7 Euro/ME. Von den Betrieben C,D und E aus sind Kunden I bis IV mit den Mengen 800, 600, 500 bzw. 1200 ME zu beliefern. Die Transportkosten sind in der folgenden Tabelle enthalten. C D E I II III IV Leerlauf a i A 98 100 101 0 2000 B 104 121 115 0 1500 C 0 0 28 44 20 50 1000 D 0 16 20 10 20 1200 E 0 15 22 24 23 1800 b j 1000 1200 1800 800 600 500 1200 400 7500 H. Weber, FHW, OR SS07, Teil 6, Seite 31
6. Zuordnungsprobleme Eine Sonderform der Transportprobleme bilden die Zuordnungsprobleme. Bei ihnen sind die Angebots- und Bedarfsmengen alle gleich Eins. Ferner sind die Anzahlen der Anbieter und Nachfrager gleich. Zuordnungsprobleme sind solche, bei denen je einem Element einer Menge je ein Element einer anderen Menge zuzuordnen ist, wobei die Eignung einer Einzelzuordnung in Kosten oder einer anderen sinnvollen Größe anzugeben ist. H. Weber, FHW, OR SS07, Teil 6, Seite 32
Beispiel: Heiratsproblem \ Tochter Karin Ingrid Elke Sigrid Freier \ Oskar 9 4 2 4 Willi 7 5 0 3 Emil 6 4 5 7 Hugo 9 6 5 7 Antipathieziffern: 0 (volle Symp.)... 9 (volle Antipathie) Zur Heirat sind die Freier nur bereit, wenn die Mitgift der Antipathieziffer entspricht. Das Problem kann mit dem Transportalgorithmus gelöst werden. H. Weber, FHW, OR SS07, Teil 6, Seite 33