2019-Enumerating k-Vertex Connected Components in Large Graphs

这篇论文是围绕k-VCC的求解

一、Abstract部分:

1)研究问题:给定k,求出图中的所有K-VCC

2)k-VCC特性:高耦合、高鲁棒性、子图重叠性

3) 方法:

① 证明了分割问题的上界——可以用多项式时间来进行解决问题

② 提出了两个优化策略:neighbor sweep 和 group sweep

4)结果:

​ 在大型数据集上证明了方法的高效性

​ 有数量级的提升

二、Introduction部分:

  1. k-VCC特性:

    1) G的顶点连通性不大于边连通性和最小度

    2) 直径较小

    3) 子图的重叠性不超过n/2,其中n为顶点数

  2. 问题和现有方法:

    1) 给定G和指定的k,求出所有的k-VCC

    2) 现有方法:

    递归的找到一个顶点小于k的顶点切割,并对图进行分区

    一个顶点对的最小割是他们之间顶点独立路径的数量

  3. 本文方法:

    1) 证明了k-VCC的数量不超过n/2 —— 因此可以用多项式时间来完成算法

    2) Neighbor Sweep: 对一些顶点进行属性划分;一旦其被测试或swept,则对其所有邻居sweep;为顶点存一个值,结束测试为其周围邻居增加值,超过阈值则sweep掉

    3) Group Sweep:将顶点划分为不相交的组,以组为单位进行上面的测试

  4. 贡献:

    (1)一个多项式时间的算法

    (2)两个有效的剪枝策略

    (3)在实际问题的有效性

三、前置知识

  1. 定义1 : 顶点连通性k(G): 为移除最小数量的顶点导致原图不相连或成为平凡图

  2. 定义2: k-vertex-connected: (1) |V(G)|>k (2) 删除任意k-1个顶点后原图仍连通

  3. 定义3: k-vertex-connected-component

    (1) g是k-vertex-connected (2) g is maximal

四、分割的基础框架

  1. 将原图分为t个连通块

  2. 对每个连通块都用GLOBAL-CUT来找点割集:

    1)若点割集为空,则连通块本身就是一个VCC

    2) 否则的话,kVCC将原图根据点割集分开,并将每一个分割后的子连通块再次递归调用KVCC-ENUM

image-20221230191332813

五、Basic Solution

  1. 顶点割集计算:

    Globla-cut的目的是计算出一个少于k个顶点的点割集

    1) 先做一个sparse certification 的优化:将G提取其只有O(k.n)条边的k-vertex-connected连通的子图

    2) 下面则分割根据u是否属于S(割集)进行分类讨论:

    4-6行为不属于的情况,7-10 为属于的情况

    image-20221230194735795

    image-20221230194755050

    具体需要结合上面的两个引理来进行理解,而LOC-Cut将原有的点拆点成为n+2m条边,2n个点的图,然后求u到v的最大流,即为其local connectivity

    image-20221230194007930

image-20221230192156538

​ 3) 整体时间度分析比较复杂:image-20221230194918361

六、搜索剪枝

A. neighbor Sweep

  1. side-vertex: u不属于一个所含顶点小于k的割集S
  2. side-vertex u是可以传导k-vetex连通性的,进而减少了局部测试

image-20221230195504193

​ 而其具体的求法则根据上面的定理得到

  1. 因为满足上面条件的为 strong-side-vertex,而这些点是可以传递k-vertex-connectivity,因此可以进行剪枝

  2. 其还可以利用Vertex Deposit进行维护

    1) 若v可以和u的k个邻居都有k-vertex-connected,u和v也是k-vertex-connected的

    2) 因此为每个顶点存一个deposit(v),表示其邻居节点中满足1)的条件个数的点

B. Group Sweep

  1. 首先是如何构造一个side-group

    side-group定义如下:

    image-20221231154307216

    image-20221231154236084

  2. group sweep rule:

    side-group 可以有以下的作用:

    换句话就是group内一个side-vertex完成了测试,整个gorup的k-vertex-connected 性质就相同了

    image-20221231154516085

​ 更一般的方法是,测试group里面是否有k个点均符合条件,并用deposit记录:

image-20221231154819629

整体算法:

image-20221231155050998

image-20221231155106047


2019-Enumerating k-Vertex Connected Components in Large Graphs
http://example.com/2022/12/30/2019-Enumerating-k-Vertex-Connected-Components-in-Large-Graphs/
作者
gx7
发布于
2022年12月30日
许可协议