您好,欢迎访问三七文档
最优化模型(一般使用lingo软件实现)例如销售商要根据市场需求和生产成本,如何确定产品的价格使得利润最高,投资者要考虑资金周转和市场回报率,如何决策投资领域使得收益最大,风险最小等问题。一般的,在一系列的限制条件下。寻求使问题的某一项或多项指标达到最大或最小的决策问题,这种决策问题就称为最优化问题。0,,..minmax21221122222121112121112211nmnmnmmnnnnnnxxxbxaxaxabxaxaxabxaxaxatsxcxcxcf一线性规划模型•目标函数与约束条件涉及的都是线性函数的规划问题称为线性规划。一般形式:案例一(一维下料问题)•a.问题的提出•某公司因为生产的需要,现需要加工制作100套工架,根据工架的加工要求,每套工架分别需用长为2.9m,2.1m和1.5m的圆钢各一根。已知现有的原材料长7.5m,为降低成本费用,请帮助建模分析,该公司应如何下料使得所用的原材料最省?•b.问题的假设•1.忽略原料钢管切割过程中的原料损耗.•2.忽略原料钢管切割过程因损坏而增加额外费用买进原料钢管的情况.•3.假设钢管的大小一致.•4.在制作工架过程中焊接没有损耗。•c.问题的分析之所以有这样的问题,是因为下料的方式有很多种,如何下料,就是每一种下料方式下了多少根钢材,显然这就是我们的决策变量.•如果在每一根原材料上各截取2.9m,2.1米和1.5米的钢料各一根做成一个工架,那么每根原材料就剩下料头0.9米,要完成100套工架,就要用100跟原材料,共剩余90米料头,相当于12跟完整的原材料,显然这种做法是非常浪费的,所以为了节省原材料,选择一个合理的决策方案是非常重要的。这里就采用线性规划模型即可。•经分析可知,一根管可能的组合下料方案共有六种,如下表所示。•设xi为选用方案i下料的原材料根数,其中i=①...⑥。①②③④⑤⑥2.9米1201012.1米0022111.5米312031合计7.47.37.27.16.66.5料头00.10.20.30.80.9.0,,,,,1003231002210029.08.03.02.01.00mi6543216532165436421654321xxxxxxxxxxxxxxxxxxxxxxxxxnz•d.模型的建立•根据以上分析,要求完成100套工架的下料任务,所用的原材料最省,也就等价于求余下的料头总和最少,于是可以建立模型如下:•e.模型的求解•lingo的简单介绍•在lingo中建立优化模型。都是由MODEL语句开头,由END语句结束,编程分三步,第一步定义集合,第二步列出数据,第三步利用函数写出约束条件及目标函数。•本题的程序如下•MODEL:•sets:!开始定义集合•num_i/1,2,3/:b;!约束条件等式右边的三个值组成的3维数组•num_j/1..6/:x,c;!xi的系数组成的6维数组•link(num_i,num_j):a;!约束条件中的系数矩阵•endsets!集合定义完毕•data:!开始写入数据•b=100,100,100;•c=0,0.1,0.2,0.3,0.8,0.9;•a=1,2,0,1,0,1•0,0,2,2,1,1•3,1,2,0,3,1;•enddata!数据输入完毕•[obj]min=@sum(num_j(j):c(j)*x(j));!目标函数•@for(num_i(i):@sum(num_j(j):a(i,j)*x(j))=b(i););•!约束条件前三个•@for(num_j(j):x(j)=0;);!约束条件中非负•END•f.模型的结果及分析•由以上程序,可得问题的最优解为x1=30,x2=10,x4=50,x3=x5=x6=0,最优值为16.•也就是说,按方案①下料30根,方案②下料10根,方案④下料50根。共需要材料九十根,剩余料头为16米。•g.模型的检验•按方案①下料30根:就有2.9米的三十根,1.5米的90根,料头0米•按方案②下料10根:就有2.9米的二十根,1.5米的10根,料头1米•按方案④下料50根:就有2.9米的五十根,2.1米的一百根,料头15米。•h.模型的评价及改进•下料问题的建模主要有两部分组成•一是确定下料模式•二是构造优化模型•对于下料规格不太多时,可以采用枚举出下料模式,对规格太多的,则本模型就不能解决了。就需要寻找更精密的模型来解决问题。案例二(产销平衡的运输问题)•a.问题的提出•某产品有m个生产地Ai(i=1...m),n个销售地Bj(j=1..n)。各生产地的产量ai与各销售地的需求量bj,以及各生产地运往各销售地的单位运价cij如下表所示,且设总的产量等于总的销量,问在满足各地需求以及生产能力允许的条件下,如何安排调运方案使得总运费最少。B1B2...Bn产量A1c11c12...c1na1A2c21c22...c2na2..................Amcm1cm2...cmnam需求量b1b2...bn•b.模型的假设•1.假设生产没上限,需要多少就能生产多少;•2.假设总产量等于总销量•3.假设运输过程中没有损耗•4.假设销售价格及成本不变。•e.模型的分析•因为问题假设总产量等于总销量,所以该问题是一个标准的产销平衡问题的运输问题,即由生产地Ai运往各销售地的产品总量应该等于Ai的生产量,同时由各生产地运往销售地Bj的产品总量应该等于Bj的需求量。•设xij表示从生产地Ai运往销售地Bj的数量,总运费为z。•f.模型的建立•目标函数为使得总运费最少,建立模型如下:njmixnjbxmiaxtsxcijjmiijinjijminjijij,...,1;,...,10,...,1,...,1,..zmin1111•g.模型的求解(lingo)•MODEL:•sets:•num_i/1..m/:a;•num_j/1..n/:b;•link(num_i,num_j):c,x;•endsets•data:•a=a(1),a(2),...,a(m);•b=b(1),b(2),...,b(n);•c=c(1,1),c(1,2),...,c(1,n),•c(2,1),c(2,2),...,c(2,n),•.............•c(m,1),c(m,2),..,c(m,n);•enddata•[obj]min=@sum(link(i,j):c(i,j)*x(i,j));•@for(num_i(i):@sum(num_j(j):x(i,j)=a(i););•@for(num_j(j):@sum(num_i(i):x(i,j)=b(j););•@for(link(i,j):x(i,j)=0;);•END•h.模型的结果(略)•i.模型的分析及推广•这是一个产销平衡的运输问题的一般形式。对于任何一个具体的问题。只要代入相应数值即可,对于平衡问题,约束条件都是取等号,所以该问题还可以推广到产销不平衡的运输问题,即产大于销或者销大于产,只需要对约束条件的等号经行调整为相应的不等号即可。
本文标题:最优化模型
链接地址:https://www.777doc.com/doc-3960851 .html