17.4.1  Lineare Optimierung

Unter dem Begriff Lineare Optimierung (oder auch Linearer Programmierung) versteht man die Maximierung (Minimierung) einer linearen Funktion unter Nebenbedingungen in Ungleichheitsform.
Beispiel (s. Sydsaeter, Mathematik für Wirtschaftswissenschaftler) :
Ein Bäcker hat 150 kg Mehl, 22 kg Zucker und 27,5 kg Butter zur Verfügung, um zwei Arten von Kuchen zu backen. Nehmen Sie an, daß für die Produktion eines Dutzends Kuchen der Sorte A bzw. B folgende Zutaten benötigt werden:
.

SorteMehlZuckerButter
A31.01
B60.51

.
Die Erlöse: Ein Dutzend verkaufter Kuchen A ergibt 20 Euro , ein Dutzend verkaufter Kuchen B ergibt 30 Euro .
Wieviele Dutzend Kuchen der Sorten A (entspricht
x1) und B (entspricht x2) maximieren nun den Erlös ?
Die
Zielfunktion lautet:
maxz = 20 x1 + 30 x2
mit den Nebenbedingungen

 
3x1+ 6.0 x2 150.0
x1+ 0.5 x2 22.0
x1+ x2 27.5

.
und den Nicht-Negativitätsbedingungen
x1≥ 0 und x2 ≥ 0. Graphisch: .


Abbildung 89: Lösungsraum der Ungleichung

.

Um die Ungleichungen besser verarbeiten zu können, werden Schlupfvariablen y1 ≥ 0, y2 ≥ 0 und y3 ≥ 0 eingeführt:

 
(I1)y1 + 3x1 + 6.0 x2 = 150.0
(II1)y2 + x1 + 0.5 x2 = 22.0
(III1)y3 + x1 + x2 = 27.5

.
Die Schlupfvariable
y1 sagt z.B. aus, wieviel kg Mehl nicht verbraucht wurde.
Das Gleichungssystem hat 3 Zeilen und 5 Variablen. Entsprechend sind 2 Variablen frei wählbar.
Das Prinzip des Simplex-Verfahrens besteht darin, ausgehend von einem Eckpunkt (einer Basislösung) zu einem weiteren Eckpunkt (ebenso eine Basislösung) und damit zu immer größeren Werten von z zu gelangen, bis ein weiteres Anwachsen nicht mehr möglich ist.
Die entsprechenden Schritte in diesem Beispiel sind:

  1. Erste zulässige Basislösung:
    x1=0, x2=0, y1=150, y2=22, y3=27.5 ergibt z=0.
  2. Verbesserung durch zunächst Festhalten von x1=0 und Vergrößerung von x2 , da Zielfunktion dadurch am stärksten steigt:
    Hierbei entstehen die Folgefragen:
    a) Um wieviel kann
    x2 von 0 aus erhöht werden ?
    b) Welche der Variablen
    y1, y2 oder y3 sollen wir auf 0 setzen ?
    Mit dem Versuch
    y1 = 0 folgt aus (I1), daß x2=25.
    Mit dem Versuch
    y2 = 0 folgt aus (II1), daß x2=44.
    Mit dem Versuch
    y3 = 0 folgt aus (III1), daß x2=27.5. .
    Damit ist der kritische Punkt in Gleichung (I), denn mit
    x2 > 25 wird y1 < 0. x2 hat damit als Obergrenze den Wert 25.
    Wir setzen also
    x2 = 25 und damit y1 = 0.
  3. Neue Werte:
    x1=0, x2=25, y1=0, y2=9.5, y3=2.5 ergibt z=750.
  4. Umschreiben des Gleichungssystems, sodaß die Variablen, die nicht gleich Null gesetzt sind, durch die anderen Variablen ersetzt werden: .
     
    (I2)x2 = 25.0 1/2 x1 1/6 y1
    (II2)y2 = 9.5 3/4 x1 + 1/12 y1
    (III2)y3 = 2.5 1/2 x1 1/6 y1
    .
    z = 20 x1 + 30 x2 = 20x1+30· (25−1/2x1− 1/6 y1)
    z = 750 + 5 x1 − 5 y1
  5. weitere Erhöhung von z durch Vergrößern von x1 (mit y1 wäre das kontraproduktiv; Deshalb y1 = 0):
    a) Um wieviel kann
    x1 von 0 aus erhöht werden ?
    b) Welche der Variablen
    x2, y2 oder y3 sollen wir auf 0 setzen ?
    Mit dem Versuch
    x2 = 0 folgt aus (I2), daß x1=50.
    Mit dem Versuch
    y2 = 0 folgt aus (II2), daß x1= 38/3.
    Mit dem Versuch
    y3 = 0 folgt aus (III2), daß x1=5. .
    Damit ist der kritische Punkt durch Gleichung (
    III2) gegeben, und x1 hat damit als Obergrenze den Wert 5.
  6. Neue Werte:
    x1 = 5, x2 = 22.5, y1=0, y2=5.75, y3=0 ergibt z=775.
  7. Umschreiben des Gleichungssystems, sodaß die Variablen, die nicht gleich Null gesetzt sind, durch die anderen Variablen ersetzt werden: .
     
    (I3)x1 = 5.0 + 1/3 y1 2 y3
    (II3)x2 = 22.5 1/3 y1 + y3
    (III3)y3 = 5.75 1/6 y1 + 3/2 y3
      z = 775 10/3 y1 10 y3

  8. Der Versuch, eine weitere Erhöhung von z durch Vergrößern von y1 oder y2 von Null aus zu erreichen, führt nicht zum Ziel. Ergebnis:
    x1 = 5, x2 = 22.5, z=775.

Lösung mit Maple:
with(simplex):
cnsts := {3*x+6*y <= 150, x+0.5*y <= 22, x+y <= 27.5}:
obj := -x+y+2*z:
maximize(obj, cnsts
0 <= x, 0 <= y, 0 <= z) oder:
maximize(obj, cnsts, NONNEGATIVE)oder:
maximize(obj, cnsts)
.
Beispiel 17 - 49
lp0190
Lösen Sie mit dem Simplex-Verfahren das Optimierungsproblem:
maxz = 3x1 + 4x2
3 x1 + 2x2 ≤ 6
x1 + 4x2 ≤ 4

.

Lösung ansehen .
.