$ o( b2 V% c% Y/ M图与网络是运筹学(Operations Research)中的一个经典和重要的分支,所研究的问题涉及经济管理、工业工程、交通运输、计算机科学与信息技术、通讯与网络技术等 诸多领域。下面将要讨论的最短路问题、最大流问题、最小费用流问题和匹配问题等都是图与网络的基本问题。 我们首先通过一些例子来了解网络优化问题。5 ]+ [' w$ l! t2 M1 k
' z3 L8 v- Z: H4 q0 I; W: f: i
例 1 最短路问题(SPP-shortest path problem)7 y' Q3 w$ D& O; q+ m2 Y
一名货柜车司机奉命在最短的时间内将一车货物从甲地运往乙地。从甲地到乙地的 公路网纵横交错,因此有多种行车路线,这名司机应选择哪条线路呢?假设货柜车的运 行速度是恒定的,那么这一问题相当于需要找到一条从甲地到乙地的最短路。1 U3 @3 x- N' [7 ?
# M+ t9 v6 w8 \/ C) l
例 2 公路连接问题 3 o. i, x {: W4 S/ c: u某一地区有若干个主要城市,现准备修建高速公路把这些城市连接起来,使得从其中任何一个城市都可以经高速公路直接或间接到达另一个城市。假定已经知道了任意两 个城市之间修建高速公路的成本,那么应如何决定在哪些城市间修建高速公路,使得总 成本最小? _% }: A, o7 z6 F# c( p. w( j* l
0 e4 X+ y0 v5 v4 _
例 3 指派问题(assignment problem)% p8 f, H5 {1 @/ K3 e1 j
一家公司经理准备安排 N 名员工去完成 N 项任务,每人一项。由于各员工的特点 不同,不同的员工去完成同一项任务时所获得的回报是不同的。如何分配工作方案可以 使总回报最大?& u/ _4 N; u! S
5 r! [) k8 _4 u) P
例 4 中国邮递员问题(CPP-chinese postman problem)' X5 z* ^8 _. A' {5 V
一名邮递员负责投递某个街区的邮件。如何为他(她)设计一条最短的投递路线(从 邮局出发,经过投递区内每条街道至少一次,最后返回邮局)?由于这一问题是我国管 梅谷教授 1960 年首先提出的,所以国际上称之为中国邮递员问题。: K% y! g5 ]: h. |9 E/ k( p# ]
1 T) w; `, p1 o" L3 J) K" w
例 5 旅行商问题(TSP-traveling salesman problem)( L( q- N" e' [9 `0 _2 w. ^
一名推销员准备前往若干城市推销产品。如何为他(她)设计一条最短的旅行路线 (从驻地出发,经过每个城市恰好一次,最后返回驻地)?这一问题的研究历史十分悠 久,通常称之为旅行商问题。5 O, g; g4 ~% j* y0 D( K% i1 m
2 A- ?, _* o' A+ g# L1 @ y4 ]例 6 运输问题(transportation problem)# _% s& m. Y$ G- m
某种原材料有 M 个产地,现在需要将原材料从产地运往 N 个使用这些原材料的工 厂。假定 M 个产地的产量和 N 家工厂的需要量已知,单位产品从任一产地到任一工厂 的运费已知,那么如何安排运输方案可以使总运输成本最低?# `) Q6 I! @% P8 r! R+ e @
5 }# |' l8 U' c" e6 t上述问题有两个共同的特点:一是它们的目的都是从若干可能的安排或方案中寻求某种意义下的最优安排或方案,数学上把这种问题称为最优化或优化(optimization) 问题;二是它们都易于用图形的形式直观地描述和表达,数学上把这种与图相关的结构 称为网络(network)。与图和网络相关的最优化问题就是网络最优化或称网络优化 (netwok optimization)问题。所以上面例子中介绍的问题都是网络优化问题。由于多 数网络优化问题是以网络上的流(flow)为研究的对象,因此网络优化又常常被称为网络流(network flows)或网络流规划等。# O8 h' |9 f( U1 f/ |+ M
: M V D& E7 G7 O. ]! x/ `' ~
下面首先简要介绍图与网络的一些基本概念。 7 W9 n: j. Q% x& _5 n & Y1 C6 s+ C; K- r* Y8 `, h) }, ?: i( @/ F8 o c4 V
% H( Q8 X S0 r3 H, h; P q2 图与网络的基本概念8 l% @; a( C; e+ S4 \( G
2.1 无向图* s5 n1 y. y8 f / P' s3 m$ p. Q! p) n ; }) E/ g# y- i$ k5 H e% {6 [边上赋权的无向图称为赋权无向图或无向网络(undirected network)。我们对图和 网络不作严格区分,因为任何图总是可以赋权的。 " B& p- A1 @8 A; S : |6 C% Y) s; _0 L一个图称为有限图,如果它的顶点集和边集都有限。图G 的顶点数用符号|V | 或 ν (G) 表示,边数用| E |或ε (G)表示。 9 H& o9 o. _8 i+ q7 m% l- I6 }5 i$ o0 O9 `$ ^
当讨论的图只有一个时,总是用G 来表示这个图。从而在图论符号中我们常略去 字母G ,例如,分别用V,E,ν 和ε 代替V (G),E(G),ν (G) 和ε (G)。 : j& a# ]+ }# l) I2 |+ }% Y+ t! S7 C* o
端点重合为一点的边称为环(loop)。 一个图称为简单图(simple graph),如果它既没有环也没有两条边连接同一对顶点。( S) X3 I0 ^% A7 O
% l, X! ^' ?/ D% O$ M2.2 有向图 " I, W! ]8 w" @7 i: g+ l/ A! l5 T. ~2 G- C5 \9 ^5 i' g
" M- J' a' K# K X Z0 U) x1 T; {
对应于每个有向图 D ,可以在相同顶点集上作一个图G ,使得对于 D 的每条弧, G 有一条有相同端点的边与之相对应。这个图称为 D 的基础图。反之,给定任意图G , 对于它的每个边,给其端点指定一个顺序,从而确定一条弧,由此得到一个有向图,这 样的有向图称为G 的一个定向图。 以下若未指明“有向图”三字,“图”字皆指无向图。 5 J, O3 _7 S: L. C * d6 Y8 I7 o+ r+ F$ Y! R2.3 完全图、二分图) l$ ~% H% ^6 y2 A
每一对不同的顶点都有一条边相连的简单图称为完全图(complete graph)。n 个顶点 的完全图记为 。 C' \- _2 Y7 g r
2 L# V, {/ {2 K& K - ~. J% @+ k4 K/ ^6 N) c" p) ]
* {9 U6 {- h' H2 n u2.4 子图 9 Z, w& C* P8 Y图 H 叫做图 G 的子图(subgraph),记作 H ⊂ G ,如果 V (H ) ⊂V (G) , E(H) ⊂ E(G) 。若 H 是G 的子图,则G 称为 H 的母图。 G 的支撑子图(spanning subgraph,生成子图)是指满足V(H) =V(G) 的子 图 H 。/ [6 h- `/ E- A5 f