31 lines
984 B
SAS
31 lines
984 B
SAS
data one;
|
|
wtpanacea=0.3; wtichor=0.2; wtgold=2.0;
|
|
volpanacea=0.025; volichor=0.015; volgold=0.002;
|
|
valpanacea=3000; valichor=1800; valgold=2500;
|
|
maxwt=25; maxvol=0.25;
|
|
|
|
/* we can prune the possible selections */
|
|
maxpanacea = floor(min(maxwt/wtpanacea, maxvol/volpanacea));
|
|
maxichor = floor(min(maxwt/wtichor, maxvol/volichor));
|
|
maxgold = floor(min(maxwt/wtgold, maxvol/volgold));
|
|
do i1 = 0 to maxpanacea;
|
|
do i2 = 0 to maxichor;
|
|
do i3 = 0 to maxgold;
|
|
panacea = i1; ichor=i2; gold=i3; output;
|
|
end;
|
|
end;
|
|
end;
|
|
run;
|
|
data one; set one;
|
|
vals = valpanacea*panacea + valichor*ichor + valgold*gold;
|
|
totalweight = wtpanacea*panacea + wtichor*ichor + wtgold*gold;
|
|
totalvolume = volpanacea*panacea + volichor*ichor + volgold*gold;
|
|
if (totalweight le maxwt) and (totalvolume le maxvol);
|
|
run;
|
|
proc sort data=one;
|
|
by descending vals;
|
|
run;
|
|
proc print data=one (obs=4);
|
|
var panacea ichor gold vals;
|
|
run;
|