购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.4 使用计算机软件求解线性规划

在实际工作中,没有人会用纸和笔来求解线性规划问题。商用的计算机软件能解大型的线性规划问题,一般教学用QM、 QSB、 LINDO、 STORM等。各个软件包的使用格式虽然略有不同,然而,只要吃透了其中一个,稍微做一点努力,你就能处理任何一个软件包。本节介绍使用QM for Windows和Excel中文版求解线性规划的方法。

2.4.1 QM for Windows的使用

QM for Windows是一种可求解多种运筹学问题的微机软件包。启动该软件包后,点击菜单栏的Module便可显示QM for Windows的主菜单(见图 2 -5)。

在“Module”中选择“ Linear Programming”,再在菜单栏的“ File”中选择“New”就可输入新数据。图 2 -6 是使用QM for Windows求解例 1 的输入界面,数据输入完毕后点击“Solve”便可求解问题。图 2 -7 和图 2 -8 是求解后的部分输出结果,读者不难理解它们的内容。下面将会看到QM for Windows还提供了更多的输出信息,如对偶解(影子价格)、灵敏度分析等,这些内容将在第 3 章讨论。

图 2 -5

图 2 -6

图 2 -7

图 2 -8

2.4.2 Microsoft Excel的使用

由微软公司推出的Excel for Windows除了可以更方便地解决一般性问题以外,还提供了十几个标准的加载宏,用于解决特定的问题。其中的“规划求解( Solver)”加载宏可以求解线性、非线性规划以及混合整数规划问题。

下面通过例 2 (营养配方问题)的求解来说明使用Excel解题的步骤。

首先,建立如图 2 -9 所示的工作表,称为电子表格模型( Spreadsheet Model)。工作表的格式并不是一成不变的,可由各用户自行决定。

图 2 -9

具体步骤如下:

(1)把所有数据输入工作表中适当的范围。如本例为B5: F5, B7: F9, I7: I9 和B13: F13。

(2)确定一些单元格(称为可变单元格)来代表决策变量。本例中确定B3: F3 为可变单元格,即B3 代表 x 1 , C3 代表 x 2 ,…, F3 代表 x 5 。在可变单元格中可输入任意数值表示决策变量的初始值;否则,默认其值为零。

(3)确定目标单元格以输入目标函数式。本例目标单元格为G5,在G5 中输入公式=SUMPRODUCT (B5: F5, B3: F3),亦即= B5∗B3 + C5∗C3 + D5∗D3 + E5∗E3 + F5∗F3。

(4)在另一些单元格中输入约束条件左端的式子。本例在G7 中输入公式=SUMPRODUCT (B7: F7,$B $3:$F $3),然后复制到范围G8: G9 内。这样在G8 中将含有公式= SUMPRODUCT ( B8: F8,$ B $ 3:$ F $ 3 ), G9 将含有公式=SUMPRODUCT (B9:F9,$B $3:$F $3)。注意$符号表示绝对地址,这里使用绝对地址是为了方便复制。

有了电子表格模型(工作表),我们就可以进入求解阶段,步骤如下:

(1)选取菜单栏中的“工具”,再选取“规划求解”,界面显示如图 2 -10 所示。

图 2 -10 “规划求解参数”对话框

(2)在“设置目标单元格”方块输入G5,此处为总费用。

(3)选定“最小值”选项。

(4)在“可变单元格”方块输入B3: F3,此处为各种饲料的使用数量。

(5)选取“添加”钮以输入下述约束条件:

(6)选取“选项”,界面将显示“规划求解选项”对话框。选定“采用线性模型”(提示Excel使用有效的单纯形法求解)和“假定非负”(若没有该项则必须在步骤 5 中输入约束条件B3: F3 > = 0)后选择“确定”以返回“规划求解参数”对话框。

(7)选择“求解”钮,规划求解程序开始运算,运算结束时界面显示“规划求解结果”对话框(如图 2 -11 所示)。若选取“保存规划求解结果”,则图 2 -9 的工作表中可变单元格B3: F3 和目标单元格G5 将分别显示最优解和最优值。

在图 2 -11 中,“报告”方块有三个选项,分别为“运算结果报告”“敏感性报告”和“极限值报告”,表示有三种报告形式供选择,假定我们选定“运算结果报告”,并选择“确定”,就会在“工作表标签”中显示“运算结果报告 1”标签。在此标签上点击鼠标左键,界面就会显示“运算结果报告”工作表(见图2 -12)。

图 2 -11 规划求解结果

图 2 -12 “运算结果报告 1”显示结果

“报告”方块中另外两种选项的内容将在下一章介绍。 EE6nzi5Y3eL8agLth5rfJqYpU0c/kzGMnOnYNYJmpkp3WT8208SqivBf1XreFPqH

点击中间区域
呼出菜单
上一章
目录
下一章
×