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