图论(一)--基础概念
图论(二)--各种图介绍
图论(三)--各种基础图算法总结
1.树的概念
一个无圈并且连通的无向图称为树图或简称为树(Tree)。
图1是一个连通图,图2中的两个图都是树。
如在有线通讯网和交通网中,在保证节点连通的条件下,边数最少(可以节省材料和投资)的线路图必然是树。
图1
一些行政管理机构和军队的建制也常用树来表示相互隶属关系;图书分类、会计科目、决策过程等等也都可以画成树图。
部分树:在一个连通图中G中,取部分边连接G的所有顶点组成的树称为部分树。
如图2中(a)、(b)都是图1的部分树。
2.树图的性质
树中的边称为树枝,次数为1的顶点称为树叶。树图具有以下性质:
(1)任何树必有树叶,即次数为1的节点。
(2)树是无回路的连通图,因而树中任意两点之间有、且仅有一条链连接相通,任意去掉一条树枝,该树就被分割成两互不连通的子图。
(3)树的任意两个顶点之间添加一条边(称为连枝),就构成一个回路。仅用一条连枝构成的回路称为单连枝回路,也称为基本回路。
(4)一个连通图具有很多树,这些树都是原连通图的部分图,即包括了原连通图的所有顶点。若原连通图有N个顶点,M条边,则树枝数为(N-1),连枝数则为C=M -(N-1)=M-N+1,因为一条连枝构成一个基本回路,所以基本回路个数也就是C。
(5)连枝的集合是原连通图相应的余树,或称为补树。余树可能是树,也可能不是树,甚至可能是非连通图。
最短路径问题在实际中有广泛的应用,如管道铺设、线路选择等问题,还有些如设备更新、投资等问题也可以用网络最短路径算法得到解决,而且解法简单、有效。
赋权图1中的边有方向,表明路线只能沿着箭头方向行走,权表示vi到vj的距离(费用或时间),假设要求从v1到v7修一条公路,如何选择一条路线使距离最短?
从v1到v7的路线是很多的,如路线(v1,v2,v5, v4,v7),也可选择路线(v1,v3,v6,v7)等等。不同的路线,总距离是不同的,如前一路线,总距离是7+8+1+2=18单位。而按后一路线,总距离是1+3+7=11单位。实际上,从v1到v7的路线与有向图中从v1到v7的路是一一对应的。现在的问题是,从v1到v7的众多路线中,如何选一条最短的路。
最短路算法的原理:若从起点v1到终点v7的最短路经过v3、v4,则从v1到终点v7的最短路是{v1,v3,v4,v7},同时v1到点v3的最短路一定是{v1,v3},而v1到v4的最短路是{v1,v3,v4}。即如果P是D中从vs到vj的最短路,vi是p中的一个点,那么从vs到vj的路也必是从vs到vi的最短路。
研究网络通过的流量也是生产和管理工作中常遇到的现实问题。例如:交通网络中车辆的最大通过能力;生产流水线上产品的最大加工能力;供水网络中通过的最大水流量;信息网络中信息的最大传输能力等等。这类网络的组成弧都具有确定的通过能力称为弧的容量(capacity),记为cij;而实际通过弧的流量(flux),记为fij,因各弧容量的配置关系可能不协调,有些弧的流量常常达不到容量值。因此,研究实际能通过网络的最大流量问题,可以充分发挥网络的设备能力,并且能明确为使最大流量增大应如何改造网络。
1.容量网络
在研究网络最大流问题时,首先应给出各弧的通过能力,各弧的权数表示弧的容量。容量是弧(i,j)在单位时间内的最大通过能力,流量则是弧(i,j)在单位时间内的实际通过量。标有弧容量cij的网络称为容量网络,如图1所示。
2.网络流
在容量网络中,实际通过各弧的流量集F={fij}称为网络流,如图1。由于各弧容量的配置可能不协调,实际通过各弧的流量fij不可能处处都达到容量值cij。
3.可行流
对于给定的容量网络,如果满足下列容量约束和节点流量平衡条件,则该网络流称为可行流。以图1为例,这两个条件可用以下公式来描述:
图1容量网络
(1) 容量约束条件:0≤fij≤cij。 对图1有:0≤f12≤70,0≤f13≤100,0≤f14≤90,0≤f26≤80,0≤f34≤40,0≤f35≤50,0≤f45≤40,0≤f46≤100,0≤f56≤90。
(2)节点流量平衡条件:每个节点的流入总量等于流出总量。v1: Q=f12+f13+f14,v2: f12=f26,v3:f13=f34+f35,v4:f14+f34=f45+f46,v5: f35+f45=f56,V6: f26+f46+f56=Q
可行流总是存在的,如零流{fij=0}就是一个可行流,即容量网络没有给出流量fij时,就认为fij=0。
4.最大流:
容量网络的最大流就是使得从网络起点(或称发点)到终点(或称收点)的总流量Q达到最大的可行流F= {fij} 。
最大流问题用线性规划模型表示如下:式中s为发点,t为收点。
一个可行流相当于线性规划中的一个可行解,而寻求最大流就相当于求解这个线性规划数模的最优解,不过,网络最大流问题采用网络模型方法求解比用线性规划方法求解简便、直观。
5.增广链
图2(a)给出了一个容量网络{cij, fij},其中{fij}为可行流,并且
(1)正(前)向弧:与从起点→终点方向一致的弧。
(2)反(后)向弧:与从起点→终点方向相反的弧。
(3)增广链定义:一条从起点到终点的链,且其正向弧必须是非饱和弧,反向弧必须是非零弧。即:正向饱和弧和反向零弧均不构成增广链的弧。
正向非饱和弧充许增大流量,反向非零弧,允许减小流量(维持节点流量平衡)。
例如: 对图2(a)的容量网络和给定的可行流,按上述定义寻找增广链,可找到一条如图2(b)的增广链 L={v1,v3,v2,v4,v6}。其中:正向弧集 L+={(v1,v3),(v2,v4),(v4,v6)}均为非饱和弧。反向弧集 L-={v2,v3}为非零弧。
在增广链上存在增大输送能力的潜力。如图2(b),对所有正向弧增加流量1个单位,对所有反向弧减少流量1个单位,也就是说,增广链方向调整1个单位流量,其他弧上的流量不变,这时得到的新网络流仍是可行流,但总流量Q增加了1个单位。因此,可以利用增广链来调整给定的当前可行流,以求得最大流。若当前可行流F不存在增广链,那么它就不能再调整增大,可断定它就是最大流F*。另外,对图2(a)还可找出其它增广链,说明当网络流非最大时,往往存在多条增广链。
(4)网络可行流为网络最大流的判别方法
检查该网络可行流是否存在增广链,若不存在,则当前可行流为最大流;否则,当前可行流为非最大流,总流量还可增大。
6.割集
割集就是研究网络流“瓶颈”的一种工具。
(1)割集的概念:连通图的一个割集,是使图分成两个互不连通子图的边的最小集合,记为S={(vi,,vj)}。显然,一个连通图的割集不止一个,如图3就作出了3个割集s1,s2,s3,。
s1={(v1,v2),(v1,v3)},其容量为C1=3+5=8。
s2={(v1,v2),(v3,v5)},其容量为C2=3+2=5, s2割了三条弧,但(v2,v3)不入割集,因为只要把与v1→v6同方向的弧(v1,v2),(v3,v5)割断,由起点到终点的通路就断了。
S3={(v2,v4),(v3,v5)},其容量为C3=4+2=6。
一般地,割集记为,其中(始点在V1内,而终点在内),容量记为。
如图1中构成割集S2的两个点集,始点在V内,而终点在内的只有两条弧{(v1,v2),(v3,v5)}。
结论:
(1)任一可行流的流量Q都不会超过任一割集的流量,即:Q≤。
(2)最小割集(最小割):所有割集中容量最小的割集。最小割的容量记为。实际流F的流量Q(F)≤。
(3) 最大流——最小割定理:实际流F所能达到的最大流量Q(F*)等于最小割的容量。即:
最后,实际上,这里应该有一步介绍网络计划与网络计划优化,但是,发现它讲的就是项目管理中的进度管理工具,如关键路径法,还有单代号,双代号网络图,时标网络图等等,这也是图网络技术对工程管理的贡献,这里就不再啰嗦了。