线性时间计算线性问题核
在图论中,对于平面图的处理,我们常常需要对图进行数据缩减,以得到一个规模更小但本质属性不变的问题核。本文将介绍两种数据缩减规则,并基于这些规则给出一个核化算法,能够在线性时间内计算出一个线性规模的问题核。
1. 数据缩减规则概述
为了缩减图的规模,我们采用两种数据缩减规则,一种用于缩减顶点的邻域,另一种用于缩减区域。
2. 数据缩减规则详细介绍
2.1 私有邻域规则
对于图 $G$ 中的顶点 $v$,我们将其邻域划分为三个子集:
- $N_G^1(v) := {u \in N_G(v) | N_G(u) \setminus N_G[v] \neq \emptyset}$
- $N_G^2(v) := {u \in N_G(v) \setminus N_G^1(v) | N_G(u) \cap N_G^1(v) \neq \emptyset}$
- $N_G^3(v) := N_G(v) \setminus (N_G^1(v) \cup N_G^2(v))$
缩减规则 1:若 $v \in V(G)$ 满足 $|N_G^3(v)| > 1$ 或 $|N_G(N_G^3(v))| > 1$,则从 $G$ 中移除 $N_G^3(v)$,并向 $v$ 附加一个新的一度虚拟顶点 $v’$。
该规则的正确性基于原有的缩减规则,因为我们只是删除了可安全移除顶点的一个子集。对于平面图,该规则可以在 $O(n)$ 时间内被穷举应用,具体证明如下:
设 $G$ 是平面图,$v \in V(G)$ 不满足缩减规则 1 的条件。当对
超级会员免费看
订阅专栏 解锁全文
1714

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



