使用Excel解算器进行优化

Solver 是一个Microsoft Excel加载项程序,可用于假设分析中的优化.

根据O'Brien和Marakas,优化分析是目标寻求分析的更复杂的扩展.不是为变量设置特定目标值,而是在某些约束下找到一个或多个目标变量的最佳值.然后,根据指定的约束重复更改一个或多个其他变量,直到找到目标变量的最佳值.

在Excel中,您可以使用求解器在一个称为目标单元格的单元格中找到最佳值(最大值或最小值,或某个值),受某些约束或限制,对其他公式单元格的值在工作表上.

这意味着求解器使用一组称为决策变量的单元格,这些单元格用于计算目标和约束单元格中的公式.求解器调整决策变量单元格中的值以满足约束单元格的限制,并为目标单元格生成所需的结果.

您可以使用求解器找到针对不同问题的最佳解决方案as :

  • 确定最大化盈利能力的药品生产单位的月产品组合.

  • 在组织中安排员工.

  • 解决运输问题.

  • 财务计划和预算.

激活求解器加载项

在继续为Solver查找问题的解决方案之前,请确保在Excel中激活求解器加载项,如下所示 :

  • 单击功能区上的DATA选项卡. Solver 命令应出现在Analysis组中,如下所示.

激活求解器加载项

如果找不到求解器命令,请将其激活如下 :

  • 单击"文件"选项卡.

  • 单击左窗格中的"选项".将出现"Excel选项"对话框.

  • 单击左窗格中的"加载项".

  • 在"管理"框中选择"Excel加载项",然后单击"执行".

选择Excel加载项

将出现"加载项"对话框.选中求解器加载项,然后单击"确定".现在,您应该能够在DATA选项卡下的功能区上找到Solver命令.

求解器添加 - 在

求解Solver使用的方法

您可以根据问题类型和减号选择以下三种Excel解算器支持的求解方法之一;

LP Simplex

用于线性问题. 求解器模型在以下条件下是线性的 :

  • 目标单元格由将(改变单元格)和ast(常数)形式的术语相加在一起.

  • 每个约束满足线性模型要求.这意味着通过将(更改单元格)和ast;(常量)形式的术语相加并将总和与常量进行比较来评估每个约束.

广义简约梯度(GRG)非线性

用于平滑非线性问题.如果您的目标单元格,任何约束或两者都包含对不属于(更改单元格)和ast(常量)形式的更改单元格的引用,则您具有非线性模型.

进化

用于平滑非线性问题.如果您的目标单元格,任何约束或两者都包含对不属于(更改单元格)和ast(常量)形式的更改单元格的引用,则您具有非线性模型.

了解求解器评估

求解器需要以下参数 :

  • 决策变量单元

  • 约束单元格

  • 目标单元格

  • 解决方法

求解器评估基于以下 :

  • 决策变量单元格中的值受到限制通过约束单元格中的值.

  • 目标单元格中的值的计算包括决策变量单元格中的值.

  • 求解器使用所选的求解方法得到目标单元格中的最佳值.

定义问题

假设您正在分析公司的利润y制造和销售某种产品.您被要求在接下来的两个季度中查找可用于广告的金额,最多可达20,000.每个季度的广告水平会影响以下和之后;

  • 销售的单位数量,间接决定销售收入金额.

  • 相关费用,

  • 利润.

你可以继续将问题定义为 :

  • 查找单位成本.

  • 查找广告费用每单位.

  • 查找单价.

定义问题

接下来,按照下面的说明设置所需计算的单元格.

设置单元格

正如您所看到的,计算是针对Quarter1和Quarter2进行的,考虑的是 :

  • 不. Quarter1中可供出售的单位是400,而Quarter2中的单位是600(单元格 -  C7和D7).

  • 广告预算的初始值设置为10000每季度(单元格 -  C8和D8).

  • 否.销售的单位取决于每单位的广告费用,因此是该季度/Adv的预算.每单位成本.请注意,我们使用Min函数来注意看到no.以< = no.出售的单位可用的单位. (单元格 -  C9和D9).

  • 收入按单位价格计算;销售单位数量(单元格 -  C10和D10).

  • 费用按单位成本计算.可用单位数量加上;进阶该季度的成本(单元格 -  C11和D12).

  • 利润是收入 - 费用(单元格C12和D12).

  • 总利润为第1季度及以上的利润; Quarter2中的利润(单元格 -  D3).

接下来,您可以设置Solver的参数,如下所示 :

设置参数

正如您所看到的,Solver的参数是 :

  • 目标单元格是D3,其中包含您想要最大化的总利润.

  • 决策变量单元格是C8和D8,包含两个季度的预算 -  Quarter1和Quarter2.

  • 有三个约束单元格 -  C14,C15和C16.

    • 包含总预算的单元格C14是将约束设置为20000(单元格D14) .

    • 包含编号的单元格C15.在Quarter1中出售的单位是设置< = no的约束. Quarter1中可用的单位(单元格D15).

    • 包含编号的单元格C16.在Quarter2中销售的单位是设置< = no的约束. Quarter2中可用的单位(单元格D16).

解决问题

下一步是使用Solver找到解决方案如下 :

步骤1 : 转到DATA>分析>功能区上的解算器.出现"求解器参数"对话框.

求解器参数

第2步 : 在"设置目标"框中,选择单元格D3.

步骤3 : 选择最大.

步骤4 : 在通过更改可变单元格框中选择范围C8:D8.

更改变量单元格

步骤5 : 接下来,单击"添加"按钮以添加您已识别的三个约束.

步骤6 : 将出现"添加约束"对话框.设置下面给出的总预算约束,然后单击添加.

添加约束

第7步 : 设置总数的约束.如下所示在Quarter1中销售的单位,然后单击添加.

点击添加

第8步 : 设置总数的约束.如下所示在Quarter2中销售的单位,然后单击确定.

Set Constraint

出现"求解器参数"对话框,其中添加了三个约束 - 框中的约束条件.

步骤9 : 在选择求解方法框中,选择Simplex LP.

选择求解方法

第10步 : 单击"求解"按钮.将出现"求解器结果"对话框.选择保留解算器解决方案并单击确定.

Keep Solver Solution

结果将显示在您的工作表中.

Result

正如您所观察到的,根据给定的约束条件,产生最大总利润的最佳解决方案是:<

  • 总利润 -  30000.

  • Adv. Quarter1  -  8000的预算.

  • Adv. Quarter2  -  12000的预算.

逐步解决Solver试用解决方案

您可以逐步完成Solver试用解决方案,查看迭代结果.

第1步 : 单击"求解器参数"对话框中的"选项"按钮.

出现选项对话框.

步骤2 : 选择Show Iteration Results框,然后单击OK.

Show Iteration

第3步 : 将出现求解器参数对话框.点击解决.

第4步 : 将出现显示试用解决方案对话框,其中显示消息 -  已解决的解算器,工作表上显示的当前解决方案值.

显示试用解决方案

正如您所看到的,当前的迭代值会显示在您的工作单元格中.您可以停止求解器接受当前结果,也可以继续让求解器在后续步骤中找到解决方案.

步骤5 : 单击继续.

每个步骤都会出现显示试用解决方案对话框,最后找到最佳解决方案后,将出现"求解器结果"对话框.您的工作表在每一步都会更新,最后显示结果值.

保存解算器选择

您有以下保存选项可以解决您遇到的问题使用Solver : 解决;

  • 通过保存工作簿,可以使用工作表保存"求解器参数"对话框中的最后一个选项.

  • 工作簿中的每个工作表都可以有自己的Solver选择,并且在保存工作簿时将保存所有这些工作表.

  • 您还可以在工作表中定义多个问题,每个问题都有自己的求解器选择.在这种情况下,您可以使用"求解器参数"对话框中的"加载/保存"单独加载和保存问题.

    • 单击加载/保存按钮.将出现"加载/保存"对话框.

    • 要保存问题模型,请输入您想要的垂直范围的空单元格的第一个单元格的引用放置问题模型.点击保存.

保存解算器选择

    • 问题模型(求解器参数集)从您作为参考的单元格开始出现.

求解器参数设置

    • 要加载问题模型,请输入包含问题模型的整个单元格范围的参考.然后,单击"加载"按钮.