Loading docs/graph/chord.md +17 −21 Original line number Diff line number Diff line Loading @@ -116,37 +116,31 @@ **正确性证明** : 设编号为 $x$ 的结点在最大势算法得出的序列上出现的位置为 $a_x$ 。我们要证明当原图为弦图时,序列的逆序为原图的完美消除序列。 设 $\alpha(x)$ 为 $x$ 在这个序列中的位置。 我们需要证明对于任何一个弦图,算法求出的序列一定是一个完美消除序列,即在序列中位于某个点后面且与这个点相连的所有点两两相连。 当一个点 $u$ 被标记时,若 $label_u$ 为 $0$ 或 $1$ ,则 $u$ 必然为单纯点。 **Lemma 9** :考虑三个点 $u,v,w$ 满足 $\alpha(u)<\alpha(v)<\alpha(w)$ ,如果 $uw$ 相连, $vw$ 不相连,则 $w$ 只给 $u$ 的 $label$ 贡献,不给 $v$ 贡献。为了让 $v$ 比 $u$ 先加入序列,需要一个 $x$ 满足 $\alpha(v)<\alpha(x)$ 且 $vx$ 相连, $ux$ 不相连,即 $x$ 只给 $v$ 贡献而不给 $u$ 贡献。 若 $label_u>1$ ,必然可以选出两点 $v,w$ 与 $u$ 直接相连,且 $v,w$ 在 $u$ 之前标记过,如果最大势算法成立,则 $v,u$ 必然直接相连。 **Lemma 10** :任意一个弦图一定不存在一个序列 $v_0,v_1,...,v_k(k\ge 2)$ 满足下列性质: 1\. $v_iv_j$ 相连当且仅当 $|i-j|=1$ 。 1\. $\alpha(v_0)>\alpha(v_i)(i\in[1,k])$ 。 1\. 存在 $i\in[1,k-1]$ ,满足 $\alpha(v_i)<\alpha(v_{i+1})<...<\alpha(v_k)$ 且 $\alpha(v_i)<\alpha(v_{i-1})<...<\alpha(v_1)<\alpha(v_k)<\alpha(v_0)$ 。 考虑使用反证法。假设存在这样的 $v,w$ ,设 $v$ 在 $w$ 之前被标记,且 $v,w$ 之间 **不直接有边相连** 。 证明: 为了更方便地分析问题,我们将原图划分为几个点集。与 $u,v$ 均直接相连的点集 $S$ ;只与 $v$ 相连,不与 $u$ 相连的点集 $A$ ;只与 $w$ 相连,不与 $u$ 相连的点集 $B$ 。 由于 $\alpha(v_1)<\alpha(v_k)<\alpha(v_0)$ ,且 $v_1v_0$ 相连, $v_kv_0$ 不相连,所以由性质一,存在 $x$ 满足 $\alpha(v_k)<\alpha(x)$ 且 $v_kx$ 相连, $v_1x$ 不相连。 **Lemma 9** :删去 $u,S$ 后, $A,v$ 不连通;删去 $v,S$ 后, $B,u$ 不连通。 考虑最小的 $j\in(1,k]$ 满足 $v_jx$ 相连,我们可以推出 $v_0x$ 不相连,否则 $v_0v_1...v_jx$ 构成了一个长度 $\ge 4$ 且无弦的环。 证明:若删去后仍连通,考虑 $A,v$ 间的最短路径 $A\sim v$ ,存在一个大于三元的环 $w-u-A\sim v-w$ ,必然存在一条弦,若弦为 $A,w$ 不满足点集 $A$ 的定义,若弦为 $u,v$ 不满足题设,若弦在 $A\sim v$ 中不满足最短路,若弦是 $w$ 与 $A~v$ 中不为 $A,v$ 的一点,则该点应在 $S$ 中。 如果 $x<v_0$ ,则 $v_0,v_1,...,v_j,x$ 也是一个满足性质的序列;如果 $v_0<x$ 则 $x,v_j,...,v_1,v_0$ 也是一个满足性质的序列。 对称同理。 在上面的推导中,我们扩大了 $\min(v_0,v_k)$ ,于是一直推下去,一定会产生矛盾。 **Lemma 10** :删去 $w$ 后, $A,B$ 中没有任意两点连通,与 $u,v$ 均直接相连的所有点必然在集合 $S$ 中。 **Theorem 1** :对于任何一个弦图,最大势算法求出的序列一定是一个完美消除序列。 证明:若删去后仍连通,设选择的两点之间的最短路为 $A\sim B$ ,则存在一个大于三元的环 $w-u-A\sim B-v-w$ ,类似以上讨论可得。若有一点 $x$ 与 $u,v$ 均直接相连,则存在一个四元环 $w-u-x-v$ ,弦必然为 $w,x$ ,故 $x$ 必在 $S$ 中。 证明:考虑任意三个点 $u,v,w$ 满足 $\alpha(u)<\alpha(v)<\alpha(w)$ ,我们需要证明若 $uv$ 相连, $uw$ 相连,则 $vw$ 一定相连。 以上两个定理保证了将与 $v,w$ 中至少一个点直接相连的所有点划分为的点集是相互独立且覆盖了全部情况的。 **Theorem 1** :在对弦图使用最大势算法时,当一个点被标记时,它在已经标记结点中一定为一个单纯点。 证明:当我们标记了 $v$ 时,设 $A$ 中被标记的点数为 $x$ , $S$ 中被标记的点数为 $y$ ,则 $label_u=y+1,label_w=y$ 。 若接下来标记的是 $S$ 中的点,则不会改变 $label_u$ 和 $label_w$ 的大小关系。若接下来标记的是 $A$ 中的点,则这些点对 $u,w$ 的 $label$ 无影响。 故此时 $u$ 必然在 $w$ 前标记,与题设矛盾。故所有 $v,w$ 之间必然直接有边相连,当 $u$ 被标记时一定是单纯点。 至此,最大势算法的正确性得证。 考虑反证法,假设不相连,那么 $w,u,v$ 就是一个满足 **Lemma 10** 中性质的序列,我们证明了这样序列不存在,所以矛盾, $vw$ 相连。 参考代码: Loading Loading @@ -288,3 +282,5 @@ for (int i = 1; i <= n; i++) [2009 WC 讲稿](https://wenku.baidu.com/view/cd36284ba31614791711cc7931b765ce05087a30.html) [弦图总结 - 租酥雨](https://www.cnblogs.com/zhoushuyu/p/8716935.html) [R. E. Tarjan and M. Yannakakis, Simple linear-time algorithms to test chordality of graphs,test acyclicity of hypergraphs,and selectively reduce acyclic hypergraphs, SIAM J. Comput., 13 (1984), pp. 566–579.] Loading
docs/graph/chord.md +17 −21 Original line number Diff line number Diff line Loading @@ -116,37 +116,31 @@ **正确性证明** : 设编号为 $x$ 的结点在最大势算法得出的序列上出现的位置为 $a_x$ 。我们要证明当原图为弦图时,序列的逆序为原图的完美消除序列。 设 $\alpha(x)$ 为 $x$ 在这个序列中的位置。 我们需要证明对于任何一个弦图,算法求出的序列一定是一个完美消除序列,即在序列中位于某个点后面且与这个点相连的所有点两两相连。 当一个点 $u$ 被标记时,若 $label_u$ 为 $0$ 或 $1$ ,则 $u$ 必然为单纯点。 **Lemma 9** :考虑三个点 $u,v,w$ 满足 $\alpha(u)<\alpha(v)<\alpha(w)$ ,如果 $uw$ 相连, $vw$ 不相连,则 $w$ 只给 $u$ 的 $label$ 贡献,不给 $v$ 贡献。为了让 $v$ 比 $u$ 先加入序列,需要一个 $x$ 满足 $\alpha(v)<\alpha(x)$ 且 $vx$ 相连, $ux$ 不相连,即 $x$ 只给 $v$ 贡献而不给 $u$ 贡献。 若 $label_u>1$ ,必然可以选出两点 $v,w$ 与 $u$ 直接相连,且 $v,w$ 在 $u$ 之前标记过,如果最大势算法成立,则 $v,u$ 必然直接相连。 **Lemma 10** :任意一个弦图一定不存在一个序列 $v_0,v_1,...,v_k(k\ge 2)$ 满足下列性质: 1\. $v_iv_j$ 相连当且仅当 $|i-j|=1$ 。 1\. $\alpha(v_0)>\alpha(v_i)(i\in[1,k])$ 。 1\. 存在 $i\in[1,k-1]$ ,满足 $\alpha(v_i)<\alpha(v_{i+1})<...<\alpha(v_k)$ 且 $\alpha(v_i)<\alpha(v_{i-1})<...<\alpha(v_1)<\alpha(v_k)<\alpha(v_0)$ 。 考虑使用反证法。假设存在这样的 $v,w$ ,设 $v$ 在 $w$ 之前被标记,且 $v,w$ 之间 **不直接有边相连** 。 证明: 为了更方便地分析问题,我们将原图划分为几个点集。与 $u,v$ 均直接相连的点集 $S$ ;只与 $v$ 相连,不与 $u$ 相连的点集 $A$ ;只与 $w$ 相连,不与 $u$ 相连的点集 $B$ 。 由于 $\alpha(v_1)<\alpha(v_k)<\alpha(v_0)$ ,且 $v_1v_0$ 相连, $v_kv_0$ 不相连,所以由性质一,存在 $x$ 满足 $\alpha(v_k)<\alpha(x)$ 且 $v_kx$ 相连, $v_1x$ 不相连。 **Lemma 9** :删去 $u,S$ 后, $A,v$ 不连通;删去 $v,S$ 后, $B,u$ 不连通。 考虑最小的 $j\in(1,k]$ 满足 $v_jx$ 相连,我们可以推出 $v_0x$ 不相连,否则 $v_0v_1...v_jx$ 构成了一个长度 $\ge 4$ 且无弦的环。 证明:若删去后仍连通,考虑 $A,v$ 间的最短路径 $A\sim v$ ,存在一个大于三元的环 $w-u-A\sim v-w$ ,必然存在一条弦,若弦为 $A,w$ 不满足点集 $A$ 的定义,若弦为 $u,v$ 不满足题设,若弦在 $A\sim v$ 中不满足最短路,若弦是 $w$ 与 $A~v$ 中不为 $A,v$ 的一点,则该点应在 $S$ 中。 如果 $x<v_0$ ,则 $v_0,v_1,...,v_j,x$ 也是一个满足性质的序列;如果 $v_0<x$ 则 $x,v_j,...,v_1,v_0$ 也是一个满足性质的序列。 对称同理。 在上面的推导中,我们扩大了 $\min(v_0,v_k)$ ,于是一直推下去,一定会产生矛盾。 **Lemma 10** :删去 $w$ 后, $A,B$ 中没有任意两点连通,与 $u,v$ 均直接相连的所有点必然在集合 $S$ 中。 **Theorem 1** :对于任何一个弦图,最大势算法求出的序列一定是一个完美消除序列。 证明:若删去后仍连通,设选择的两点之间的最短路为 $A\sim B$ ,则存在一个大于三元的环 $w-u-A\sim B-v-w$ ,类似以上讨论可得。若有一点 $x$ 与 $u,v$ 均直接相连,则存在一个四元环 $w-u-x-v$ ,弦必然为 $w,x$ ,故 $x$ 必在 $S$ 中。 证明:考虑任意三个点 $u,v,w$ 满足 $\alpha(u)<\alpha(v)<\alpha(w)$ ,我们需要证明若 $uv$ 相连, $uw$ 相连,则 $vw$ 一定相连。 以上两个定理保证了将与 $v,w$ 中至少一个点直接相连的所有点划分为的点集是相互独立且覆盖了全部情况的。 **Theorem 1** :在对弦图使用最大势算法时,当一个点被标记时,它在已经标记结点中一定为一个单纯点。 证明:当我们标记了 $v$ 时,设 $A$ 中被标记的点数为 $x$ , $S$ 中被标记的点数为 $y$ ,则 $label_u=y+1,label_w=y$ 。 若接下来标记的是 $S$ 中的点,则不会改变 $label_u$ 和 $label_w$ 的大小关系。若接下来标记的是 $A$ 中的点,则这些点对 $u,w$ 的 $label$ 无影响。 故此时 $u$ 必然在 $w$ 前标记,与题设矛盾。故所有 $v,w$ 之间必然直接有边相连,当 $u$ 被标记时一定是单纯点。 至此,最大势算法的正确性得证。 考虑反证法,假设不相连,那么 $w,u,v$ 就是一个满足 **Lemma 10** 中性质的序列,我们证明了这样序列不存在,所以矛盾, $vw$ 相连。 参考代码: Loading Loading @@ -288,3 +282,5 @@ for (int i = 1; i <= n; i++) [2009 WC 讲稿](https://wenku.baidu.com/view/cd36284ba31614791711cc7931b765ce05087a30.html) [弦图总结 - 租酥雨](https://www.cnblogs.com/zhoushuyu/p/8716935.html) [R. E. Tarjan and M. Yannakakis, Simple linear-time algorithms to test chordality of graphs,test acyclicity of hypergraphs,and selectively reduce acyclic hypergraphs, SIAM J. Comput., 13 (1984), pp. 566–579.]