使用Excel求解线性规划问题
- 格式:doc
- 大小:953.00 KB
- 文档页数:21
用Excel求解线性规划问题实验(实验题目在最后)一、Excel函数使用Excel求解线性规划问题时,SUMPRODUCT函数可以大大降低资料录入工作量,提高工作效率。
计算数组或向量的乘积时,使用SUMPRODUCT 函数,格式如下:SUMPRODUCT(数组1,数组2,…,数组n)其中2≤n≤30,即最多可以使用30个数组参数,返回值为n个数组对应元素乘积之和。
以图1为例,在单元格D1中输入公式=SUMPRODUCT(A1:B1,A2:B2,A3:B3)得到111(相当于A1*A2*A3 + B1*B2*B3 = 1*2*3 + 3*5*7 = 111)。
在单元格D2中输入公式=SUMPRODUCT(A1:C1,A2:C2)得到53(相当于A1*A2 + B1*B2 + C1*C2 = 1*2 + 3*5 + 4*9 = 53)。
图1. 乘积和(SUMPRODUCT函数)计算结果11二、求解实例1. 问题描述与模型建立某玩具厂生产猫和龟两种玩具,制造一个玩具猫可获利30元,制造一个玩具龟可获利20元。
制造一个猫需要2小时机工和1小时手工;制造一个龟需要1小时机工和1小时手工。
在一周内,机工不能超过100h ,手工不能超过80h ,猫的产量不能超过45个。
求产品的最佳生产量和最大利润。
设1x 为一周内猫的生产量,2x 为一周内龟的生产量。
可建立如下线性规划模型:⎪⎩⎪⎨⎧≤≤+≤++=458010022030max 1212121x x x x x x x g2. 数据录入(1)启动Excel ,建立如图2所示的Excel 工作表,输入系数矩阵A 到区域C2:D4;输入约束常数b 到区域F2:F4;输入目标系数到区域C5:D5。
(2)指定单元格C6和D6存储变量1x 和2x 的值,称之为可变单元格。
在可变单元格中输入数字1表示给定初始值121==x x ,但并非一定这样;若这两个单元格不输入内容,Excel 将按0处理,不影响求解。
用EXCEL求解线性规划
要用EXCEL求解线性规划问题,需要遵循以下步骤:
1. 给定问题中的约束条件和目标函数。
2. 打开EXCEL,建立一个新的工作表。
3. 在工作表中输入问题的约束条件和目标函数。
在输入目标函数时,需要将所有项移动到等号左侧,使它成为一个线性方程。
需要注意将不等式约束条件转化为等式约束条件,可以通过添加松弛变量来实现。
4. 使用EXCEL的“规划”工具,在工具栏中点击“数据”-“分
析”-“规划器”,打开“规划器”。
5. 在“规划器”中,选择需要优化的目标单元格,在“约束条件”
中输入所有约束条件所在的单元格,设置变量单元格的范围。
6. 可以在“选项”中添加其他约束条件。
例如,可以设定变量的整数或二元特性等。
7. 单击“求解”按钮,EXCEL将自动求解最优解,并输出最优
值和变量值。
需要注意的是,线性规划问题求解的结果是一个数值,而不是图形。
因此,需要谨慎分析问题以确保从数值结果中得到了正确的结论。
利用Excel求解线性规划问题线性规划问题的求解有很多方法,也有很多工具。
比如常用的Matlab、Lingo,记得参加数学建模的时候就是用的Lingo解决线性规划问题的。
本文主要讲解如何使用Excel求解线性规划问题,Excel本身是没有计算线性规划问题能力的,因此我们首先要加载相应的宏定义。
一、加载宏定义(不同版本的加载方式有所不同):Excel 2003:单击“工具”菜单,然后单击“加载宏”,选择“规划求解”点击确定。
Excel 2007:方法一:用快捷键。
先按Alt+T,再按I键,即可打开加载宏对话框。
方法二:单击“Office按钮→Excel 选项→加载项”,确保“管理”右侧下拉列表中的选项是“Excel 加载项”,单击“转到”按钮即可。
Excel 2010:直接在功能区中选择“开发工具”选项卡,在“加载项”组中单击“加载项”命令,选择“规划求解”点击确定。
注意:如果功能区中没有“开发工具”选项卡,可以通过自定义功能区来显示“开发工具”选项卡:单击“文件→选项→自定义功能区”,然后在右侧区域中勾选“开发工具”并单击“确定”。
二、初始化数据(以Excel 2010为例,其他版本大同小异):比如我们要计算的线性规划问题如下:那么,我们可以构造如下的表格数据。
其中,B2:F2为待求的值Xi,B3:F3为目标函数的系数,B4:F4、B5:F5、B6:F6为约束条件的系数。
在G3单元格中输入公式=$B$2*B3+$C$2*C3+$D$2*D3+$E$2*E3+$F$2*F3,并将鼠标放到单元格的右下角会变成黑色十字架,向下拖拽复制单元格公式到G4、G5、G6单元格。
然后,单击“数据”选项卡,单击“规划求解”打开“规划求解参数”对话框。
∙修改“设置目标”为$G$3,即最优解下目标函数的值z所在的单元格。
∙选择是求最大值,还是最小值。
∙“可变单元格”指的是最优解取值变量所在的单元格。
∙“遵守约束”指的是约束条件中对各变量的约束情况。
excel线性规划Excel线性规划是指利用Excel软件来解决线性规划问题。
线性规划问题是最经典的优化问题之一,主要是在一定约束条件下,找出使某个目标函数取得最优值的决策变量取值。
Excel提供了Solver插件,可以用于求解线性规划问题。
首先,我们需要建立起线性规划问题的模型。
假设我们有m个决策变量x1、x2、...、xm,需要找到这些决策变量的取值,使得目标函数Z(x1、x2、...、xm)取得最优值。
同时,还有n个约束条件,即使得一些函数关系式(一般为等式或不等式)满足。
线性规划模型可以表示为如下形式:目标函数:Z = c1x1 + c2x2 + ... + cmxm + d约束条件:A11x1 + A12x2 + ... + A1mxm <= b1A21x1 + A22x2 + ... + A2mxm <= b2...An1x1 + An2x2 + ... + Anmxm <= bn然后,我们可以通过Excel的Solver插件来求解线性规划问题。
具体步骤如下:1. 打开Excel软件,在工具栏中选择“数据”菜单,点击“求解器”按钮。
2. 在弹出的Solver对话框中,选择“线性规划”作为求解的方法。
3. 在“目标单元格”栏中输入目标函数的单元格地址。
若目标函数是在单元格C1中,则输入$C$1。
4. 在“变量单元格”栏中输入决策变量的单元格范围。
若决策变量是在范围B1:B5中,则输入$B$1:$B$5。
5. 在“约束条件”栏中,点击“添加”按钮,逐个输入约束条件。
每个约束条件包括“约束单元格”、“约束类型”和“约束值”三项。
若第一个约束条件是在单元格D1中,约束类型为“<=”,约束值为10,则输入$D$1<=10。
6. 在“求解方法”下拉菜单中,选择求解的方法。
常用的有“规划求解法”和“单纯形法”。
7. 点击“确定”按钮开始求解。
Solver会根据给定的目标函数和约束条件,寻找使目标函数取得最优值的决策变量取值。
数学与信息科学学院Excel求解线性规划问题实验教程二零一三零八月目录1.关于“规划求解” (1)2.如何加载“规划求解” (2)3.“规划求解”各参数解释和设置 (3)4.“规划求解”的步骤 (6)5.Excel求解线性规划问题 (8)6.Excel求解运输问题 (14)7.Excel求解目标规划问题 (18)8.Excel求解整数规划问题 (22)1.关于“规划求解”“规划求解”是Excel中的一个加载宏,借助“规划求解”,可求得工作表上某个单元格(被称为目标单元格)中公式(公式:单元格中的一系列值、单元格引用、名称或运算符的组合,可生成新的值。
公式总是以等号(=)开始)的最优值。
“规划求解”将对直接或间接目标单元格中公式相关联的一组单元格中的数值进行调整,最终在目标单元格公式中求得期望的结果。
“规划求解”通过调整所指定的可更改的单元格(可变单元格)中的值,从目标单元格公式中求得所需的结果。
在创建模型过程中,可以对“规划求解”中的可变单元格数值应用约束条件(约束条件:“规划求解”中设置的限制条件。
可以将约束条件应用于可变单元格、目标单元格或其它与目标单元格直接或间接相关的单元格。
而且约束条件可以引用其它影响目标单元格公式的单元格。
使用“规划求解”可通过更改其它单元格来确定某个单元格的最大值或最小值。
)Microsoft Excel的“规划求解”工具取自德克萨斯大学奥斯汀分校的Leon Lasdon 和克里夫兰州立大学的Allan Waren共同开发的Generalized Reduced Gradient(GRG2)非线性最优化代码。
线性和整数规划问题取自Frontline Systems公司的John Watson 和Dan Fylstra提供的有界变量单纯形法和分支边界法。
2.如何加载“规划求解”安装office的时候,系统默认的安装方式不会安装宏程序,需要用户根据自己的需求选择安装。
下面是加载“规划求解”宏的步骤:(1)在“工具”菜单上,单击“加载宏”。
实验三、用Excel求解线性规划模型线性规划问题用手工求解工作量很大,而且没有较高的数学基础很难理解其计算过程和方法,但是借助Excel“规划求解”工具,就能轻而易举地求得结果。
Excel最多可解200个变量、600个约束条件的问题。
下面我们以一实例介绍利用Excel规划求解工具怎样快速解决具体的经济决策问题。
一、实验目的1、掌握如何建立线性规划模型。
2、掌握用Excel求解线性规划模型的方法。
3、掌握如何借助于Excel对线性规划模型进行灵敏度分析,以判断各种可能的变化对最优方案产生的影响。
4、读懂Excel求解线性规划问题输出的运算结果报告和敏感性报告。
二、实验内容1、[工具][规划求解]命令规划求解加载宏是Excel的一个可选安装模块,在安装Excel时,只有在选择“完全/定制安装”时才可选择装入这个模块。
在安装完成进入Excel后还要用[工具][加载宏]命令选中“规划求解”,以后在[工具]菜单下就增加了一条[规划求解]命令。
使用[规划求解]命令的一般步骤为:第一步:在选取[工具][规划求解]命令后,弹出图1所示“规划求解参数”对话框,其中各选项说明如表1。
图1“规划求解参数”对话框选项名说明设置目标单元格选取计算问题的目标函数,并含有计算公式的单元格等于按问题目标进行选择。
如利润问题,选取“最大值”可变单元格决策变量所在各单元格、不含公式,可以有多个区域或单元格约束增加、修改、删除各个约束等式或不等式,一个一个地与图2切换填入或修改添加选择后弹出图2所示对话框更改选择后弹出图3所示对话框删除删除所选定的约束条件选项决定采用线性模型还是非线性模型求解约束条件中的单元格引用位置,可从键盘直接录入,也可用鼠标拖放选取。
图2图3第二步:完成图1所示的一切填入项目后,单击“选项”按钮,在弹出的“规划求解选项”对话框中若是线性模型则选取“采用线性规模”选项按钮,再单击“确定”按钮回到图1。
图4第三步:在图1中单击“求解”按钮,经计算完成后弹出“规划求解结果”对话框(图5)。
【必须收藏】只用60秒就能解决的Excel线性规划,你却熬
了整个通宵...
箭头处“蓝色字”,
每天学一个表格技能!
领导给小王同志12个金额,让他凑数据,凑成26005元和33459元。
左拼右凑这个金额,凑了一个通宵,还没凑对,十分着急,同事3分钟就给解决了
❶在Excel中调出线性规划我们在Excel选项里面,找到加载项然后勾选规划求解加载项,点击确定
❷我们在C1单元格输入公式:=SUMPRODUCT(A2:A13*B2:B13)
❸前面加载了加载项之后,在数据选项卡下,就有了规划求解进行相关设置后,运行得到最终的结果,操作动图如下所示:
其中的设置是,设置目标是C1单元格,目标值是26005,可变的单元格区域是B2:B13,遵守约束是B2:B13是二进制
最终B2:B13单元格中的数据为1的这些值累加起来,正好就能得到我们需要的26005了
剩下的数据正好就是33459元了。
模糊凑数据
如果给定的一个金额是系统也不可能准确的凑出来,Excel一直在计算的过程中的时候,可以随时按ESC退出
或者我们改变公式,使得进行模糊的凑数据接近这个值,我们现在要把这些数据最接近30000
我们可以在C1输入公式:=ABS(SUMPRODUCT(A2:A13,B2:B13)-30000)
然后在线性规划中的设置是:C1是最小值
然后运行,这个时候,会一直在那里转,这个时候,我们需要按ESC,然后
保留求解
得到了一组结果。
这个例子还是找到了正好等于30000的数据。
如果不等于的话,那么会得出一个最接近的结果。
当然,平时不用这个功能的时候,需要把这个功能给关闭了,否则每次打开Excel的速度会变慢一点。
利用Excel 进行规划求解Excel 具有规划求解的基本功能,包括线性规划和非线性规划。
对于常规的线性规划问题,Excel 就可以给出求解结果。
对于比较复杂的问题,那就需要用到较难掌握的数学软件如Matlab 了。
不过,大多数规划问题Mathcad 即可完成所赋予的任务。
利用Excel 求解规划问题有些“罗嗦”,但也不难掌握。
下面以几个简单的实例说明其应用方法,希望各位能够举一反三,将其推广到多变量的情形。
【例1】设有一位个体户制杯者,有两副模具,分别用来生产果汁杯和鸡尾酒杯。
有关生产情况的各种数据资料见下表。
3 果汁杯6 h/百件 10 m 3/百件 600件 600元/百件 鸡尾酒杯 5 h/百件 20 m 3/百件 0件 400元/百件 *注:定点量为每周生产的最大数量。
若每周工作不超过50小时,且拥有储藏量为140m3的仓库。
问:⑴ 该个体户如何安排工作时间才能使得每周的收益最大?⑵ 若每周多干1小时,收益增大多少?⑶ 通过加班加点达到的收益极限是多少?解:这个例子取自一本面向中学生的知识读物,是一个最大收益问题,可以建立模型如下:21400600)(Max x x x f +=⎪⎪⎩⎪⎪⎨⎧≥≥≤≤+≤+0,0614020105056 s.t.2112121x x x x x x x 显然,约束条件中的第三个式子x 1≤6可以表作1*x 1+0*x 2≤6,从而有如下矩阵⎥⎦⎤⎢⎣⎡=400600c ,⎥⎦⎤⎢⎣⎡=21x x x ,⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=01201056A ,⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=614050b 容易看到,上述模型表为矩阵形式便是:目标函数为[]⎥⎦⎤⎢⎣⎡==21400600)(Max x x x c x f T 约束条件为⎪⎪⎪⎩⎪⎪⎪⎨⎧≥⎥⎦⎤⎢⎣⎡=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=≤⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=061405001201056 s.t.21x x x b Ax下面是利用Excel 求解规划结果的详细步骤:第一步,录入数据,定义有关单元格在Excel 中,将有关数据资料按一定的规范录入,最好按照资料表格录入。
利用Excel中的加载宏新加入的规划求解功能可以方便的解决线性规划问题。
下面是详细步骤:
(1)打开Excel,单击“工具”弹出菜单,然后单击“加载宏”会出现如下画面:
选择“规划求解”点击确定,这样你的Excel就有了能解决线性规划问题的功能。
(2)依次输入以下数据作为准备工作,如下图:
(3)然后在表中选中“G3”位置如下图
输入以下公式“=$B$2*B3+$C$2*C3+$D$2*D3+$E$2*E3+$F$2*F3”(输入公式时必须在英文输入状态),然后回车即可。
(4)选中“G3”位置可以看到公式了,则用填充柄拖动让G4,G5,G6都相应填上公式
(5)再次选中“G3”点击“工具”----“规划求解”,出现下图:
根据题意选择目标单元格为“$G$3”,等于最小值,可变单元格为“$B$2:$C$2:$D$2:$E$2:$F$2”。
然后点击“添加”添加约束条件。
一共有八个约束条件要加入。
下图为其中之一:
(6)添加完约束条件后的图片是:
(7)如上图点击“求解”即可得到结果,如下图:。
利用excel求解线性规划问题线性规划(Linear Programming,LP)是一种用于求解最优化问题的数学方法。
它在经济学,管理学,工程学等领域得到了广泛应用。
Excel是一种功能强大的电子表格软件,提供了一些内置的工具和函数,可以帮助我们求解线性规划问题。
在Excel中求解线性规划问题,通常需要使用“规划求解”工具,该工具位于“数据”选项卡的“分析”分组中。
下面将逐步介绍如何使用Excel求解线性规划问题。
步骤1:建立模型首先,我们需要建立线性规划模型。
模型通常包括目标函数和约束条件。
目标函数:我们需要定义一个目标函数,它表示我们希望最大化或最小化的目标。
在Excel中,可以使用单元格引用和各种数学运算符来定义目标函数。
约束条件:我们需要定义一系列约束条件,这些约束条件是对决策变量的限制。
在Excel中,可以使用不等式和等式来表示约束条件。
每个约束条件都可以转化为一个单元格引用和数学运算符的组合。
步骤2:输入数据在建立模型之后,我们需要输入相关数据。
这包括目标函数中的系数和约束条件中的系数和约束值。
在Excel中,我们可以使用单元格来输入这些数据。
步骤3:设置规划求解选择“数据”选项卡,在“分析”分组中找到“规划求解”工具。
如果没有找到该工具,可能需要先启用“加载项”中的“分析工具包”。
点击“规划求解”,将会打开一个对话框。
在这个对话框中,我们需要输入一些参数来设置求解过程。
目标单元格:这是包含目标函数结果的单元格。
调整变量单元格:这是包含决策变量的单元格范围。
约束条件:这是包含约束条件的单元格范围。
约束条件中的系数:这是一个选择项,用于指定约束条件中的系数是包含在单元格范围中还是直接输入。
约束条件的约束值:这是一个选择项,用于指定约束条件中的约束值是包含在单元格范围中还是直接输入。
约束条件的约束类型:这是一个选择项,用于指定约束条件的类型(大于等于,小于等于等)。
非负约束:这是一个复选框,用于指定决策变量是否具有非负约束。
利用excel求解线性规划问题利用excel 求解线性规划问题“规划求解”示例例1 美佳公司计划制造Ⅰ、Ⅱ两种家电产品。
已知各制造一件时分别占用的设备A ,B 的台时、调试工序时间及每天可用于这两种家电的能力、各售出一件时的获利情况,如下表所示。
问该公司应制造两种家电各多少件,使获取的利润为最大。
1.建立数学模型2. 打开excel ,输入下列数据。
⎪⎪⎩⎪⎪⎨⎧>=<=+<=+<=+=0,52426155..2max 212121221x x x x x x x t s x x z3、如何在工作表中设置问题条件?先设置目标单元格,即最大利润,把它放在E1单元格上,可变单元格放置计划生产Ⅰ和Ⅱ产品的件数,这里把它放在C10:D10区域。
F4:F6是约束单元格,要对它们的值进行约束。
单击E1,在编辑框输入如图所示的公式。
注意,表示绝对引用的美元符号,可以单击F4功能键添加。
4、单击E4单击格式,在编辑栏上输入公式:=$C$4*$C$10+$D$4*$D$10。
绝对引用单元格有一个好处,显示的单元格位置变化时,引用的数据没改变。
5、单击E5单击格式,在编辑栏上输入公式:=$C$5*$C$10+$D$5*$D$10。
6、单击E6单击格式,在编辑栏上输入公式:=$C$6*$C$10+$D$6*$D$10。
7、如何使用规划求解功能?单击工具菜单,如果看不到规划求解选项不要慌,先选加载宏。
然后勾选规划求解,确定单击数据菜单——点击“模拟分析”——8、单击“规划求解”:指定目标单元格。
一种方法是先选中目标单元格E1,单击工具---规划求解。
另一种先单击工具---规划求解,再输入目标单元格名称。
输入可变单元格区域。
比较快的方法是,单击折叠框,用鼠标选中可变单元格区域:$C$11:$E$11。
注意勾选最大值哦。
设置目标: $E$1;点选“最大值”;设置:可变单元: $C$10:$D$109.设置条件不等式。
excel 线性规划Excel是一种非常强大的电子表格软件,可以用来进行各种类型的数学和统计分析,包括线性规划。
线性规划是一种最常见的优化方法,广泛应用于工程、经济和管理等领域。
它通过线性数学模型来找到最佳解决方案,以满足一组约束条件。
在Excel中进行线性规划,我们可以使用Excel的Solver插件。
Solver插件可以帮助我们找到目标函数的最大值或最小值,同时满足约束条件。
下面是一个示例,通过Excel进行线性规划的步骤:1.首先,我们需要创建一个Excel表格,其中包括如下内容:目标函数、约束条件、可调整的单元格等。
2.输入目标函数。
在一个单元格中输入目标函数,例如“=A1*10+B2*15+C3*20”,其中A1、B2、C3是可调整的单元格的引用,而10、15和20是目标函数中每个单元格对应的系数。
3.输入约束条件。
在另一行中,输入约束条件。
例如,“A1>=10”、“B2<=20”等等。
4.确保所需的单元格被定义为可调整单元格,并设置目标单元格为需要最小或最大化的目标函数单元格。
5.打开Solver插件。
在“数据”选项卡中,点击“Solver”。
6.在Solver对话框中,选择“最小化”或“最大化”的目标设置,输入目标函数单元格的引用,并设置约束条件。
7.点击“确定”按钮,Solver会自动计算并找到最佳解决方案。
需要注意的是,Excel的Solver插件对于较大的线性规划问题可能需要更复杂的方法。
解决大规模问题时,可能需要使用更专业的线性规划软件。
总之,Excel是一个非常方便和灵活的工具,可以用来进行线性规划分析。
通过使用Excel的Solver插件,我们可以快速而准确地找到最佳解决方案,并满足所有的约束条件。
无论是对于学生、专业人士还是研究人员,使用Excel进行线性规划都是一种方便和高效的方法。
1.7.使用Excel求解线性规划问题例:Case Chemicals生产两种溶剂CS-01和CS-02。
这些溶剂可以用来溶解某些有毒物质。
Case Chemicals的生产工厂有两个部门—混合(blending)和净化(purification)。
每个部门每周工作40个小时。
混合部门有5个全职(full-time)的工人和2个兼职(part-time)的工人,这两个兼职的工人每人每周工作15个小时。
这些工人操作7台机器来混合某些化学物质生产溶剂。
每1000加仑的CS-01需要2个小时去混合,同样数量的CS-02只需要1个小时去混合。
产品在混合部门混合后需要去净化部门净化。
净化部门有7台净化机器,并且雇了6个全职的工人和1个兼职的工人,兼职的工人每周工作10个小时。
60分钟可以净化1000加仑的CS-01或500加仑的CS-02。
Case Chemicals原材料供应充足,市场对CS-01的需求是供不应求,但是市场对CS-02的需求每周最多120,000加仑。
据估计,每加仑CS-01可以赚$0.30,每加仑的CS-02可以赚$0.50。
生产经理想要决定最优的生产计划,即应该生产每种溶剂各多少才能最大化利润?解:(1)决策变量x1=每周生产CS-01的数量(千加仑)x2=每周生产CS-02的数量(千加仑)(2)目标函数最大化每周生产CS-01和CS-02的利润Maximize 利润=CS-01利润+CS-02的利润 =300x1+500x2Max 300x1+500x2(3)约束条件混合部门的总工时的约束2x1+1x2<=5*40+2*15=230净化部门的总工时的约束x1+2x2<=6*40+1*10=250CS-02的销售数量的约束x2<=120变量的非负约束x1,x2>=0.数学模型Max 300x1+500x2St. 2x1+1x2<=230 blending1x1+2x2<=250 purificationX2<=120 CS-02x1,x2>=0 nonnegativeExcel规划求解Excel规划求解的选项可以用来解决线性规划问题。
可以设置决策变量为整数约束。
规划求解可以用来解决最多有200个变量,100个外在约束和400个简单约束(决策变量整数约束的上下边界)的问题。
安装线性规划加载项Excel 2003:菜单栏——工具——加载宏——规划求解调用规划求解,从主菜单中选择工具/规划求解。
Excel 2007:Office按钮——Excel选项——加载项——转到——加载宏——规划求解加载项在“数据”选项卡中出现带有“规划求解”按钮的“分析”组输入数据在Excel中输入问题数据,我们即可以输入原来的形式也可以输入标准的计算形式。
通常我们就输入原来的形式,让Excel自己把它变成标准形式。
因此,我们输入如下形式。
下图显示了输入这个问题后的屏幕,我们把变量1x称为x称为“CS-02”。
我们把三个约束也分别“CS-01”,变量2命名为BLENDHRS,PURIHRS和CS02LIM。
除了指约束外,这些名字也被Excel指为与这些约束相对应的剩余/松弛Slack/surplus 变量。
我们用单元格B2和C2来包含1x和2x的值。
约束中‘<=’的符号只是给我们自己看的,我们需要告诉规划求解(Solver)这些符号。
下面显示的是单元格所用的公式(formulae)。
注意在单元格D4中我们需要输入公式来计算目标函数(这个例子中,“=B4*B2+C4*C2”,其中*在Excel中指的是乘的意思),在D6到D8中输入公式来计算每个约束(如果你没有用过Excel,公式中的$符号,你可以不用管;它只是一个捷径)。
注意作为一个捷径,在单元格D6中我们也可以输入=SUMPRODUCT($B$2:$C$2,B6:C6),然后拷贝和粘贴这个公式到单元格D7和D8中。
当问题比较大的时候,这个会比较有用。
一旦我们设置好问题之后,我们可以从工具菜单中选择‘规划求解’(Solver),我们需要告诉规划求解参数对话框我们的问题。
这个例子中,单元格C4是目标单元格,需要最大化;这是我们输入目标函数的单元。
Excel会通过调整可变单元格B2和C2的值(我们的决策变量)来最大化目标。
(符号‘:’在$B$2:$C$2公式中,实际上指的是从B2到C2的单元格,这个例子中,只是单元格B2和C2,对于一个大点的问题,你可能输入$B$2:$F$2来告诉ExcelB2,C2,D2,E2和F2是决策变量。
)约束的输入是通过点击添加按钮,点击增加钮会弹出增加约束对话框,如下所示。
上面的第一个约束(又在下面的增加约束对话框中显示)是非负约束,这个例子中单元格B2和C2是正的(即CS-01>=0和CS-02>=0)。
在输入约束后,你可以用增加按钮增加一个约束。
如果你想改变约束,可以点击修改按钮,打开修改约束的对话框。
这个对话框和增加约束的对话框非常相似。
为了确保Excel产生我们期待的LP Solver的输出,我们需要点击选项按钮,选中采用线性模型和假定非负,假定非负也是另一种说1x,2x>=0的方式。
为了保证找到最优解,我们把允许误差设为0%。
一旦我们点击求解按钮,规划求解(Solver)会找到一个解(如果解存在),并显示下面的窗口,允许生成一定数量的报告;我们通常想要的是答案报告和灵敏度分析报告。
下面显示了Excel找到的最优解和答案报告(你可以看出Slacks 已经被加到答案报告中)。
如果你得到的报告和这个不同,你可能没选中“采用线性模型”。
最优解是生产70千加仑的CS-01和90千加仑的CS-02,这会给Case Chemicals带来每周$66000的利润。
1.8灵敏度分析引言一旦我们找到了最优解,我们经常想知道如果问题数据发生了变化,最优解会怎样改变。
换句话说,我们想知道最优值对模型中的某些值有多敏感。
例如,我们可能会问如果Case Chemicals模型中的某些值发生变化,会发生什么。
灵敏度分析主要是用来解决这样的问题。
术语上面的的式子中(1)目标函数中的300和500被称作成本(costs)(2)约束中的230,250和120被称作右边(right hand sides)计算机输出的灵敏度分析在问题求解后,Excel会产生一个灵敏度的表。
Case Chemicals 的灵敏度报告如下所示。
注意为了得到如下的内容,你必须告诉Excel“采用线性模型”。
Excel给出值的范围,用允许增加(如CS-01的700,也就是值的最大到300+700=1000)和减少(CS-01的50,也就是值最小到300-50=250)的数量来表示。
下面我们解释如何使用这个表。
成本灵敏度分析(Cost Sensitivity Analysis)我们考虑目标函数中成本系数的变化1.考虑最优解例如:对于Case Chemicals的问题,最优解是,目标函数值(利润)是660002.如果一个变量的成本发生变化,那么灵敏度分析会告诉我们原来的最优决定是否还是最优的。
例如:如果的成本$300增加到$400,解是否是最优的?也就是,是否我们还应该生产70千加仑的CS-01和90千加仑的CS-02?3.成本灵敏度分析的输出给出了新成本可以改变到的最小和最大值而不改变最优的决定。
例:对(CS-01),成本可以变到250-1000之间的任何值,而不改变最优解。
4.如果新的成本在范围内,那么原来的最优解保持最优。
如果不是,那么问题需要重新求解。
例:新的成本=400 值的范围 250-1000. 在范围内?是/(否)所以原来的解还是/(不是)最优的。
5.如果原来的解还是最优的,我们可以计算新的目标函数值。
新的目标函数值=旧的目标函数值+决策变量值*成本系数变化=旧的目标函数值+决策变量值*(新的成本系数-旧的成本系数)例:Case Chemicals新的总利润可以计算为旧的利润=$66,000决策变量的值:旧的成本系数:的旧的成本系数是300新的成本系数:新的成本是400新的目标函数值=旧的目标函数值+决策变量值*成本系数变化=66000+70*(400-300)=73000注意:这个分析只能用于一个变量的成本发生变化。
成本分析-数值例子例1. 市场的变化允许Case Chemicals在CS-01上的利润上增加了$200/每1000加仑。
生产计划该如何改变,Case Chemicals现在最大的利润是多少?例2. 由于市场的变化,CS-02的利润下降了$400/每1000加仑,现在Case Chemicals可以获得的最大利润是多少?第一步:识别问题的变化,x2的成本系数由500变为100.第二步:检查新的成本系数是否在范围内新的成本是100,范围是150-600,在范围内?否第三步:如果在范围内,计算新的成本答:最优生产计划改变了,需要重新求解。
例3. CS-01和CS-02的利润分别增加了10%和15%,Case Chemicals可以获得的最多的利润是多少?两个变化,不能回答。
例4. CS-01和CS-02的利润现在都加倍了,Case Chemicals是否应该改变他们生产CS-01和CS-02的量。
由于成本的比例没变,目标函数的轮廓看起来和原来一样,所以最优解没有改变。
成本灵敏度分析的图形解释改变一个成本对应着目标函数轮廓的改变。
下面显示了我们改变CS-01的利润(Cost on X1)1.原来的目标函数(Original Objective Function)原来CS-01的利润是$300,目标函数是Max 300X1+500X2图中显示了目标函数的轮廓。
注意当我们向右上方移动时目标函数是增加的。
原来的最优解是x1=70,x2=90, 最优的目标函数值为$300*70+$500*90=$660002.新的CS-01的利润为$500目标函数是Max 500X1+500X2图中显示了目标函数的轮廓。
注意当我们向右上方移动时目标函数是增加的。
原来的最优解仍然是最优的。
新的最优目标函数值为$500*70+$500*90=$80000检查:新的成本是否在Excel范围内?答:是/否(是,所以最优解没有变化)3.新的CS-01的成本$1000目标函数是Max 1000X1+500X2图中显示了目标函数的轮廓。
注意当我们向右上方移动时目标函数是增加的。
原来的最优解仍然是最优的。
新的最优目标函数值为$1000*70+$500*90=$115000评论:原来的最优解是众多最优解中的一个。
检查:新的成本在Excel的范围内吗?答:是,但只是刚刚是4.新的CS-01的成本$1500目标函数是Max 1000X1+500X2图中显示了目标函数的轮廓。