# 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$ Anbieter $A_{i}$ $(i=1,\dotsc ,n)$ und eine bestimmte Anzahl $m$ Empfänger $B_{j}$ $(j=1,\dotsc ,m)$ gegeben. Im Standardfall ist die gesamte nachgefragte Menge gleich der gesamten angebotenen. Für den Transport einer Einheit $x_{ij}$ zwischen $A_{i}$ und $B_{j}$ fallen Kosten $c_{ij}$ an. Das Problem besteht darin, die von $A_{i}$ nach $B_{j}$ gelieferte Menge $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\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.

## 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_{ij}$ wird dazu analysiert, wie sich die Gesamtkosten ändern würden, wenn eine Einheit des Gutes von $A_{i}$ nach $B_{j}$ transportiert werden würde. Dazu wird zu der Zelle $(i,j)$ einer jeden Nichtbasisvariablen $x_{ij}$ zusammen mit den Zellen der Basisvariablen ein elementarer Kreis bestimmt. Die Zellen $z_{1}$ bis $z_{k}$ $(k\geq 5)$ bilden dabei einen elementaren Kreis, wenn $z_{1}=z_{k}$, zwei aufeinanderfolgende Zellen $z_{i}$ und $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),\cdots ,(v,j)$ der Basisvariablen, die zusammen mit der Zelle $(i,j)$ der Nichtbasisvariablen $x_{ij}$ einen elementaren Kreis beschreiben, bestimmt. Dann lassen sich die Gesamtkosten um $k_{ij}:=c_{ij}-c_{io}+c_{po}-c_{pq}+\cdots -c_{vj}$ pro zusätzlicher von $A_{i}$ nach $B_{j}$ transportierter Einheit verbessern. Ist $k_{ij}$ positiv, würde dies zu einer Erhöhung der Gesamtkosten führen, ist $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_{ij}$ mit dem negativsten $k_{ij}$ als neue Basisvariable aufgenommen und mit der wertmäßig kleinsten Basisvariable $x_{ab}$, deren Kosten bei der Bestimmung von $k_{ij}$ mit negativem Faktor einging, ersetzt. Die Nichtbasisvariable $x_{ij}$ wird neue Basisvariable mit dem Wert von $x_{ab}$ und $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_{ab}$ erhöht bzw. (wenn die zugehörigen Kosten bei der Bestimmung von $k_{ij}$ mit negativem Faktor eingingen) verringert. Alle anderen Variablen $x_{kl}$ bleiben unverändert. Das Verfahren wird solange wiederholt, bis alle (in jeder Iteration neu zu bestimmenden) $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}$ und $A_{2}$ und drei Bedarfsanmeldungen $B_{1}$, $B_{2}$ und $B_{3}$ gibt und $x_{ij}$ hier die von $i$ nach $j$ gelieferte Menge bezeichnet.
${\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_{ij}$, die für den Transport einer Einheit von $i$ nach $j$ entstehen, sind in der folgenden Tabelle aufgeführt.
${\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
${\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\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.
${\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:
    $dc_{13}=+3-4+5-6=-2.$
Es würden also die Kosten um 2 Euro sinken, wenn $A_{1}$ eine Einheit zu $B_{3}$ transportieren würde.
Eine Analyse von Zelle 21 ergibt:
${\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
    $dc_{21}=+5-5+4-7=-3$.
Es würden also die Kosten um 3 Euro sinken, wenn $A_{2}$ eine Einheit zu $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.
${\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
    $dc_{13}=3-7+5-6=-5$
und
    $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
${\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
    $dc_{11}=7-3+6-5>0$.
Die Nichtbasisvariable in Zelle 22 erzeugt hingegen
    $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
${\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\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}$, der das überschüssige Angebot nachfragt und Transportkosten $c_{i,m+1}=0$ für alle Anbieter $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_{ij}$ bei Aufnahme der Variable $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_{ij}$ mit geringerem Rechenaufwand (aber identischen Werten) als bei der Stepping-Stone-Methode bestimmt.
* Gibt es mehrere negative $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.