|
[这个贴子最后由数学工兵在 2008/07/21 09:46pm 第 1 次编辑]
工厂生产计划
某厂拥有4台磨床、2台立式钻床、3台卧式钻床、一台镗床和一台刨床,用以生产7中产品,记作P1至P7。工厂收益规定为产品售价减去原材料费用之剩余。每种新产品单件的收益及所需各机床的加工工时(以小时计)列于表1
本月(一月)和随后的5个月中,下列机床停工维修(时间一个月):
一月 磨床1台;
二月 卧式钻床2台;
三月 镗床1台;
四月 立式钻床1台;
五月 磨床1台,立式钻床1台;
六月 刨床1台,卧式钻床1台。
各种产品各月份的市场容量如表2.
表1
产品 P1 P2 P3 P4 P5 P6 P7
收益 10 6 8 4 11 9 3
磨 0.5 0.7 0 0 0.3 0.2 0.5
垂直钻孔0.1 0.2 0 0.3 0 0.6 0
水平钻孔0.2 0 0.8 0 0 0 0.6
镗孔 0.05 0.03 0 0.07 0.1 0 0.08
刨 0 0 0.01 0 0.05 0 0.05
表二
产品 P1 P2 P3 P4 P5 P6 P7
一月 500 1000 300 300 800 200 100
二月 600 500 200 0 400 300 150
三月 300 600 0 0 500 400 100
四月 200 300 400 500 200 0 100
五月 0 100 500 100 1000 300 0
六月 500 500 100 300 1100 500 60
每种产品存货最多可到100件。存费每件每月为0.5元。现在无存货。要求到6月底每种产品有存货50件。
工厂每周工作6天,每天2班,每班8h。
为使收益最大,工厂应如何安排各月份产品的产量?考虑价格的某种变化及引入新机床对计划和收益的影响?
我是这样解的:
令收益为a(i),单件i产品在机床j上的加工工时为b(i,j),i种产品t月市场容量为c(i,t), i种产品t月末的剩余量为d(i,t),第t月第j种机床需检修的数量为e(j,t),第j种机床的数量为f(j),lingo代码如下:
sets:
si/1..7/:a;
st/1..6/;
sj/1..5/:f;
sij(si,sj):b;
sit(si,st):x,c,d;
sjt(sj,st):e;
endsets
data:
a=10 6 8 4 11 9 3;
c=500 600 300 200 0 500
1000 500 600 300 100 500
300 200 0 400 500 100
300 0 0 500 100 300
800 400 500 200 1000 1100
200 300 400 0 300 500
100 150 100 100 0 60 ;
b=0.5 0.1 0.2 0.05 0
0.7 0.2 0 0.03 0
0 0 0.8 0 0.01
0 0.3 0 0.07 0
0.3 0 0 0.1 0.05
0.2 0.6 0 0 0
0.5 0 0.6 0.08 0.05;
e=1 0 0 0 1 0
0 0 0 1 1 0
0 2 0 0 0 1
0 0 1 0 0 0
0 0 0 0 0 1;
f=4 2 3 1 1;
enddata
max=@sum(si(i) sum(st(t):a(i)*x(i,t)))-0.5*@sum(sit(i,t):d(i,t));
@for(si(i):d(i,1)=x(i,1)-c(i,1));
@for(si(i):
@for(st(t)|t#LT#6:d(i,t+1)=d(i,t)+x(i,t+1)-c(i,t+1))
);
@for(si(i):d(i,6)=50);
@for(si(i) for(st(t)|t#LT#6:d(i,t)<=100));
@for(sj(j):
@for(st(t):
@sum(si(i):x(i,t)*b(i,j))<=24*16*(f(j)-e(j,t))
)
);
@for(sit(i,t) gin(x(i,t)));
请问这个解法有什么问题吗?大家帮忙指正下哈
文字文字 |
|