ZU DEN KURSEN!

Operations Research 1 - Beispiel: Maximierungsproblem / Primales Simplexverfahren

Kursangebot | Operations Research 1 | Beispiel: Maximierungsproblem / Primales Simplexverfahren

Operations Research 1

Beispiel: Maximierungsproblem / Primales Simplexverfahren

ingenieurkurse JETZT WEITER LERNEN!

Weitere Lernvideos sowie zahlreiche Materialien erwarten dich:
Komplettpaket für Ingenieurstudenten


3108 Lerntexte mit den besten Erklärungen

494 weitere Lernvideos von unseren erfahrenen Dozenten

5120 Übungen zum Trainieren der Inhalte

8380 informative und einprägsame Abbildungen

In diesem Abschnitt wird das im vorherigen Abschnitt grafisch gelöste Optimierungsproblem mittels primalen Simplexverfahren gelöst. Es müssen folgenden Voraussetzungen vorliegen, damit das primale Simplexverfahren angwandt werden kann:

  1. Es muss die Standardform vorliegen (Maximierungsproblem, Kleiner/Gleich-Nebenbedingung, Nichtnegativitätsbedingung)

  2. Die Standardform muss dann in die Normalform überführt werden (Gleichheitsbedingung) mittels Einführung von Schlupfvariablen.

  3. Es müssen nicht-negative Koeffizienten auf der Rechten-Seite der Nebenbedingungen vorliegen ($b_i \ge 0$, für alle $i$).

Liegt nicht die Standardform vor, so muss das gegebene Optimierungsmodell noch in diese überführt werden. Entsprechende Vorgehensweise kann dem Abschnitt Umformung in die Standardform entnommen werden.

Beispiel 1: Primales Simplexverfahren

Es ist das folgende Optimierungsproblem gegeben (siehe vorherigen Abschnitt):

$f(x_1, x_2) = z = 250x_1 + 450 x_2$    $ \rightarrow$   max!

u.d.N.

$4x_1 + 3x_2                      \le 24$

$2x_1 + 4x_2                      \le 24$

$4x_1 + 5x_2                      \le 32$

$x_1, x_2  \ge 0$


Das Optimierungsproblem liegt in Standarform vor. Es muss nun noch in die Normalform überführt werden. Dies geschieht, indem Schlupfvariablen eingeführt werden und dadurch die $\le$-Bedingung in eine $=$ Bedingung umgeformt wird. Die Schlupfvariablen gehen mit dem Faktor Null in die Zielfunktion ein:

$f(x_1, x_2) = z = 250x_1 + 450 x_2$    $ \rightarrow$   max!

u.d.N

$4x_1 + 3x_2  + x_3                          = 24$

$2x_1 + 4x_2          + x_4                  = 24$

$4x_1 + 5x_2                   + x_5         = 32$

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


Nachdem nun das Optimierungsproblem in die Normalform überführt worden ist, kann als nächstes das Tableau aufgestellt werden:

Beispiel Primales Simplexverfahren Anfangstableau

Dieses Anfangstableau besitzt bereits eine 1. Basislösung (Voraussetzung für das primale Simplexverfahren). Diese Basislösung stellt eine zulässige jedoch keine optimale Lösung dar. Die zulässige Lösung lautet wie folgt:

$x_1 = 0$ und $x_2 =0$ und damit 

$x_3 = 24$, $x_4 = 24$ und $x_5 = 32$.

Es werden also keine der beiden Produkte hergestellt, somit stehen die Kapazitäten im vollen Umfang zur Verfügung. Der Zielfunktionswert beträgt demnach den Wert $z = 0$. Es wird also kein Gewinn generiert. 


Um nun eine optimale Lösung zu erhalten, wird als nächstes das Primale Simplexverfahren angewandt. Dazu werden zunächst Pivotspalte, Pivotzeile und Pivotelement ausgewählt:

Beispiel Primales Simplexverfahren Pivotzeile Pivotspalte Pivotelement

Zunächst wird die Pivotspalte bestimmt. Diese wird ausgewählt, indem der kleinste negative Wert der Zielfunktionszeile (unterste Zeile) gewählt wird (hier: $-450$). Danach folgt die Pivotzeile. Dazu werden die Werte der rechten Seite mit den Werte der Pivotspalte dividiert (diese müssen positiv sein). Es wird der kleinste Quotient ausgewählt, in dem obigen Beispiel $24:4 = 6$. Dort wo sich Pivotspalte und Pivotzeile treffen liegt das Pivotelement (hier: $4$). 

Es kann nun begonnen werden den 1. Simplexschritt durchzuführen. Die Basisvariable und Nichtbasisvariable des Pivotelements müssen für das neue Tableau vertauscht werden:

Beispiel Primales Simplexverfahren Simplexschritt

Das obige Tableau ist für den 1. Simplexschritt ermittelt worden. Es wurde wie folgt vorgegangen:

Das Pivotelement geht mit seinem reziproken Wert ein: $\frac{1}{4}$

Die neuen Elemente der Pivotzeile werden ermittelt, indem die alten Werte durch das Pivotelement geteilt werden.

Die neuen Elemente der Pivotspalte werden ermittelt, indem die alten Werte durch das Pivotelement geteilt und mit $-1$ multipliziert werden.

Die restlichen Werte werden bestimmt indem der alte Wert abzüglich der alten Werte aus zugehöriger Pivotspalte mal Pivotzeile durch Pivotelement berechnet wird. Z.B.: Der Wert $\frac{6}{4}$ wurde bestimmt durch:

$4 - \frac{2 \cdot 5}{4}$.

Der Zielfunktionswert wurde ermittelt, indem die Basisvariablen mit den Werten der rechten Seite in die Zielfunktion eingesetzt werden:

$ z = 250 \cdot 0 + 450 \cdot 6 = 2.700$.

Weiterer Simplexschritt

Da noch ein negativer Wert in der Zielfunktionszeile auftaucht, kann ein weiterer Simplexschritt durchgeführt werden, um den Zielfunktionswert weiter zu maximieren.

Es werden zunächst wieder Pivotspalte, Pivotzeile und Pivotelement ausgewählt:

Beispiel Primales Simplexverfahren Pivotzeile Pivotspalte Pivotelement

Zunächst wird die Pivotspalte bestimmt. Diese wird ausgewählt, indem der kleinste negative Wert der Zielfunktionszeile (unterste Zeile) gewählt wird (hier: $-25$). Danach folgt die Pivotzeile. Dazu werden die Werte der rechten Seite mit den Werte der Pivotspalte dividiert (diese müssen positiv sein). Es wird der kleinste Quotient ausgewählt, in dem obigen Beispiel $2:6/4 = 1,33$. Dort wo sich Pivotspalte und Pivotzeile treffen liegt das Pivotelement (hier: $6/4$). 

Es kann nun begonnen werden den Simplexschritt durchzuführen. Die Basisvariable und Nichtbasisvariable des Pivotelements müssen für das neue Tableau vertauscht werden:

Beispiel Primales Simplexverfahren Simplexschritt

Es handelt sich bei dem obigen Tableau um das Endtableau, da keine negativen Werte mehr in der Zielfunktionzeile vorhanden sind. Es werden für $x1 = \frac{4}{3}$ Mengen und für $x_2 = \frac{16}{3}$ Mengen hergestellt. Ingesamt ergib sich der Zielfunktionswert durch:

$z = 250 \cdot \frac{4}{3} + 450 \cdot \frac{16}{3} = 2.733$.

Der Gewinn für das Unternehmen beträgt demnach 2.733 €. Im vorherigen Abschnitt ist ein Gewinn in Höhe von 2.710 € ermittelt worden. Der Unterschiedsbetrag lässt sich auf die Rundungen der Mengen zurückführen. Am Ende ist aber klar, dass beide Verfahren zum selben Ergebnis führen.

Merke

Hier klicken zum Ausklappen

Das im Normalfall nur ganze Mengen produziert bzw. abgesetzt werden können, soll in diesem Beispiel vernachlässigt werden.

Die Kapazitäten der Maschine 2 und der Montagearbeiter werden zu 100% ausgenutzt. Dies sieht man an den Schlupfvariablen $x_4$ und $x_5$, welche im letzten Tableau Nichtbasisvariablen darstellen. Nichtbasisvariablen besitzen immer den Wert null. Da diese Schlupfvariablen innerhalb der Restriktionen für die Maschinenkapazität 2 und für die Montagearbeiter zu finden sind, gilt für diese die vollständige Ausnutzung der Kapazität. Dies kann man auch ganz einfach ermitteln, indem man $x_1 = \frac{4}{3}$ und $x_2 = \frac{16}{3}$ in die Restriktionen 2 und 3 einsetzt:

$2 \cdot \frac{4}{3} + 4 \cdot \frac{16}{3} + x_4          = 24$

Es bleibt also $x_4 = 0$ übrig, da die beiden Produkte die Kapaizität der Maschine 2 vollständig ausnutzen.

$4 \cdot \frac{4}{3} + 5 \cdot \frac{16}{3} + x_5        = 32$

Es bleibt also für $x_5 = 0$ übrig, da die beiden Produkte die Kapazität der Monatgearbeiter vollständig ausnutzen.

Für die Kapazität der Maschine 1 hingegen (siehe zunächst Tableau) bleiben $x_3 = \frac{8}{3}$ der Kapazität übrig. Die Maschine wird also nicht zu 100% ausgenutzt. Durch Einsetzen von $x_1 = \frac{4}{3}$ und $x_2 = \frac{16}{3}$ in die 1. Restriktion ergibt sich dieses Ergebnis ebenfalls:

$4 \cdot \frac{4}{3} + 3 \cdot \frac{16}{3}  + x_3       = 24$

Es bleibt also für $x_3 = \frac{8}{3}$ an Kapazität übrig, da die beiden Produkte die Kapazität der Maschine 1 nicht vollständig ausnutzen.

Beispiel 2: Primaler Simplexalgorithmus

Beispiel 3: Primaler Simplexalgorithmus