湘潭大学 刘任任版 离散数学课后习题答案 习题13

发布时间:2014-12-05 11:25:21   来源:文档文库   
字号:

1. 证明:对网络中的任意一个流,均有

分析:根据定义

显然若,则在中含,而中也含,故f对端点同属于S的这种弧在中不产生影响,故有:

证明:

左式

2.设都是网络中的最小割,求证也都是中的最小割.

分析:由集合的运算和容量的定义,可直接验证下式成立:

又由于都是网络中的最小割,根据最小割的定义有:

最后可得

都等于最小割的容量。

证:设都是小割,则

1

2

另一方面,易知

由此得

因此,是最小割

类似可得也是最小割。

3.在图13-10所示的网络N中:

1)求N的所有割

2)求最小割的容量

分析:根据定义13.1.4可知,割是分离源点x和汇点y

弧的集合。可用遍历法求出该图的所有割点及每个割得容

量。

解:(1)设列表如下

2)比较可得最小割的容量为5

4.证明推论13.1.1

分析:推论13.1.1描述了网络N的任意流值与任意割的容量的关系,即

该题的证明用到了流的定义及定理13.1.1的结论。

证明:由定义13.1.2可知,一个流f必须满足:对任意

因此有

又由定理13.1.1有,对任意流f的值,和任意割有:

因此有

5.对于图13-11中的(a)和(b),确定所有可能的流及最大流。

分析:由定义13.1.2可知,一个流f必须满足:

1)对任意

2)对任意中间点i,又f(i,V)=f(V,i)

对图13-11的两个图中的每一条弧,按自上而下、自左至右的顺序进行编号,使用枚举法可确定其所有可能的流及最大流。

解:对网络13-11a)(b)的弧编号如下图所示:

对网络(a),遍历每条弧的流量使得f满足流的两个条件,列出可能的流如下表所示。

共有44种不同的流。

由于e6的流量最大为1,所以e9的流量最大也为1,而e8的流量最大为3,所以网络(a)的最大流量为4

对网络(b),遍历每条弧的流量使得f满足流的两个条件,列出可能的流如下表所示。

共有12种不同的流。由于e4e6的流量和最大为2,所以e8e9的流量和最大也为2

所以网络(b)的最大流量为2

6.求图13-12所示网络的最大流。

分析:根据定理13.2.1求网络的最大流的分析,可写出求最大流的算法如下,依据此算法可求出网络13-12的最大流。

求最大流的算法://该算法是求网络中的最大流。每条边的容量是非负整数。

输入:源点为x,汇点为y,容量为C,顶点为x=v0,v1,v2,,vn=y的网络和n

输出:一个最大流F

Max_flow(x,y,c,v,n)

//v的标号是(predecessor(v),val(v))

//从零流开始

1For 每条边(i,j)

2 Fi,j=0

3 While(true) {

//删除所有标号

4 For i=0 to n {

5 predecessor(vi)=null

6. val(vi)=null

7 }

//标号x

8 predecessor(x)=—

9 val(x)=

10 U={x} //U是未检查、已标号的顶点集

//进行下列循环,直到y被标号

11 While(val(y)==null) {

12 If(U==φ) //当前流是最大流

13 return F

14 U中选择v

15 U=U-{v}

16 ε=val(v)

17For每条满足val(w)==null的边(v,w)

18 if (Fvwvw) {

19 predecessor(w)=v

20 val(w)=min{ε, Cvw —Fvw)

21 U=U{w}

22 }

23For 每条满足val(w)==null的边(w,v)

24 if (Fwv>0 ) {

25 predecessor(w)=v

26 val(w)=min{ε, Fvw)

27 U=U{w}

28 }

29 }//end while(val(y)==null)循环

//找一条用来修正它上面流量的、从xy的路径P

30 w0=y

31 k=0

32 While (wkx) {

33 wk+1= predecessor(wk)

34 k=k+1

35 }

36 P={ wk+1, wk,w1,w0}

37 ε=val(y)

38 For i=1 to k+1 {

39 e=( wi, wi-1)

40 if (eP中的正向边)

41 Fe=Fe+ε

42 else

43 Fe=Feε

44 }

45 }//结束while循环

}

解:依照上述算法,可写出如下求网络3-12的最大流的步骤。由于网络中已存在一个流,所以算法不需从零流开始。

1)执行算法步骤4—7,将所有顶点v,初始化predecessor(v)=nullval(v)=null

2)执行算法步骤8—10,初始化predecessor(x)=—val(x)=∞,U={x}

3)执行算法步骤11,由于val(y)=null,执行while循环

4)执行算法步骤14—16,从U中选择顶点xU=φ,ε=

5)执行算法步骤17—29,考虑与x邻接的顶点1,2,3

predecessor(v1)= predecessor(v3)=xval(v1)=1 val(v3)=1U={ v1v3}

6)执行算法步骤11,由于val(y)=null,再次执行while循环

7)执行算法步骤14—16,从U中选择顶点v1U={ v3},ε=1

8)执行算法步骤17—29,考虑与v1邻接且满足val(v)=null的顶点4,由于不满足1823行的if条件,所以返回到11行再次执行while循环。

9)执行算法步骤14—16,从U中选择顶点v3U=φ,ε=1

10)执行算法步骤17—29,考虑与v3邻接且满足val(v)=null的顶点45

predecessor(v4)= predecessor(v5)= v3val(v4)=val(v5)=1U={ v4v5}

11)执行算法步骤11,由于val(y)=null,执行while循环

12)执行算法步骤14—16,从U中选择顶点v4U={ v5},ε=1

13)执行算法步骤17—29,考虑与v4邻接且满足val(v)=null的顶点y

predecessor(y)= v4val(y)=1U={yv5}

14)执行步骤11,由于val(y)=1,退出while循环,转向步骤30执行,初始化w0=y k=0

15)执行步骤32—37,得增广路径P=yv4v3x ,ε=1

16)执行步骤38—43,修改路径P中的值。

17)去掉全部标记,得一新的网络如图13-13所示。

(18) 对图13-13所示的网络,重复上述过程得到增广路径P=yv5v3v1x,修正P中的值。

19)去掉全部标记,得一新的网络如图13-14所示。

20)图13-14所示的网络,由于流向y的流量已达饱和,因此网络13-14中不存在任何由xy的可增广路。该网络的流量fx,y=11为所求网络的最大流。

7.试证明:若在网络N中不存在有向(x, y)-通路,则最大流的值和最小割的容量都是零。

分析:若能利用已知条件构造出一个割,其容量等于零;同时还能构造一个流,其流量也为零,则根据定理13.2.1,可知:最大流的值和最小割的容量都是零。

证明:令S={v| N中存在(x,v-有向路}

显然xS,又在网络N中不存在有向(x, y)-有向路,所以,因此(S)构成N的一个割,且C(S)=0

又零流;,了f0的流量fx,y=0

根据定理13.2.1N中最大流的值和最小割的容量都是零。

本文来源:https://www.2haoxitong.net/k/doc/555bbe85f8c75fbfc77db2b6.html

《湘潭大学 刘任任版 离散数学课后习题答案 习题13.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式