“ETT 能直接判断分量、维护分量摘要,并作为 全动态连通性的生成森林容器。任意两点简单路径在循环 tour 中通常不是一个连续片段,所以路径最大值或路径乘积不如 Link–Cut Tree直…”
形式陈述
在线模型与选定保证
在全动态图算法模型中维护固定顶点集
其中
删除树边为何困难
只插边时,并查集可合并分量;删除一条非树边也不改变现有生成森林。困难发生在删除生成树边
从头扫描全部边能找到 replacement,却可能每次花
层级与森林不变量
每条边
令
关键大小不变量是:
插入
replacement 搜索与提升
删除层级为
- 先提升树边。 将
内恰为 level- 的树边提升到 ,并加入 。更高层树边原本已在其中,所以此后整个 在 中连通。 - 再扫描非树边。 枚举与
相邻的 level- 非树边。若另一端也在 ,将它提升到 ;第一步已经保证其两端在 中连通,生成森林不变量得以保持。 - 找到跨边即修复。 若候选边跨到另一侧,将它转为 level-
树边,并在所有 ( )中 link,两侧重新连通,搜索结束。 - 本层耗尽才降层。 若没有跨边,继续处理
;层级零也耗尽时,原图确实分裂成两个分量。
删除前,包含两侧的第
第一步必须在扫描非树边之前完成,而不是只在“本层没找到替代边”时执行。否则内部非树边先进入
摊还分析
边的层级只增不减,最多从
其中
这不是单次最坏界:一次不幸的 tree-edge 删除可能检查许多候选,成本由那些候选以后不再停留在同一层这一事实偿还。若实现允许边层级下降,上述记账立即失效。
直觉
删除树边后,真正昂贵的是判断大量非树边中谁跨越新割。HDT 总从较小一侧搜索,并把已经证实为内部边的失败候选提升到更高层;层级只能上升有限次,于是一次删除可能很贵,但同一条边不会在同一层反复收费。
例子与边界
具体例子:三角形中的 replacement
图含三角形
再看会触发提升的六点例子。初始树边为
若把树边提升推迟到搜索失败后,
推论与应用
全动态连通性通常把一组非树边围绕动态生成森林组织;动态森林问题提供 link、cut、连通查询和路径/层级聚合接口。难点在删除树边后从非树边中寻找替代边,而不只是维护一棵森林。
失败边界与模型区分
离线动态连通预先知道每条边的活跃时间,可用时间线段树和 rollback DSU;HDT 不知道未来删除时刻,付出更复杂的分层 replacement 搜索。把离线总时间除以操作数不能得到在线 update bound。
本页只维护无向连通性。带权 replacement edge 要按权值选择,会进入 fully dynamic minimum spanning forest;判断桥、二边连通或有向强连通也需要更强不变量。多重边版本可以支持,但必须给每个边实例独立身份,否则删除其中一条会误删其余平行边。
参考资料
-
Raj D. Iyer Jr., David R. Karger, Hariharan S. Rahul and Mikkel Thorup, An Experimental Study of Poly-Logarithmic Fully-Dynamic Connectivity Algorithms, ACM Journal of Experimental Algorithmics 6, 2001,§2.2–2.3:先提升小侧树边、再搜索非树边,ETT 标记枚举与
空间。 -
Jacob Holm, Kristian de Lichtenberg, and Mikkel Thorup, “Poly-Logarithmic Deterministic Fully-Dynamic Algorithms for Connectivity, Minimum Spanning Tree, 2-Edge, and Biconnectivity,” JACM 48(4), 2001.
-
David Eppstein, Zvi Galil, Giuseppe F. Italiano, and Amnon Nissenzweig, “Sparsification — A Technique for Speeding Up Dynamic Graph Algorithms,” JACM 44(5), 1997.
-
Monika R. Henzinger and Valerie King, “Randomized Fully Dynamic Graph Algorithms with Polylogarithmic Time per Operation,” JACM 46(4), 1999.