Lineare Optimierung

Werbung
Lineare Optimierung
Die lineare Optimierung kann eingesetzt werden zur optimalen Zuordnung knapper Ressourcen. Das
wichtigste Verfahren ist das Simplex-Verfahren. Es beruht auf einer Erweiterung der Linearen Algebra
und löst sehr elegant Optimierungsprobleme, bei denen mehr Variablen als Gleichungen existieren.
Ein Beispiel:
Ein Betrieb stellt die Produkte P1 und P2 her, die auf den drei Maschinen A, B und C gefertigt
werden. Jedes Produkt muß auf jeder Maschine bearbeitet werden.
Maschine
Maschinenstunden Maschinenstunden Masch.-Kap in
pro Stück P1
pro Stück P2
Stunden
A
4
3
600
B
2
3
400
C
3
7
840
DB in
GE/ME
2
3
Gesucht ist das gewinnmaximale Produktionsprogramm.
Simplexverfahren
Zur Problemlösung wird ein mathematisches Modell formuliert:
x1: monatl. Fertigungsmenge von P1
x2: monatl. Fertigungsmenge von P2
Somit gilt:
4x1 + 3x2 ≤ 600 (Nebenbedingung für A, die verfügbare
Kapazität der Maschinen kann nicht
überschritten werden)
2x1 + 3x2 ≤ 400 (Nebenbedingung für B)
3x1 + 7x2 ≤ 840 (Nebenbedingung für C)
G = 2x1 + 3x2 – Fixkosten (Zielfunktion, zu maximieren, Fixkosten nicht entscheidungsrelevant)
x1, x2 ≥ 0 (Nichtnegativitätsbedingungen, negative Anzahl von Produkten kann nicht gefertigt werden)
formuliert man die Ungleichungen um, ergibt sich:
(1) 4x1 ≤ 600 – 3x2 => x1 ≤ 150 – 3/4x2
(2) 2x1 ≤ 400 – 3x2 => x1 ≤ 200 – 3/2x2
(3) 3x1 ≤ 840 – 7x2 => x1 ≤ 280 – 7/3x2
Jede dieser Ungleichungen sagt etwa folgendes aus: auf einer Maschine kann man P1 produzieren oder
P2 oder beide Produkte; je mehr man von dem einen Produkt herstellt, desto weniger
Produktionskapazität bleibt für die Herstellung des anderen Produkts übrig.
Ungleichung (1) ist zur Beschreibung der Verhältnisse auf Maschine A aufgestellt worden; die aus der
Ungleichung ableitbaren Aussagen lauten: von P1 lassen sich bis zu 150 Einheiten herstellen; für jede
Einheit, die von P2 gefertigt wird, können + Einheiten x1 weniger hergestellt werden.
Analog lassen sich die Aussagen der Ungleichungen (2) und (3) interpretieren.
Stellt man nun eine Datentabelle auf, ergibt sich für die Produktkombination auf den 3 Maschinen das
folgende:
x2
x1(A)
x1(B)
x1(C)
0,00
150,00
200,00
280,00
10,00
142,50
185,00
256,67
20,00
135,00
170,00
233,33
30,00
127,50
155,00
210,00
40,00
120,00
140,00
186,67
50,00
112,50
125,00
163,33
60,00
105,00
110,00
140,00
70,00
97,50
95,00
116,67
80,00
90,00
80,00
93,33
90,00
82,50
65,00
70,00
100,00
75,00
50,00
46,67
110,00
67,50
35,00
23,33
120,00
60,00
20,00
0,00
Das heißt also folgendes: will man z. B. 30 Einheiten P2 produzieren, könnte man mit Maschine A
noch zusätzlich 127,5 Einheiten von P1 herstellen, auf Maschine B 155 P1, auf Maschine C 210 P1.
Den Engpaß bildet hier (x2 = 30) also Maschine A.
Bildet man nun diese Tabelle in einem Schaubild ab, auf dem die produzierte Menge des Produkts P2
auf der Abszisse (X-Achse) und die produzierte Menge des Gutes P1 auf der Ordinate (Y-Achse)
aufgetragen ist, läßt sich der herstellbare „Produktraum“ abbilden.
Wie man sieht, bildet jede der drei Maschinen zu unterschiedlichen Produktionskombinationen den
Engpaß: die Maschine A läßt von vornherein nur Kombinationen zu, bei denen maximal 150 Stück P1
gefertigt werden, während Maschine C den Engpaß bei größeren Stückzahlen von P2 darstellt (ab ca.
100 Stück); im Bereich von ca. 75 bis 100 P2 sowie entsprechend ca. 100 bis 60 P1 ist die Maschine B
der Engpaß; der maximale Gewinn muß nun auf einer Begrenzungskante des zulässigen
Kapazitätsauslastungsbereichs liegen, da jeder Punkt, der nicht Kantenpunkt ist, eine Steigerung der
Produktion (und damit eine Verbesserung des Gewinns, positive Deckungsspannen vorausgesetzt)
zuläßt. Zudem wird der Optimalpunkt nicht nur auf der Kante, sondern in einem Schnittpunkt von 2
Kapazitätsbegrenzungsgeraden zu suchen sein, weil jede Kante ein festes Verhältnis von mehr P1 zu
weniger P2 (und umgekehrt) darstellt, und je nach dem, wie die Deckungsbeiträge ausgeprägt sind, von
einem beliebigen Punkt auf der Kante, der nicht Eckpunkt ist, Gewinnverbesserungen erzielt werden
können, wenn man in die eine oder andere Richtung marschiert. Ausnahme: das Verhältnis der
Deckungsbeiträge entspricht dem Verhältnis der Kapazitätsbelastung. In diesem Fall sind alle Punkte
der Kante gleich gewinnträchtig, die Eckpunkte eingeschlossen; gewinnoptimale
Produktionskombinationen liegen also immer (auch) auf einem Eckpunkt. Damit wird die Anzahl der
möglichen gewinnoptimalen Punkte drastisch reduziert, da es nur noch die Eckpunkte zu überprüfen
gilt.
Um eine optimale Lösung zu finden, formuliert man die Ungleichungen unter Hinzufügung von
„Schlupfvariablen„ in Gleichungen um.
(1) 4x1 + 3x2 + y1 = 600
(2) 2x1 + 2x2 + y2 = 320
(3) 3x1 + 7x2 + y3 = 840
Die Schlupfvariablen stellen die nicht ausgelasteten Kapazitäten der drei Maschinen dar, natürlich gilt
auch für sie die Nichtnegativi-täts-bedingung, es gilt also:
y1, y2, y3 ≥ 0
Jetzt ist das Gleichungssystem unterbestimmt. Man erhält aber eindeutige Lösungen, wenn man
jeweils 2 Variablen = 0 setzt. Die Lösungen müssen allerdings nicht unbedingt zulässig sein.
Das nun zur Lösung dieses Gleichungssystems angewendete Verfahren heißt Simplexverfahren und ist
ein zielgerichtetes Ausprobieren verschiedener Lösungen, wobei ausgehend von einer Lösung


jede neue Lösung den Zielfunktionswert zumindest nicht verschlechtert
die Einbeziehung unzulässiger Lösungen verhindert wird.
Zunächst wird das Gleichungssystem in eine Matrixschreibweise gebracht, in der die Koeffizienten der
Variablen dargestellt sind; da die Gleichung unterbestimmt ist, darf man prinzipiell die überzähligen
Variablen (3 Gleichungen, 5 Variablen, also 2 Variablen überzählig) als Ausgangspunkt des
Verfahrens willkürlich setzen, man muß aber aufpassen, daß man einen Punkt im zugelassen Raum
wählt. Unkritisch und auf jeden Fall zugelassen ist der Punkt, an man gar nichts produziert, also x1 und
x2 = 0 gesetzt werden. Dann hat man zwar noch keinen Gewinn erzielt, aber auch keinen Fehler
gemacht, und im weiteren Verlauf des Verfahrens wird man sich verbessern. Die „Rechte Seite ist die
rechte Seite der Gleichung, anfangs stehen die hier dargestellten Zahlen für freie Kapazitäten, im
Laufe des Verfahrens bedeuten sie aber ein Gemisch aus freien Kapazitäten und herzustellenden
Stückzahlen.
x1
x2
y1
y2
y3
Rechte
Seite
4
3
1
0
0
600
2
3
0
1
0
400
3
7
0
0
1
840
Da x1 und x2 = 0 sind, ist y1 = 600, y2 = 400 und y3 = 840, alle Produktionskapazitäten sind frei.
Variablen, die nicht 0 gesetzt sind, bilden das Basissystem, sie sind Basisvariablen; die 0 gesetzten
Gleichungen sind Nichtbasisvariablen.
es gilt: G = 2 · 0 + 3 · 0 = 0
Nun tauscht man eine Variable gegen eine andere Variable aus, das heißt, eine andere Variable wird 0
gesetzt (wird Nichtbasisvariable) und macht Platz in der Basis für eine der Variablen, die bisher
Nichtbasisvariable war.
Das Simplexverfahren ist ein systematisches Tauschen von Basisvariablen gegen Nichtbasisvariablen,
wobei sich immer zwei Fragen stellen:


welche Variable wird aus der Basis herausgenommen
welche Variable wird anstelle dessen in die Basis einbezogen
Hereingenommen wird diejenige Variable, bei der der Gewinnzuwachs pro Mengeneinheit am größten
ist. Das ist in diesem Fall x2, da der Gewinn pro Einheit P2 um 3 gesteigert wird, pro Einheit P1 aber
nur um 2 (siehe Zielfunktion); aus dem Gleichungssystem herausgenommen ( = 0 gesetzt) wird die
Variable, die den Engpaß abgibt, das heißt, für die erste Gleichung dürfte x2 = 200 sein, für die zweite
könnte x2 = 133,3 sein, bei der dritten ist aber schon für x2 = 120 Schluß; man kann auf Maschine 3
nicht mehr als 120 Einheiten von Produkt 2 fertigen, dann ist ihre Kapazität erschöpft, und es ist
gleichgültig, ob Maschine A (Gleichung 1) oder Maschine B (Gleichung 2) noch freie Kapazitäten hat.
Die dritte Gleichung ist also der Engpaß, also geht y3 für x2 hinaus, das heißt, das Tauschelement
(Pivot-Zelle) liegt in der Spalte x2 und der Zeile (Gleichung) 3, es handelt sich um den Wert 7.
x1
x2
y1
y2
y3
Rechte
Seite
4
3
1
0
0
600
2
3
0
1
0
400
3
7
0
0
1
840
(Nicht-Basisvariablen sind fett dargestellt)
Das Gleichungssystem wird zunächst einmal auf eine Form gesetzt, in der x2 in der dritten Zeile auf 1
umgeformt wird und in den Zeilen 1 und 2 durch entsprechende Vektoroperationen verschwindet
(Erzeugung des Einheitsvektors in der zweiten Spalte). Dies geschieht durch zugelassene
Vektoroperationen. Nach erfolgter Umformung lassen sich dann alle Werte der neuen Lösung
unmittelbar ablesen.
x1
x2
y1
y2
y3
Rechte Seite
2,71
0,00
1,00
0,00
– 0,43
240,00
0,71
0,00
0,00
1,00
– 0,43
40,00
0,43
1,00
0,00
0,00
0,14
120,00
Die erste Zeile ist nun folgendermaßen zu interpretieren:
der Koeffizient von x1 beträgt 2,71; da x1 selbst auf 0 gesetzt worden ist, ist der Koeffizient
unerheblich, denn es gilt :
2,71 · 0 = 0; dies gilt entsprechend für y3
der Koeffizient von x2 ist 0, x2 ist also in der ersten Gleichung nicht mehr vertreten, dies gilt auch für
y2;
der Koeffizient von y1 ist 1; die Gleichung 1 ist also reduziert auf:
1 · y1 = 240; auf Maschine A liegen bei der jetzt vorgesehenen Lösung noch 240 Einheiten
(Maschinenstunden) ungenutzter Produktionskapazität vor.
Analog läßt sich aus der zweiten Zeile entnehmen, daß von Maschine B noch 40 Einheiten nicht
ausgenutzt werden.
Durch Koeffizienten, die = 0 sind oder aber Variablen, die = 0 sind, ist auch Gleichung 3 reduziert auf:
1 · x2 = 120, also x2 = 120;
es werden also in der jetzt vorgesehenen Lösung 120 Einheiten von P2 produziert.
Der Gewinn ist 0 · 2 + 120 · 3= 360
Die Frage ist nun, ob der Gewinn verbessert werden kann, wenn eine der beiden Variablen, die nun =
0 gesetzt sind, nämlich x1 oder y3, in die Lösung aufgenommen wird.
Die Gewinnfunktion lautet G = 2x1 + 3x2, - Fixkosten, also Gewinn = Deckungsbeitrag – Fixkosten,
man kann für
x2 = 120 – 3/7x1 – 1/7y3 (aus Gleichung 3, Tabelle 5.14) schreiben, und das in die Gewinnfunktion
einsetzen, wobei man sofort erkennt, daß eine Vergrößerung von y3 zu einer Verkleinerung des
Gewinns führt. Also kann allenfalls x1 aufgenommen werden
Es wird erkennbar, daß bei Gleichung 1 x1 einen Wert von 88,56 annehmen könnte, bevor y1 negativ
würde, in der Gleichung 2 darf x1 nur noch 56,33 groß werden, in der Gleichung 3 könnte es 279 groß
werden, der Engpaß besteht also in Gleichung 2.
y2 geht aus der Basislösung heraus (wird = 0 gesetzt), x1 kommt hinein.
Es muß also der Schnittpunkt zwischen Gleichung 2 und der K(x1)-Spalte betrachtet werden, dort steht
jetzt 0,71; um das Gleichungssystem zur nächsten Lösung zu bringen, muß wieder mit Hilfe zulässiger
Vektoroperationen an dieser Stelle eine 1 erzeugt werden und in der restlichen Spalte jeweils Nullen.
x1
x2
y1
y2
y3
Rechte Seite
0,00
0,00
1,00
– 3,80
1,20
88,00
1,00
0,00
0,00
1,40
– 0,60
56,00
0,00
1,00
0,00
– 0,60
0,40
96,00
Wieder wird die Tabelle interpretiert: aus der ersten Zeile geht hervor, daß Maschine A nun eine freie
Kapazität von 88 Einheiten besitzt; aus der zweiten Zeile ist abzulesen, daß P1 mit 56 Einheiten
gefertigt wird, also x1 = 56; aus der dritten Zeile ist abzulesen, daß P2 nun mit 96 Einheiten gefertigt
wird, also x2 = 96.
Der DB beträgt somit DB = 56 · 2 + 96 · 3 = 400;
Erneut ist zu überlegen, ob der Gewinn noch steigerungsfähig ist
Zeile 2 ist in Langschreibweise wie folgt auszuführen:
1 · x1 + 1,4 · y2 – 0,6 · y3 = 56 => x1 = 56 – 1,4y2 +0,6y3
Zeile 3 sieht in der Langschreibweise folgendermaßen aus:
1 · x2 – 0,6 · y2 +0,4 · y3 = 96 => x2 = 96 + 0,6y2 – 0,4y3
Eingesetzt in die DB-Funktion ergibt sich:
DB = 2 · (56 – 1,4y2 + 0,6y3) + 3 · (96 + 0,6y2 – 0,4y3) = 400 – y2
Da y2 nicht kleiner 0 werden kann, ist jede Vergrößerung von y2 mit einer Verringerung des Gewinns
verbunden, eine Gewinnsteigerung kann somit nicht mehr stattfinden, das Optimum ist gefunden.
Tatsächlich läßt sich in der Gesamttabelle mit allen wichtigen Angaben erkennen, daß im vorliegenden
Fall nicht nur ein Eckpunkt, sondern alle Punkte auf einer Kante das Optimum darstellen, da, wie oben
ausgeführt, die Kapazitätsbelastungsverhältnisse der beiden Produkte in Bezug auf einen der
vorliegenden Engpässe (hier: Maschine 2) dem Verhältnis der Gewinnbeiträge der Produkte
entsprechen.
Belastung der Kapazität B durch
x1 : 2
x2 : 3
Kapazitätsbelastungsverhältnis : 2/3
Steigerung des Gewinns durch eine Einheit
x1 : 2
x2 : 3
Verhältnis der Gewinnbeiträge : 2/3
Herunterladen