数模论坛

 找回密码
 注-册-帐-号
搜索
热搜: 活动 交友 discuz
查看: 6818|回复: 1

请问这个解法有什么问题吗

[复制链接]
发表于 2008-7-21 22:00:03 | 显示全部楼层 |阅读模式
工厂生产计划(不好意思,新手不会编辑,请看下面)
某厂拥有4台磨床、2台立式钻床、3台卧式钻床、一台镗床和一台刨床,用以生产7中产品,记作P1P7。工厂收益规定为产品售价减去原材料费用之剩余。每种新产品单件的收益及所需各机床的加工工时(以小时计)列于表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 编辑 ]
 楼主| 发表于 2008-7-21 22:10:28 | 显示全部楼层

请问这个解法有什么问题吗(不好意思,刚才代码错了)

工厂生产计划
某厂拥有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)));
请问这个解法有什么问题吗?大家帮忙指正下哈

[ 本帖最后由 数学工兵 于 2008-7-21 22:15 编辑 ]
您需要登录后才可以回帖 登录 | 注-册-帐-号

本版积分规则

小黑屋|手机版|Archiver|数学建模网 ( 湘ICP备11011602号 )

GMT+8, 2024-11-26 20:34 , Processed in 0.050888 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表