ZU DEN KURSEN!

Operations Research - Revidierter Simplex-Algorithmus

Kursangebot | Operations Research | Revidierter Simplex-Algorithmus

Operations Research

Revidierter Simplex-Algorithmus

In diesem Abschnitt wird der revidierte Simplexalgorithmus aufgezeigt. Dieser wird angewandt, wenn die Anzahl der Variablen in einem linearen Optimierungsproblem wesentlich größer ist, als die Anzahl der Nebenbedingungen. Es wird im folgenden der revidierte Simplexalgorithmus für ein in kanonischer Form (Maximierungsproblem, kleiner/gleich-Nebenbedingungen, Nichtnegativitätsbedingung, positive Werte der rechten Seite) vorliegendes Problem aufgezeigt.

Gegeben sei das folgende lineare Maximierungsproblem in kanonischer Form:

$f(x_1, x_2, x_3) = 3x_1 + 5x_2 + 4x_3$  $\rightarrow$  max!


u.d.N.

$2x_1 + 2x_2 + x_3 \le 3$

$x_1 + 2x_2 + 4x_3 \le 5$

$x_1, x_2, x_3 \ge 0$

Das Problem wird zunächst auf die Normalform gebracht, indem die Schlupfvariablen eingefügt werden:

$f(x_1, x_2, x_3) = 3x_1 + 5x_2 + 4x_3$  $\rightarrow$  max!


u.d.N.

$2x_1 + 2x_2 + x_3 + x_4             = 3$

$x_1 + 2x_2 + 4x_3          + x_5    =  5$

$x_1, x_2, x_3, x_4, x_5 \ge 0$


Es liegt nun die folgende Form vor:

Methode

Hier klicken zum Ausklappen

max  $c^T x$

        $Ax = b$

        $ x \ge 0$

Vorgehensweise revidierte Simplexmethode

Bevor mit der Berechnung begonnen wird, werden die Koeffizienten in Matrizen geschrieben und die Basis- und Nichtbasisvariablen wie folgt festgelegt:

$c^T = (3, 5, 4, 0, 0)$

$A = \begin{bmatrix} 2 & 2 & 1 & 1 & 0 \\ 1 & 2 & 4 & 0 & 1 \end{bmatrix}$ 

$b =  \begin{pmatrix} 3 \\ 5 \end{pmatrix}$

Es werden ebenfalls die Schlupfvariablen in den Matrizen mitberücksichtigt. In die Zielfunktion gehen diese mit dem Wert null ein, weshalb dort für beide am Ende eine Null steht.

Es wird als nächstes die Matrix $B$ (nur Werte der Basisvariablen plus Einheitsvektor) aufgestellt:

$B = \begin{bmatrix} 1 & 0 & 0 \\  0 & 1 & 0 \\ 0 & 0 & 1 \end{bmatrix}$ 

Zu Beginn sind die Basisvariablen die Schlupfvariablen $x_4$ und $x_5$. Es werden alle Werte der Nebenbedingungen für die Basisvariablen, ohne die rechte Seite berücksichtigt. Die Zielfunktion für die Basisvariablen wird die letzte Zeile der Matrix. Für die Basisvariablen sind die Zielfunktionswerte alle Null. Außerdem wird noch ein Einheitsvektor (mit der $1$ in der letzten Zeile) berücksichtigt.

Die Matrix $N$ (nur Werte der Nichtbasisvariablen) wird ebenfalls benötigt:

$N = \begin{bmatrix} 2 & 2 & 1 \\ 1 & 2 & 4 \\ -3 & -5 & -4 \end{bmatrix}$ 

Zu Beginn sind die Nichtbasisvariablen die Variablen der Zielfunktion $x_1$, $x_2$ und $x_3$. Es werden alle Werte der Nichtbasisvariablen, ohne die rechte Seite berücksichtigt.

Merke

Hier klicken zum Ausklappen

Hinweis: Es ist sinnvoll sich die Variablen über die Matrix zu schreiben. Vor allem bei einem späteren Tausch der Variablen kann man sonst schnell den Überblick verlieren.

1. Iteration:

1. Schritt: Auswahl der Pivotspalte.

Bestimmung der Pivotspalte $a_s$, indem die Zielfunktion der Inversen von $B$ mit der Matrix $N$ mulipliziert wird.

Es muss also zunächst die Inverse Matrix $B^{-1}$ bestimmt werden:

$B^{-1} = B = \begin{bmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{bmatrix} = I$

Da die Matrix $B$ der Einheitsmatrix $I$ entspricht, ist diese zu Beginn gleich der Inversen.

Es wird nun die Zielfunktionszeile der Inversen $B^{-1}$ mit $N$ multipliziert:

$c_{B^{-1}} \cdot N = ( 0, 0, 1) \cdot \begin{bmatrix} 2 & 2 & 1 \\ 1 & 2 & 4 \\ -3 & -5 & -4 \end{bmatrix} = (-3, -5, -4)$

Es wird der kleinste negative Wert ausgewählt, hier: $-5$. Dieser gehört zur Nichtbasisvariablen $x_2$. Die Nichtbasisvariable $x_2$ besitzt die Pivotspalte

$a_2 = \begin{pmatrix} 2 \\ 2 \\ -5 \end{pmatrix}$


2. Schritt: Auswahl der Pivotzeile.

Die Pivotzeile wird bestimmt, indem die Inverse $B^{-1}$ mit der aktuell ausgewählte Pivotspalte $a_s$ und der rechten Seite $b$ mulipliziert wird. Dabei werden $a_s$ und $b$ in eine Matrix geschrieben:

$\begin{bmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{bmatrix} \cdot \begin{bmatrix} 2 & 3 \\ 2 & 5 \\ -5 & 0 \end{bmatrix} = \begin{bmatrix} 2 & 3 \\ 2 & 5 \\ -5 & 0 \end{bmatrix} $

Die Ergebnismatrix wird dann verwendet, um die Pivtozeile zu bestimmen. Es werden die Werte der 2. Spalte durch die zugehörigen Werte der 1. Spalte geteilt. Hierbei dürfen für die 1. Spalte nur Werte größer als Null verwendet werden. Existieren keine Werte größer als Null, so existiert keine optimale Lösung. Es wird der kleinste Quotient ausgewählt:

$min \{ \frac{3}{2}, \frac{5}{2} \} = \frac{3}{2}$.

Die Pivotzeile wird also für $x_4$ ausgewählt. 

Schritt 3: Neuberechnung der Inversen

Es wird nun in der Ausgangsmatrix $B$ die Spalte von $x_4$ ersetzt durch die Spalte von $x_2$. Denn $x_2$ verlässt nun die Nichtbasis und wechselt in die Basis. Hingegen wechselt $x_4$ nun in die Nichtbasis. Das bedeutet auch $N$ muss angepasst werden:

$B = \begin{bmatrix} 2 & 0 & 0 \\ 2 & 1 & 0 \\ -5 & 0 & 1 \end{bmatrix}$

$N = \begin{bmatrix} 2 & 1 & 1 \\ 1 & 0 & 4 \\ -3 & 0 & -4 \end{bmatrix}$ 

Die Inverse muss nun neu berechnet werden, da sich $B$ geändert hat. Diesemal entspricht die Inverse $B^{-1}$ nicht der Matrix $B$. Diese muss also nun mittels Gauß-Jordan-Algorithmus bestimmt werden:

$B^{-1} = \begin{bmatrix} \frac{1}{2} & 0 & 0 \\ -1 & 1 & 0 \\ \frac{5}{2} & 0 & 1 \end{bmatrix}$

2. Iteration

Es kann als nächstes mit der 2. Iteration begonnen werden. 

1. Schritt: Auswahl der Pivotspalte.

Bestimmung der Pivotspalte $a_s$, indem die Zielfunktion von $B^{-1}$ mit der Matrix $N$ mulipliziert wird:

$c_{B^{-1}} \cdot N = ( \frac{5}{2}, 0, 1) \cdot \begin{bmatrix} 2 & 1 & 1 \\ 1 & 0 & 4 \\ -3 & 0 & -4 \end{bmatrix} = (2, \frac{5}{2} , -\frac{3}{2})$

Es wird der kleinste negative Wert ausgewählt, hier: $-\frac{3}{2}$. Dieser gehört zur Nichtbasisvariablen $x_3$. Die Nichtbasisvariable $x_3$ besitzt die Pivotspalte

$a_3 = \begin{pmatrix} 1 \\ 4 \\ -4 \end{pmatrix}$

2. Schritt: Auswahl der Pivotzeile.

Die Pivotzeile wird bestimmt, indem die Inverse $B^{-1}$ mit der aktuell ausgewählte Pivotspalte $a_s$ und der rechten Seite $b$ mulipliziert wird. Dabei werden $a_s$ und $b$ in eine Matrix geschrieben:

$\begin{bmatrix} \frac{1}{2} & 0 & 0 \\ -1 & 1 & 0 \\ \frac{5}{2} & 0 & 1 \end{bmatrix} \cdot \begin{bmatrix} 1 & 3 \\ 4 & 5 \\ -4 & 0 \end{bmatrix} = \begin{bmatrix} \frac{1}{2} & \frac{3}{2} \\ 3 & 2 \\ -\frac{3}{2} & \frac{15}{2} \end{bmatrix} $

Die Ergebnismatrix wird dann verwendet, um die Pivotzeile zu bestimmen. Es werden die Werte der 2. Spalte durch die zugehörigen Werte der 1. Spalte geteilt. Hierbei dürfen für die 1. Spalte nur Werte größer als Null verwendet werden. Existieren keine Werte größer als Null, so existiert keine optimale Lösung. Es wird der kleinste Quotient ausgewählt:

$min \{ \frac{\frac{3}{2}}{\frac{1}{2}}, \frac{2}{3} \} = \frac{2}{3}$.

Die Pivotzeile wird also für $x_5$ ausgewählt. 

Schritt 3: Neuberechnung der Inversen

Es wird nun in der Ausgangsmatrix $B$ die Spalte von $x_5$ ersetzt durch die Spalte von $x_3$. Denn $x_3$ verlässt nun die Nichtbasis und wechselt in die Basis. Hingegen wechselt $x_5$ nun in die Nichtbasis. Das bedeutet auch $N$ muss angepasst werden:

$B = \begin{bmatrix} 2 & 1 & 0 \\ 2 & 4 & 0 \\ -5 & -4 & 1 \end{bmatrix}$

$N = \begin{bmatrix} 2 & 1 & 0 \\ 1 & 0 & 1 \\ -3 & 0 & 0 \end{bmatrix}$ 

Die Inverse muss nun neu berechnet werden, da sich $B$ geändert hat. Diese muss also nun mittels Gauß-Jordan-Algorithmus bestimmt werden:

$B^{-1} = \begin{bmatrix} \frac{2}{3} & -\frac{1}{6} & 0 \\ -\frac{1}{3} & \frac{1}{3} & 0 \\ 2 & \frac{1}{2} & 1 \end{bmatrix}$

3. Iteration

1. Schritt: Auswahl der Pivotspalte.

Bestimmung der Pivotspalte $a_s$, indem die Zielfunktion von $B^{-1}$ mit der Matrix $N$ mulipliziert wird:

$c_{B^{-1}} \cdot N = ( 2, \frac{1}{2}, 1) \cdot \begin{bmatrix} 2 & 1 & 0 \\ 1 & 0 & 1 \\ -3 & 0 & 0 \end{bmatrix} = (\frac{3}{2}, 2 , \frac{1}{2})$

Optimale Lösung

Da keine negativen Werte mehr vorhanden sind, liegt die optimale Lösung vor. Diese ergibt sich für die Basisvariablen $x_B = (x_2, x_3)$.

Die Werte für die Basisvariablen ergeben sich durch Multiplikation der Inversen $B^{-1}$ mit der rechten Seite $b$:

 $\begin{bmatrix} \frac{2}{3} & -\frac{1}{6} & 0 \\ -\frac{1}{3} & \frac{1}{3} & 0 \\ 2 & \frac{1}{2} & 1 \end{bmatrix} \cdot \begin{pmatrix} 3 \\ 5 \\ 0 \end{pmatrix} = \begin{bmatrix} \frac{7}{6} \\ \frac{2}{3} \\ 8,5 \end{bmatrix}$

Dabei gilt $x_2 = \frac{7}{6}$ und $x_3 = \frac{2}{3}$. Der Zielfunktionswert beträgt $f = 8,5$.