摘要
抓住幂率图的特点——绝大多数点在一个CC里
提出几种优化使得LPCC算法的运行时间显著减小
效果甚至超过当前更多见也效果最好的Disjoint Set CC
背景
幂率无向图、frontier、LPCC
LPCC:每个点有唯一标签,通常是ID,用min函数不断传递标签,每个CC上的点收敛为同一最小标签
DO-LP是典型且最先进的一种
LP算法的缺陷
对于幂率图
- Repeated Wavefronts——缓慢且重复的收敛过程。两个标签数组,每轮1hop,收敛轮数很高,几乎是CC的直径。
- Preaching to the Converged——收敛过程的首尾几个迭代,效率很低;而过程中却有很大的重合部分存在于已收敛点和正活动点之中。这意味着DOLP无法识别那些顶点收敛了,并且不断向其传递消息。
- Inefficient Initial Label Assignment——不考虑图结构的初始标签分配
- Eager Bootstrapping Label Propagation——对于根据frontier大小来选择push/pull的DOLP来说,首轮pull实在太低效了。这样急切而低效的LP没用
Thrifty LP
注意到幂率图CC有如下特点
度最高的点所在CC,居然包含了图中绝大多数的点
结合当前LP算法的4个缺陷,由此提出下面4种优化方法
- Unified Labels Array——不再使用两个标签数组了,仅用一个,减少一些过时的消息,进而大大减少收敛轮数
- Zero Convergence——如何确定一个点收敛了?若其标签为0,那肯定就收敛了
- Zero Planting——把度最大的顶点标签设为0,很可能在CC的中心,诸多便利
- Initial Push——首轮pull效率低,不如改为push,仅对点0进行。仅此一轮,因为它的2-hop邻居很多并且大比例重复
实验