38
第第第 第第第第第第

第九章 图与网络规划

  • Upload
    pelham

  • View
    86

  • Download
    7

Embed Size (px)

DESCRIPTION

第九章 图与网络规划. 本章内容大纲. 9.1 图论的基本概述 9.2 网络最大流问题 9.3 最小费用流问题 9.4 最短路问题 9.5 最小支撑树问题 9.6 网络设施选址问题 9.7 车辆路径问题 9.8 选址路线问题. 9.1 图的基本概念. 经典案例:哥尼斯堡七桥问题 是否存在一条路线,可不重复地走遍七座桥,回到原点?. 9.1 图的基本概念. 一个图就是点与边的集合,记作 点与边的关联 有向图与无向图 度、奇顶点 、 偶顶点 链 、闭链、开链 欧拉图 - PowerPoint PPT Presentation

Citation preview

Page 1: 第九章 图与网络规划

第九章 图与网络规划

Page 2: 第九章 图与网络规划

本章内容大纲 9.1 图论的基本概述 9.2 网络最大流问题 9.3 最小费用流问题 9.4 最短路问题 9.5 最小支撑树问题 9.6 网络设施选址问题 9.7 车辆路径问题 9.8 选址路线问题

Page 3: 第九章 图与网络规划

9.1 图的基本概念 经典案例:哥尼斯堡七桥问题 是否存在一条路线,可不重复地走遍七座桥,回到原点?

Page 4: 第九章 图与网络规划

9.1 图的基本概念 一个图就是点与边的集合,记作 点与边的关联 有向图与无向图 度、奇顶点 、偶顶点 链 、闭链、开链 欧拉图 一个非空连通图图 G 是 E图的充分必要条件是图 G只含有偶顶点 赋权图与网络

A

B

C

D

e1

e2

e3

e4e5

e6 e7

,G V E

Page 5: 第九章 图与网络规划

9.1 图的基本概念 中国邮递员问题 (CPP) :一个邮递员负责某些街道的邮件投递工作,每次都要从邮局出发走遍他负责的所有街道,再回到邮局。那么他应如何安排投递路线,使得所走过的总路程最短 ?

Page 6: 第九章 图与网络规划

9.1 图的基本概念( , )

min (1)

(2)

0 ( , ) (3)

0 ( , ) (4)

int

ij iji j E

ij jki N k N

ij ji

ij

ij

z c f

subject to

f f j

f f i j E

f i j E

f

CPP 模型及 LINGO 主程序 min=@sum(ij(i , j)|c(i , j) #gt

# 0 : c(i , j)*f(i , j) ) ; @for(ii(j) : @sum(ii(i) : f(i , j))=@sum(ii

(k) : f(j , k)) ) ; @for(ij(i , j)|c(i , j) #gt# 0 :

@gin(f)) ; @for(ij(i , j)|c(i , j) #gt# 0 : f

(i , j)+f(j , i)>=1) ; @for(ij(i , j)|c(i , j) #eq# 0 :

f(i , j)=0) ; end

Page 7: 第九章 图与网络规划

9.2 网络最大流问题 案例:某企业的产品需要经过多道加工工序,有多个设备可以完成这些工序的工作,而企业现有设备加工每道工序的能力也不同,即每道工序在一个工作日内加工产品的最大数量是有限制的,图中,边上的数字即为该工序的最大加工能力。

Page 8: 第九章 图与网络规划

9.2 网络最大流问题 概念:给定有向赋权图其中有两个特殊的节点 s 和 t 。 s 称为发点, t 称为收点。而剩下的结点称之为转运点。图中各边的方向和权数表示允许的流向和最大可能的流量(容量),并假设容量均为整数。问在这个网络图中从发点流出到收点汇集,最大可通过的实际流量为多少?流向分布情况怎样?

Page 9: 第九章 图与网络规划

9.2 网络最大流问题 网络最大流问题模型及 LINGO主程序 max=f ; @for(ii(i)| i#gt#1 #and# i#lt#6 : @sum(ii(j) : x(i , j))-@sum(ii

(j) : x(j , i))=0 ) ; @sum(ii(j) : x(1 , j))-@sum(i

i(j) : x(j , 1))=f ; @sum(ii(j) : x(6 , j))-@sum(i

i(j) : x(j , 6))=-f ; @for(ij(i , j) : x(i , j)<=u(i ,

j)) ; end

max

0 ,

0

ij jij j

ij ij

fsubject to

f i sx x i s t

f i t

x u

当当当

Page 10: 第九章 图与网络规划

9.2 网络最大流问题 __ 程序计算结果

Page 11: 第九章 图与网络规划

9.3 最小费用流问题 案例:某配送公司拥有一个固定的配送网络,网络中某些地方需要送货,某些地方需要发货,公司现为每条路线配备固定的运输车辆,每辆车都有固定的装载容量限制。

A(50)

B(40)

C(0)

E(-60)

D(-30)

<10>

9

324

3

2

Page 12: 第九章 图与网络规划

9.3 最小费用流问题 _ 概念设 N=(V、E)是一个网络,在N中的每个弧( ,i jv v )上再定义一个单位流量的费用 C( ,i jv v )

≥ 0(简记为 ijc )。所谓最小费流问题就是要求一个可行流 f ,使流的总费用

b( f )=( , )i j

ij ijv v E

c f

取最小值。所以可行流 f 是指满足节点的净流出量需求,又满足边的容量限制。定义 ib 为

节点 iv 的净流出量, iju 为弧( ,i jv v )的容量限制, ijx 为弧( ,i jv v )的流量。

Page 13: 第九章 图与网络规划

9.3 最小费用流问题最小费用流问题模型及 LING

O 程序 min=@sum(ij(i , j) : c(i ,

j)*x(i , j)) ; @for(ii(i) : @sum(ii(j)|c(i , j) #gt# 0 :

x(i , j))-@sum(ii(j) : x(j ,i))=b(i)

) ; @for(ij(i , j)|u(i , j) #gt#

0 : x(i , j)<=u(i , j)) ;

k

min

0 ( , )

ij ij

ij ki i ij

ij ij i j

c x

subject to

x x b v

x u v v E

Page 14: 第九章 图与网络规划

9.3 最小费用流问题 _ 程序计算结果

A(50)

B(40)

C(0)

E(-60)

D(-30)

<10>

<80>

9(10)

32(20)

1(80)

4(40)

3(40)

2

Page 15: 第九章 图与网络规划

9.4 最短路问题 案例:某服务公司几乎时刻都往返于一个城市的不同社区,需要事先确定城市各个社区之间的最短线路。 要求总旅程最短的旅行路线:实际上就是在一个赋权连通图上,求一条从起点到另一节点的路 P ,使得通路 P 上的总权和 W(P) 最小,这样的问题称为最短路问题。

Page 16: 第九章 图与网络规划

9.4 最短路问题 __ 模型 min

1 0 ,

1

0 1

ij ij

ij kij k

ij

c x

subject to

i sx x i s t

i t

x

当当 当

Page 17: 第九章 图与网络规划

9.4 最短路问题 __floyd 算法Floyd算法的基本思想是:递推产生一个矩阵序列 nk AAAA ,,,,, 10 ,其中 ),( jiAk 表

示从顶点 iv 到顶点 jv 的路径上所经过的顶点序号不大于 k的最短路径长度。

计算时用迭代公式:

)),(),(),,(min(),( 111 jkAkiAjiAjiA kkkk

k是迭代次数, nkji ,,2,1,, 。

最后,当 nk 时, nA 即是各顶点之间的最短通路值。

Page 18: 第九章 图与网络规划

9.4 最短路问题 __matlab 程序 D=aa ; for i=1 : n for j=1 : n R(i , j)=j ; end end R ; for k=1 : n

Page 19: 第九章 图与网络规划

9.5 最小支撑树问题 案例:企业有五个数据中心,中心之间用光缆连接,己知这五个车间的位置、可供铺设光缆的地方及数据中心之间的距离,问光缆怎样铺设才能使管线总长最省 ?

Page 20: 第九章 图与网络规划

9.5 最小支撑树问题 __ 概念 设图 G=(V 、 E) 是一个赋权连通图, T 是 G 的一棵支撑子树,称 T 中所有边的权之和为支撑树 T 的权,记为 w(T) ,即 w(T)= ,如果支撑树 T*的权 w(T*) 是 G 所有支撑树的权中最小的,则称 T*为 G 的最小支撑树 ( 简称为最小树 )

( , )

( , )i j

i jv v T

W v v

Page 21: 第九章 图与网络规划

9.5 最小支撑树问题 __ 破圈法 求一个赋权连通图 G 的最小支撑树的方法还有“破圈法”,此方法简单易行。 “破圈法”:在图 G 中任取一个圈,去掉圈上权最大的一条边,反复进行,直到没有圈为止。 对例 9-6依此去掉的边为: (v5 、 v6) , (v2 、 v5) , (v3 、 v1) , (v6 、 v4) 。也得到图 9-12 所示的最小树,总权和为 14 。

Page 22: 第九章 图与网络规划

9.6 网络设施选址问题 P- 中位问题 :不考虑建站成本,而选 P个服务站最小化总路线成本。 P- 中心问题 :是探讨如何在网络中选择 P个服务站,使得任意一需求点到距离该需求点最近的服务站的最大距离最小。 最大覆盖问题 :在服务站的数目和服务半径已知的条件下,如何设立 P个服务站使得可接受服务的需求量最大。 集覆盖问题:覆盖所有需求点顾客的前提下,服务站总的建站个数或建设费用最小。

Page 23: 第九章 图与网络规划

9.6 网络设施选址问题 __ 中位问题 案例:商业公司希望从它的 10 个零售店中选择 3个进行扩建,成立物流中心为它的 10 个零售店进行配送服务,已知每个零售店每天的配送量,零售店之间的距离,问:如何选择最合适的物流中心使得总配送成本最低。

Page 24: 第九章 图与网络规划

9.6 网络设施选址问题 __ 中位问题 min=@sum(ij(i , j) : h(i)*d(i , j)*y(i ,

j)) ; @for(ii(i) : @sum(ii(j) : y(i , j))=1 ) ; @sum(ii(j) : x(j))=3 ; @for(ij(i , j) : y(i , j)-x(j)<=0 ) ; @for(ii(i) : @bin(x(i)) ) ; @for(ij(i , j) : @bin(y(i , j)) ) ; end

Page 25: 第九章 图与网络规划

9.6 网络设施选址问题 __ 中位问题

Page 26: 第九章 图与网络规划

9.6 网络设施选址问题 __ 集覆盖问题

Page 27: 第九章 图与网络规划

9.6 网络设施选址问题 __ 最大覆盖问题

Page 28: 第九章 图与网络规划

9.6 网络设施选址问题 __ 中心问题

Page 29: 第九章 图与网络规划

9.7 车辆路径问题 案例:车辆路径问题 (Vehicle Routing Problem , VRP) 是指对一定数量的客户,各自有不同数量的货物需求,配送中心向客户提供货物,由一个车队负责分送货物,组织适当的行车路线,目标是使得客户的需求得到满足,并能在一定的约束下,达到诸如路程最短、成本最小、耗费时间最少等目的。

Page 30: 第九章 图与网络规划

9.7 车辆路径问题0 0 1

0

1

min

1, 2,..., (1)

1 1, 2,..., N

0

N N K

ij ijki j k

N

i iki

K

ikk

Z c x

g y Q K

iy

K i

k

0

1

(2)

0,1, 2,..., N =1,2,...,K (3)

0,1, 2,..., N k=1,2,...,K (4)

(

N

ijk jki

k

ijk ikj

ijk

x y j

x y i

x

;k

=0 , ) A (5)

( 1) i j i=1,2..N j=1,2..N (6)

0,1 =0,1

i j ijkk

ijk ik

i j

u u N x N

x y

i

, ;

; ;u >0

Page 31: 第九章 图与网络规划

9.7 车辆路径问题

为何需要约束式 (6) ?为了避免一辆车子产出多个回路的现象。

0 1 2 3

45

6 7

0 1 2 3

45

6 7

Page 32: 第九章 图与网络规划

9.7 车辆路径问题 车辆路径问题 LINGO 主程序 min=@sum(ijk(i , j , k) : c(i , j)*x(i , j , k)) ; @for(kk(k) : @sum(ii(i) : g(i)*y(i , k))<=15 ) ; @for(ii(j)|j #gt# 1 : @sum(kk(k) : y(j , k))=1 ) ; @for(ii(j)|j #eq# 1 : @sum(kk(k) : y(j , k))=3 ) ; @for(ik(j , k) : @sum(ii(i)|i #ne# j : x(i , j , k))=y(j , k) ) ; @for(ik(i , k) : @sum(ii(j)|i #ne# j : x(i , j , k))=y(i , k) ) ; @for(ij(i , j)|i #ne# j #and# i #gt# 1 #and# j #gt# 1 : u(i)-u(j)+11*@sum(kk(k) : x(i , j , k))<=10 ) ; @for(ijk : @bin(x)) ; @for(ik : @bin(y)) ; end

Page 33: 第九章 图与网络规划

9.7 车辆路径问题 __ 程序计算结果

Page 34: 第九章 图与网络规划

9.8 选址路线问题 案例 :某企业有 6 个稳定的经销商,现决定为其建立配送中心,已知该企业候选的 2 辆 5吨及其估算的车辆成本, 2 个候选的建站场地及其估算的建站费用, 6 个客户每天的大致配送量,建站场地及客户的位置及距离, 7 、 8 为候选的建站场地; 1至 6 为经销商位置。

Page 35: 第九章 图与网络规划

9.8 选址路线问题 __ 概念 选址路线问题是一个结合选址问题与车辆路径问题的决策。该问题研究如何选址配送中心,并且安排最优的配送车辆与配送路线,以使总建站成本、车辆成本、行驶成本最小。

Page 36: 第九章 图与网络规划

9.8 选址路线问题 __ 模型min

1 (1)

0 , (2)

ij ijk j j k jki N j N k K j J j J k K

ijkk K i N

ijk jiki N i N

ijk jki I

Z c x f Z h y

x j I

x x j N k K

x y j J

, (3)

, (4)

, (5)

1

jik jki I

jk j

jkj J

k K

x y j J k K

y Z j J k K

y k K

(6)

(7)

1 i j i=1,2..N j=1,2..N (8)

0,1 =0,1

i ijk k jki I j J j J

i j ijkk

ijk ik

g x Q Y k K

u u n x n

x y

i i

, ;

; ;Z =0, 1; u >0

Page 37: 第九章 图与网络规划

9.8 选址路线问题 __LINGO 主程序 min=@sum(ijk(i , j , k) : c(i , j)*x(i , j , k))+@sum(jj : f*z)+@sum(jk(j , k) : h(k)*y(j , k)) ; @for(ii(j) : @sum(nk(i , k)|i #ne# j : x(i , j , k))=1 ) ; @for(nk(j , k) : @sum(nn(i)|i #ne# j : x(i , j , k))-@sum(nn(i)|i #ne# j : x(j , i , k))=0 ) ; @for(jk(j , k) : @sum(ii(i) : x(i , j , k))=y(j , k) ) ; @for(iijj(i , j)|i #ne# j : u(i)-u(j)+6*@sum(kk(k) : x(i , j , k))<=5) ; @for(jk(j , k) : @sum(ii(i) : x(j , i , k))=y(j , k) ) ; @for(jk(j , k) : y(j , k)<=z(j)) ; @for(kk(k) : @sum(jj(i) : y(i , k))<=1 ) ; @for(kk(k) : @sum(ii(i) : g(i)*@sum(jj(j) : x(i , j , k)))<=@sum(jj(j) : y(j , k)*q(k)) ) ; @for(ijk : @bin(x)) ; @for(jk : @bin(y)) ; @for(jj : @bin(z)) ; end

Page 38: 第九章 图与网络规划

9.8 选址路线问题 __ 程序计算结果