71、平面性测试再探

平面性测试再探

1. 冲突图

在图论中,冲突图是平面性测试里的一个关键概念。对于一个 3 - 连通图 (G) 以及图中的任意一个循环 (C),冲突图 (H_C(G)) 具有重要性质。

  • 引理 3 :给定一个 3 - 连通图 (G) 和图中的任意循环 (C),冲突图 (H_C(G)) 是连通的。

    • 证明思路
      • 首先,对于一个嵌入的平面图 (G) 以及其中包含的任何循环 (C),冲突图 (H_C(G)) 是二分图。这是因为二分划分由桥是映射到循环“内部”还是“外部”决定。
      • 接着证明 (H_C(G)) 的连通性。对于 (C) 上的每一对点 (x),(y),沿着 (C) 有两条路径 (P_{x,y}) 和 (P’_{x,y})。设 (B) 是对应于 (H_C(G)) 的一个连通分量的桥的集合。
      • 选取一对点 (u),(v),满足:
        • (u) 和 (v) 是 (B) 中桥的附着点。
        • (u) 和 (v) 不相邻。
        • (B) 中所有桥的附着点都位于 (P_{u,v}) 或 (P’ {u,v}) 中(不妨假设它们位于 (P {u,v}) 中)。
      • 证明可以找到这样的一对 (u),(v):选取一个桥 (B’\notin B),(B’) 的附着点将 (C) 分成若干段(由于每个桥至少有 3 个附着点,所以至少分成 3 段)。因为 (B) 中没有桥与 (B’) 冲突,且 (B) 在 (H_C(G)) 中对应的顶点形成一个连通分量,所以 (B) 的所有附着点必须位于其中一段。这意味着 (C) 中存在一个点 (w)((B’) 的附着点),它不是 (B) 中任何桥的附着点。因此,可以选择 (u),(v) 为 (B) 在 (w) 两侧的附着点。
      • 对于 (P_{u,v}) 上的每一个点 (x\notin{u, v}),存在一个桥 (B\in B),其附着点 (b_1),(b_2) 满足 (b_1) 在 (P_{u,v}) 中先于 (x),(b_2) 后于 (x)。否则,对于所有 (B\in B),要么 (B) 的所有附着点都位于 (u) 和 (x) 之间,要么都位于 (x) 和 (v) 之间。这意味着在 (H_C(G)) 中,以 (u) 为附着点的 (B) 中的桥对应的顶点与以 (v) 为附着点的桥对应的顶点不相连,这与 (B) 对应于 (H_C(G)) 中的一个连通分量相矛盾。
      • 如果 ({u, v}) 不是分离对,那么存在一个桥 (B’\notin B),其附着点同时位于 (P_{u,v}\setminus{u, v}) 和 (P’_{u,v}\setminus{u, v})。由此可知 (B’) 与 (B) 中的一个桥冲突,这是不可能的。因此,({u, v}) 是分离对。
  • 事实 3 :在平面图 (G) 中,关于每个循环的冲突图是二分图。

2. 基本循环的内部和外部

接下来,要确定相对于每个基本循环,哪些桥映射到循环内部,哪些映射到循环外部。基本思路是找到图的一个面,将其称为外部面。这样,相对于每个循环,包含该外部面边的桥就映射到外部。这完全确定了相对于所有基本循环的冲突图的 2 - 着色。

  • 命题 2 :任何双连通嵌入平面图相对于其每个生成树都有一个基本面(即也是一个面的基本循环)。

    • 证明思路 :给定一个双连通平面图和图中的一个生成树,双连通平面图的非树边对应的对偶边集(将所有多边减少为单一边后)形成一个树,即所谓的对偶树。这是因为原图中的循环对应于对偶图中的割(根据相关命题),所以非树边的对偶边在对偶图中是连通的。通过应用欧拉关系可以验证这些边的数量恰好比面的数量(对偶图中的顶点数)少 1。很容易看出,原始图中对应于对偶树叶子的面是基本面。
  • 推论 1 :每个 3 - 连通平面图至少有一个基本面,并且可以通过对数空间转换器找到。

3. 获取平面嵌入

这里展示了一种方法来识别给定平面 3 - 连通图每个面中的边,同时也描述了如何拒绝非平面图。设 (C(e_0)) 是被选为外部面的基本面。

  • 核心方法 :证明的核心是在 (\mathbb{Z}_2) 上的循环空间中进行基的变换。已知有面的“隐式”表示,现在要寻求以哪些边构成一个面的显式表示。由于基本循环和内部面都构成了 (\mathbb{Z}_2) 上循环空间的基,所以只需要求将基本循环表示为面的线性组合的矩阵的逆。虽然这似乎会将问题置于 (\oplus L) 中,但给出了一种显式的求逆方法,得到了 (L) 上界。

  • 面的“隐式”表示 :给定图的一个嵌入,非树边和除外部面之外的面之间存在自然的双射。即,将非树边 (e) 映射到与 (e) 相邻且位于基本循环 (C(e)) 内部(相对于外部面 (C(e_0)))的面 (f(e))。通过这种方式标记面,前面描述的冲突图的 2 - 着色告诉我们哪些面包含在基本循环 (C(e)) 内。

  • 定义和符号

    • 对于不同的非树边 (e_1),(e_2),定义 (e_1 \prec e_2) 当且仅当在冲突图 (H_{C(e_2)}(G)) 的 2 - 着色中,包含 (e_0),(e_1) 的桥对应的顶点获得不同的颜色。直观地说,如果 (G) 是平面的,这意味着在 (G) 的唯一平面嵌入中,(C(e_2)) 将 (e_1) 与 (e_0) 分开。
    • 对于每个 (e\in E(G)\setminus{e_0}),令 (P(e)) 表示:({e’\in E(G)\setminus (E(T)\cup{e})|e’\prec e \land \nexists e’‘: e’\prec e’‘\prec e}),即 (P(e)) 是 ({e’|e’\prec e}) 中关于 (\prec) 的最大元素集合,换句话说,它是 (e) 关于 (\prec) 的直接前驱集合。
    • 令 (F(e)) 表示 (\bigoplus_{e’\in P(e)\cup{e}} C(e’)),其中 (A\oplus B) 表示两个集合的对称差。
  • 引理 4 :对于每个非树边 (e),面 (f(e)) 恰好由集合 (F(e)) 中的边组成。

    • 证明思路
      • 设基本循环 (C),令 (\varphi(C)) 表示位于 (C) 内部的面的数量,(\psi(C)) 表示位于 (C) 内部(包括 (C) 本身)的基本循环的数量。对于也是面的基本循环,(\varphi(C) = \psi(C) = 1)。实际上,对于每个基本循环 (C),根据欧拉公式很容易得出 (\varphi(C) = \psi(C))。
      • 对于 (e\in E(G)\setminus E(T)),首先证明 (F(e)) 是一个面。因为每个 (e’\in P(e)) 都位于 (C(e)) 内部,对于每个非树边 (e’‘\notin P(e)) 且 (e’‘\prec e),存在唯一的 (e’\in P(e)) 使得 (e’‘\prec e’)。通过对边的“包含深度”进行归纳,可以找到一个 (e’\in P(e)) 包含 (e’‘)。唯一性是由于平面性,如果 (e\prec e’) 且 (e\prec e’_1),那么要么 (e’_1\prec e’),要么 (e’\prec e’_1),所以 (e’) 和 (e’_1) 不能同时在 (P(e)) 中。
      • 得到 (\psi(C(e)) = 1 + \sum_{e’\in P(e)} \psi(C(e’))),因此 (\varphi(C(e)) = 1 + \sum_{e’\in P(e)} \varphi(C(e’)))。
      • 由于每个基本循环都可以写成 (G) 的内部面的和,而 (F(e)) 是一组基本循环的和(所有计算都在 (\mathbb{Z} 2) 上进行),所以它也是一些内部面的和。由于只有包含在 (C(e)) 内的面参与这个和,所以 (F(e)) 必须是 (C(e)) 内一些循环的不相交和。具体来说,(\bigoplus {e’\in P(e)} C(e’)) 恰好包括 (C(e)) 内同时也是某些 (e’\in P(e)) 的 (C(e’)) 内的面。因此,(F(e)) 恰好包括 (C(e)) 内但不在任何 (e’\in P(e)) 的 (C(e’)) 内的面。从 (\varphi(C(e))) 的表达式可以很容易看出,恰好有一个这样的面,根据面的线性独立性,这个面一定是 (f(e))。
  • 定理 1 :给定一个图 (G),如果 (G) 是平面的,则为其构造一个平面嵌入,否则拒绝它,可以在对数空间内完成。

    • 证明思路 :给定一个图,使用引理 1 获取其 3 - 连通分量。如果每个三连通分量都是平面的,将成功为每个分量获得平面嵌入,然后借助引理 2 得到整个图的嵌入。如果某个三连通分量不是平面的,将要么得到一个非诱导或分离的 (F(e)),要么得到一条边位于至少三个 (F(e)) 上,从而拒绝该图。

下面用 mermaid 流程图展示获取平面嵌入的步骤:

graph TD;
    A[给定图 G] --> B[获取 3 - 连通分量];
    B --> C{每个分量是否平面};
    C -- 是 --> D[为每个分量构造平面嵌入];
    D --> E[借助引理 2 得到整个图嵌入];
    C -- 否 --> F[拒绝图 G];
4. 寻找库拉托夫斯基子图

描述了一种在给定具有非二分冲突图的循环的情况下获取库拉托夫斯基子图的算法。结果表明,要获得库拉托夫斯基子图,只需在图 (G) 的子图 (G’) 中找到这样的循环。通过一系列引理来实现:

  • 引理 5 :给定一个非平面图 (G),可以在对数空间内找到一个非平面子图 (G’) 和一个循环 (C\subseteq G’),使得 (H_{C}(G’)) 是非二分的。

    • 证明思路
      • 给定一个平面性检查程序和一个非平面图 (G),可以按以下方式找到 (G) 的最小非平面子图 (G’)。将 (G) 的边任意排序为 (e_1, \cdots, e_m),考虑最小的 (i),使得由前 (i) 条边 (e_1, \cdots, e_i) 组成的图 (G’) 是非平面的。这意味着 (G’\setminus e_i) 必然是平面的。
      • 展示如何在图 (G’) 中找到一个循环,使得冲突图 (H_{C}(G’)) 是非二分的。构造 (G’\setminus {e}) 的平面嵌入,由于 (G’) 是非平面的,(e_i) 的端点 (x),(y) 必须位于这个嵌入的不同面上。
      • 在嵌入的对偶图中找到分别与 (x),(y) 相关联的任意两个面 (F_x),(F_y) 之间的路径(该路径必须避免与 (x) 或 (y) 相关联的任何其他面)。这条路径中面的对称差是一个循环 (C),其中一个桥是 (e_i)。
      • 断言 (H_{C}(G’)) 是非二分的。如果它是二分的,那么可以为每个桥赋予一个方向,使得冲突的桥获得相反的方向。但由于 (C) 的所有桥都是平面的,这将意味着 (G’) 是平面的,因此 (H_{C}(G’)) 是非二分的。
  • 引理 6 :给定一个非平面图 (G’) 和一个通过 (H_{C}(G’)) 的非二分性证明其非平面性的循环 (C),可以在对数空间内找到 (H_{C}(G’)) 中的一个诱导奇数循环 (\overline{C})。

    • 证明思路
      • 由于冲突图 (H_{C}(G’)) 是非二分的,它包含一个奇数循环。目标是在这个图中找到一个诱导奇数循环。考虑 (H_{C}(G’)) 的一个生成树,对其进行 2 - 着色。必然存在两个具有相同颜色的顶点之间的非树边(否则图将是二分的)。找到一个非树边 (e),使得基本循环 (C(e)) 的所有弦都获得相反的颜色。通过对基本循环的弦的数量进行简单归纳,可以证明这样的边一定存在,并且在对数空间内可以找到它。
      • 通过用 (C(e)) 的弦替换一些树路径来构造一个无弦循环。设 (e = (u_1, u_k)),树路径从 (u_1) 到 (u_k) 的顶点依次为 (u_2, \cdots, u_{k - 1})。将弦 ((u_i, u_j))((i < j))的点 (u_i) 称为弦的起点,(u_j) 称为弦的终点。从 (u_1) 沿着树路径走到 (u_k),输出树边,直到遇到弦的起点。输出弦,然后移动到弦的终点并重复。很容易看出,这个过程输出的边与非树边 ((u_1, u_k)) 一起形成一个诱导循环,因为 (C(e)) 的任何其他弦的起点或终点都不在这个循环上。此外,由于这个循环上除了 ((u_1, u_k)) 之外的所有边的端点都被赋予相反的颜色,所以这是一个奇数循环。
  • 引理 7 :给定 (H_{C}(G’)) 中的一个诱导奇数循环 (\overline{C}),可以在对数空间内找到一个库拉托夫斯基子图。

    • 证明思路
      • 首先考虑奇数循环中两个冲突的桥 (B_1) 和 (B_2) 共享 3 个附着点 (a_1),(a_2) 和 (a_3) 的情况。如果其中一个桥(例如 (B_1))有另一个附着点 (a_4),那么显然 (B_2) 的附着点 (a_1),(a_3) 与 (B_1) 的附着点 (a_2),(a_4) 交替。因此,只需要处理 (B_1) 和 (B_2) 都只有 3 个附着点的情况。在这种情况下,任何与 (B_1) 冲突的桥也与 (B_2) 冲突,反之亦然,所以 (\overline{C}) 必须是一个 3 - 循环,这种情况在引理 8 中处理。
      • 接着考虑 (\overline{C}) 是一个大小大于 3 的奇数循环,并且奇数循环中一个桥 (B) 与其他任何桥的冲突由 (B) 的 2 个附着点见证的情况,即排除两个桥共享 3 个附着点的可能性。
      • 很容易看出,每个桥都存在 2 个附着点见证其所有冲突。因此,通过将所有桥(不包括附着点)收缩为单个点并移除附着边,可以将所有桥减少为路径,同时保持所有冲突。这可以在对数空间内完成,因为对于每个桥,只需要记住该桥与其邻居(在 (\overline{C}) 中)的冲突见证点(最多 8 个点)。
      • 如果将 (\overline{C}) 的顶点标记为 (v_{B_0}, v_{B_1}, \cdots, v_{B_{2k}})((k > 1)),桥 (B_i) 的附着点标记为 (u_i),(v_i),那么这些点沿着 (C) 的顺序为:(u_0, v_{2k}, u_1, v_0, u_2, v_1, \cdots, u_{2k - 1}, v_{2k - 2}, u_{2k}, v_{2k - 1})。
      • 考虑循环 (u_{2k}, u_0, v_{2k}, v_0, U’)(其中 (U’ = {{v_1, u_3}\cup B_3\cup{v_3}\cup \cdots\cup{u_{2k - 1}}))以及桥 (B_{2k}),(B_0),连接 (u_0) 和 (U’),(v_{2k}) 和 (U’) 的路径以及路径 ({v_0, u_2}\cup B_2 \cdots {v_{2k - 2}, u_{2k}}),显然这是一个 (K_5) 子式。
  • 引理 8 :给定 (G’) 中具有三个相互冲突的桥的循环,可以在对数空间内提取 (G’) 的一个库拉托夫子式。

    • 证明思路 :显然,对于每个桥考虑 4 个附着点就足够了,因为 4 个附着点足以见证与其他两个桥的冲突。可以将桥(不包括附着点)收缩为单个点,将在上述图中寻找库拉托夫斯基子图的问题简化为在最多 15 个顶点和 24 条边的非平面图中寻找库拉托夫子式的问题。由于这是一个固定大小的图,可以通过暴力方法找到库拉托夫子式。

下面用表格总结寻找库拉托夫斯基子图的步骤:
|步骤|描述|
|----|----|
|引理 5|找到非平面子图 (G’) 和非二分冲突图的循环 (C)|
|引理 6|在 (H_{C}(G’)) 中找到诱导奇数循环 (\overline{C})|
|引理 7|根据 (\overline{C}) 找到库拉托夫斯基子图(分情况讨论)|
|引理 8|处理三个相互冲突桥的特殊情况|

平面性测试再探

5. 算法复杂度分析

上述关于平面性测试和寻找库拉托夫斯基子图的算法,在复杂度方面具有重要特点。整体算法的核心目标是在对数空间内完成相关操作,这对于处理大规模图数据具有显著优势。

  • 对数空间的意义 :对数空间意味着算法在执行过程中,所使用的额外存储空间与输入图的规模的对数成正比。这使得算法在面对大规模图时,不会因为存储空间的限制而难以运行。例如,对于一个具有 (n) 个顶点和 (m) 条边的图,算法所需要的额外存储空间仅为 (O(\log(n + m)))。

  • 各步骤复杂度分析

    • 获取 3 - 连通分量 :通过引理 1 获取图的 3 - 连通分量,这一步骤在对数空间内完成。其原理是基于图的连通性分析,利用图的结构信息来划分出不同的 3 - 连通部分。
    • 平面性判断与嵌入构造 :判断每个 3 - 连通分量是否平面,并为平面分量构造嵌入。如果所有分量都是平面的,借助引理 2 得到整个图的嵌入;若存在非平面分量,则拒绝该图。这一系列操作都在对数空间内进行,主要依赖于对冲突图、基本循环等概念的运用和计算。
    • 寻找库拉托夫斯基子图 :从引理 5 到引理 8 的过程,逐步在对数空间内完成了从找到非平面子图和非二分冲突图的循环,到最终获取库拉托夫斯基子图的任务。每一步的计算量都控制在对数空间的范围内,保证了整体算法的高效性。

下面用表格展示各步骤的复杂度:
|步骤|复杂度|
|----|----|
|获取 3 - 连通分量| (O(\log(n + m))) |
|平面性判断与嵌入构造| (O(\log(n + m))) |
|寻找库拉托夫斯基子图| (O(\log(n + m))) |

6. 实际应用场景

这些平面性测试和寻找库拉托夫斯基子图的算法在多个领域有着广泛的实际应用。

  • 电路设计 :在集成电路设计中,需要将各种电子元件布局在电路板上。如果电路对应的图是平面的,那么可以更方便地进行布线,避免线路交叉带来的干扰和复杂性。通过平面性测试算法,可以快速判断电路设计是否可以实现平面布局,从而优化设计方案。
  • 网络规划 :在计算机网络、通信网络等领域,网络拓扑结构可以用图来表示。平面性测试有助于确定网络是否可以以平面的方式进行布局,减少网络连接的复杂性和成本。例如,在无线传感器网络中,合理的平面布局可以提高信号传输的效率和稳定性。
  • 地图绘制 :地图的绘制本质上是将地理信息以平面的方式呈现。通过判断地理区域之间的连接关系所构成的图是否平面,可以更好地进行地图的绘制和布局,使地图更加清晰和易于理解。
7. 总结与展望

本文详细介绍了平面性测试和寻找库拉托夫斯基子图的相关算法和理论。通过对冲突图、基本循环等概念的深入研究,实现了在对数空间内完成平面性判断、平面嵌入构造以及库拉托夫斯基子图的寻找。这些算法在复杂度上具有优势,能够高效处理大规模图数据。

在未来的研究中,可以进一步探索这些算法在更多领域的应用,例如生物信息学中的蛋白质相互作用网络分析、社交网络中的关系分析等。同时,可以考虑对算法进行优化,提高其在实际应用中的性能和效率。例如,结合并行计算技术,加快算法的执行速度;研究更高效的存储方式,减少对数空间的使用。

下面用 mermaid 流程图展示整个算法的流程:

graph TD;
    A[给定图 G] --> B[获取 3 - 连通分量];
    B --> C{每个分量是否平面};
    C -- 是 --> D[为每个分量构造平面嵌入];
    D --> E[借助引理 2 得到整个图嵌入];
    C -- 否 --> F[寻找非平面子图 G' 和循环 C];
    F --> G[在 H_C(G') 中找诱导奇数循环 \(\overline{C}\)];
    G --> H[根据 \(\overline{C}\) 找库拉托夫斯基子图];
    H --> I[结束];
    E --> I;

综上所述,平面性测试和寻找库拉托夫斯基子图的算法在理论和实践中都具有重要价值,未来有着广阔的发展前景。

混合动力汽车(HEV)模型的Simscape模型(Matlab代码、Simulink仿真实现)内容概要:本文档介绍了一个混合动力汽车(HEV)的Simscape模型,该模型通过Matlab代码和Simulink仿真工具实现,旨在对混合动力汽车的动力系统进行建模与仿真分析。模型涵盖了发动机、电机、电池、传动系统等关键部件,能够模拟车辆在不同工况下的能量流动与控制策略,适用于动力系统设计、能耗优化及控制算法验证等研究方向。文档还提及该资源属于一个涵盖多个科研领域的MATLAB仿真资源包,涉及电力系统、机器学习、路径规划、信号处理等多个技术方向,配套提供网盘下载链接,便于用户获取完整资源。; 适合人群:具备Matlab/Simulink使用基础的高校研究生、科研人员及从事新能源汽车系统仿真的工程技术人员。; 使用场景及目标:①开展混合动力汽车能量管理策略的研究与仿真验证;②学习基于Simscape的物理系统建模方法;③作为教学案例用于车辆工程或自动化相关课程的实践环节;④与其他优化算法(如智能优化、强化学习)结合,实现控制策略的优化设计。; 阅读建议:建议使用者先熟悉Matlab/Simulink及Simscape基础操作,结合文档中的模型结构逐步理解各模块功能,可在此基础上修改参数或替换控制算法以满足具体研究需求,同时推荐访问提供的网盘链接获取完整代码与示例文件以便深入学习与调试。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值