工厂资源规划问题冉光明2010070102019信息与计算科学指导老师:赵姣珍目录摘要 (1)关键词 (1)问题的提出 (2)问题重述与分析 (3)符号说明 (4)模型假设 (4)模型建立与求解 (5)模型检验 (9)模型推广 (10)参考文献 (11)附录 (12)摘要:本问题是个优化问题。
问题首先选择合适的决策变量即各种产品数,然后通过决策变量来表达约束条件和目标函数,再利用matlab或lingo编写程序,求得最优产品品种计划;最后通过优化模型对问题作以解释,得出当技术服务消耗33小时、劳动力消耗67小时、不消耗行政管理时,得到的是最优品种规划。
问题一回答:当技术服务消耗33小时、劳动力消耗67小时、不消耗行政管理时,时,若使产品品产品III不值得生产。
用matlab运算分析,当产品III的利润增加至253种计划最优,此时需要消耗技术服务29h,劳动力消耗46h,行政管理消耗25h。
问题二回答:利用lingo得到当技术服务增加1h时,利润增加2.5元;劳动力增加1h,利润增加1元;行政管理的增减不会影响利润。
问题三回答:增加的决策变量,调整目标函数。
当技术服务消耗33h,劳动力消耗17h,不消耗行政管理,新增量50h时,管理部门采取这样的决策得到最优的产品品种规划。
问题四回答:增加新的约束条件,此时当技术服务消耗32h,劳动力消耗58h,行政管理消耗10h时,得到最优产品品种规划。
本文对模型的求解给出在线性约束条件下的获利最多的产品品种规划。
关键词:线性规划;优化模型;最优品种规划问题的提出某工厂制造三种产品,生产这三种产品需要三种资源:技术服务、劳动力和行政管理。
下表列出了三种单位产品对每种资源的需要量:资源利润技术服务劳动力行政管理产品I 1 10 2 10II 1 4 2 6III 1 5 6 4 现有100h的技术服务、600h劳动力和300h的行政管理时间可使用,求最优产品品种规划。
且回答下列问题:⑴若产品III值得生产的话,它的利润是多少?假使将产品III的利润增加至25/3元,求获利最多的产品品种规划。
⑵确定全部资源的影子价格。
⑶制造部门提出建议,要生产一种新产品,该种产品需要技术服务1h、劳动力4h 和行政管理4h。
销售部门预测这种产品售出时有8元的单位利润。
管理部门应有怎样的决策?⑷假定该工厂至少生产10件产品III,试确定最优产品品种规划。
问题重述与分析本问题是优化模型。
分别根据三种资源:技术服务、劳动力和行政管理的总时间约束建立线性优化模型,列出线性约束条件,制定出目标函数并用matlab或lingo求最大利润以及最优产品品种规划。
一、问题一的关键1.选择合适的决策变量来表达约束条件以及目标函数。
2.利用matlab编辑程序求得利润值及最优产品品种规划。
3.根据程序分析当产品III增加多少时,产品III是值得生产的。
二、问题二的关键利用Lingo编辑程序求得全部资源的影子价格。
三、问题三的关键利用matlab编辑程序求得利润值及最优产品品种规划四、问题四的关键增加约束条件,编辑程序求得最优产品品种规划。
符号说明x(i=1,2,3,4)表示三种产品数i模型假设假设固定三种资源中的任何一种的需要量,另外两种资源的需求量可变。
模型建立与求解一、问题一的回答问题中的关系式是线性关系。
设z 为三种产品的总利润,i x 表示第i 种产品的数,那么利润z 与i x 之间的关系如下:目标函数max 1231064z x x x =++ (1x ,2x ,3x 都为正整数) 的约束条件为:s.t ()⎪⎪⎩⎪⎪⎨⎧=>=<=++<=++<=++整数3,2,103006226005410100321321321i x x x x x x x x x x i 即线性规划模型。
运用matlab 编辑程序运算结果为:(程序见附录○1)x =33.3333 66.6667 0.0000fval =733.3333当技术服务消耗33h ,劳动力消耗67h ,不消耗行政管理,产品III 不值得生产。
假使将产品III 的利润增加至325元,使得最多的品种规划,即:目标函数max x xx z 321325610++= (1x ,2x ,3x 都为正整数)约束条件为:s.t ()⎪⎪⎩⎪⎪⎨⎧=>=<=++<=++<=++整数3,2,103006226005410100321321321i x x x x x x x x x x i运用matlab 编辑程序运算结果为:(程序见附录○2) x =29.1667 45.8333 25.0000fval =775.0000 当产品III 的利润增加253元时,获利最多。
二、问题二的回答:影子价格是没有市场价格的商品或服务的推算价格,他代表着生产或消费某种商品的机会成本,是为实现一定的经济发展目标而人为确定的比市场交换价格更为合理的一种理论价格,就是指行政管理人于每一计价日,采用市场利率和交易价格用lingo 运算结果如下:(程序见附录○3)Global optimal solution found.Objective value: 775.0000 Total solver iterations: 0Variable Value Reduced Cost X1 29.16667 0.000000 X2 45.83333 0.000000 X3 25.00000 0.000000Row Slack or Surplus Dual Price 1 775.0000 1.000000 2 0.000000 2.500000 3 0.000000 0.6666667 4 0.000000 0.4166667当技术服务增加1h 时,利润增加2.5元;劳动力增加1h ,利润增加1元;行政管理的增减不会影响利润。
三、问题三的回答:增加新的约束条件x 4,根据已知条件列出约束条件以及目标函数,如下: 目标函数Max x x x xz 432184610+++=s.t ⎪⎪⎩⎪⎪⎨⎧=>=<=+++<=+++<=+++整数)4,3,2,1(0300422600454101004321432143216i x x x x x x x x x x x x x i运用matlab 编写程序运算结果为:(程序见附录○4)x =33.3333 16.6667 0.0000 50.0000fval =833.3333当技术服务消耗33h ,劳动力消耗17h ,不消耗行政管理,新增量50h 时,管理部门采取这样的决策得到最优的产品品种规划。
四、问题四的回答:增加新的约束条件,根据已知条件列出目标函数及约束条件: 目标函数max x x xz 3214610++=s.t ⎪⎪⎪⎩⎪⎪⎪⎨⎧=>=>=<=++<=++<=++整数),3,2,1(01030022600541010033213213216i x x x x x x x x x x x i运用matlab 编写程序运算结果为:(程序见附录○5)x =31.6667 58.3333 10.0000fval =-706.6667此时当技术服务消耗32h ,劳动力消耗58h ,行政管理消耗10h 时,得到最优产品品种规划。
模型检验本模型中所有用matlab编写的程序用lingo来编写所得的结果完全一样,例如第一题用lingo来编写结果为:(程序见附录○6)solutionGlobal optimal solution found.Objective value: 733.3333Total solver iterations: 2Variable Value Reduced CostX1 33.33333 0.000000X2 66.66667 0.000000X3 0.000000 2.666667Row Slack or Surplus Dual Price1 733.3333 1.0000002 0.000000 3.3333333 0.000000 0.66666674 100.0000 0.000000与用matlab编写的运算结果完全一样,所以我认为次模型是正确的.模型的推广本模型运用matlab求解线性和非线性优化问题,建立优化模型,表达大规模问题,利用LINGO高效求解器可迅速求解并分析结果。
可以建立优化模型,表达大规模问题,并能高效迅速求解并分析结果。
参考文献[1] 赵静, 但琦. 数学建模与数学实验. 北京:高等教育出版社,2008.[2] 徐全智,杨普浩. 数学建模入门. 成都:电子科技大学出版社,1996.[3] 魏权龄,王日爽,徐兵. 数学规划议论. 北京:北京航空航天大学出版社,1991.[4] 苏金明,阮沈勇. MATLAB6.1实用指南. 北京:电子工业出版社,2002.[5] 薛家庆. 最优化原理与方法. 北京:冶金工业出版社,1983.附录○1f=[-10 -6 -4]f =-10 -6 -4>> A=[1 1 1;10 4 5;2 2 6]A =1 1 110 4 52 2 6>> b=[100 600 300]b =100 600 300>> Aeq=[]Aeq =[]>> beq=[]beq =[]>> vlb=zeros(3,1)vlb =>> vub=[]vub =[]>> [x,fval]=linprog(f,A,b,Aeq,beq,vlb,vub ○2f=[-10 -6 -25/3]f =-10.0000 -6.0000 -8.3333>> A=[1 1 1;10 4 5;2 2 6]A =1 1 110 4 52 2 6>> b=[100 600 300]b =100 600 300>> Aeq=[]Aeq =[]>> beq=[]beq =[]>> vlb=zeros(3,1)vlb =>> vub=[]vub =[]>> [x,fval]=linprog(f,A,b,Aeq,beq,vlb,vub) ○3max=10*x1+6*x2+25/3*x3;x1+x2+x3<100;10*x1+4*x2+5*x3<600;2*x1+2*x2+6*x3<300;End○4f=[-10 -6 -4 -8]f =-10 -6 -4 -8>> A=[1 1 1 1;10 4 5 4;2 2 6 4]A =1 1 1 110 4 5 42 2 6 4>> b=[100 600 300]b =100 600 300>> Aeq=[]Aeq =[]>> beq=[]beq =[]>> vlb=zeros(4,1)vlb =>> vub=[]vub =[]>> [x,fval]=linprog(f,A,b,Aeq,beq,vlb,vub) ○5f=[-10 -6 -4]f =-10 -6 -4>> A=[1 1 1;10 4 5;2 2 6]A =1 1 110 4 52 2 6>> b=[100 600 300]b =100 600 300>> Aeq=[]Aeq =[]>> beq=[]beq =[]>> vlb=[0 0 10]vlb =0 0 10>> vub=[]vub =[]>> [x,fval]=linprog(f,A,b,Aeq,beq,vlb,vub)○6max=10*x1+6*x2+4*x3;x1+x2+x3<100;10*x1+4*x2+5*x3<600;2*x1+2*x2+6*x3<300;end。