Matrixminimumverfahren

Das Matrixminimumverfahren (oder aufsteigende Indexmethode, Rangfolgeverfahren[1]) ist ein Eröffnungsverfahren aus dem Operations Research zur Lösung von Transportproblemen. Der Name leitet sich aus der Betrachtung der Kostenmatrix ab, in der das jeweilige Minimum für die nächste Iteration des Algorithmus herangezogen wird.

Das Matrixminimumverfahren liefert für das zugrunde liegende Transportproblem immer eine zulässige Lösung (auch Ausgangs- bzw. Basislösung), die jedoch nicht zwangsläufig optimal ist.

Algorithmus

Aufstellen der Kostenmatrix

Ziel bei der Lösung des Transportproblems ist es, möglichst kostengünstig ein Gut, welches an m {\displaystyle m} Orten ( A 1 , A 2 , , A m ) {\displaystyle (A_{1},A_{2},\dotsc ,A_{m})} in der Menge a i   ( i = 1 , , m ) {\displaystyle a_{i}{\text{ }}(i=1,\dotsc ,m)} angeboten wird, zu den n {\displaystyle n} Nachfrageorten ( B 1 , B 2 , , B n ) {\displaystyle (B_{1},B_{2},\dotsc ,B_{n})} , an denen die Mengen b i   ( i = 1 , , n ) {\displaystyle b_{i}\ (i=1,\dotsc ,n)} benötigt werden, zu transportieren. Die Summe der angebotenen Einheiten entspricht dabei im klassischen Transportsystem der Summe der nachgefragten Einheiten.

Aus den Informationen des Transportproblems lässt sich eine Matrix C erstellen, welche die Kosten c i j {\displaystyle c_{ij}} zwischen den Orten A i   ( i = 1 , , m ) {\displaystyle A_{i}{\text{ }}(i=1,\dotsc ,m)} und B j   ( j = 1 , , n ) {\displaystyle B_{j}\ (j=1,\dotsc ,n)} in Geldeinheiten (GE) pro transportierter Einheit aufzeigt. Zudem können in dieser so genannten Kostenmatrix die Angebots- bzw. Nachfragemengen eingebunden werden.

B 1 B 2 B j B n Angebot A 1 c 11 c 12 c 1 j c 1 n a 1 A 2 c 21 c 22 c 2 j c 2 n a 2 A i c i 1 c i 2 c i j c i n a i A m c m 1 c m 2 c m j c m n a m Nachfrage b 1 b 2 b j b n Summe {\displaystyle {\begin{array}{c|cccccc|c}&B_{1}&B_{2}&\dots &B_{j}&\dots &B_{n}&{\text{Angebot}}\\\hline A_{1}&c_{11}&c_{12}&\dots &c_{1j}&\dots &c_{1n}&a_{1}\\A_{2}&c_{21}&c_{22}&\dots &c_{2j}&\dots &c_{2n}&a_{2}\\\vdots &\vdots &\vdots &&\vdots &&\vdots &\vdots \\A_{i}&c_{i1}&c_{i2}&\dots &c_{ij}&\dots &c_{in}&a_{i}\\\vdots &\vdots &\vdots &&\vdots &&\vdots &\vdots \\A_{m}&c_{m1}&c_{m2}&\dots &c_{mj}&\dots &c_{mn}&a_{m}\\\hline {\text{Nachfrage}}&b_{1}&b_{2}&\dots &b_{j}&\dots &b_{n}&{\text{Summe}}\\\end{array}}}

Die 1. Iteration

Die auf die Erstellung der Kostenmatrix folgenden Schritte sind:

  1. Suchen der geringsten Kosten c u v = min ( c i j ) {\displaystyle c_{uv}=\min(c_{ij})} in der Kostenmatrix ( i = 1 , , m {\displaystyle (i=1,\dotsc ,m} und j = 1 , , n ) {\displaystyle j=1,\dotsc ,n)} .
  2. Ermittlung der maximal möglichen Transportmenge x u v = min ( a u , b v ) {\displaystyle x_{uv}=\min(a_{u},b_{v})} auf diesem Weg.
  3. Subtraktion der ermittelten Transportmenge im Angebot der u-Zeile und in der Nachfrage der v-Spalte. Der Transport von x u v {\displaystyle x_{uv}} Einheiten vom Ort A u {\displaystyle A_{u}} zum Ort B v {\displaystyle B_{v}} ist nun Teil der Lösung.
  4. Streichung einer Zeile bzw. Spalte, sobald das Angebot ausgeschöpft bzw. die Nachfrage befriedigt ist.
  5. Aufstellen der neuen Kostenmatrix C 1 {\displaystyle C_{1}} .

Anmerkung zum 1. Schritt: Sollte min ( c i j ) {\displaystyle \min(c_{ij})} aus mehr als einem Element bestehen, so ist die Wahl des Matrixelementes aus dieser Menge, über dem die Iteration ausgeführt wird, grundsätzlich frei. Um durch den Algorithmus schneller zu einer Lösung zu gelangen ist es oft sinnvoll, die Iteration dort auszuführen, wo die maximal mögliche Transportmenge am größten ist.

Die weiteren Iterationen

Die weiteren Iterationen nehmen als Grundlage jeweils die letzte erstellte neue Kostenmatrix. Der h-ten Iteration liegt also die Kostenmatrix C h 1 {\displaystyle C_{h-1}} zugrunde. Die Iterationsschritte selbst sind die gleichen, wie bei der ersten Iteration. Erreicht die Kostenmatrix die Dimension ( 0 × 0 ) {\displaystyle (0\times 0)} , sind also weder Spalten noch Zeilen übrig, so hat der Algorithmus sein Abbruchkriterium erreicht und die Basislösung ist gefunden.

Beispiel

Aufstellung der Kostenmatrix

Anhand des folgenden Beispiels soll das Matrixminimumverfahren erläutert werden.

Ausgehend von vier Angebotsorten A 1 {\displaystyle A_{1}} bis A 4 {\displaystyle A_{4}} mit den Angebotsmengen:

  • a 1 = 10 {\displaystyle a_{1}=10}
  • a 2 = 8 {\displaystyle a_{2}=8}
  • a 3 = 14 {\displaystyle a_{3}=14}
  • a 4 = 12 {\displaystyle a_{4}=12}

und vier Nachfrageorten B 1 {\displaystyle B_{1}} bis B 4 {\displaystyle B_{4}} mit den Nachfragemengen:

  • b 1 = 18 {\displaystyle b_{1}=18}
  • b 2 = 7 {\displaystyle b_{2}=7}
  • b 3 = 9 {\displaystyle b_{3}=9}
  • b 4 = 10 {\displaystyle b_{4}=10}

sowie den Informationen zu den jeweiligen Transportkosten wird folgende Kostenmatrix C erstellt:

B 1 B 2 B 3 B 4 Angebot A 1 4 6 2 3 10 A 2 8 1 7 5 8 A 3 3 2 2 4 14 A 4 7 8 4 2 12 Nachfrage 18 7 9 10 44 {\displaystyle {\begin{array}{c|cccc|c}&B_{1}&B_{2}&B_{3}&B_{4}&{\text{Angebot}}\\\hline A_{1}&4&6&2&3&10\\A_{2}&8&1&7&5&8\\A_{3}&3&2&2&4&14\\A_{4}&7&8&4&2&12\\\hline {\text{Nachfrage}}&18&7&9&10&44\\\end{array}}}

Die 1. Iteration

Aus dieser Kostenmatrix wird nun in mehreren Schritten eine Basislösung gewonnen. In der ersten Iteration geschieht Folgendes:

  1. Suchen der geringsten Kosten c u v = min ( c i j ) {\displaystyle c_{uv}=\min(c_{ij})} in der Kostenmatrix ( i , j = 1 , , 4 ) {\displaystyle (i,j=1,\dotsc ,4)} . Hier ist min ( c i j ) = c 22 = 1 {\displaystyle \min(c_{ij})=c_{22}=1} .
  2. Ermittlung der maximal möglichen Transportmenge x u v = min ( a u , b v ) {\displaystyle x_{uv}=\min(a_{u},b_{v})} auf diesem Weg. Im Beispiel also min ( a 2 , b 2 ) = min ( 8 , 7 ) = 7 {\displaystyle \min(a_{2},b_{2})=\min(8,7)=7} .
  3. Subtraktion der ermittelten Transportmenge im Angebot der u-Zeile und in der Nachfrage der v-Spalte. Es ergibt sich also neu, dass a 2 = 8 7 = 1 {\displaystyle a_{2}=8-7=1} und b 2 = 7 7 = 0 {\displaystyle b_{2}=7-7=0} ist. Der Transport von 7 Einheiten vom Ort A 2 {\displaystyle A_{2}} zum Ort B 2 {\displaystyle B_{2}} ist nun Teil der Lösung.
  4. Streichung einer Zeile bzw. Spalte, sobald das Angebot ausgeschöpft bzw. die Nachfrage befriedigt ist. Die Nachfrage b 2 = 0 {\displaystyle b_{2}=0} am Ort B 2 {\displaystyle B_{2}} ist nun befriedigt. Die zweite Spalte wird daher gestrichen.
  5. Aufstellen der neuen Kostenmatrix C 1 {\displaystyle C_{1}} .

Die neue Kostenmatrix C 1 {\displaystyle C_{1}} sieht folgendermaßen aus:

B 1 B 3 B 4 Angebot A 1 4 2 3 10 A 2 8 7 5 1 A 3 3 2 4 14 A 4 7 4 2 12 Nachfrage 18 9 10 37 {\displaystyle {\begin{array}{c|ccc|c}&B_{1}&B_{3}&B_{4}&{\text{Angebot}}\\\hline A_{1}&4&2&3&10\\A_{2}&8&7&5&1\\A_{3}&3&2&4&14\\A_{4}&7&4&2&12\\\hline {\text{Nachfrage}}&18&9&10&37\\\end{array}}}

Die weiteren Iterationen

Das Beispiel lässt sich nun bis zum Ende fortführen. Bereits im zweiten Schritt ist die Iteration über mehreren Elementen möglich, da min ( c i j ) = c 13 = c 33 = c 44 = 2 {\displaystyle \min(c_{ij})=c_{13}=c_{33}=c_{44}=2} ist. An dieser Stelle ist die Wahl des nächsten Elements aus dieser Menge grundsätzlich frei. Im Folgenden wird jedoch c 44 {\displaystyle c_{44}} verwendet, da hier die maximale Transportmenge am größten ist.

Auf eine einzelne Berechnung der Iterationen wird hier verzichtet. Die im Folgenden dargestellten weiteren Kostenmatrizen und Lösungsbestandteile sollen die Nachvollziehbarkeit des Beispiels gewährleisten.

Die 2. Iteration

Der Transport von 10 Einheiten vom Ort A 4 {\displaystyle A_{4}} zum Ort B 4 {\displaystyle B_{4}} wird Teil der Lösung. C 2 {\displaystyle C_{2}} stellt sich wie folgt dar:

B 1 B 3 Angebot A 1 4 2 10 A 2 8 7 1 A 3 3 2 14 A 4 7 4 2 Nachfrage 18 9 27 {\displaystyle {\begin{array}{c|cc|c}&B_{1}&B_{3}&{\text{Angebot}}\\\hline A_{1}&4&2&10\\A_{2}&8&7&1\\A_{3}&3&2&14\\A_{4}&7&4&2\\\hline {\text{Nachfrage}}&18&9&27\\\end{array}}}

Die 3. Iteration

Der Transport von 9 Einheiten vom Ort A 1 {\displaystyle A_{1}} zum Ort B 3 {\displaystyle B_{3}} wird Teil der Lösung. C 3 {\displaystyle C_{3}} stellt sich wie folgt dar:

B 1 Angebot A 1 4 1 A 2 8 1 A 3 3 14 A 4 7 2 Nachfrage 18 18 {\displaystyle {\begin{array}{c|c|c}&B_{1}&{\text{Angebot}}\\\hline A_{1}&4&1\\A_{2}&8&1\\A_{3}&3&14\\A_{4}&7&2\\\hline {\text{Nachfrage}}&18&18\\\end{array}}}

Die 4. Iteration

Der Transport von 14 Einheiten vom Ort A 3 {\displaystyle A_{3}} zum Ort B 1 {\displaystyle B_{1}} wird Teil der Lösung. C 4 {\displaystyle C_{4}} stellt sich wie folgt dar:

B 1 Angebot A 1 4 1 A 2 8 1 A 4 7 2 Nachfrage 4 4 {\displaystyle {\begin{array}{c|c|c}&B_{1}&{\text{Angebot}}\\\hline A_{1}&4&1\\A_{2}&8&1\\A_{4}&7&2\\\hline {\text{Nachfrage}}&4&4\\\end{array}}}

Die 5. Iteration

Der Transport von 1 Einheit vom Ort A 1 {\displaystyle A_{1}} zum Ort B 1 {\displaystyle B_{1}} wird Teil der Lösung. C 5 {\displaystyle C_{5}} stellt sich wie folgt dar:

B 1 Angebot A 2 8 1 A 4 7 2 Nachfrage 3 3 {\displaystyle {\begin{array}{c|c|c}&B_{1}&{\text{Angebot}}\\\hline A_{2}&8&1\\A_{4}&7&2\\\hline {\text{Nachfrage}}&3&3\\\end{array}}}

Die 6. Iteration

Der Transport von 2 Einheiten vom Ort A 4 {\displaystyle A_{4}} zum Ort B 1 {\displaystyle B_{1}} wird Teil der Lösung. C 6 {\displaystyle C_{6}} stellt sich wie folgt dar:

B 1 Angebot A 2 8 1 Nachfrage 1 1 {\displaystyle {\begin{array}{c|c|c}&B_{1}&{\text{Angebot}}\\\hline A_{2}&8&1\\\hline {\text{Nachfrage}}&1&1\\\end{array}}}

Die 7. Iteration

Der Transport von 1 Einheit vom Ort A 2 {\displaystyle A_{2}} zum Ort B 1 {\displaystyle B_{1}} wird Teil der Lösung. C 7 {\displaystyle C_{7}} hat die Dimension ( 0 × 0 ) {\displaystyle (0\times 0)} , womit das Abbruchkriterium des Algorithmus erreicht ist.

Ergebnisauswertung

Mit der Matrixminimummethode ist nun eine Basislösung gefunden, die sich zusammengefasst folgendermaßen darstellt:

Angebotsort Nachfrageort Transportmenge Preis pro Einheit Gesamtpreis
A2 B2 7 Einheiten 1 GE 7 GE
A4 B4 10 Einheiten 2 GE 20 GE
A1 B3 9 Einheiten 2 GE 18 GE
A3 B1 14 Einheiten 3 GE 42 GE
A1 B1 1 Einheiten 4 GE 4 GE
A4 B1 2 Einheiten 7 GE 14 GE
A2 B1 1 Einheiten 8 GE 8 GE
Gesamt 44 Einheiten 113 GE

Ob es sich dabei zugleich um die Optimallösung handelt, müsste im Folgenden beispielsweise unter Nutzung der MODI-Methode geprüft werden.

Vorteile

Aufgrund des einfachen Algorithmus, der nur die Transportkosten als Auswahlkriterium heranzieht, ist das Matrixminimumverfahren leicht anwend- und programmierbar. Zudem ist die Komplexität des Algorithmus vergleichsweise gering, was zu kurzen Rechenzeiten bei Computerprogrammen führt.

Nachteile

Das Matrixminimumverfahren liefert zwar eine gültige Basislösung für das Transportproblem, jedoch nicht zwangsläufig die Optimallösung. Das bedeutet, dass eine nachfolgende Lösungsverbesserung notwendig werden kann, was den Aufwand zur Lösung des Problems mitunter erheblich erhöht.

Anwendung

Als Eröffnungsheuristik ist das Matrixminimumverfahren insgesamt meist dann sinnvoll, wenn lediglich eine beliebige zulässige Lösung für ein Transportproblem benötigt wird. Daher findet es häufig Anwendung zur Ermittlung einer Ausgangslösung, bevor die Lösung beispielsweise mittels MODI-Methode oder Zyklenmethode (Stepping-Stone-Methode) optimiert wird.

Quellen

  1. W. Domschke. Transport: Grundlagen, lineare Transport- und Umladeprobleme 2007, S. 106–108.