Zyklenmethode

Die Zyklenmethode bzw. Stepping-Stone-Methode ist ein numerisches Verfahren, mit dem man (bei gegebener Ausgangs-Basislösung) ein Standard-Transportproblem lösen kann.

Es sind für ein Gut eine bestimmte Anzahl n {\displaystyle n} Anbieter A i {\displaystyle A_{i}} ( i = 1 , , n ) {\displaystyle (i=1,\dotsc ,n)} und eine bestimmte Anzahl m {\displaystyle m} Empfänger B j {\displaystyle B_{j}} ( j = 1 , , m ) {\displaystyle (j=1,\dotsc ,m)} gegeben. Im Standardfall ist die gesamte nachgefragte Menge gleich der gesamten angebotenen. Für den Transport einer Einheit x i j {\displaystyle x_{ij}} zwischen A i {\displaystyle A_{i}} und B j {\displaystyle B_{j}} fallen Kosten c i j {\displaystyle c_{ij}} an. Das Problem besteht darin, die von A i {\displaystyle A_{i}} nach B j {\displaystyle B_{j}} gelieferte Menge x i j {\displaystyle x_{ij}} so festzulegen, dass die Gesamttransportkosten minimiert werden.

Da es sich um ein Verbesserungsverfahren handelt, wird zunächst mit einem Eröffnungsverfahren (z. B. dem Matrixminimumverfahren, dem Nord-West-Ecken-Verfahren, dem Zeilen- oder Spaltenfolgeverfahren, der Zeilen-Spalten-Sukzession, der Vogelschen Approximationsmethode oder der Russell´schen Approximationsmethode) eine zulässige Anfangsbasislösung x R m n {\displaystyle x\in \mathbb {R} ^{mn}} bestimmt. Variablen der Basislösung, die im Eröffnungsverfahren a priori gleich Null gesetzt wurden, sind die Nichtbasisvariablen, die restlichen die Basisvariablen des zu Grunde liegenden Gleichungssystems. Die Stepping-Stone-Methode verringert dann iterativ durch Austausch einer Nichtbasisvariablen mit einer Basisvariablen die Gesamtkosten. Kann keine Verbesserung mehr erzielt werden, ist eine Optimallösung gefunden.

Geschichte

Als Urheber der Zyklenmethode gelten Abraham Charnes und William W. Cooper.[1]

Verfahren

Das Optimierungsverfahren wird iterativ durchgeführt. In jedem Schritt werden alle Nichtbasisvariablen im Hinblick auf das Kostensenkungspotential überprüft. Für jede Nichtbasisvariable x i j {\displaystyle x_{ij}} wird dazu analysiert, wie sich die Gesamtkosten ändern würden, wenn eine Einheit des Gutes von A i {\displaystyle A_{i}} nach B j {\displaystyle B_{j}} transportiert werden würde. Dazu wird zu der Zelle ( i , j ) {\displaystyle (i,j)} einer jeden Nichtbasisvariablen x i j {\displaystyle x_{ij}} zusammen mit den Zellen der Basisvariablen ein elementarer Kreis bestimmt. Die Zellen z 1 {\displaystyle z_{1}} bis z k {\displaystyle z_{k}} ( k 5 ) {\displaystyle (k\geq 5)} bilden dabei einen elementaren Kreis, wenn z 1 = z k {\displaystyle z_{1}=z_{k}} , zwei aufeinanderfolgende Zellen z i {\displaystyle z_{i}} und z i + 1 {\displaystyle z_{i+1}} in der gleichen Zeile oder Spalte des Tableau liegen und in jeder Spalte und Zeile höchstens zwei Zellen des elementaren Kreises sind. Seien jetzt die Zellen ( i , o ) , ( p , o ) , ( p , q ) , , ( v , j ) {\displaystyle (i,o),(p,o),(p,q),\cdots ,(v,j)} der Basisvariablen, die zusammen mit der Zelle ( i , j ) {\displaystyle (i,j)} der Nichtbasisvariablen x i j {\displaystyle x_{ij}} einen elementaren Kreis beschreiben, bestimmt. Dann lassen sich die Gesamtkosten um k i j := c i j c i o + c p o c p q + c v j {\displaystyle k_{ij}:=c_{ij}-c_{io}+c_{po}-c_{pq}+\cdots -c_{vj}} pro zusätzlicher von A i {\displaystyle A_{i}} nach B j {\displaystyle B_{j}} transportierter Einheit verbessern. Ist k i j {\displaystyle k_{ij}} positiv, würde dies zu einer Erhöhung der Gesamtkosten führen, ist k i j {\displaystyle k_{ij}} gleich Null, würden sich die Gesamtkosten nicht ändern. Um mit möglichst wenig Iterationen zur Optimallösung zu kommen wird deswegen die Nichtbasisvariable x i j {\displaystyle x_{ij}} mit dem negativsten k i j {\displaystyle k_{ij}} als neue Basisvariable aufgenommen und mit der wertmäßig kleinsten Basisvariable x a b {\displaystyle x_{ab}} , deren Kosten bei der Bestimmung von k i j {\displaystyle k_{ij}} mit negativem Faktor einging, ersetzt. Die Nichtbasisvariable x i j {\displaystyle x_{ij}} wird neue Basisvariable mit dem Wert von x a b {\displaystyle x_{ab}} und x a b {\displaystyle x_{ab}} wird neue Nichtbasisvariable mit Wert Null. Damit die neue Basislösung zulässig bleibt, werden die übrigen Basisvariablen des elementaren Kreises um den Wert der ursprünglichen Basisvariable x a b {\displaystyle x_{ab}} erhöht bzw. (wenn die zugehörigen Kosten bei der Bestimmung von k i j {\displaystyle k_{ij}} mit negativem Faktor eingingen) verringert. Alle anderen Variablen x k l {\displaystyle x_{kl}} bleiben unverändert. Das Verfahren wird solange wiederholt, bis alle (in jeder Iteration neu zu bestimmenden) k i j {\displaystyle k_{ij}} größer oder gleich Null sind, die Gesamtkosten also nicht mehr verringert werden können und die Lösung damit optimal ist.

Beispiel

Es liegt folgendes, tabellarisch zusammengefasstes Transportproblem vor, wobei es zwei Angebote A 1 {\displaystyle A_{1}} und A 2 {\displaystyle A_{2}} und drei Bedarfsanmeldungen B 1 {\displaystyle B_{1}} , B 2 {\displaystyle B_{2}} und B 3 {\displaystyle B_{3}} gibt und x i j {\displaystyle x_{ij}} hier die von i {\displaystyle i} nach j {\displaystyle j} gelieferte Menge bezeichnet.

B 1 B 2 B 3 A 1 x 11 x 12 x 13 12 A 2 x 21 x 22 x 23 8 4 10 6 20 {\displaystyle {\begin{array}{c|ccc|c}&B_{1}&B_{2}&B_{3}\\\hline A_{1}&x_{11}&x_{12}&x_{13}&12\\A_{2}&x_{21}&x_{22}&x_{23}&8\\\hline &4&10&6&20\end{array}}}

Die Kosten c i j {\displaystyle c_{ij}} , die für den Transport einer Einheit von i {\displaystyle i} nach j {\displaystyle j} entstehen, sind in der folgenden Tabelle aufgeführt.

c i j B 1 B 2 B 3 A 1 7 4 3 12 A 2 5 5 6 8 4 10 6 20 {\displaystyle {\begin{array}{c|ccc|c}c_{ij}&B_{1}&B_{2}&B_{3}\\\hline A_{1}&7&4&3&12\\A_{2}&5&5&6&8\\\hline &4&10&6&20\end{array}}}

Für die praktische Durchführung werden die Transportmengen in die Tabelle eingetragen und die entsprechenden Kosten werden in jeder Zelle oben links mit aufgeführt. Es wurde hier als Anfangslösung das Nord-West-Ecken-Verfahren verwendet. Es ergibt sich also

B 1 B 2 B 3 A 1 7 / 4 4 / 8 3 / 0 12 A 2 5 / 0 5 / 2 6 / 6 8 4 10 6 20 {\displaystyle {\begin{array}{c|ccc|c}&B_{1}&B_{2}&B_{3}\\\hline A_{1}&7/4&4/8&3/0&12\\A_{2}&5/0&5/2&6/6&8\\\hline &4&10&6&20\end{array}}}

und man erhält Gesamtkosten von

4 7 + 8 4 + 0 3 + 0 5 + 2 5 + 6 6 = 106 {\displaystyle 4\cdot 7+8\cdot 4+0\cdot 3+0\cdot 5+2\cdot 5+6\cdot 6=106} .

Es wird nun versuchsweise der Inhalt von Zelle 13 (soll bedeuten: (A1|B3)) um Eins erhöht. Man sieht, wie sich die Änderungen kreisförmig fortpflanzen.

B 1 B 2 B 3 A 1 7 / 4 4 / 1 8 3 / + 1 0 12 A 2 5 / 0 5 / + 1 2 6 / 1 6 8 4 10 6 20 {\displaystyle {\begin{array}{c|ccc|c}&B_{1}&B_{2}&B_{3}\\\hline A_{1}&7/4&4/\,{\mathit {-1}}\;8&3/\,{\mathit {+1}}\;\mathbf {0} &12\\A_{2}&5/0&5/\,{\mathit {+1}}\;2&6/\,{\mathit {-1}}\;6&8\\\hline &4&10&6&20\end{array}}}

Ebenso ändern sich die Kosten pro Einheit:

d c 13 = + 3 4 + 5 6 = 2. {\displaystyle dc_{13}=+3-4+5-6=-2.}

Es würden also die Kosten um 2 Euro sinken, wenn A 1 {\displaystyle A_{1}} eine Einheit zu B 3 {\displaystyle B_{3}} transportieren würde.

Eine Analyse von Zelle 21 ergibt:

B 1 B 2 B 3 A 1 7 / 1 4 4 / + 1 8 3 / 0 12 A 2 5 / + 1 0 5 / 1 2 6 / 6 8 4 10 6 20 {\displaystyle {\begin{array}{c|ccc|c}&B_{1}&B_{2}&B_{3}\\\hline A_{1}&7/\,{\mathit {-1}}\;4&4/\,{\mathit {+1}}\;8&3/0&12\\A_{2}&5/\,{\mathit {+1}}\;0&5/\,{\mathit {-1}}\;2&6/6&8\\\hline &4&10&6&20\end{array}}}

Die Kosten pro Einheit ändern sich um

d c 21 = + 5 5 + 4 7 = 3 {\displaystyle dc_{21}=+5-5+4-7=-3} .

Es würden also die Kosten um 3 Euro sinken, wenn A 2 {\displaystyle A_{2}} eine Einheit zu B 1 {\displaystyle B_{1}} transportieren würde. Man sieht, dass die letztere Änderung die Kosten mehr senkt. Es wird nun so viel wie erlaubt in Zelle 21 transferiert, wobei die Vorzeichen der Einsen angeben, ob der Betrag addiert oder subtrahiert wird.

B 1 B 2 B 3 A 1 7 / 2 4 / 10 3 / 0 12 A 2 5 / 2 5 / 0 6 / 6 8 4 10 6 20 {\displaystyle {\begin{array}{c|ccc|c}&B_{1}&B_{2}&B_{3}\\\hline A_{1}&7/2&4/10&3/0&12\\A_{2}&5/2&5/0&6/6&8\\\hline &4&10&6&20\end{array}}}

Es konnten nur maximal zwei Einheiten in die Zelle 21 transferiert werden, weil sonst die Zelle 22 negativ geworden wäre. Die Zelle 21 ist jetzt Basisvariable, die Zelle 22 Nichtbasisvariable.

Es werden nun wieder alle Nichtbasisvariablen untersucht. Für die Zelle 13 ergibt sich jetzt der Kreis der Zellen 13 - 11 - 21 - 23, denn Zelle 22 ist Nichtbasisvariable und kann nicht simultan mit Zelle 13 geändert werden. Zelle 22 wird also übersprungen. Man erhält dann

d c 13 = 3 7 + 5 6 = 5 {\displaystyle dc_{13}=3-7+5-6=-5}

und

d c 22 = 5 4 + 7 5 > 0 {\displaystyle dc_{22}=5-4+7-5>0} .

Hier steigen die Kosten bei Änderung von Zelle 22. Es wird also Zelle 13 verändert. Es können maximal zwei Einheiten nach Zelle 13 transferiert werden und man erhält nun

B 1 B 2 B 3 A 1 7 / 0 4 / 10 3 / 2 12 A 2 5 / 4 5 / 0 6 / 4 8 4 10 6 20 {\displaystyle {\begin{array}{c|ccc|c}&B_{1}&B_{2}&B_{3}\\\hline A_{1}&7/0&4/10&3/2&12\\A_{2}&5/4&5/0&6/4&8\\\hline &4&10&6&20\end{array}}}

Es werden wieder alle Nichtbasisvariablen untersucht. Für die Zelle 11 ergibt sich jetzt der Kreis der Zellen 11 - 13 - 23 - 21, denn Zelle 22 ist Nichtbasisvariable und wird übersprungen. Man erhält dann

d c 11 = 7 3 + 6 5 > 0 {\displaystyle dc_{11}=7-3+6-5>0} .

Die Nichtbasisvariable in Zelle 22 erzeugt hingegen

d c 22 = 5 4 + 3 6 = 2 {\displaystyle dc_{22}=5-4+3-6=-2} .

Es wird also Zelle 22 verändert. Es können maximal vier Einheiten nach Zelle 22 transferiert werden und man erhält

B 1 B 2 B 3 A 1 7 / 0 4 / 6 3 / 6 12 A 2 5 / 4 5 / 4 6 / 0 8 4 10 6 20 {\displaystyle {\begin{array}{c|ccc|c}&B_{1}&B_{2}&B_{3}\\\hline A_{1}&7/0&4/6&3/6&12\\A_{2}&5/4&5/4&6/0&8\\\hline &4&10&6&20\end{array}}}

Eine neue Iteration ergibt nur noch Kostensteigerungen, also ist das Verfahren beendet. Man erhält Gesamtkosten von

0 7 + 6 4 + 6 3 + 4 5 + 4 5 + 0 6 = 82 {\displaystyle 0\cdot 7+6\cdot 4+6\cdot 3+4\cdot 5+4\cdot 5+0\cdot 6=82}

im Gegensatz zu 106 der Startlösung.

Bemerkungen

  • Ist die gesamte nachgefragte Menge kleiner als die gesamte angebotene Menge, kann durch Einführen eines fiktiven Nachfragers B m + 1 {\displaystyle B_{m+1}} , der das überschüssige Angebot nachfragt und Transportkosten c i , m + 1 = 0 {\displaystyle c_{i,m+1}=0} für alle Anbieter A i {\displaystyle A_{i}} hat, das Transportproblem in ein Standardtransportmodell transformiert werden und damit ebenfalls mit der Stepping-Stone-Methode gelöst werden.
  • Ist bei der Optimallösung eine mögliche Kostenveränderung k i j {\displaystyle k_{ij}} bei Aufnahme der Variable x i j {\displaystyle x_{ij}} gleich Null, bedeutet dieses, dass der Wert der zugehörige Nichtbasisvariable mit dem einer Basisvariablen ausgetauscht werden kann, ohne dass sich die Gesamtkosten ändern und die Optimallösung damit nicht eindeutig ist.
  • Eine ähnliche Methode zur Verbesserung einer Anfangsbasislösung und finden der Optimallösung ist die MODI-Methode. Dabei werden die Kostenveränderungen k i j {\displaystyle k_{ij}} mit geringerem Rechenaufwand (aber identischen Werten) als bei der Stepping-Stone-Methode bestimmt.
  • Gibt es mehrere negative k i j {\displaystyle k_{ij}} kann statt des betragsmäßig größten auch jene zugehörige Nichtbasisvariable ausgewählt werden, die zu einer maximalen Verbesserung der Kostensumme führt oder eine zufällig davon ausgewählt werden.

Einzelnachweise

  1. Theodor Ellinger: Operations Research: Eine Einführung, Auflage 6, S. 79.