为了正常的体验网站,请在浏览器设置里面开启Javascript功能!
首页 > 利用Excel进行规划求解

利用Excel进行规划求解

2020-03-09 19页 doc 122KB 25阅读

用户头像

is_321575

暂无简介

举报
利用Excel进行规划求解利用Excel进行规划求解 Excel具有规划求解的基本功能,包括线性规划和非线性规划。对于常规的线性规划问题,Excel就可以给出求解结果。对于比较复杂的问题,那就需要用到较难掌握的数学软件如Matlab了。不过,大多数规划问题Mathcad即可完成所赋予的任务。利用Excel求解规划问题有些“罗嗦”,但也不难掌握。下面以几个简单的实例说明其应用方法,希望各位能够举一反三,将其推广到多变量的情形。 【例1】设有一位个体户制杯者,有两副模具,分别用来生产果汁杯和鸡尾酒杯。有关生产情况的各种数据资料见下表。 品种 工效(h)...
利用Excel进行规划求解
利用Excel进行规划求解 Excel具有规划求解的基本功能,包括线性规划和非线性规划。对于常规的线性规划问题,Excel就可以给出求解结果。对于比较复杂的问题,那就需要用到较难掌握的数学软件如Matlab了。不过,大多数规划问题Mathcad即可完成所赋予的任务。利用Excel求解规划问题有些“罗嗦”,但也不难掌握。下面以几个简单的实例说明其应用方法,希望各位能够举一反三,将其推广到多变量的情形。 【例1】设有一位个体户制杯者,有两副模具,分别用来生产果汁杯和鸡尾酒杯。有关生产情况的各种数据资料见下。 品种 工效(h) 储藏量(m3) 定点量(件)* 收益(元) 果汁杯 6 h/百件 10 m3/百件 600件 600元/百件 鸡尾酒杯 5 h/百件 20 m3/百件 0件 400元/百件           *注:定点量为每周生产的最大数量。 若每周工作不超过50小时,且拥有储藏量为140m3的仓库。问: 该个体户如何安排工作时间才能使得每周的收益最大? 若每周多干1小时,收益增大多少? 通过加班加点达到的收益极限是多少? 解:这个例子取自一本面向中学生的知识读物,是一个最大收益问题,可以建立模型如下: 显然,约束条件中的第三个式子x1≤6可以表作1*x1+0*x2≤6,从而有如下矩阵 , , , 容易看到,上述模型表为矩阵形式便是: 目标函数为 约束条件为 下面是利用Excel求解规划结果的详细步骤: 第一步,录入数据,定义有关单元格 在Excel中,将有关数据资料按一定的录入,最好按照资料表格录入。其中单元格B3、B4中的数值为预设的迭代初始值(相当于x1(0)=1,x2(0)=1),当然可以设为其他数值(如x1(0)=0,x2(0)=1)。 图1 录入数据,预设迭代初始值 接着是定义单元格,方法与步骤如下: 定义目标函数 在B1单元格中输入公式“=F3*B3+F4*B4”,回车,这相当于建立目标函数公式 定义约束条件 在C6单元格中输入公式“=C3*B3+C4*B4”,回车;在D6单元格中输入公式“=D3*B3+D4*B4”,回车;在E6单元格中输入“=E3*B3+E4*B4”,回车。如果想一步到位,则可在C6单元格中输入公式“=$B$3*C3+$B$4*C4”(即在选中B3、B4单元格时,先后按功能键F4),回车以后,用鼠标指向C6单元格的右下角,揿住左键,右拖至E6单元格。这几步相当于输入约束条件左半边 定义完毕以后,数据表给出了基于初始值(x1(0)=1,x2(0)=1)结果(图2)。当然,如果初始值的设置不同,结果也会不同,但不影响最终求解答案。 图2 定义过单元格后的数据表 第二步,规划选项 沿着主菜单的“工具→规划求解”路径打开“规划求解参数”对话框(图3),进行如下设置: 将光标置入“设置目标单元格”对应的空白栏中,再用鼠标选中B1单元格,这相当于将目标函数公式导入。 在下面的最大值、最小值等选项中,默认“最大值(M)”——因为本题是寻求最大收益。 将光标置于“可变单元格”对应的空白栏中,用鼠标选中B3:B4单元格,这相当于令B3为x1,B4为x2。 图3 规划求解参数对话框 接下是添加约束条件:点击图3中的添加(A)按钮,弹出“添加约束”对话框,将光标置于“单元格引用位置”对应的空白栏,用鼠标选中C6单元格;中间的小于等于号(<=)不变;再将光标置于“约束值”对应的单元格,用鼠标选中C5单元格(图4)。点击“添加(A)”或“确定”按钮。这一步相当于表达式 图4 添加约束第一步 再次点击图3中的添加按钮,分别在有关位置设置D6单元格,小于等于号<=,以及D5单元格(图5)。添加或确定。这一步相当于公式 图5 添加约束第二步 第三次点击图3中的添加按钮,分别在有关位置设置E6单元格,小于等于号<=,以及E5单元格(图6)。添加或确定。这一步相当于公式 图6 添加约束第三步 第四次点击图3中的添加按钮,将光标置于“单元格引用位置”对应的空白栏,用鼠标选中B3单元格;中间的小于等于号(<=)改为大于等于号(>=);再将光标置于“约束值”对应的单元格,输入0(图7)。添加或确定。这一步相当于 图7 添加约束第四步 第五次点击图3中的添加按钮,分别在有关位置设置B4单元格,大于等于号>=,以及0(图8)。确定。这一步相当于公式 图8 添加约束第五步 全部设置完毕以后,对话框的各项内容如下(图9)。如果打开“选项”对话框,还有更多的参数可以设置,不过对于简单的规划求解(如本例),那些选项暂时用不到。 图9 设置完毕以后的规划求解参数对话框 第三步,输出结果 在图9所示的对话框中,点击“求解”按钮,随机弹出“规划求解结果”选项框。若想知道详细的求解情况,可以选中“(R)”中的三个报告名称(图10)。 图10 规划求解结果对话框 点击图10所示的“确定”按钮,立即得到求解结果(图11): 图11 规划求解结果 图12 运算结果报告 图13 敏感性报告 图14 极限值报告 另外给出了三个求解报告,包括:运算结果报告、敏感性报告和极限制报告(图12-14)。这几个报告比较简明,容易读懂,不多解释。 至此可知,对于这为个体户而言,他每周应该生产x1=6百件果汁杯,x2=2.8百件鸡尾酒杯。时间分配显然是:果汁杯6×6=36小时;鸡尾酒杯2.8×5=14小时,合计50小时。这样,他每周可以得到fmax=600×6+400×2.8=4720元的收入(毛收入)。 第四步,进一步的运算 将图2所示的C5单元格中的50改为51,重复上述规划求解过程,可知:每周多干1小时,可得4800元的收入,亦即多干1小时可以增加收入4800-4820=80元的收入(图15)。 图15 每周多干1小时的规划求解结果 继续增加工作时间,即不断推延工作时间的限量,在此过程中反复重复上述规划求解过程,可以发现,当工作时间延长到56小时时,工效和储藏量等约束都达到饱和值,此时的求解结果为x1=6,x2=4,fmax=5200(图16)。 图16 每周工作56小时的规划求解结果 如果继续延长工时,如每周工作60小时,我们发现,求解结果没有任何变化(图17),因为储藏量总量限定了生产的规模。 图17 每周工作60小时的规划求解结果 【例2】某矿业公司拥有两个矿场,生产的砂石分为三级:高级、中级和低级。该公司与某炼矿厂订有,每周供给高级矿12吨,中级矿8吨,低级矿24吨。该公司经营第一矿场日需1000元,经营第二矿场日需800元。但经营第一矿场每日可生产6吨高级矿,2吨中级矿与4吨低级矿,而经营第二矿场,每日可生产2吨高级矿,2吨中级矿与12吨低级矿。试问:两个矿场每周应分别经营多少日,方能使得该公司的生产最为经济? 解:这是一个求最小成本问题,为了建模方便,不妨将所给资料列于表格之中:   高级矿 中级矿 低级矿 成本 第一矿场 6 2 4 1000 第二矿场 2 2 12 800 生产低限 12 8 24             根据主题思想和表中数据,可以建立线性规划模型如下: 模型中的参数可用矩阵表示 , , , 可见,上述模型表为矩阵形式便是: 目标函数为 约束条件为 在Excel上实现上述规划求解的步骤与例1大同小异。显然,由于本例是求最小成本,与求最大收益肯定有不同之处。数据的排列方式与上例相同(图18,当然可以采用其他方式,总之要使定义变量来得方便为准)。 图18 录入数据并定义过单元格 在设置规划求解参数对话框时,对应于目标函数应选“最小值(N)”;在添加的约束条件栏目,所有的小于等于号“<=”全部改成大于等于号“>=”(图19)。利用线性规划方法求最小成本与求最大收益的模型区别就在于此,不论借助什么软件求解,这一点区分都是关键——从后面讲述的 “利用Mathcad进行规划求解”一节的有关内容可以看出这种区别。 图19 设置完毕以后的规划求解参数对话框 大于等于号的调用方法是:在添加约束条件的选项框中,用鼠标指向中间栏目下向三角符号 ,从下拉选项单中选择大于等于号(图20)。全部的求解结果如下(图21-24)。 图20 添加求最小值吨约束条件 图21 例2的运算结果报告 图22 例2的敏感性报告 图23 例2的极限值报告 基本的答案在初步计算结果中即可看到(图24)。 图24 例2的规划求解结果 借助Excel还可以处理非线性规划求解问题。不过,非线性规划不详线性规划那么单一,其模型表达形式可谓是千变万化。但不管怎么变化,基本原理是不变的。下面用最简单的实例进行说明。 【例3】给定一条1米长的铁丝,要求将其弯成一个矩形,使得该矩形包围的面积最大。 解:这是一个最简单的非线性规划问题:目标是矩形面积最大,约束条件是长度不超过1米,未知量是矩形的长短边的长度。不妨设两个边长分别为x1和x2米,于是建立非线性规划模型如下: 目标函数:                约束条件:                在高等数学中,这个问题是利用Lagrange乘数求条件极值的。根据目标函数和约束条件建立一个Lagrange函数 式中λ为La氏乘数(或称乘子)。分别对x1、x2求偏导得 , 我们知道,函数仅在切线的斜率为0处有极值——所谓导数,其几何意义实则曲线某点的切线的斜率。因此,为求极值,令求导结果为0,得到 故最终的矩形实为一个正方形。将上式代入约束条件中的第一个式子,并取等号,即2x1+2x2=1,立即得到x1=x2=0.25米,λ=x1/2=x2/2=0.125,S=x1x2=0.0625平方米。 这个问题在Excel中求解及其方便,基本原理正是用了Lagrange函数。目标单元格不妨仍用B1单元格表示,表征未知量的可变单元格还用B3:B4表示(即用B3代表x1,用B4代表x2),约束值用B5单元格表示,初始值依然设为x1(0)=1,x2(0)=1(图25a)——显然,x1(0)+x2(0)=2>1,超过约束条件4倍,但是没关系,求解过程会自动收敛到最佳值(图25b)。 a 定义约束条件                b 求解的结果 图25 初始数据与求解结果 在目标单元格B1中输入目标函数表达式“=B3*B4”,这相当于 在约束条件单元格输入函数表达式“=2*B3+2*B4”,这相当于 规划求解参数对话框的设置如下(图26)。其中约束条件分别相当于 图26 规划求解参数的设置 求解的初步结果在图25b中给出:x1=x2=0.25米,最大面积为Smax=0.252=0.0625米2。详细结果可以参考下面的三个报告(图27-29)。 图27 例3的运行结果报告 图28 例3的敏感值报告 图29 例3的极限值报告
/
本文档为【利用Excel进行规划求解】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索