节点扩展下保持三连通分量
1. 引言
SPQR树是一种用于表示图在分离对上分解的数据结构,分离对指的是移除后会使图断开的顶点对,分解得到的组件称为骨架。SPQR树在许多图可视化技术中是核心组件,可用于平面性测试、计算嵌入和布局等。最初,Di Battista和Tamassia为增量平面性测试设计了SPQR树,随后其应用扩展到其他在线问题和全动态场景,能在$O(\sqrt{n})$时间内插入和删除顶点及边($n$为图的顶点数)。
本文考虑一种增量场景,允许将单个顶点$v$扩展为任意双连通图$G_ν$。Eppstein等人的方法需要$O((deg(v)+|G_ν|)·\sqrt{n})$时间,且仅表示三连通分量的部分。本文将其改进为$O(deg(v)+|G_ν|)$,使用的算法更简单,能明确得到完整的三连通分量。此外,还能高效合并两个SPQR树:给定两个双连通图$G_1$、$G_2$,分别包含顶点$v_1$、$v_2$,以及它们关联边之间的双射,通过用$G_2 - v_2$替换$G_1$中的$v_1$并根据双射识别边,可在$O(deg(v_1))$时间内找到新图$G$的SPQR树。
具体来说,本文提出的数据结构支持以下操作:
- InsertGraphSPQR:以扩展子图大小的线性时间扩展单个顶点。
- MergeSPQR:以被替换顶点度数的线性时间合并两个SPQR树。
- IsPlanar:在常数时间内指示当前表示的图是否为平面。
- Rotation:在常数时间内得到三连通骨架中顶点的两种可能平面旋转之一。
该数据结构还可调整为为所有三连通骨架生成一致的平面嵌入,并测试任意两个顶点之间是否存在三条不同路径,所有操作额外有
超级会员免费看
订阅专栏 解锁全文
1920

被折叠的 条评论
为什么被折叠?



