MODI-Methode

Die Modifizierte Distributionsmethode (MODI-Methode), auch als Potentialmethode, u-v-Methode oder Transportalgorithmus bezeichnet, ist ein numerisches Verfahren, mit dem man (bei gegebener Anfangs-Basislösung) ein Standard-Transportproblem optimal lösen kann.

Verfahren

Es sind für ein Gut eine bestimmte Anzahl n {\displaystyle n} Anbieter A i {\displaystyle A_{i}} ( i = 1 , . . . , n ) {\displaystyle (i=1,...,n)} und eine bestimmte Anzahl m {\displaystyle m} Empfänger B j {\displaystyle B_{j}} ( j = 1 , . . . , m ) {\displaystyle (j=1,...,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 oder der Vogelschen 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 zunächst gleich Null gesetzt wurden, sind die Nichtbasisvariablen, die restlichen die Basisvariablen des zu Grunde liegenden Gleichungssystems. Die MODI-Methode verringert anschließend iterativ durch Austausch einer Nichtbasisvariablen mit einer Basisvariablen die Gesamtkosten. Kann keine Verbesserung mehr erzielt werden, ist eine Optimallösung gefunden.

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, um welchen Wert k i j {\displaystyle k_{ij}} 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}} die Kostenänderung mit k i j = c i j u i v j {\displaystyle k_{ij}=c_{ij}-u_{i}-v_{j}} berechnet, wobei zuvor die u 1 , , u m {\displaystyle u_{1},\cdots ,u_{m}} und v 1 , , v n {\displaystyle v_{1},\cdots ,v_{n}} iterativ mit der Gleichung u i + v j = c i j {\displaystyle u_{i}+v_{j}=c_{ij}} berechnet wurden und dabei genau ein u i {\displaystyle u_{i}} oder v j {\displaystyle v_{j}} gleich Null gesetzt wurde und nur entsprechende Kosten c i j {\displaystyle c_{ij}} von Basisvariablen x i j {\displaystyle x_{ij}} zur Berechnung benutzt wurden.

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 deshalb die Nichtbasisvariable x i j {\displaystyle x_{ij}} mit dem negativsten k i j {\displaystyle k_{ij}} als neue Basisvariable aufgenommen. Zu der zugehörigen Zelle ( i , j ) {\displaystyle (i,j)} des Transporttableaus wird dazu 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)} x i j {\displaystyle x_{ij}} einen elementaren Kreis beschreiben, bestimmt. Jetzt wird wie bei der Stepping-Stone-Methode entlang des elementaren Kreises alternierend von der ersten Basisvariablen x i o {\displaystyle x_{io}} der Wert h {\displaystyle h} subtrahiert und auf die nächste Basisvariable x p o {\displaystyle x_{po}} addiert, bis die Zelle ( i , j ) {\displaystyle (i,j)} erreicht wird. Dabei ist h {\displaystyle h} der kleinste Wert der Basisvariablen, von denen h {\displaystyle h} subtrahiert werden soll. Diese Basisvariable wird zu einer neuen Nichtbasisvariablen und durch x i j {\displaystyle x_{ij}} mit Wert h {\displaystyle h} in der neuen Basislösung ersetzt. 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.

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 MODI-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 Stepping-Stone-Methode. Dabei werden die Kostenveränderungen k i j {\displaystyle k_{ij}} mit höherem Rechenaufwand (aber identischen Werten) als bei der MODI-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.

Beispiel

Es liege folgendes, tabellarisch zusammengefasstes Transportproblem vor, bei dem die Anbieter A 1 {\displaystyle A_{1}} und A 2 {\displaystyle A_{2}} die Mengen 12 bzw. 8 anbieten und von drei Nachfragern B 1 {\displaystyle B_{1}} , B 2 {\displaystyle B_{2}} und B 3 {\displaystyle B_{3}} die Mengen 4, 10 bzw. 6 nachgefragt werden. In der links stehenden Tabelle bezeichnen die x i j {\displaystyle x_{ij}} die von i {\displaystyle i} nach j {\displaystyle j} zu liefernde Menge. Die rechts nebenstehende Tabelle enthält die Kosten c i j {\displaystyle c_{ij}} , die für den Transport einer Einheit x i j {\displaystyle x_{ij}} von i {\displaystyle i} nach j {\displaystyle j} entstehen.

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

Als Eröffnungsverfahren wird das Nord-West-Ecken-Verfahren verwendet. Damit ergibt sich folgende, noch nicht optimale, Ausgangslösung:
x i j 4 10 6 12 4 8 8 2 6 {\displaystyle {\begin{array}{c|ccc}x_{ij}&4&10&6\\\hline 12&4&8&\\8&&2&6\\\end{array}}}

Zur Bestimmung der v j {\displaystyle v_{j}} und u i {\displaystyle u_{i}} werden die Kosten der Basisvariablen benötigt:
c i j B 1 B 2 B 3 A 1 7 4 u 1 A 2 5 6 u 2 v 1 v 2 v 3 {\displaystyle {\begin{array}{c|ccc|c}c_{ij}&B_{1}&B_{2}&B_{3}&\\\hline A_{1}&7&4&&u_{1}\\A_{2}&&5&6&u_{2}\\\hline &v_{1}&v_{2}&v_{3}&\\\end{array}}}

Setze dazu v 3 = 0 {\displaystyle v_{3}=0} . Mit v 3 {\displaystyle v_{3}} und den Kosten c 23 {\displaystyle c_{23}} der Basisvariable x 23 {\displaystyle x_{23}} lässt sich jetzt mit der Formel c i j = u i + v j {\displaystyle c_{ij}=u_{i}+v_{j}} der Wert von u 2 {\displaystyle u_{2}} berechnen: u 2 = c 23 v 3 = 6 0 = 6 {\displaystyle u_{2}=c_{23}-v_{3}=6-0=6} . Mit u 2 {\displaystyle u_{2}} und c 22 {\displaystyle c_{22}} lässt sich nun v 2 {\displaystyle v_{2}} berechnen: v 2 = c 22 u 2 = 5 6 = 1 {\displaystyle v_{2}=c_{22}-u_{2}=5-6=-1} . Ebenso lassen sich jetzt noch u 1 = 4 ( 1 ) = 5 {\displaystyle u_{1}=4-(-1)=5} und v 1 = 7 5 = 2 {\displaystyle v_{1}=7-5=2} berechnen. Mit den v j {\displaystyle v_{j}} und u i {\displaystyle u_{i}} und c i j {\displaystyle c_{ij}} aus obiger Kostentabelle lassen sich jetzt mit der Formel k i j = c i j u i v j {\displaystyle k_{ij}=c_{ij}-u_{i}-v_{j}} die Kostenänderung berechnen, die sich bei Transport von einer Einheit über die Nichtbasisvariablen x i j {\displaystyle x_{ij}} ergeben:
u i k 13 5 k 21 6 v j 2 1 0 {\displaystyle {\begin{array}{c|ccc|c}&&&&u_{i}\\\hline &&&k_{13}&5\\&k_{21}&&&6\\\hline v_{j}&2&-1&0&\\\end{array}}}

Also ist k 13 = c 13 u 1 v 3 = 3 5 0 = 2 {\displaystyle k_{13}=c_{13}-u_{1}-v_{3}=3-5-0=-2} und k 21 = c 21 u 2 v 1 = 5 6 2 = 3 {\displaystyle k_{21}=c_{21}-u_{2}-v_{1}=5-6-2=-3} . Mit beiden x i j {\displaystyle x_{ij}} würde sich also eine Kostenverringerung ergeben. Da bei x 21 {\displaystyle x_{21}} die Ersparnisse größer sind wählen wir diese Nichtbasisvariable und ermitteln den elementaren Kreis zur Zelle ( 2 , 1 ) {\displaystyle (2,1)} . Dieser ist ( 2 , 1 ) , ( 2 , 2 ) , ( 1 , 2 ) {\displaystyle (2,1),(2,2),(1,2)} und ( 1 , 1 ) {\displaystyle (1,1)} . Maximal können jetzt zwei Einheiten über x 21 {\displaystyle x_{21}} transportiert werden, da sonst x 22 {\displaystyle x_{22}} negativ werden würde: Entlang des elementaren Kreises werden jetzt die zwei Einheiten abwechselnd hinzuaddiert bzw. subtrahiert. Dabei wird x 21 {\displaystyle x_{21}} zur Basisvariablen und x 22 {\displaystyle x_{22}} zur Nichtbasisvariablen:
x i j 4 10 6 12 2 10 8 2 6 {\displaystyle {\begin{array}{c|ccc}x_{ij}&4&10&6\\\hline 12&2&10&\\8&2&&6\\\end{array}}}

Jetzt müssen wieder wie oben mit den Kosten c i j {\displaystyle c_{ij}} aus der obigen Tabelle der Basisvariablen und durch setzen von v 3 = 0 {\displaystyle v_{3}=0} die übrigen v j {\displaystyle v_{j}} und u i {\displaystyle u_{i}} mit der Formel c i j = u i + v j {\displaystyle c_{ij}=u_{i}+v_{j}} berechnet werden:
c i j u i 7 4 8 5 6 6 v j 1 4 0 {\displaystyle {\begin{array}{c|ccc|c}c_{ij}&&&&u_{i}\\\hline &7&4&&8\\&5&&6&6\\\hline v_{j}&-1&-4&0&\\\end{array}}}

Mit den v j {\displaystyle v_{j}} , u i {\displaystyle u_{i}} und c i j {\displaystyle c_{ij}} lassen sich jetzt wieder die Kostenänderungen k 13 {\displaystyle k_{13}} und k 22 {\displaystyle k_{22}} berechnen: k 13 = c 13 u 1 v 3 = 3 8 0 = 5 {\displaystyle k_{13}=c_{13}-u_{1}-v_{3}=3-8-0=-5} und analog k 22 = 5 + 4 6 = 3 {\displaystyle k_{22}=5+4-6=3} . Mit Transport einer Einheit über x 13 {\displaystyle x_{13}} lässt sich also wieder eine Kostensenkung erreichen. Der elementare Kreis zur Zelle ( 1 , 3 ) {\displaystyle (1,3)} ist: ( 1 , 3 ) , ( 1 , 1 ) , ( 2 , 1 ) {\displaystyle (1,3),(1,1),(2,1)} und ( 2 , 3 ) {\displaystyle (2,3)} . Es lassen sich also wieder maximal zwei Einheiten (wegen x 11 = 2 {\displaystyle x_{11}=2} ) entlang des elementaren Kreises verschieben und es entsteht die neue Basislösung:
x i j 4 10 6 12 10 2 8 4 4 {\displaystyle {\begin{array}{c|ccc}x_{ij}&4&10&6\\\hline 12&&10&2\\8&4&&4\\\end{array}}}

Jetzt müssen wieder zur Bestimmung von k 11 {\displaystyle k_{11}} und k 22 {\displaystyle k_{22}} die v j {\displaystyle v_{j}} und u i {\displaystyle u_{i}} bestimmt werden. Dieses wird solange wiederholt, bis in einer Iteration die k i j {\displaystyle k_{ij}} alle nicht negativ sind und damit eine Optimallösung, bzw. wenn alle k i j {\displaystyle k_{ij}} größer als Null sind, die Optimallösung gefunden wurde. Es ergibt sich die gleiche Lösung wie im Beispiel zur Stepping-Stone-Methode.