工厂生产计划(不好意思,新手不会编辑,请看下面)
某厂拥有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.70.2 0
0.03 0
0
0
0.8 0
0.01
0
0.3 0
0.07 0
0.30
0
0.1
0.05
0.20.6 0
0
0
0.50
0.6 0.08 0.05;
e=1 0 0 0 1 0
0 00 1 1 0
0 20 0 0 1
0 01 0 0 0
0 00 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)));
请问这个解法有什么问题吗?大家帮忙指正下哈
[ 本帖最后由 数学工兵 于 2008-7-21 22:15 编辑 ] |