Zurück Vor +Ebene Home Inhalt Index Hilfe

Lineare Optimierung

Für die lineare Optimierung liefert MapleV das Packet 'simplex'. Die Syntax lautet:

with(simplex)
minimize(Zielfunktion, Einschränkungen in Form von Ungleichungen mit <= bzw.>=);
maximize(Zielfunktion, Einschränkungen in Form von Ungleichungen mit <= bzw.<=);

Beispiel:

Es werden die Produkte auf den Maschinen produziert. die Gewinnfunktion ist

Die Produktionszeit/Monat auf den Maschinen beträgt:

Das Produkt benötigt auf den Maschinen je 3 Stunden. Das Produkt benötigt auf der Maschine 2 Stunden, auf der Maschine 4 Stunden und auf der Maschine 6 Stunden. Daraus ergibt sich folgende Optimierung:

with(simplex):
f:=300*x1+600*x2:
einschr1:=3*x1+2*x2<=150:
einschr2:=3*x1+4*x2<=160:
einschr3:=6*x2<=170:
maximize(f,{einschr1,einschr2,einschr3});
evalf(");

Ein Beispiel für Transportprobleme:

Ein Transportunternehmen hat drei Milchwerke (m1,m2,m3) mit Milch von drei Rinderställen (r1,r2,r3) zu beliefern. Der tägliche Bedarf beträgt 1000 l, 2000 l bzw. 2500 l. Die Rinderställe haben eine Tageskapazität von 800 l, 1500 l, 2300 l.

Die Transportkosten pro 1 Liter Milch in DM sind in der folgenden Tabelle aufgeführt:

Die Gesamtkosten sollen minimiert werden.

Es existieren neun Variable (x[1][1], x[1][2] usw. bis x[3][3]), da jedes Milchwerk von jedem Rinderstall beliefert werden kann. Die zu minimierende Größe ist

Die Einschränkungen sind einmal durch die Kapazität der Milchwerke gegeben:

und zum anderen durch die Kapazität der Rinderställe bestimmt:

In MapleV läßt sich dieses Problem wie folgt lösen:

restart:
with(simplex):
ri:=[1700,1500,2300]:
mi:=[1000,2000,2500]:
kosten:=array([[0.02,0.015,0.018],[0.01,0.017,0.023],[0.016,0.019,0.02]]);
x:=array(1..3,1..3):
r := {seq(sum(x[i,'j'],'j'=1..3)=ri[i],i=1..3)} union
        {seq(sum(x['i',j],'i'=1..3)=mi[j],j=1..3)};
v:={seq(seq(x[i,j],i=1..3),j=1..3)}:
z:={}:
for i from 1 to 3 do
for j from 1 to 3 do
z:=z union{x[i,j]*kosten[i,j]}:
od;
od;
z:=convert(z,`+`);
minimize(z,r,NONNEGATIVE);
assign("); eval(x);
z;

Dieses Beispiel kann leicht auf mehr Quellen und Zielorte erweitert werden.
Copyright Verlag Harri Deutsch AG  Stöcker DeskTop Mathematik