Anwendung der Mathematik in der Wirtschaft
Grafische Lösung von Optimierungsaufgaben
(Quelle: Luderer, Würker , Einstieg in die Wirtschaftsmathematik, Beispiel 5.1, Teubner-Verlag 1995)
Im folgenden wird die Anwendung der Mathematik an einem kleinen Problem mit praktischem Hintergrund dargestellt. Es handelt sich dabei um eine sogenannte Optimierungsaufgabe. Dabei wird das Minimum oder Maximum einer Funktion gesucht, wobei gewisse Nebenbediingungen eingehalten werden müssen. Das Beispiel soll eine Demonstration für die Behandlung von ähnlichen Aufgaben sein, die in der Praxis natürlich mit einer viel größeren Anzahl von Unbekannten und Bedingungen auftreten und dann andere Lösungsmethoden erfordern. Die Rechnungen und Zeichnungen werden mit einem Computeralgebrasystem (hier MAPLE 7 ) ausgeführt. Derartige Systeme haben sich zu leistungsfähigen Helfern der Mathematiker entwickelt. Die entsprechenden Kommandos (rot) und Ausgaben (blau) sind auch ohne tiefere Kenntnisse dieses Systems zu verstehen
Problem
Eine Unternehmung zur Produktion nichtalkoholischer Getränke stellt die Marken "Superdrink" in Mehrwegflaschen und "Superdrink Superlight" in Dosen her. Aus Absatzgründen und zur Sicherung einer gleichbleibenden Produktqualität sollen täglich nicht mehr als 60 Hektoliter an Erfrischungsgetränken produziert werden. Aus Umweltschutzgründen dürfen nicht mehr als 45 Hektoliter des in Dosen abgefüllten "Superlight"-Drinks hergestellt werden. Die Versandabteilung, die täglich 15 Stunden zur Verfügung steht, wird durch 1 hl des Normaldrinks mit 0,3 Stunden belastet, während 1 hl Superlight 0,15 Stunden fordert.Der Gewinn pro Hektoliter betrage DM 50,-/hl für den normalen und DM 150,-/hl für den "superleichten" Superdrink. Wie sieht das für das Unternehmen optimale Produktionsprogramm aus, d. h. wieviel soll man von den beiden Getränken herstellen, damit zum einen der Gesamtgewinn maximal wird und zum anderen die vorhanden Kapazitäten nicht überfordert sowie die Umweltauflagen eingehalten werden.
Mathematische Modellierung
Der zu maximierende Gewinn wird als sogenannte Zielfunktion bezeichnet. Er läßt sich in DM leicht angeben:
> restart:
Gewinn:=(x1,x2)->50*x1+150*x2:
Die Produktions- und Umweltbeschränkungen stellen mathematisch Ungleichungen dar, die zusammen als Nebenbedingungen bezeichnet werden.
Gesamtproduktion:
> nb1:=x1+x2<=60:
Umweltauflage:
> nb2:=x2<=45:
Versandkapzität:
> nb3:=3/10*x1+15/100*x2<=15:
Alle Mengen müssen positiv sein:
> nb4 := x1 <= 0:
> nb5 := x2 <= 0:
Grafische Darstellung und Lösung
Einen Überblick über die Restriktionen gibt eine Zeichnung. Die Nebenbedingungen definieren Gebiete in der Ebene, deren Grenzen Geraden sind.
> P0:=plots[implicitplot]({nb1,nb2,nb3,nb4,nb5},
x1=0..60,x2=0..60, axes=boxed, thickness=2, scaling =constrained):
P1:=plots[polygonplot]([[0,0], [0,45],[15,45], [40,20],[50,0],[0,0]], color=cyan):
plots[display]({P0,P1}, scaling=constrained, title=`Zulässiges Gebiet`);
Berücksichtigt man noch, daß alle Bedingungen gleichzeitig gelten müssen, erhält man das obige Gebiet als mengentheoretischer Durchschnitt. Von Interesse sind dabei besonders die Ecken des Gebietes. Einige kann man ablesen, andere leicht berechnen.
> solve({x1+x2=60,
x2=45}, {x1,x2});
solve({x1+x2=60, 3/10*x1+15/100*x2=15}, {x1,x2});
Nur die Punkte (x1,x2) aus dem blauen Bereich (einschließlich des Randes) sind zur Konkurrenz um den Maximalgewinn zugelassen. Deshalb spricht man von einem zulässigen Bereich.
Die Gewinnfunktion kann ebenfalls als Gerade veranschaulicht werden: Für verschiedene Werte des Gewinns erhält man parallele Geraden, im Beispiel sind das 2500,- DM, 5000,- DM, 7000,- DM, 7500,- DM und 8000,- DM. Man sieht, daß sich z. B. der Gewinn von 8000,- DM unter der gegebene Einschränkungen nicht erreichen läßt. Den Maximalgewinn erreicht man, wenn man die Gewinnfunktion möglichst weit parallel verschiebt. Dabei darf das das zulässige Gebiet nicht verlassen werden. Man sieht, das der höchste Gewinn in der oberen Ecke x1=15, x2=45 erreicht werden wird.
> P1:=plots[polygonplot]([[0,0],
[0,45],[15,45], [40,20],[50,0],[0,0]], color=cyan):
> T:=plots[textplot]([[25,10,`2500 DM`],[25,25,`5000 DM`],[25,40,`7000 DM`],[25,50,`8000 DM`]]):
> P:=seq(plots[implicitplot](Gewinn(x1,x2)=i, x1=0..60, x2=0..60, thickness=2, color=red), i=[2000,5000, 7000, 8000]):
> plots[display]({P1,P,T}, scaling=constrained, axes=boxed, title=`Verschiedene Gewinne`, xtickmarks=2, ytickmarks=2);
Man kann das ganze Verfahren auch in einer Animation veranschaulichen.
> PP:=seq(plot({[[0,0],
[0,45],[15,45], [40,20],[50,0],[0,0]],-x/3+100*t/150}, x=0..60, color=blue,
title=cat(`Gewinn: DM `,100*t,`,-`)), t=0..75):
> PP:=[seq(plot(-x1/3+100*t/150,
x1=0..60, x2=-10..60, color=red,thickness=2, xtickmarks=2, ytickmarks=2, axes=boxed),
t=0..75)]:
T:=[seq(plots[textplot]([30,50, cat(`Gewinn: DM `,100*t,`,-`)]), t=0..75)]:
TT:=plots[display](T, insequence=true):
> DD:=plots[display](PP, insequence=true):
> plots[display]({P1,DD,TT});
Schlußbemerkung
Für größere Probleme kann man eine mathematische Methode einsetzen, den sogenannten SIMPLEX-Algorithmus. Dazu hat Maple einen entsprechenden Befehl.
> simplex[maximize](Gewinn(x1,x2), {nb1,nb2,nb3}, NONNEGATIVE);
Frage: Was ändert sich, wenn man als zusätzliche Nebenbedingung aufnimmt, daß der Gewinn mindestens 8000 DM betragen soll?
> nb6:=50*x1+150*x2>=8000;
Aus dem oben Gesagten ergibt sich daß dann der Bereich aller Restriktionen leer ist. Die Rechnung bestätigt das.
> simplex[maximize](Gewinn(x1,x2), {nb1,nb2,nb3, nb6},NONNEGATIVE);
>