离散数学(图论)课后总结

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第八章图论

例1、下面哪些数的序列,可能是一个图的度数序列?如果可能,请试画出它的图. 哪些可能不是简单图?a) (1,2,3,4,5) b) (2,2,2,2,2) c) (1,2,3,2,4) d) (1,1,1,1,4) e) (1,2, 2,4,5)

解:a)不是, 因为有三个数字是奇数. b) c) d)是.

e) 不是简单图,因为它有5个结点, 有一个结点度为5, 必然有环或平行边.

例2、已知无向简单图G中,有10条边,4个3度结点,其余结点的度均小于或等于2,问G中至少有多少个结点?为什么?

解:已知边数|E|=10, ∑deg(v)=2|E|=20其中有4个3度结点, 余下结点度之和为: 20-3×4=8 因为G是简单图, 其余每个结点度数≤2, 所以至少还有4个结点.所以G中至少有8个结点.

强连通、单侧连通和弱连通

在简单有向图G中,如果任何两个结点间相互可达, 则称G是强连通. 如果任何一对结点间, 至少有一个结点到另一个结点可达, 则称G是单侧连通. 如果将G看成无向图后(即把有向边看成无向边)是连通的,则称G是弱连通.

在简单有向图中,具有强连通的最大子图,称为强分图.具有单侧连通的最大子图,称为单侧分图. 具有弱连通的最大子图,称为弱分图.

注:我每次都会被各种分图弄糊涂!!考试时要注意啊,千万不要错了

利用可达性矩阵求强分图,注意初等矩阵变换的知识不要忘了!!

令图G=, 集合Si V Si’=V-Si , 令|V|=n

Si={u|从u0到u的最短路已求出}

Si’={u’|从u0到u’的最短路未求出}

Dijkstra算法:(求从u0到各点u的最短路长)

第一步. 置初值: d(u0,u0)=0 d(u0,v)=∞(其中v≠u0)

i=0 S0={u0} S0’=V-S0 ,

第二步.若i=n-1 则停. 否则转第三步

第三步. 对每个u’∈Si’

计算d(u0,u’)=min{d(u0,u’), d(u0,ui)+c(ui,u’)} ui ∈Si计算min{d(u0,u’)}u’∈S i’并用ui+1记下达到该最小值的那个结点u’

置Si+1 =Si∪{ui+1} i=i+1 Si’=V-Si , 转第二步.

例3、求最短路

解:例.求右图中从v1到v6的

最短路

1.置初值: u0=v1

d(u0,u0)=0

d(u0,v2)=d(u0,v3)=d(u0,v4)=d(u0,v5)=d(u0,v6)=∞

2.3. i=0 S0={v1} S0’={v2,v3,v4,v5,v6}

d(u0,v2)=min{d(u0,v2), d(u0,u0)+c(u0,v2)}=min{∞,0+3}=3

d(u0,v3)=min{d(u0,v3),d(u0,u0)+c(u0,v3)}=min{∞,0+∞}=∞

d(u0,v4)=min{d(u0,v4), d(u0,u0)+c(u0,v4)}=min{∞,0+5}=5

d(u0,v5)=min{d(u0,v5),d(u0,u0)+c(u0,v5)}=min{∞,0+∞}=∞

d(u0,v6)=min{d(u0,v6),d(u0,u0)+c(u0,v6)}=min{∞,0+∞}=∞min{3,∞,5, ∞,∞}=3

ui+1 =u1=v2 , 实际已求出d(u0,v2)=3, 路是u0v2

i=1 S1={v1, v2}

S1’={v3,v4,v5,v6}

u1=v2

d(u0,u1)=3

d(u0,v3)=min{d(u0,v3),d(u0,u1)+c(u1,v3)}=min{∞,3+6}=9

d(u0,v4)=min{d(u0,v4), d(u0,u1)+c(u1,v4)}=min{5,3+1}=4

d(u0,v5)=min{d(u0,v5),d(u0,u1)+c(u1,v5)}=min{∞,3+∞}=∞

d(u0,v6)=min{d(u0,v6),d(u0,u1)+c(u1,v6)}=min{∞,3+∞}=∞

min{9,4,∞,∞}=4

ui+1 =u2=v4 , 实际已求出d(u0,v4)=4, 路是u0v2v4

i=2 S2={v1, v2 ,v4}

S2’={v3,v5,v6}

u2=v4

d(u0,u2)=4

d(u0,v3)=min{d(u0,v3), d(u0,u2)+c(u2,v3)}=min{9 ,4+3}=7

d(u0,v5)=min{d(u0,v5), d(u0,u2)+c(u2,v5)}=min{∞,4+1}=5

d(u0,v6)=min{d(u0,v6), d(u0,u2)+c(u2,v6)}=min{∞,4+∞}=∞

min{7,5,∞}=5

ui+1 =u3=v5 , 实际已求出d(u0,v5)=5, 路是u0v2v4 v5

i=3 S3={v1, v2 ,v4 ,v5}

S3’={v3,v6}

u3=v5

d(u0,u3)=5

d(u0,v3)=min{d(u0,v3),d(u0,u3)+c(u3,v3)}=min{7 ,5+3}=7

d(u0,v6)=min{d(u0,v6),d(u0,u3)+c(u3,v6)}=min{∞,5+6}=11 min{7,11}=7

ui+1 =u4=v3 , 实际已求出d(u0,v3)=7, 路是u0v2v4 v3

i=4 S3={v1, v2 ,v4 ,v5, v3} S3’={v6} u4=v3 d(u0,u4)=7 d(u0,v6)=min{d(u0,v6),d(u0,u4)+c(u4,v6)}=min{11,7+3}=10

min{10}=10

ui+1 =u5=v6 , 实际已求出d(u0,v6)=10, 路是u0v2v4 v3 v6

i=5 (n-1) 时算法停止.

例4、求关键路径。

例如, 求右图的关键路径

(1)求各个结点的最早完成时间:

计算时,从前向后

逐个结点计算。

相关文档
最新文档