哈工大运筹学实验报告实验三
时间:2020-10-13 08:50:28 来源:工作范文网 本文已影响 人
实验三
一、 实验目的:
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自 身特点把数学模型在电子表格中进行清晰的描述,再利用规划求解工具设定相应 的约束条件,最终完成对问题的寻优过程,具体可参见;在Matlab中,根据Matlab 提供的0-1整数规划求解函数,将数学模型转换成0-1整数规划求解函数可传递 的数值参数,最终实现对问题的寻优求解过程,具体可参见中 bin tprog函数描
述和示例。
四、 实验内容和步骤:
用Excel和Matlab完成下列公司选址问题。
某销售公司打算通过在武汉或长春设立分公司(也许在两个城市都设分公 司)增加市场份额,管理层同时也计划在新设分公司的城市最多建一个配送中心, 当然也可以不建配送中心。经过计算,每种选择对公司收益的净现值列于下表的 第四列、第五列中记录了每种选择所需的费用, 总的预算费用不得超过20万元。
决策编号问题决策变量——净现值(万元)所需资金(万元)是否在长春设分公司X11812是否在武汉设分公司X
决策编号
问题
决策变量——净现值(万元)所需资金(万元)
是否在长春设分公司
X1
18
12
是否在武汉设分公司
X2
10
3
3 是否在长春建配送中心 X3 12 10
4 是否在武汉建配送中心 X4 8 4
问:如何决策才能使总的净现值最大
建立模型:
设二=0表示不建立,二=1表示建立,i=1,2,3,4 用z表示预算费用总的净现值。
则目标函数 maxz=l8:-+l0::+l2“+8::-
先确立约束不等式:总的预算费用不得超过 20万元;设立的分公司数目大于等
于1;且建立配送中心数目一定要小于分公司数目。列出约束不等式如下:
12 门+6 :+10 : +4: <20
一-心 <-1
-勺 +门 < 0
-, + - < 0
:=0, 1
Excel求解过程
打开Excel,选择“ Excel选项”通过“工具”菜单的“加载宏”选项打 开“加载宏”对话框来添加“规划求解”。将约束条件的系数矩阵输入 Excel 中, 如下图所示,然后将目标函数的系数输入约束矩阵下方,最下方为最优解的值, 输入“0”或不输入。系数矩阵的右端一列为合计栏,点击合计栏中单元格并在 其中输入“ =sumproduct (”,用鼠标左键拖动合计栏所在行的系数,选定后输入
“,”,然后拖拉选定最下方的空白行,输入“)”,输入“Enter ”。用此方法依次 处理整个系数矩阵每一行和目标函数行, 合计栏右端输入约束条件右端项,在合 计栏和约束条件右端项之间可以输入“三”符号,也可以不输入。
上述步骤完成后,在菜单栏点击“数据”菜单,选择最右端“规划求解”选项,
弹出“规划求解参数”对话框,目标单元格选择目标函数系数所在行和合计栏交 叉处的单元格,选择求最大值,可变单元格选择解所在行。点击“添加约束条件” 按钮,单元格引用位置选择合计那一列,约束关系选择“三” ,约束值选择右端
项系数所在列,点击确定。在“选项”中勾选“采用线性模型”和“假定非负”: 如果是用EXCEL201操作,步骤与基本相同,个别界面会有些区别。求得最优解 和目标函数最小值如下
* 1]谱j■八jfhrEK EizelKC
* 1]
谱
j
■
八
j
fhrEK Eizel
K
C D
E
F G H I J
1
2
a
4
弄—.:£
邑可Y背E.
韦口 曲(5
12
b
w
】E .!
r e
-1
-]
o
D
-2 ] -1
-1
&
1
t
-1 i:
9
10
0
-1
0
1
-i r < i &
18
14
12
B
2G
1
1
C
i
1
11
IE
n
li
w
K
r
16
is
2D
21
22
23
处
25
26
rn
l u 亠甘二日虫上■? 口 .... m 小 c.亠g .鬥 r
运算结果报告如下:
X ? 3 *| 岳人 FiSPflii 5filJECGjEt EeosI
X ? 3 *
| 岳人 FiSPflii 5
filJECGjEt EeosI
\ A
」」寸
和 * 1】?1 「
1V S K 査 >S-虽^
专锁■-
7用力£
%
A fi ef-aEd^ 'faqif
、 科解工-祥盍?
了 ■■鮎- 尹雅” Kft? -
.tauiyj 血% 乙
Matlab求解过程:
先在comma nd win dow对建立模型中各个参数矩阵进行赋值,同一行数字用 空格分开,换行时用分号分开,矩阵用“【】”表示,分别将目标函数系数f,系 数矩阵A,右端项b输入,因matlab的标准0-1求解模型中目标函数为求最小 值,因此输入f时要乘以一个负号。输入一个命令完成后加分号,输入“Enter ”, 矩阵被储存并在 workspace中显示出来。最后调用 0-1线性规划的函数
x=bintprog(f,A,b); 回车,即可得求解结果 .将最优解代入目标函数,输入
z=f' *x,然后求出-z即为目标函数最大值。计算界面如下图所示:
-J. ■JlTl胡
fil- &lit Ik丄畔 Badri ip ¥ia3cftf LkL}
.1 耳 '瞪中 心 r H 日 ? CufTFni Jlt牛C ^Prop-jn Fi 1 er^MhTL*E~(Ifl 1 ■?crt V 6
nhvr <1 io* t 迥 H&* U ilxli [£ t
-an -IA帥 b Ki ■丄 MLJ田UJilJfn 田刨■?5Ud [
-a
n -IA帥 b Ki ■丄 MLJ田UJilJfn 田
刨■?5Ud [
J
| disi
a 也 dnukle>
dDUtiB
遊
dnutoE1
PUM同
匚 JUtl £:
■- o.-i:-'--:
cJuiih 色
K.i.OjO]
h
-2E
a:uti*
? f-l-ifti-in-HrSli
? V IM-I ?l 0 D;-l D 1 0;0 -L 1 11:
? TBhTrrtjjietW^ b)
CwTiR1; Eirtcvarv 尙叶刊”漳如
CwTiR1; Eirtcvarv 尙叶刊”漳
£iMMm?d FXeI .上』 豪 買
-£--訂-3-15下耳力曲-I -
>-LL-5-L5 下论9 -S
3 L ld-£-b IJ __ —i f=f-l?:-IO;-12;-flt ;
A=|l: S 10 4;-l -L J 0,-1 3 1 0 fl H :]], ■b^lZJ.-L.D.D],
尸bmlDniEl土 4?対
s S-- IJ ■£ 卜'丄社il ■<
e=r-is:-io;-i2:-flt.
■A1U2 6 10 1,-1 -L D L -J 0 1 . I -J . 1], 匕血;-灯,心
K-bintpE zie I h h b) ’
!--rf' *3
r *
感計?r?llfi'3T
感計?r?l
lfi'3T
最优解:
当在武汉和长春均设立分公司,两地都不建配送中心时取得最优解。
此时总的净 现值最大为28万元。
Excel和matlab优劣性比较:
Excel模型直观明了,但是输入单元格较多,设置参数多,过程较复杂,而 matlab有编程的意思,采用专门的操作语言,界面不够清晰明了,但是功能强 大,输入快捷,运算迅速。Excel可用于求解变量较少,较为简单的模型,用于 日常使用,matlab则是比较专业的软件,适用于较为复杂的问题求解。