快乐地打牢基础(5)——割点和桥

一、定义

割点集合:

在一个无向连通图中,如果有一个顶点集合V,删除顶点集合V以及与V中顶点相连(至少有一端在V中)的所有边之后,原图不连通,就称这个点为割点集合。

一个图的点连通度: 最小割点集合的中的顶点数,在图G中,去掉任意K-1个顶点后(1<=K<=N),所得的子图仍然连通,去掉K个顶点后不连通,K就是图G的点连通度。

割边集合:

在一个无向连通图中, 如果有一个边集合,删除这个边以后,原图不连通,就称这个点集为割边集合。

一个图的边连通度: 最小割边集中的边数。在图G中,去掉任意K-1条边后(1<=K<=N),所得的子图仍然连通,去掉K条边后不连通,K就是图G的边连通度。

点双连通度:如果一个无向连通图的点连通度大于1,则称该图是点双连通的(point biconnected),简称双连通或者重连通(即删去任意一点原图仍然连通)。
割点: 一个图有割点,当且仅当这个图的点连通度为1时,割点集合的唯一元素被称作割点(cut point)(即删去割点原图不连通)。一个图可能有多个割点。

下图的3号顶点就是割点。
3号顶点就是割点
边双连通度:如果一个无向连通图的边连通度大于1,则称该图是边双连通的(edge biconnected),简称双连通或者重连通(即删去任意一边原图仍然连通)。
桥: 一个图有桥,当且仅当这个图的边连通度为1时,割边集合的唯一元素被称作桥(bridge)(即删去桥原图不连通)。一个图可能有多个桥。
如图边(1,2)就是桥
在这里插入图片描述两个错误猜想:
XXX 两个割点之间的边一定是桥。桥的两个端点一定是割点。

如下面这两个例子就是反例:
在这里插入图片描述我们可以知道,点双连通和边双连通都可以称作是双连通,但是这并不意味它们是等价的。

双连通分量:在图 G {G} G的所有子图 G ′ {G'} G中,如果 G ‘ {G‘} G是双连通的,则称 G ′ {G'} G为双连通子图。如果一个双连通子图 G ′ {G'} G,他不是任何一个双连通子图的真子集,则 G ′ {G'} G为极大双连通子图。双连通分量就是图的极大双连通子图。特殊的是点双连通分量又叫做块。

边双连通分量一定是点双连通分量,但点双连通分量不一定是边双连通分量。如:
图无割点所以是点双连通分量,图有桥所以不是边双连通分量
图无割点所以是点双连通分量,图有桥所以不是边双连通分量。

二、Tarjan算法

对,就是之前求强连通分量的算法。这次我们通过求DFN和Low的值来得到割点和桥。
先对图做DFS,因为是无向图,没有横叉边,所以DFS过程中遇到三种边:
来复习一下。
树枝边:DFS时经过的边,即DFS搜索树上的边。
前向边:与DFS方向一致,从某个结点指向其某个子孙的边。
后向边:与DFS方向相反,从某个结点指向其某个祖先的边。

DFN( u {u} u)依旧是 u {u} u在DFS中被搜到的时间戳。
Low( u {u} u)表示DFS中 u {u} u不通过父顶点能访问到的祖先顶点中最小的时间戳。

根据定义,则有:

如果 ( u , v ) {(u,v)} (u,v)为树枝边, u {u} u v {v} v的父结点,则Low( u {u} u) = Min{Low( u {u} u),Low( v {v} v)}。

如果 ( u , v ) {(u,v)} (u,v)为后向边, u {u} u不为 v {v} v的父结点,则Low( u {u} u) = Min{Low( u {u} u),DFN( v {v} v)}。

1.判断割点

只需要满足下面两个条件的任意一个,点 u {u} u即是割点。

  • u {u} u是树根,那么只要 u {u} u的子树个数只要超过1,那么 u {u} u就是割点。
    因为无向图DFS的搜索树中没有横叉边,所以如果有多个子树,那么这些子树之间是不会有边相连的,只要把树根去掉,子树就会变成独立的块, u {u} u一定是割点。子树的个数也肯定要大于1,因为如果是1,那么连通分量的个数在去掉点 u {u} u后还是1,这不符合割点的定义。

  • u {u} u不是树根,且满足存在(

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值