工厂的生产计划
摘 要
本文以工厂所获得的总收益为研究对象,采用了线性规划的分析方法,通过求解不同产品的生产计划以及按计划生产所获得的利润,解决了工厂为达到最大总收益的产品生产计划问题。
在问题一的求解过程中,以每月每种产品的销售量和生产量为自变量,以工厂所获得的收益为目标函数,结合各种约束条件,建立了一个动态规划方程组,将各月份各种产品生产的最佳配置转化为动态规划方程组的求解问题,得到了最大收益为6.9256万元。
问题二在问题一的基础上考虑了市场价格的变化及引入新机床两个因素,为使模型简化,首先考虑市场价格的变化对计划和收益的影响。然后假定市场价格不变,利用Lingo软件,模拟出引入新机床对计划和收益的影响。
问题三是问题一的拓展,通过更改约束方程,利用模型一的计算程序,从而得到拓展模型的最优解。
关键字:总收益 销售量 生产量 动态规划 Lingo软件
一、问题的重述
某厂拥有4台磨床、2台立式钻床、3台卧式钻床、1台镗床和1台刨床,用以生产7种产品,记作至。工厂收益规定为产品售价减去原材料费用之剩余。每种产品单件的收益及所需各机床的加工工时(以小时计)列于下表:
本月(一月)和随后的5各月中,下列机床停工维修:
各种产品各月份的市场容量如下表:
每种产品存货最多可到100件,存费为每件每月0.5元。现无存货,要求到6月底每种产品有存货50件。工厂每周工作6天,每天2班,每班8小时。不需要考虑排队等待加工的问题。
1、为使收益最大,工厂应如何安排各月份各种产品的生产?
2、研究市场价格的某种变化及引入新机床对计划和收益的影响。
3、若各机床的停工维修时间不作预先规定,而是选择最合适的月份维修。除磨床外,每台机床在这6个月中的一个月必须停工维修;6个月中4台磨床有2台需要维修。扩展工厂计划模型,使得可以对灵活安排机床维修时间作出决策。停工时间的这种灵活性价值如何?
二、符号的约定
二、问题的分析
1、需解决的问题
按照题意,需要解决的问题是给出一个优化的产品加工方案,方案应包括每月每种机床的加工各种产品的数量,以使得工厂所获得的收益最大。
2、达到的目标
工厂的目标是获得最大利润,对于本题,产品生产的利润等于产品的收益乘以产品的数量减去库存产品的存储费用。本题要达到的目标就是通过建立数学模型寻求收益的最大化。
3、约束条件
由于利润等于产品的总收益减去库存产品的存储费用,就是说影响利润有产品的数量、库存产品的存储费用量两个因素,利用其约束条件将转化为求解动态规划方程组的问题,现分别对它的约束条件作如下分析。
(1)机床每月可工作时间的约束.
工厂每周工作6天,每天2班,每班8小时,所以每台机器每月(按30
计算)最多可以工作441小时,即满足
··············(1)
(2)各种产品销售量的约束.
每种产品每月的销售量由市场容量及该种产品的存货量决定,题中已给出各种产品各月份的市场容量表及最大存货量100件,故销售量应小于等于市场容量与存储量之和即
················ (2)
················ (3)
(3)六月份每种产品的存货应为50件.
················ (4)
(4)机床停工维修时间的限制.
由于每个月份都有机床停工维修(见题表),经分析,当该种机器处于维修状态时,其可用台数会减少从而影响各种产品的生产数量,进而影响总的销售额。
四、模型的建立与求解
模型的假设
1. 机器除维修时期外,其他时间均能正常工作,
2. 不需要考虑排队等待加工的问题,
3. 产品在储存过程中不发生质量问题,
4.该工厂生产的产品除存货外,在不超过市场容量的情况下均能售出,
5.市场价格的变化对产品原料和销售价格均有影响.
问题一模型的建立
(1)目标函数
题目的目标是寻求利润的最大化,而利润Y为六个月的收益的和,即
·············· (5)
每月总收益由各品种产品的收益之和,即
·············· (6)
库存产品的存储费用为可表示为
·············· (7)
目标函数可表示为
··············(8)
化简得
··············(9)
(2) 约束条件
由以上分析可得到如下约束条件
.
.
.
. ·············(10)
.
目标函数与约束条件的优化模型即为问题一的模型。
模型的求解
我们根据建立的线性规划模型,通过lingo软件编程(程序见附录1),得到了工
产品加工计划的最大值为6.9256万元。具体的生产安排计划见表1
表1 问题一的产品加工计划
结果分析:
加工计划与当月能用的机床、市场容量、加工产品的时间及加工产品的单项收益有关,尽量在前期避免生产量大于销售量,不然会增加存储费用从而增加成本,尽量增大单项收益高、加工时间短的产品的生产量
问题二中模型的建立与求解
该问研究市场价格的某种变化及引入新机床对计划和收益的影响。为简化模型,我们先分析市场价格对计划和收益的影响,然后在此基础上,由小到大逐个增加五种机床的引进数量并分析总收益的变化趋势来反映其对引入新机床对计划和收益的影响。
市场价格对单个产品的售价和原材料成本均有影响,不妨假设,单个产品的收益月减少率为x,则第j个月单个产品的利润
=· ··········· (11)
其中为第1个月第i个产品单件的收益。故可以建立总收益的目标
·········· (12)
其它约束条件均不变。
当x从0.01每次逐渐增加0.02时,利用lingo软件(程序见附录2),得到对应每个x值时的最大总收益,如下表2所示
表2不同x值时的最大总收益
用EXCEL软件绘图,得到图1:
图1:最大收益率与市场价格与增长率的关系
从表中可以发现,最大总收益随x的增大而基本呈线性的减小,且总收益为正。
接着考虑市场价格不变,即单项产品收益不变时引入新机床对计划和收益的影响,因为磨床加工耗时比较长,所以考虑磨床的引进对总收益的影响。如首先讨论磨床的数量由4逐次增加至8的过程中,总收益Y的变化趋势来衡量引入磨床对总收益的影响。用lingo软件进行求解(程序见附录3),分析结果发现引进磨床没有对总收益产生影响,总收益仍为69256元。再进行研究,发现引进立式钻床、卧式钻床对总收益也无影响。但当单独引进一台镗床时总收益变为80425元,比原来增加了11169元。当单独引进一台刨床时,总收益变为81786元,较原来增加了12530元。当引进一台镗床和一台刨床时,总收益为92955元,较原来增加了23699元。总收益共这四种结果,在引进机床无影响。
从引进机床的结果可以看出,原题中的机床维修对总收益并无很大影响。原因可能是总收益还受到市场容量以及存储量的限制,所以多引进机床并不能多生产。而引进镗床和刨床则会使生产方案发生变化,因为原有的这两台机床就很少,而且在某一月中还要进行维修。
问题三中模型的建立与求解
(1) 模型的改进
由于机床的停工维修时间不作预先规定,而是选择最合适的月份维修,对各种产品每月的加工数量的限制改变了。针对这个情况,对于问题三的模型,仍采用问题一的模型,只不过对约束条件进行了修改。
目标方程
···········(13)
(2)约束条件
由以上分析,可得到如下约束条件
.
.
. ···············(14)
.
.
五、模型的评价
模型的优点
1.我们在模型求解的时候,利用了专门求解规划问题的lingo数学软件,求解速度很快,而且结果准确;
2.在模型的改进中,我们采用了动态规划模型,考虑不同变量之间的关系,求解全局最优解。
3.我们对工厂的最大总收益进行了研究分析,认为增加一台镗床和一台刨床更能提高最大总收益。
模型的缺点
1. 在题目中,我们没有考虑产品每天的存储费用,只是简单地把存储费用看作是月底的存储量与存储价格的积,这样不太全面,有失偏差;
2. 我们从模型的求解中发现一些规律,例如总收益随单项产品收益的递减而线形地递减以及引进机床对最大总收益的影响等,但是没有能够用数学的方法从理论上解释原因;
3.我们没有考虑到市场容量变化对最大总收益的具体影响,而实际上供求变化对工厂的收益影响很大;
六、模型的推广
本模型是一个典型的线性规划模型,用来求解最大或最小目标函数值问题。此类问题很多,也有很多的推广应用价值。优化问题可以说是人们应用科学、工程设计、商业贸易等领域中最常遇到的一类问题。
这种用数学建模的方法来处理优化问题,即建立和求解所谓优化模型。虽然由于建模时要做适当的简化,可能使得结果不一定完全可行或达到实际上的最优,但是它基于客观规律和数据,模型的建立与求解并不需要耗费太多时间。如果在建模的基础上再赋予其现实意义,就可以期望得到实际问题的一个比较圆满的回答。
参考文献
[1]袁新生,邵大宏,郁时炼,LINGO和EXCEL在数学建模中的应用,北京,科学出版社,20##-11.
[2]姜启源,谢金星,叶俊,数学模型(第三版),高等教育出版社,20##年8月.
[3]叶其孝,大学生数学建模竞赛辅导教材(三),湖南教育出版社,1998年5月.
[4]谷源盛,运筹学,重庆大学出版社,20##年8月
附 录
1.
问题一中的程序代码
model:
sets:
m/1..6/:; !定义月份下标集;
k/1..7/:g; !定义产品种类;
b/1..5/:; !定义机床种类;
vol(m,k):v,p,l,s; !定义容量矩阵v,生产方案矩阵p,储存矩阵l和销售矩阵s;
time(b,k):t; !定义时间矩阵t;
endsets
data:
v=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;
g=10 6 8 4 11 9 3;
t=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.1 0 0.05 0 0.05;
enddata
max=@sum(m(i):@sum(k(j):g(j)*s(i,j))-0.5*@sum(k(j):l(i,j))); !目标函数;
@for(k(j):t(1,j)*p(1,j)<=411*3);
@for(k(j):t(1,j)*p(2,j)<=411*4);
@for(k(j):t(1,j)*p(3,j)<=411*4);
@for(k(j):t(1,j)*p(4,j)<=411*4);
@for(k(j):t(1,j)*p(5,j)<=411*3);
@for(k(j):t(1,j)*p(6,j)<=411*4);
@for(k(j):t(2,j)*p(1,j)<=411*2);
@for(k(j):t(2,j)*p(2,j)<=411*2);
@for(k(j):t(2,j)*p(3,j)<=411*2);
@for(k(j):t(2,j)*p(4,j)<=411*1);
@for(k(j):t(2,j)*p(5,j)<=411*1);
@for(k(j):t(2,j)*p(6,j)<=411*2);
@for(k(j):t(3,j)*p(1,j)<=411*3);
@for(k(j):t(3,j)*p(2,j)<=411*1);
@for(k(j):t(3,j)*p(3,j)<=411*3);
@for(k(j):t(3,j)*p(4,j)<=411*3);
@for(k(j):t(3,j)*p(5,j)<=411*3);
@for(k(j):t(3,j)*p(6,j)<=411*2);
@for(k(j):t(4,j)*p(1,j)<=411*1);
@for(k(j):t(4,j)*p(2,j)<=411*1);
@for(k(j):t(4,j)*p(3,j)<=411*0);
@for(k(j):t(4,j)*p(4,j)<=411*1);
@for(k(j):t(4,j)*p(5,j)<=411*1);
@for(k(j):t(4,j)*p(6,j)<=411*1);
@for(k(j):t(5,j)*p(1,j)<=411*1);
@for(k(j):t(5,j)*p(2,j)<=411*1);
@for(k(j):t(5,j)*p(3,j)<=411*1);
@for(k(j):t(5,j)*p(4,j)<=411*1);
@for(k(j):t(5,j)*p(5,j)<=411*1);
@for(k(j):t(5,j)*p(6,j)<=411*0);
@for(k(j):s(1,j)-v(1,j)<=0);
@for(k(j):s(2,j)-v(2,j)<=0);
@for(k(j):s(3,j)-v(3,j)<=0);
@for(k(j):s(4,j)-v(4,j)<=0);
@for(k(j):s(5,j)-v(5,j)<=0);
@for(k(j):s(6,j)-v(6,j)<=0);
@for(k(j):s(1,j)-p(1,j)<=0);
@for(k(j):s(2,j)-l(1,j)-p(2,j)<=0);
@for(k(j):s(3,j)-l(2,j)-p(3,j)<=0);
@for(k(j):s(4,j)-l(3,j)-p(4,j)<=0);
@for(k(j):s(5,j)-l(4,j)-p(5,j)<=0);
@for(k(j):s(6,j)-l(5,j)-p(6,j)<=0);
@for(k(j):l(1,j)<=100);
@for(k(j):l(2,j)<=100);
@for(k(j):l(3,j)<=100);
@for(k(j):l(4,j)<=100);
@for(k(j):l(5,j)<=100);
@for(k(j):l(6,j)=50);
@for(k(j):l(1,j)-p(1,j)-s(1,j)=0);
@for(k(j):l(2,j)-l(1,j)+p(2,j)-s(2,j)=0);
@for(k(j):l(3,j)-l(2,j)+p(3,j)-s(3,j)=0);
@for(k(j):l(4,j)-l(3,j)+p(4,j)-s(4,j)=0);
@for(k(j):l(5,j)-l(4,j)+p(5,j)-s(5,j)=0);
@for(k(j):l(6,j)-l(5,j)+p(6,j)-s(6,j)=0);
@for(vol(i,j):@gin(p(i,j)));
@for(vol(i,j):@gin(s(i,j)));
@for(vol(i,j):@gin(l(i,j)));
@for(vol(i,j):@gin(v(i,j)));
end
程序运行后的结果为
Global optimal solution found.
Objective value: 69256.00
Extended solver steps: 0
Total solver iterations: 62
Variable Value Reduced Cost
V( 1, 1) 500.0000 0.000000
V( 1, 2) 1000.000 0.000000
V( 1, 3) 300.0000 0.000000
V( 1, 4) 300.0000 0.000000
V( 1, 5) 800.0000 0.000000
V( 1, 6) 200.0000 0.000000
V( 1, 7) 100.0000 0.000000
V( 2, 1) 600.0000 0.000000
V( 2, 2) 500.0000 0.000000
V( 2, 3) 200.0000 0.000000
V( 2, 4) 0.000000 0.000000
V( 2, 5) 400.0000 0.000000
V( 2, 6) 300.0000 0.000000
V( 2, 7) 150.0000 0.000000
V( 3, 1) 300.0000 0.000000
V( 3, 2) 600.0000 0.000000
V( 3, 3) 0.000000 0.000000
V( 3, 4) 0.000000 0.000000
V( 3, 5) 500.0000 0.000000
V( 3, 6) 400.0000 0.000000
V( 3, 7) 100.0000 0.000000
V( 4, 1) 200.0000 0.000000
V( 4, 2) 300.0000 0.000000
V( 4, 3) 400.0000 0.000000
V( 4, 4) 500.0000 0.000000
V( 4, 5) 200.0000 0.000000
V( 4, 6) 0.000000 0.000000
V( 4, 7) 100.0000 0.000000
V( 5, 1) 0.000000 0.000000
V( 5, 2) 100.0000 0.000000
V( 5, 3) 500.0000 0.000000
V( 5, 4) 100.0000 0.000000
V( 5, 5) 1000.000 0.000000
V( 5, 6) 300.0000 0.000000
V( 5, 7) 0.000000 0.000000
V( 6, 1) 500.0000 0.000000
V( 6, 2) 500.0000 0.000000
V( 6, 3) 100.0000 0.000000
V( 6, 4) 300.0000 0.000000
V( 6, 5) 1100.000 0.000000
V( 6, 6) 500.0000 0.000000
V( 6, 7) 60.00000 0.000000
P( 1, 1) 50.00000 0.000000
P( 1, 2) 50.00000 0.000000
P( 1, 3) 50.00000 0.000000
P( 1, 4) 50.00000 0.000000
P( 1, 5) 50.00000 0.000000
P( 1, 6) 50.00000 0.000000
P( 1, 7) 50.00000 0.000000
P( 2, 1) 650.0000 0.000000
P( 2, 2) 550.0000 0.000000
P( 2, 3) 293.0000 0.000000
P( 2, 4) 93.00000 0.000000
P( 2, 5) 450.0000 0.000000
P( 2, 6) 393.0000 0.000000
P( 2, 7) 200.0000 0.000000
P( 3, 1) 0.000000 0.000000
P( 3, 2) 0.000000 0.000000
P( 3, 3) 0.000000 0.000000
P( 3, 4) 0.000000 0.000000
P( 3, 5) 0.000000 0.000000
P( 3, 6) 394.0000 0.000000
P( 3, 7) 0.000000 0.000000
P( 4, 1) 275.0000 0.000000
P( 4, 2) 387.0000 0.000000
P( 4, 3) 394.0000 0.000000
P( 4, 4) 494.0000 0.000000
P( 4, 5) 287.0000 0.000000
P( 4, 6) 0.000000 0.000000
P( 4, 7) 175.0000 0.000000
P( 5, 1) 0.000000 0.000000
P( 5, 2) 88.00000 0.000000
P( 5, 3) 488.0000 0.000000
P( 5, 4) 88.00000 0.000000
P( 5, 5) 988.0000 0.000000
P( 5, 6) 288.0000 0.000000
P( 5, 7) 0.000000 0.000000
P( 6, 1) 475.0000 0.000000
P( 6, 2) 475.0000 0.000000
P( 6, 3) 0.000000 0.000000
P( 6, 4) 275.0000 0.000000
P( 6, 5) 0.000000 0.000000
P( 6, 6) 475.0000 0.000000
P( 6, 7) 0.000000 0.000000
L( 1, 1) 100.0000 0.5000000
L( 1, 2) 100.0000 0.5000000
L( 1, 3) 100.0000 0.5000000
L( 1, 4) 100.0000 0.5000000
L( 1, 5) 100.0000 0.5000000
L( 1, 6) 100.0000 0.5000000
L( 1, 7) 100.0000 0.5000000
L( 2, 1) 50.00000 0.5000000
L( 2, 2) 50.00000 0.5000000
L( 2, 3) 7.000000 0.5000000
L( 2, 4) 7.000000 0.5000000
L( 2, 5) 50.00000 0.5000000
L( 2, 6) 7.000000 0.5000000
L( 2, 7) 50.00000 0.5000000
L( 3, 1) 100.0000 0.5000000
L( 3, 2) 100.0000 0.5000000
L( 3, 3) 7.000000 0.5000000
L( 3, 4) 7.000000 0.5000000
L( 3, 5) 100.0000 0.5000000
L( 3, 6) 13.00000 0.5000000
L( 3, 7) 100.0000 0.5000000
L( 4, 1) 25.00000 0.5000000
L( 4, 2) 13.00000 0.5000000
L( 4, 3) 13.00000 0.5000000
L( 4, 4) 13.00000 0.5000000
L( 4, 5) 13.00000 0.5000000
L( 4, 6) 13.00000 0.5000000
L( 4, 7) 25.00000 0.5000000
L( 5, 1) 25.00000 0.5000000
L( 5, 2) 25.00000 0.5000000
L( 5, 3) 25.00000 0.5000000
L( 5, 4) 25.00000 0.5000000
L( 5, 5) 25.00000 0.5000000
L( 5, 6) 25.00000 0.5000000
L( 5, 7) 25.00000 0.5000000
L( 6, 1) 50.00000 0.000000
L( 6, 2) 50.00000 0.000000
L( 6, 3) 50.00000 0.000000
L( 6, 4) 50.00000 0.000000
L( 6, 5) 50.00000 0.000000
L( 6, 6) 50.00000 0.000000
L( 6, 7) 50.00000 0.000000
S( 1, 1) 50.00000 -10.00000
S( 1, 2) 50.00000 -6.000000
S( 1, 3) 50.00000 -8.000000
S( 1, 4) 50.00000 -4.000000
S( 1, 5) 50.00000 -11.00000
S( 1, 6) 50.00000 -9.000000
S( 1, 7) 50.00000 -3.000000
S( 2, 1) 600.0000 -10.00000
S( 2, 2) 500.0000 -6.000000
S( 2, 3) 200.0000 -8.000000
S( 2, 4) 0.000000 -4.000000
S( 2, 5) 400.0000 -11.00000
S( 2, 6) 300.0000 -9.000000
S( 2, 7) 150.0000 -3.000000
S( 3, 1) 50.00000 -10.00000
S( 3, 2) 50.00000 -6.000000
S( 3, 3) 0.000000 -8.000000
S( 3, 4) 0.000000 -4.000000
S( 3, 5) 50.00000 -11.00000
S( 3, 6) 400.0000 -9.000000
S( 3, 7) 50.00000 -3.000000
S( 4, 1) 200.0000 -10.00000
S( 4, 2) 300.0000 -6.000000
S( 4, 3) 400.0000 -8.000000
S( 4, 4) 500.0000 -4.000000
S( 4, 5) 200.0000 -11.00000
S( 4, 6) 0.000000 -9.000000
S( 4, 7) 100.0000 -3.000000
S( 5, 1) 0.000000 -10.00000
S( 5, 2) 100.0000 -6.000000
S( 5, 3) 500.0000 -8.000000
S( 5, 4) 100.0000 -4.000000
S( 5, 5) 1000.000 -11.00000
S( 5, 6) 300.0000 -9.000000
S( 5, 7) 0.000000 -3.000000
S( 6, 1) 500.0000 -10.00000
S( 6, 2) 500.0000 -6.000000
S( 6, 3) 25.00000 -8.000000
S( 6, 4) 300.0000 -4.000000
S( 6, 5) 25.00000 -11.00000
S( 6, 6) 500.0000 -9.000000
S( 6, 7) 25.00000 -3.000000
T( 1, 1) 0.5000000 0.000000
T( 1, 2) 0.7000000 0.000000
T( 1, 3) 0.000000 0.000000
T( 1, 4) 0.000000 0.000000
T( 1, 5) 0.3000000 0.000000
T( 1, 6) 0.2000000 0.000000
T( 1, 7) 0.5000000 0.000000
T( 2, 1) 0.1000000 0.000000
T( 2, 2) 0.2000000 0.000000
T( 2, 3) 0.000000 0.000000
T( 2, 4) 0.3000000 0.000000
T( 2, 5) 0.000000 0.000000
T( 2, 6) 0.6000000 0.000000
T( 2, 7) 0.000000 0.000000
T( 3, 1) 0.2000000 0.000000
T( 3, 2) 0.000000 0.000000
T( 3, 3) 0.8000000 0.000000
T( 3, 4) 0.000000 0.000000
T( 3, 5) 0.000000 0.000000
T( 3, 6) 0.000000 0.000000
T( 3, 7) 0.6000000 0.000000
T( 4, 1) 0.5000000E-01 0.000000
T( 4, 2) 0.3000000E-01 0.000000
T( 4, 3) 0.000000 0.000000
T( 4, 4) 0.7000000E-01 0.000000
T( 4, 5) 0.1000000 0.000000
T( 4, 6) 0.000000 0.000000
T( 4, 7) 0.8000000E-01 0.000000
T( 5, 1) 0.000000 0.000000
T( 5, 2) 0.000000 0.000000
T( 5, 3) 0.1000000 0.000000
T( 5, 4) 0.000000 0.000000
T( 5, 5) 0.5000000E-01 0.000000
T( 5, 6) 0.000000 0.000000
T( 5, 7) 0.5000000E-01 0.000000
Row Slack or Surplus Dual Price
1 69256.00 1.000000
2 1208.000 0.000000
3 1198.000 0.000000
4 1233.000 0.000000
5 1233.000 0.000000
6 1218.000 0.000000
7 1223.000 0.000000
8 1208.000 0.000000
9 1319.000 0.000000
10 1259.000 0.000000
11 1644.000 0.000000
12 1644.000 0.000000
13 1509.000 0.000000
14 1565.400 0.000000
15 1544.000 0.000000
16 1644.000 0.000000
17 1644.000 0.000000
18 1644.000 0.000000
19 1644.000 0.000000
20 1644.000 0.000000
21 1565.200 0.000000
22 1644.000 0.000000
23 1506.500 0.000000
24 1373.100 0.000000
25 1644.000 0.000000
26 1644.000 0.000000
27 1557.900 0.000000
28 1644.000 0.000000
29 1556.500 0.000000
30 1233.000 0.000000
31 1171.400 0.000000
32 1233.000 0.000000
33 1233.000 0.000000
34 936.6000 0.000000
35 1175.400 0.000000
36 1233.000 0.000000
37 1406.500 0.000000
38 1311.500 0.000000
39 1644.000 0.000000
40 1644.000 0.000000
41 1644.000 0.000000
42 1549.000 0.000000
43 1644.000 0.000000
44 817.0000 0.000000
45 812.0000 0.000000
46 822.0000 0.000000
47 807.0000 0.000000
48 822.0000 0.000000
49 792.0000 0.000000
50 822.0000 0.000000
51 757.0000 0.000000
52 712.0000 0.000000
53 822.0000 0.000000
54 794.1000 0.000000
55 822.0000 0.000000
56 586.2000 0.000000
57 822.0000 0.000000
58 822.0000 0.000000
59 822.0000 0.000000
60 822.0000 0.000000
61 822.0000 0.000000
62 822.0000 0.000000
63 585.6000 0.000000
64 822.0000 0.000000
65 383.5000 0.000000
66 333.6000 0.000000
67 411.0000 0.000000
68 262.8000 0.000000
69 411.0000 0.000000
70 411.0000 0.000000
71 411.0000 0.000000
72 411.0000 0.000000
73 393.4000 0.000000
74 411.0000 0.000000
75 384.6000 0.000000
76 411.0000 0.000000
77 238.2000 0.000000
78 411.0000 0.000000
79 774.5000 0.000000
80 727.0000 0.000000
81 822.0000 0.000000
82 739.5000 0.000000
83 822.0000 0.000000
84 537.0000 0.000000
85 822.0000 0.000000
86 1223.000 0.000000
87 1233.000 0.000000
88 1193.000 0.000000
89 1233.000 0.000000
90 1233.000 0.000000
91 1233.000 0.000000
92 1203.000 0.000000
93 281.0000 0.000000
94 411.0000 0.000000
95 176.6000 0.000000
96 411.0000 0.000000
97 411.0000 0.000000
98 411.0000 0.000000
99 291.0000 0.000000
100 1233.000 0.000000
101 1233.000 0.000000
102 1233.000 0.000000
103 1233.000 0.000000
104 1233.000 0.000000
105 1233.000 0.000000
106 1233.000 0.000000
107 1178.000 0.000000
108 1233.000 0.000000
109 917.8000 0.000000
110 1233.000 0.000000
111 1233.000 0.000000
112 1233.000 0.000000
113 1128.000 0.000000
114 1233.000 0.000000
115 1233.000 0.000000
116 842.6000 0.000000
117 1233.000 0.000000
118 1233.000 0.000000
119 1233.000 0.000000
120 1233.000 0.000000
121 727.0000 0.000000
122 822.0000 0.000000
123 822.0000 0.000000
124 822.0000 0.000000
125 822.0000 0.000000
126 822.0000 0.000000
127 822.0000 0.000000
128 408.5000 0.000000
129 409.5000 0.000000
130 411.0000 0.000000
131 407.5000 0.000000
132 406.0000 0.000000
133 411.0000 0.000000
134 407.0000 0.000000
135 378.5000 0.000000
136 394.5000 0.000000
137 411.0000 0.000000
138 404.4900 0.000000
139 366.0000 0.000000
140 411.0000 0.000000
141 395.0000 0.000000
142 0.000000 0.000000
143 0.000000 0.000000
144 0.000000 0.000000
145 0.000000 0.000000
146 0.000000 0.000000
147 0.000000 0.000000
148 0.000000 0.000000
149 397.2500 0.000000
150 399.3900 0.000000
151 411.0000 0.000000
152 376.4200 0.000000
153 382.3000 0.000000
154 411.0000 0.000000
155 397.0000 0.000000
156 411.0000 0.000000
157 408.3600 0.000000
158 411.0000 0.000000
159 404.8400 0.000000
160 312.2000 0.000000
161 411.0000 0.000000
162 411.0000 0.000000
163 387.2500 0.000000
164 396.7500 0.000000
165 411.0000 0.000000
166 391.7500 0.000000
167 411.0000 0.000000
168 411.0000 0.000000
169 411.0000 0.000000
170 411.0000 0.000000
171 411.0000 0.000000
172 406.0000 0.000000
173 411.0000 0.000000
174 408.5000 0.000000
175 411.0000 0.000000
176 408.5000 0.000000
177 411.0000 0.000000
178 411.0000 0.000000
179 381.7000 0.000000
180 411.0000 0.000000
181 388.5000 0.000000
182 411.0000 0.000000
183 401.0000 0.000000
184 411.0000 0.000000
185 411.0000 0.000000
186 411.0000 0.000000
187 411.0000 0.000000
188 411.0000 0.000000
189 411.0000 0.000000
190 411.0000 0.000000
191 411.0000 0.000000
192 411.0000 0.000000
193 371.6000 0.000000
194 411.0000 0.000000
195 396.6500 0.000000
196 411.0000 0.000000
197 402.2500 0.000000
198 411.0000 0.000000
199 411.0000 0.000000
200 362.2000 0.000000
201 411.0000 0.000000
202 361.6000 0.000000
203 411.0000 0.000000
204 411.0000 0.000000
205 0.000000 0.000000
206 0.000000 0.000000
207 0.000000 0.000000
208 0.000000 0.000000
209 0.000000 0.000000
210 0.000000 0.000000
211 0.000000 0.000000
212 450.0000 0.000000
213 950.0000 0.000000
214 250.0000 0.000000
215 250.0000 0.000000
216 750.0000 0.000000
217 150.0000 0.000000
218 50.00000 0.000000
219 0.000000 0.000000
220 0.000000 0.000000
221 0.000000 0.000000
222 0.000000 0.000000
223 0.000000 0.000000
224 0.000000 0.000000
225 0.000000 0.000000
226 250.0000 0.000000
227 550.0000 0.000000
228 0.000000 0.000000
229 0.000000 0.000000
230 450.0000 0.000000
231 0.000000 0.000000
232 50.00000 0.000000
233 0.000000 0.000000
234 0.000000 0.000000
235 0.000000 0.000000
236 0.000000 0.000000
237 0.000000 0.000000
238 0.000000 0.000000
239 0.000000 0.000000
240 0.000000 0.000000
241 0.000000 0.000000
242 0.000000 0.000000
243 0.000000 0.000000
244 0.000000 0.000000
245 0.000000 0.000000
246 0.000000 0.000000
247 0.000000 0.000000
248 0.000000 0.000000
249 75.00000 0.000000
250 0.000000 0.000000
251 1075.000 0.000000
252 0.000000 0.000000
253 35.00000 0.000000
254 0.000000 0.000000
255 0.000000 0.000000
256 0.000000 0.000000
257 0.000000 0.000000
258 0.000000 0.000000
259 0.000000 0.000000
260 0.000000 0.000000
261 150.0000 0.000000
262 150.0000 0.000000
263 193.0000 0.000000
264 193.0000 0.000000
265 150.0000 0.000000
266 193.0000 0.000000
267 150.0000 0.000000
268 0.000000 0.000000
269 0.000000 0.000000
270 7.000000 0.000000
271 7.000000 0.000000
272 0.000000 0.000000
273 1.000000 0.000000
274 0.000000 0.000000
275 175.0000 0.000000
276 187.0000 0.000000
277 1.000000 0.000000
278 1.000000 0.000000
279 187.0000 0.000000
280 13.00000 0.000000
281 175.0000 0.000000
282 25.00000 0.000000
283 1.000000 0.000000
284 1.000000 0.000000
285 1.000000 0.000000
286 1.000000 0.000000
287 1.000000 0.000000
288 25.00000 0.000000
289 0.000000 0.000000
290 0.000000 0.000000
291 0.000000 0.000000
292 0.000000 0.000000
293 0.000000 0.000000
294 0.000000 0.000000
295 0.000000 0.000000
296 0.000000 0.000000
297 0.000000 0.000000
298 0.000000 0.000000
299 0.000000 0.000000
300 0.000000 0.000000
301 0.000000 0.000000
302 0.000000 0.000000
303 50.00000 0.000000
304 50.00000 0.000000
305 93.00000 0.000000
306 93.00000 0.000000
307 50.00000 0.000000
308 93.00000 0.000000
309 50.00000 0.000000
310 0.000000 0.000000
311 0.000000 0.000000
312 93.00000 0.000000
313 93.00000 0.000000
314 0.000000 0.000000
315 87.00000 0.000000
316 0.000000 0.000000
317 75.00000 0.000000
318 87.00000 0.000000
319 87.00000 0.000000
320 87.00000 0.000000
321 87.00000 0.000000
322 87.00000 0.000000
323 75.00000 0.000000
324 75.00000 0.000000
325 75.00000 0.000000
326 75.00000 0.000000
327 75.00000 0.000000
328 75.00000 0.000000
329 75.00000 0.000000
330 75.00000 0.000000
331 0.000000 -0.5000000
332 0.000000 -0.5000000
333 0.000000 -0.5000000
334 0.000000 -0.5000000
335 0.000000 -0.5000000
336 0.000000 -0.5000000
337 0.000000 -0.5000000
338 0.000000 0.000000
339 0.000000 0.000000
340 0.000000 0.000000
341 0.000000 0.000000
342 0.000000 0.000000
343 0.000000 0.000000
344 0.000000 0.000000
345 0.000000 0.000000
346 0.000000 0.000000
347 0.000000 0.000000
348 0.000000 0.000000
349 0.000000 0.000000
350 0.000000 0.000000
351 0.000000 0.000000
352 0.000000 0.000000
353 0.000000 0.000000
354 0.000000 0.000000
355 0.000000 0.000000
356 0.000000 0.000000
357 0.000000 0.000000
358 0.000000 0.000000
359 0.000000 0.000000
360 0.000000 0.000000
361 0.000000 0.000000
362 0.000000 0.000000
363 0.000000 0.000000
364 0.000000 0.000000
365 0.000000 0.000000
366 0.000000 0.000000
367 0.000000 0.000000
368 0.000000 0.000000
369 0.000000 0.000000
370 0.000000 0.000000
371 0.000000 0.000000
372 0.000000 0.000000
373 0.000000 0.000000
374 0.000000 0.000000
375 0.000000 0.000000
376 0.000000 0.000000
377 0.000000 0.000000
378 0.000000 0.000000
379 0.000000 0.000000
2.
问题二中当x值变化时的Lingo程序代码
model:
sets:
m/1..6/:; !定义月份下标集;
k/1..7/:f,g; !定义产品种类;
b/1..5/:; !定义机床种类;
vol(m,k):v,p,l,s; !定义容量矩阵v,生产方案矩阵p,储存矩阵l和销售矩阵s;
time(b,k):t; !定义时间矩阵t;
endsets
data:
v=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;
f=10 6 8 4 11 9 3;
t=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.1 0 0.05 0 0.05;
enddata
max=@sum(m(i):@sum(k(j):g(j)*s(i,j))-0.5*@sum(k(j):l(i,j))); !目标函数;
@for(k(j):g(j)-f(j)*(1-x)=0);
x=0.01; !值每次递加0.02,直到0.19;
@for(k(j):t(1,j)*p(1,j)<=411*3);
@for(k(j):t(1,j)*p(2,j)<=411*4);
@for(k(j):t(1,j)*p(3,j)<=411*4);
@for(k(j):t(1,j)*p(4,j)<=411*4);
@for(k(j):t(1,j)*p(5,j)<=411*3);
@for(k(j):t(1,j)*p(6,j)<=411*4);
@for(k(j):t(2,j)*p(1,j)<=411*2);
@for(k(j):t(2,j)*p(2,j)<=411*2);
@for(k(j):t(2,j)*p(3,j)<=411*2);
@for(k(j):t(2,j)*p(4,j)<=411*1);
@for(k(j):t(2,j)*p(5,j)<=411*1);
@for(k(j):t(2,j)*p(6,j)<=411*2);
@for(k(j):t(3,j)*p(1,j)<=411*3);
@for(k(j):t(3,j)*p(2,j)<=411*1);
@for(k(j):t(3,j)*p(3,j)<=411*3);
@for(k(j):t(3,j)*p(4,j)<=411*3);
@for(k(j):t(3,j)*p(5,j)<=411*3);
@for(k(j):t(3,j)*p(6,j)<=411*2);
@for(k(j):t(4,j)*p(1,j)<=411*1);
@for(k(j):t(4,j)*p(2,j)<=411*1);
@for(k(j):t(4,j)*p(3,j)<=411*0);
@for(k(j):t(4,j)*p(4,j)<=411*1);
@for(k(j):t(4,j)*p(5,j)<=411*1);
@for(k(j):t(4,j)*p(6,j)<=411*1);
@for(k(j):t(5,j)*p(1,j)<=411*1);
@for(k(j):t(5,j)*p(2,j)<=411*1);
@for(k(j):t(5,j)*p(3,j)<=411*1);
@for(k(j):t(5,j)*p(4,j)<=411*1);
@for(k(j):t(5,j)*p(5,j)<=411*1);
@for(k(j):t(5,j)*p(6,j)<=411*0);
@for(k(j):s(1,j)-v(1,j)<=0);
@for(k(j):s(2,j)-v(2,j)<=0);
@for(k(j):s(3,j)-v(3,j)<=0);
@for(k(j):s(4,j)-v(4,j)<=0);
@for(k(j):s(5,j)-v(5,j)<=0);
@for(k(j):s(6,j)-v(6,j)<=0);
@for(k(j):s(1,j)-p(1,j)<=0);
@for(k(j):s(2,j)-l(1,j)-p(2,j)<=0);
@for(k(j):s(3,j)-l(2,j)-p(3,j)<=0);
@for(k(j):s(4,j)-l(3,j)-p(4,j)<=0);
@for(k(j):s(5,j)-l(4,j)-p(5,j)<=0);
@for(k(j):s(6,j)-l(5,j)-p(6,j)<=0);
@for(k(j):l(1,j)<=100);
@for(k(j):l(2,j)<=100);
@for(k(j):l(3,j)<=100);
@for(k(j):l(4,j)<=100);
@for(k(j):l(5,j)<=100);
@for(k(j):l(6,j)=50);
@for(k(j):l(1,j)-p(1,j)-s(1,j)=0);
@for(k(j):l(2,j)-l(1,j)+p(2,j)-s(2,j)=0);
@for(k(j):l(3,j)-l(2,j)+p(3,j)-s(3,j)=0);
@for(k(j):l(4,j)-l(3,j)+p(4,j)-s(4,j)=0);
@for(k(j):l(5,j)-l(4,j)+p(5,j)-s(5,j)=0);
@for(k(j):l(6,j)-l(5,j)+p(6,j)-s(6,j)=0);
@for(vol(i,j):@gin(p(i,j)));
@for(vol(i,j):@gin(s(i,j)));
@for(vol(i,j):@gin(l(i,j)));
@for(vol(i,j):@gin(v(i,j)));
end
3.
问题二中引进磨床时的程序代码
model:
sets:
m/1..6/:; !定义月份下标集;
k/1..7/:g; !定义产品种类;
b/1..5/:; !定义机床种类;
vol(m,k):v,p,l,s; !定义容量矩阵v,生产方案矩阵p,储存矩阵l和销售矩阵s;
time(b,k):t; !定义时间矩阵t;
endsets
data:
v=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;
g=10 6 8 4 11 9 3;
t=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.1 0 0.05 0 0.05;
enddata
max=@sum(m(i):@sum(k(j):g(j)*s(i,j))-0.5*@sum(k(j):l(i,j))); !目标函数;
@for(k(j):t(1,j)*p(1,j)<=411*3); !每次运行时递加1,直到7;
@for(k(j):t(1,j)*p(2,j)<=411*4); !每次运行时递加1,直到8;
@for(k(j):t(1,j)*p(3,j)<=411*4); !每次运行时递加1,直到8;
@for(k(j):t(1,j)*p(4,j)<=411*4); !每次运行时递加1,直到8;
@for(k(j):t(1,j)*p(5,j)<=411*3); !每次运行时递加1,直到7;
@for(k(j):t(1,j)*p(6,j)<=411*4); !每次运行时递加1,直到8;
@for(k(j):t(2,j)*p(1,j)<=411*2);
@for(k(j):t(2,j)*p(2,j)<=411*2);
@for(k(j):t(2,j)*p(3,j)<=411*2);
@for(k(j):t(2,j)*p(4,j)<=411*1);
@for(k(j):t(2,j)*p(5,j)<=411*1);
@for(k(j):t(2,j)*p(6,j)<=411*2);
@for(k(j):t(3,j)*p(1,j)<=411*3);
@for(k(j):t(3,j)*p(2,j)<=411*1);
@for(k(j):t(3,j)*p(3,j)<=411*3);
@for(k(j):t(3,j)*p(4,j)<=411*3);
@for(k(j):t(3,j)*p(5,j)<=411*3);
@for(k(j):t(3,j)*p(6,j)<=411*2);
@for(k(j):t(4,j)*p(1,j)<=411*1);
@for(k(j):t(4,j)*p(2,j)<=411*1);
@for(k(j):t(4,j)*p(3,j)<=411*0);
@for(k(j):t(4,j)*p(4,j)<=411*1);
@for(k(j):t(4,j)*p(5,j)<=411*1);
@for(k(j):t(4,j)*p(6,j)<=411*1);
@for(k(j):t(5,j)*p(1,j)<=411*1);
@for(k(j):t(5,j)*p(2,j)<=411*1);
@for(k(j):t(5,j)*p(3,j)<=411*1);
@for(k(j):t(5,j)*p(4,j)<=411*1);
@for(k(j):t(5,j)*p(5,j)<=411*1);
@for(k(j):t(5,j)*p(6,j)<=411*0);
@for(k(j):s(1,j)-v(1,j)<=0);
@for(k(j):s(2,j)-v(2,j)<=0);
@for(k(j):s(3,j)-v(3,j)<=0);
@for(k(j):s(4,j)-v(4,j)<=0);
@for(k(j):s(5,j)-v(5,j)<=0);
@for(k(j):s(6,j)-v(6,j)<=0);
@for(k(j):s(1,j)-p(1,j)<=0);
@for(k(j):s(2,j)-l(1,j)-p(2,j)<=0);
@for(k(j):s(3,j)-l(2,j)-p(3,j)<=0);
@for(k(j):s(4,j)-l(3,j)-p(4,j)<=0);
@for(k(j):s(5,j)-l(4,j)-p(5,j)<=0);
@for(k(j):s(6,j)-l(5,j)-p(6,j)<=0);
@for(k(j):l(1,j)<=100);
@for(k(j):l(2,j)<=100);
@for(k(j):l(3,j)<=100);
@for(k(j):l(4,j)<=100);
@for(k(j):l(5,j)<=100);
@for(k(j):l(6,j)=50);
@for(k(j):l(1,j)-p(1,j)-s(1,j)=0);
@for(k(j):l(2,j)-l(1,j)+p(2,j)-s(2,j)=0);
@for(k(j):l(3,j)-l(2,j)+p(3,j)-s(3,j)=0);
@for(k(j):l(4,j)-l(3,j)+p(4,j)-s(4,j)=0);
@for(k(j):l(5,j)-l(4,j)+p(5,j)-s(5,j)=0);
@for(k(j):l(6,j)-l(5,j)+p(6,j)-s(6,j)=0);
@for(vol(i,j):@gin(p(i,j)));
@for(vol(i,j):@gin(s(i,j)));
@for(vol(i,j):@gin(l(i,j)));
@for(vol(i,j):@gin(v(i,j)));
end
工厂的生产计划摘要本文以工厂所获得的总收益为研究对象,采用了线性规划的分析方法,通过求解不同产品的生产计划以及按计划生产所获得的利…
工厂生产计划表格一工厂生产计划综合报表二工厂生产计划安排表月份总经理厂长审核拟定三工厂各部门生产计划安排表月份300第三十章四工厂…
中国3000万经理人首选培训网站工厂生产计划管理11生产能力核定方案文案生产能力核定方案名称执行部门一目的监督部门文件编号考证部门…
工厂生产计划书工厂生产工作近期计划分为投产前正式投产投产前工作计划以设备安装整改为主要内容解决影响工厂投产的各项问题投产前工作安排…
工厂各部门七月份工作计划办公室1调整劳保用品标准保证按月按时发放2定期检查现场清洁生产宿舍卫生3宣贯质量等级工资标准试算并做好其他…
20xx年好居家家具公司生产计划一20xx年的经营方针在认真审视公司经营的优势和劣势强项和弱项的基础上公司发展战略中心对当前行业的…
工厂经营计划书工厂概况SMTFUJICP42台产能50万点24H七温区回流焊1台DIP插件线1条10米波峰焊1台关键词稳步经营持续…
小型服装加工厂项目计划书一项目企业摘要投资安排拟建企业基本情况二业务描述企业的宗旨主要发展战略目标和阶段目标三产品与服务内地服装市…
相关述语:MPS:生产主计划MRP:物料需求计划PO:采购订单BOM:材料清单ECN:工程变更什么是生产计划一个优化的生产计划必须…