65.9K
CodeProject 正在变化。 阅读更多。
Home

Excel Solver 和线性规划

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.93/5 (5投票s)

2011年9月20日

CPOL

3分钟阅读

viewsIcon

60256

downloadIcon

1045

LP 的简单描述以及使用 Excel Solver 解决问题的说明。

引言

本文解释了如何使用 Excel 规划求解来解决问题,特别是与线性规划相关的问题。 如果您对线性规划不太了解也没关系,本文也会让您对此有一些了解。 但是,本文的重点是让您了解 Excel 规划求解,并让您知道如何利用它来解决有趣的问题。

什么是规划求解及其作用

简而言之,Excel 规划求解是一个可以为您解决问题的加载项。 对于给定的问题,Excel 规划求解可以运行各种排列组合,并为您找到最佳的解决方案。

在 Excel 中启用规划求解

转到选项

1.png

选择加载项

2.png

单击“转到”按钮,选中“规划求解加载项”,然后单击“确定”

3.png

您应该可以在 Excel 数据选项卡中看到“规划求解”按钮

4.png

什么是线性规划

线性规划是一种数学方法,用于确定在给定的数学模型中,如何在满足一系列以线性关系表示的要求的前提下,实现最佳结果(例如最大利润或最低成本)的方法。

规划求解可以解决的一些示例问题

问题 1

假设我们有一个函数,例如 f=x2-x+2,并且我们想找出 -1<= x <= 5 的情况下 x 的最小值。

问题 2

一家公司生产桌子和椅子。 每张桌子使用 4 个单位的木材,每把椅子使用 3 个单位的木材。 一张桌子贡献 40 美元的利润,一把椅子贡献 25 美元。 营销限制要求椅子的产量至少是桌子产量的两倍。 有 20 个单位的木材可用。 什么产量组合能带来最大利润。

问题 3

这是一个更复杂的问题,它用方程表示并通过矩阵方法解决。

最大化 50x1 + 30x2 + 25x3 + 30x4

其中

2x1 + 2.5x2 + 3x3 + 1.8x4 = 800

1.2x1 + 1x2 + 2x3 + 0.8x4 = 400

1.5x1 + 1.2x2 + 1.5x3 + 0.8x4 = 380

x2 = 50

x3 = 30

x1, x2, x3, x4 = 0

使用 Excel 规划求解解决问题

问题 1

下图显示了已解决的示例。 绿色单元格 (C15) 是通过规划求解获得值的单元格,并命名为 x。

单元格 C12 的公式为 x^2-x+2。 默认情况下,在单元格 C15 中输入 1,这是变量 x 的初始值。

5.png

目标字段是 f,它是单元格 C12 的名称,我们要通过规划求解来解决它。“通过更改可变单元格”字段具有 x,它是单元格 C15,我们的变量。 我们还使用添加按钮设置了约束 x <= 5 和 x>=-1。 只需单击“求解”按钮,它就会给出 x 的值。

6.png

问题 2

这个问题以传统方式解决。 Unitstoproduce 是范围 C18:C19。 totoalwoodused 是单元格 F20 的名称。

7.png

在下图中,您可以看到规划求解的设置。 在绿色单元格中输入 1 作为初始值。 规划求解应该能够为您提供这些单元格的正确值。

8.png

问题 3

在现实生活中,线性规划问题并不像问题 2 中那么简单。因此,我们需要使用矩阵来解决问题。 在这个问题中,您可以看到许多与问题 2 中的一些方程式相关的方程式。 要使方程式的结果最大化,我们只需要最大化 (Transposed C) * x。

9.png

为了变量名称的唯一性,我将矩阵变量命名为 xnbn 等。 x 的值是您想通过规划求解获得的值。 对于 x1x2x3x4,初始值都给 1。 当您运行规划求解时,它将使用已求解的值更新这些绿色单元格。

10.png

历史

  • 2011 年 9 月 20 日:初始发布
© . All rights reserved.