You are on page 1of 22

Operations Research

— Nonlinear Programming Model

School of Science, Chao Min


March 2014
各类非线性规划问题的求解方法有很多,编程实
现也比较麻烦,这里介绍直接利用现成的宏命令
包‘ teachdp’ 的方法来求解。
Example 1
动态规划问题
(背包问题 ) 一艘货船欲去装运 N 种货物 , 第 i 种货物的单位
重量为 Wi, 价值为 Vi, i=1,2 ,…N. 船的最大载重量是 W. 现在
要确定在不超过船的最大载重条件下 , 如何装在这 N 种货物 ,
使得船上货物价值最大 . 特别考虑到下面只有 3 种货物的特殊
情况 , 并假定 W=5,Wi 和 Vi 数据由表 1.1 给出

表 1.1 数据表

货号 i 单位重量 Wi 单位价值 Vi
1 2 65
2 3 80
3 1 30
Example 1
第一步 加载 teachdp 宏
只需双击宏文件即可 , 加载成功后 , Excel 会增加一个新的菜
单 " 运筹学教学工具 ", 如图
Example 1
第二步 建立模型
单击图中 " 特定模型 " 按钮 , 出现如下图对话框 , 输入数据
Example 1
第三步 输入数据 在规定单元格内输入数据 , 在如下图所示
Example 1
第四步 求解
单击 "solve" 按钮 , 求得最优解,如下图所示

最终结果:
Example 2
图与网络分析问题 最短路问题
有九个城市 V1,V2, … 到 V9, 其公路网如图 2.1 所示 , 弧旁
数字是该段公路的长度 , 有一批货物要从 V1 运到 V9, 问走
哪条路最短 ?

图 2.1 路线图
Example 2
【 STEP 1 】按照下图的形式相应的单元格内输入文本 ; 按照
表 2.1, 在相应单元格内输入公式
Example 2
表 2.1 单元格内的公式

K14 =SUM(C14:J14) C22 =SUM(C14:C21) C24 =K15

K15 =SUM(C15:J15 ) D22 =SUM(D14:D21) D24 =K16

K16 =SUM(C16:J16) E22 =SUM(E14:E21) E24 =K17

K17 =SUM(C17:J17) F22 =SUM(F14:F21) F24 =K18

K18 =SUM(C18:J18) G22 =SUM(G14:G21) G24 =K19

K19 =SUM(C19:J19) H22 =SUM(H14:H21) H24 =K20

K20 =SUM(C20:J20) I22 =SUM(I14:I21) I24 =K21

=SUMPRODUCT(C4:J
K21 =SUM(C21:J21) J22 =SUM(J14:J21) D1
11,C14:J21)
Example 2
【 STEP 2 】 规划求解参数设置如下图

其中可变单元格为 :
$C$14,$E$14,$D$15,$F$15,$G$15,$J$16,$H$17,$G$18,$H$19,$J$19,$I$20,$J$20,
$J$21. 即如图 2.3, 并将矩形区域中其它单元格 ( 底色为浅绿色 ) 设置为 0;" 选项 "
中选取 " 假定非负 " 和 " 采用线性模型 ". 在约束条件中还要将所有 可变单元格
设置为 0-1 变量 .
Example 2

图 2.3 可变单元格
Example 2
【 STEP 3 】 最终结果
Example 3

最大流问题
求如图 3.5 所示的网络的最大流 ( 每弧旁的数字是该弧的容量
和实际流量 )

图 3.5
Example 3
【 STEP 1 】 按照下图的格式在相应的单元格内输入文本
Example 3
【 STEP 2 】 按照表 3.2, 在相应单元格内输入公式
表 3.2 单元格内的公式
单元格 公式 单元格 公式 单元格 公式
I11 =SUM(C11:H11) C17 =SUM(C11:C16) C19 =I12
I12 =SUM(C12:H12) D17 =SUM(D11:D16) D19 =I13
I13 =SUM(C13:H13) E17 =SUM(E11:E16) E19 =I14
I14 =SUM(C14:H14) F17 =SUM(F11:F16) F19 =I15
I15 =SUM(C15:H15) G17 =SUM(G11:G16) G19 =I16
I16 =SUM(C16:H16) H17 =SUM(H11:H16) H19 =I11

【 STEP 3 】 规划求解参数设置如下图,其中 " 选项 " 中选取 " 假定非


负 " 和 " 采用线性模型 "
Example 3
【 STEP 4 】 最终结果如图
Exercise
一艘火车欲去装运 N 种货物 , 第 i 种货物的单位重量为 Wi, 价
值为 Vi,i=1,2 ,…N. 火车最大载重量是 W. 现在要确定在不超
过火车的最大载重条件下 , 如何装在这 N 种货物 , 使得火车货
物价值最大 . 特别考虑到下面只有 3 种货物的特殊情况 , 并假
定 W=8,Wi 和 Vi 数据由表 1.1 给出

单位重量
货号 i 单位价值 Vi
Wi
1 2 50
2 3 80
3 1 27
Exercise
BMZ 公司最大流问题

背景
     BMZ 公司是欧洲一家生产豪华汽车的制造商。它因为提供优质的
服务而获得很好的声誉,保持这个声誉一个很重要的秘诀就是它有着充裕的
汽车配件供应,从而能够随时供货给公司众多的经销商合授权维修店。
     这些供应件主要存放在公司的配送中心里,这样一有需求就可以立即
送货。卡尔( BMZ 公司的供应链的经理)优先考虑的是改进这些配送中心
的不足之处。
     该公司在美国有几个配送中心。但是,离洛杉机中心最近的一个配送
中心却坐落离洛杉机 1000 多英里的西雅图。保证洛杉机中心良好的供应
是尤为重要的。因此,现在那里的供应不断减少的现状成为了公司高层管理
真正关心的问题。
     大部分的汽车配件以及新车是在该公司坐落于德国的斯图加特的总厂
合新车一起生产的。也就是这家工厂向洛杉机中心供应汽车配件。每月有超
过 300000 立方英尺的配件需要运到。现在,下个月需要多得多的数量以
补充正在减少的库存。
Exercise
问题
     卡尔需要尽快制定一个方案,使得下个月从总厂运送到洛
杉机配送中心的供应件尽可能多。他认识到了这是个最大流
的问题 — 一个使得从总厂运送到洛杉机配送中心的配件流最
大的问题。因为总厂生产的配件量远远要大于能够运送到配
送中心的量,所以,可以运送多少配件的限制条件就是公司
配送网络的容量。
    这个配送网络如下图。在图中,标有 ST 和 LA 的节点分
别代表斯图加特的工厂和洛杉机的配送中心。由于工厂所在
地有一个铁路运转点,所以首先通过铁路把配件运输到欧洲
的三个港口:鹿特丹( RO )波尔多( BO )和里斯本
(LI) ;然后通过船运到美国的港口纽约( NY )或新奥尔良
( NO );最后用卡车送到洛杉机的配送中心。
Exercise
模型描述 (每条弧下方的方括号里的数字代表该弧的容量)
鹿特丹

纽约

洛杉矶 斯图加特

波尔多

新奥尔良
里斯本

请自行根据上图建立 BMZ 公司最大流问题电子表格,包括目标单元格最大


流量,可变单元格流量,并利用规划求解软件获得的最优解 。
注意与例题的区别
Exercise
表 1  
答案:右 BMZ 公司最大流问题
           
边表 1 就 2 B C D E F G H I J K
是 BMZ
需求量
公司最大 _ 供应
流问题电 3 从 到 运输量
 
容量
 
各个节点 净流量
 

子表格, 4 斯图加特 鹿特丹 50 <= 50 斯图加特 150 =


   
包括目标 5 斯图加特 波尔图 70 <= 70 鹿特丹 0 = 0
单元格最  
6 斯图加特 里斯本 30 <= 40 波尔图 0 = 0
大流量  
7 鹿特丹 纽约 50 <= 60 里斯本 0 = 0
( D14 )  
,可变单 8 波尔图 纽约 30 <= 40 纽约 0 = 0
 
元格流量 9 波尔图 新奥尔良 40 <= 50 新奥尔良 0 = 0
( D4 : 10 里斯本 新奥尔良 30 <= 30
 
洛杉矶 -150 =
D12 )显    
11 纽约 洛杉矶 80 <= 80
示的是由          
规划求解 12 新奥尔良 洛杉矶 70 <= 70
         
软件获得 13
的最优解 14
   
总运输量
 
150
             

。                

You might also like