哈工大运筹学实验报告-实验三

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

哈工大运筹学实验报告-实验三

实验三

一、实验目的:

1)进一步熟悉Excel规划求解工具,掌握Excel求解0-1整数规划问题;

2)进一步熟悉Matlab软件,掌握Matlab求解0-1整数规划问题;

3)用Excel和Matlab求解公司选址0-1规划问题。

二、实验器材

1)PC机:20台。

2)Microsoft Excel软件(具备规划求解工具模块):20用户。

3)Matlab软件(具备优化工具箱):20用户。

三、实验原理:

公司选址属于0-1整数规划问题,通过对问题建立数学模型,根据Excel 自身特点把数学模型在电子表格中进行清晰的描述,再利用规划求解工具设定相应的约束条件,最终完成对问题的寻优过程,具体可参见1.2;在Matlab中,根据Matlab提供的0-1整数规划求解函数,将数学模型转换成0-1整数规划求解函数可传递的数值参数,最终实现对问题的寻优求解过程,具体可参见 2.2中bintprog函数描述和示例。

四、实验内容和步骤:

用Excel和Matlab完成下列公司选址问题。

某销售公司打算通过在武汉或长春设立分公司(也许在两个城市都设分公司)增加市场份额,管理层同时也计划在新设分公司的城市最多建一个配送中心,当然也可以不建配送中心。经过计算,每种选择对公司收益的净现值列于下表的第四列、第五列中记录了每种选择所需的费用,总的预算费用不得超过20万元。

决策问题决策净现值所需资

18 12

1 是否在长春设x

1

10 6

2 是否在武汉设x

2

12 10

3 是否在长春建x

3

4 是否在武汉建x

8 4

4

问:如何决策才能使总的净现值最大?

建立模型:

设=0表示不建立,=1表示建立,i=1,2,3,4 用z表示预算费用总的净现值。

则目标函数maxz=18+10+12+8

先确立约束不等式:总的预算费用不得超过20万元;设立的分公司数目大于等于1;且建立配送中心数目一定要小于分公司数目。列出约束不等式如下:

12+6+10+4≤20

--≤-1

-+≤0

- +≤0

=0,1

Excel求解过程

打开Excel,选择“Excel选项”通过“工具”菜单的“加载宏”选项打开“加载宏”对话框来添加“规划求解”。将约束条件的系数矩阵输入Excel中,如下图所示,然后将目标函数的系数输入约束矩阵下方,最下方为最优解的值,输入“0”或不输入。系数矩阵的右端一列为合计栏,点击合计栏中单元格并在其中输入“=sumproduct(”,用鼠标左键拖动合计栏所在行的系数,选定后输入“,”,然后拖拉选定最下方的空白行,输入“)”,输入“Enter”。用此方法依次处理整个系数矩阵每一行和目标函数行,合计栏右端输入约束条件右端项,在合计栏和约束条件右端项之间可以输入“≧”符号,也可以不输入。

上述步骤完成后,在菜单栏点击“数据”菜单,选择最右端“规划求解”选项,弹出“规划求解参数”对话框,目标单元格选择目标函数系数所在行和合

计栏交叉处的单元格,选择求最大值,可变单元格选择解所在行。点击“添加约束条件”按钮,单元格引用位置选择合计那一列,约束关系选择“≦”,约束值选择右端项系数所在列,点击确定。在“选项”中勾选“采用线性模型”和“假定非负”,如果是用EXCEL2010操作,步骤与基本相同,个别界面会有些区别。求得最优解和目标函数最小值如下

运算结果报告如下:

Matlab求解过程:

先在command window对建立模型中各个参数矩阵进行赋值,同一行数字用空格分开,换行时用分号分开,矩阵用“【】”表示,分别将目标函数系数f,系数矩阵A,右端项b输入,因matlab的标准0-1求解模型中目标函数为求最小值,因此输入f时要乘以一个负号。输入一个命令完成后加分号,输入“Enter”,矩阵被储存并在workspace中显示出来。最后调用0-1线性规划的函数x=bintprog(f,A,b);回车,即可得求解结果.将最优解代入目标函数,输入z=f’*x,然后求出-z即为目标函数最大值。计算界面如下图所示:

最优解:

当在武汉和长春均设立分公司,两地都不建配送中心时取得最优解。此时总的净现值最大为28万元。

Excel和matlab优劣性比较:

Excel模型直观明了,但是输入单元格较多,设置参数多,过程较复杂,而matlab有编程的意思,采用专门的操作语言,界面不够清晰明了,但是功能强大,输入快捷,运算迅速。Excel可用于求解变量较少,较为简单的模型,用于日常使用,matlab则是比较专业的软件,适用于较为复杂的问题求解。

相关文档
最新文档