哈工大运筹学实验报告-实验三
- 格式:doc
- 大小:255.00 KB
- 文档页数:7
哈工大运筹学实验报告-实验三
实验三
一、实验目的:
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则是比较专业的软件,适用于较为复杂的问题求解。