可平面图的判断
剖分
- 剖分:在一条边上加入一个新的顶点,将其分为两条边
- Kuratowski子图:图中的,是
或 剖分的子图 - Kuratowski定理:可平面图的充要条件是没有kuratowski子图
- Wagner定理:可平面图的充要条件是没有可以收缩到
或 的子图
DMP算法
H-fragment
图
- 一条不在
中但两个端点都在 中的边及其两端 的一个连通分支加上它连到H的边及其端点
基本思路
- 迭代地嵌入当前子图的fragment,直到G全部被嵌入(可平面)或者某个fragment无法嵌入(不可平面)
- 嵌入一个fragment可能难以操作,但总能嵌入其中的一条路
- 图
是可平面的当且仅当 的每个块都是可平面的
DMP算法流程
- 如果有多个块,只需要检测每个块(2-连通图)是否可平面即可
- 对于每个2-连通图
,从中任取一个圈 ,平面嵌入 - 迭代如下
- 找到所有
- 对于每个
(称作 ),在 中找到所有包含所有 的附着点的面(称为 )。如果某个 为空,则 不可平面;如果某个 则选中这个 ;如果每个 ,则任选一个 - 从选中的
中任选一条连接两个附着点的路 ,将 嵌入到 的一个面中。 - 将结果记作
- 如果
则 可平面,否则继续迭代。
- 找到所有
复杂度
- 块分解:
,基于DFS - 找初始的圈:
- 迭代轮数:
- 简单平面图满足
,因此每轮迭代新增一个面
- 简单平面图满足
- 每轮的迭代时间: