全网首个严格证明的双连通图的基本性质

双连通图的性质和证明

性质

首先讨论边双, 任选两点 u, v, 一条边 e, 一定能找到至少一条简单路径 (不经过同一条边两次), 经过 e 连接 u, v.

然后讨论点双, 任选三点 u, v, w, 一定能找到至少一条简单路径 (不经过同一个点两次), 经过 w 连接 u, v.

边双连通

说明: 在边双图的讨论中, 两条路径不相交指这两条路径不存在公共边.

对于边双的性质, 可以转化为找两条不相交的, 不经过 e 的路径, 使得对于 e 的两个端点 e1, e2, 连接 e1v, e2u, 或者是连接 e1u, e2v.

我们知道定义: 边双图任意两点间至少可以找到两条互不相交的路径.

因为路径在连通图一定能找到, 我们需要保证的是这些路径不交. 首先我们可以避免 e, 因为如果有一条 ue1 的路径经过了 e, 我们可以选择将这条路径去掉 e, 使其变成 ue2 的路径, 如果这时 ve1 的一条路径也经过 e, 我们可以直接选择 ve1 的另一条路径, 根据定义, 可以找到对应路径使得它和上一条路径不相交, 这样就不会有公共边 e 了.

一定存在简单环 u/ve1e2

这是最坏的情况, 因为其它情况会存在两条不经过 e 的路径, 这样可以构造一条 ue2 的路径, 它和一条不经过 e 的简单路径 ue1e 构成一个简单环.

证明这个结论, 我们讨论随便找一条 ue2 的路径, 如果包含 e, 则找另一条, 这时得到的路径可能和 ue1 的路径有交, 将两条路径的公共部分 ux 记为 UX1, 将剩下的部分记为 XE1XE2, 这三部分无交.

ux 的另一条路径记为 UX2, 假设路径上从 u 出发沿 UX2 经过的第一条 XE1/XE2 的公共边的靠近 u 的端点为 a, 则记 UX2ua 段为 UA, ae1/e2 段为 AE1/AE2, 这时找到简单环 UX1XE1/XE2eAE2/AE1UA.

v 也有同样的结论.

所以我们现在记两个简单环中, 经过 e 的, 连接 u/ve1/e2 路径为 UE1/UE2/VE1/VE2, 因为是简单环, 所以 UE1UE2 无交, VE1VE2 无交, 他们都和 e 无交.

存在 UE1VE2 无交或 UE2VE1 无交

则直接找到可行路径 UE1eVE2UE2eVE1.

仅满足 UE1VE1 无交 (省略讨论 UE2VE2 无交仍不失一般性)

UE1VE2 的靠近 u 的交边的靠近 u 的交点是 a, 记 UE1au 段为 AU, VE2ae2 段位 AE2.

因为 UE1VE1 无交, 所以 AUVE1 无交.

因为 VE2VE1 无交, 所以 AE2VE1 无交.

因为 AUAE2a 分开, 且 UE1AU 段和 VE2 无交, 所以 AUAE2 无交.

因为 VE2UE1 都不包含 e, 所以 AUAE2 都和 e 无交.

又因为 eVE1 无交, 找到合法路径 AUAE2eVE1.

UE1VE1, VE2 有交, UE2 也和 VE1VE2 有交

设从 u 出发, UE1VE2VE1 第一次相交的交边的靠近 u 的端点为 b.

如果 UE1 第一次是和 VE2 相交, 则直接将 b 当成 a, 按仅 UE1VE1 无交的情况讨论即可. 接下来只讨论第一次相交是和 VE1 的情况.

UE1ub 段为 BU, VE1be1 段为 BE1 则.

因为从 u 出发, VE2UE1 第一次相交在 b 之后, 所以 VE2BU 无交.

因为从 u 出发, VE1UE1 第一次相交在 b, 所以 BE1BU 无交.

因为 VE1VE2 无交, 所以 VE2BE1 无交.

因为 UE1, VE1 都和 e 无交, 所以 BU, BE1 都和 e 无交.

因为 eVE2 无交, 则找到合法路径 BUBE1eVE2.

点双连通

因为不能找出三个点, 所以我们不讨论两个点的点双图这种特殊情况.

说明: 在点双图的讨论中, 两条路径不相交指这两条路径不存在除端点以外的公共点.

首先找到任意路径连接 uwvw, 这时如果两条路径无交, 则性质成立. 如果有交, 一定可以找一个 x 点, 使得两条路径在 wx 处相交, 我们把这条路径记为 WX1, 且存在一条 uxv 的简单路径, 我们把这条简单路径中, ux 段记为 UX1, vx 段记为 VX1.

然后讨论 WX1 的情况, 因为我们可以找到至少两条 wx 的不相交简单路径, 所以最多有一条路径是一条边连接两个点组成的, 如果存在这种路径, 我们把它记为 WX1, 因为不存在除 w, x 外的任何点, 所以它一定和 VX1UX1 无交, 不影响我们在前面对 WX1 记号的定义. 另一条路径记为 WX2, 则 WX2 一定包含至少一个除了 wx 的点.

WX2UX1 有交

则设距离 u 最近的交点为 a, 则 UX1ua 段记为 UA, 取 WX2wa 段记作 WA.

WAVX1 有交

设距离 v 最近的交点为 b, 记 vb 段为 VB, wb 段为 WB.
如果 VBWB 有交, 则直接取交点为 b, 所以一定有 VBWB 无交.
如果 UX1WB 有交, 则直接取交点为 a, 转化为 WAVX1 无交的情况.
因为 WX2WX1 无交, 则 WX1WB 无交.
因为 UX1VX1 无交, 所以 VBUX1 无交.
因为 WX1VX1 无交, 所以 VBWX1 无交.
又因为 WX1UX1 无交, 所以找到一条合法路径 VBWBWX1UX1.

WAVX1 无交

如果 UAWA 有交, 直接取交点作为 a, 则存在 UAWA 无交.
因为 WX2WX1 无交, 则 WX1WA 无交.
因为 UX1WX1 无交, 所以 UAWX1 无交.
因为 UX1VX1 无交, 所以 UAVX1 无交.
又因为 WAVX1 无交, WX1VX1 无交, 所以找到一条合法路径, UAWAWX1VX1.

WX2UX1 无交

假设找一条 vWX2 上除 x 点之外的点 a 的简单路径 VA, 使得这条路径和已有的 VX1a 无交, 因为两点间有至少两条无交简单路径, 所以一定能找到一个 VA 满足要求.

VAUX1 有交

设最靠近 u 的交点为 d, 记 UX1ud 段为 UD, VAda 段为 DA.
如果 DAWX1 有交, 取交点为 c, 则转化为 VAUX1 无交, 却和 WX1 有交的情况. 因此这里只讨论 DAWX1 无交的情况.
如果 DAWA 有交, 则直接取交点为 a, 所以一定存在 DAWA 无交.
如果 DAUD 有交, 则直接取交点为 d, 所以一定存在 DAUD 无交.
如果 WX2VX1 有交, 则转化为 WX2UX1 有交的对称问题, 交换对象 U, V, 按 WX2UX1 讨论即可. 故本情况只讨论 WX2VX1 无交的情况.
因为 WX2WX1 无交, 所以 WX1WA 无交.
因为 WX2VX1 无交, 所以 WAVX1 无交.
因为 WX2UX1 无交, 所以 WAUD 无交.
因为 WX1UX1 无交, 所以 WX1UD 无交.
因为 VX1UX1 无交, 所以 VX1UD 无交.
因为 VAVX1 无交, 所以 DAVX1 无交.
又因为, WX2UX1 无交, 所以找到合法路径 UDDAWAWX1VX1.

VAUX1 无交

VAWX1 有交

设离 x 最近的交点为 c, 记 VAvc 段为 VC, WX1wc 段记 WC.

  • VCWX2 有交

    直接取交点为 a 点, 转化为 VAWX1 无交的情况.

  • VCWX2 无交

    • VCWC 有交

      记最靠近 w 的交点为 d, 记 WCwd 段为 WD, VCvd 段为 VD, 则 VDWD 不可能有交, 否则重新将新的交点记作 d.
      因为 WX1WX2 无交, 所以 WDWX2 无交.
      因为 VCWX2 无交, 所以 VDWX2 无交.
      因为 VAUX1 无交, 所以 VDUX1 无交.
      因为 WX1UX1 无交, 所以 WDUX1 无交.
      又因为 WX2UX1 无交, 所以找到合法路径: VDWDWX2UX1.

    • VCWC 无交

      因为 VAUX1 无交, 所以 VCUX1 无交.
      因为 WX1UX1 无交, 所以 WCUX1 无交.
      因为 WX1WX2 无交, 所以 WCWX2 无交.
      又因为 VCWX2 无交, WX2UX1 无交, VCWC 无交, 所以找到合法路径: VCWCWX2UX1.

VAWX1 无交

如果 VAWA 有交, 则直接取交点为 a, 所以一定存在 VAWA 无交.

因为 WX1WX2 无交, 所以 WAWX1 无交.
因为 WX2UX1 无交, 所以 WAUX1 无交.
又因为 VAWX1 无交, VAUX1 无交, WX1UX1 无交, 所以找到合法路径: VAWAWX1UX1.

posted @   Wild_Donkey  阅读(383)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示