1. 問題 某市有甲、乙、丙、丁四個居民區,自來水有A,B,C三個水庫供應。四個區每天必須得到保證的基本用水量分別是30,70,10,10千噸,但由於水源緊張,三個水庫每天最多只能分別供應50,60,50千噸自來水。由於地理位置的差別,自來水公司從各水庫向各區送水所需付出的引水管理費不同(見表1,其中C水庫與丁區之間沒有輸水管道),其他管理費用都是450元/千噸。根據公司規定,各區用戶按照統一標准900元/千噸收費。此外,四個區都向公司申請了額外用水量,分別為50,70,20,40千噸。該公司應如何分配供水量,才能獲利最多?
為了增加供水量,自來水公司正在考慮進行水庫改造,使三個水庫每天的最大供水量都提高一倍,問那時供水方案應如何改變?公司利潤可增加到多少?
表1 從水庫向各區送水的引水管理費
引水管理費(元/噸) |
甲 |
乙 |
丙 |
丁 |
A |
160 |
130 |
220 |
170 |
B |
140 |
130 |
190 |
150 |
C |
190 |
200 |
230 |
/ |
model:
sets:
water/1,2,3/:sup;
house/1,2,3,4/:use;
links(water,house):c,x;
endsets
data:
c=160 130 220 170
140 130 190 150
190 200 230 0;
enddata
min=@sum(links(I,J):c(I,J)*x(I,J));
x(3,1)+x(3,2)+x(3,3)=50;
x(1,1)+x(1,2)+x(1,3)+x(1,4)=50;
x(2,1)+x(2,2)+x(2,3)+x(2,4)=60;
x(1,4)+x(2,4)>=10;
x(1,4)+x(2,4)<=50;
x(1,1)+x(2,1)+x(3,1)>=30;
x(1,1)+x(2,1)+x(3,1)<=80;
x(1,2)+x(2,2)+x(3,2)>=70;
x(1,2)+x(2,2)+x(3,2)<=140;
x(1,3)+x(2,3)+x(3,3)>=10;
x(1,3)+x(2,3)+x(3,3)<=30;
end
從水庫向各區送水方案
送水量 (千噸) |
甲 |
乙 |
丙 |
丁 |
A |
0 |
50 |
0 |
0 |
B |
0 |
50 |
0 |
10 |
C |
40 |
0 |
10 |
/ |
引水管理費為24400元,利潤為(900-450)*(50+60+50)-24400=47600元
對於問題二,總供水能力為320,大於總需求300,水庫供水量不能全部賣出,因而計算凈利潤=900-450-引水管理費,得下表
從水庫向各區送水凈利潤
送水量 (千噸) |
甲 |
乙 |
丙 |
丁 |
A |
290 |
320 |
230 |
280 |
B |
310 |
320 |
260 |
300 |
C |
260 |
250 |
220 |
/ |
model:
sets:
water/1,2,3/:sup;
house/1,2,3,4/:use;
links(water,house):c,x;
endsets
data:
c=290 320 230 280
310 320 260 300
260 250 220 0;
enddata
max=@sum(links(I,J):c(I,J)*x(I,J));
x(3,1)+x(3,2)+x(3,3)<=100;
x(1,1)+x(1,2)+x(1,3)+x(1,4)<=100;
x(2,1)+x(2,2)+x(2,3)+x(2,4)<=120;
x(1,4)+x(2,4)>=10;
x(1,4)+x(2,4)<=50;
x(1,1)+x(2,1)+x(3,1)>=30;
x(1,1)+x(2,1)+x(3,1)<=80;
x(1,2)+x(2,2)+x(3,2)>=70;
x(1,2)+x(2,2)+x(3,2)<=140;
x(1,3)+x(2,3)+x(3,3)>=10;
x(1,3)+x(2,3)+x(3,3)<=30;
end
總利潤為88700元。
2.問題 某公司用兩種原油A、B混合加工成兩種汽油甲、乙。甲、乙兩種汽油含原油A的最低比例分別為50%和60%,每噸售價分別為4800元和5600元。該公司現有原油A和B的庫存量分別為 500噸和1000噸,還可以從市場上買到不超過1500噸的原油A。原油A的市場價為:購買量不超過500噸時的單價為10000元/噸;購買量超過500噸但不超過1000噸時,超過500噸部分的單價為8000元/噸;購買量超過1000噸時,超過1000噸部分的單價為6000元/噸。該公司應如何安排原有的采購和加工?
問題分析 本題主要通過安排原油的采購量及加工量,以獲得最大利潤,故決策變量為原油A的采購量以及兩種原油的加工量,目標函數為甲乙兩種汽油的利潤之和,限制條件為甲乙兩種汽油的原油A的含量,原油A的庫存量及采購量,原油B的庫存量。
model:
sets:
oil/1,2/:y;
qiyou/1,2/:q;
sale/1,2,3/:m;
pro/1,2,3/:pr;
link(oil,qiyou):c,x;
endsets
data:
c=4.8,5.6,4.8,5.6;
y=500,1000;
pr=10,8,6;
enddata
max=@sum(link:c*x)-@sum(sale:m*pr);
ml=@sum(sale:m);
ml<1500;
@sum(qiyou(j):x(1,j))<y(1)+ml;
@sum(qiyou(j):x(2,j))<y(2);
x(1,1)-x(2,1)>0;
2*x(1,2)-3*x(2,2)>0;
(m(1)-500)*m(2)=0;
(m(2)-500)*m(3)=0;
@for(sale(i):m(i)<500;);
end
利潤為4800千元。