判断平面图的库拉托夫斯基定理

news/2024/12/22 19:32:06/

前几天看了B站李博士发布的内容 https://www.bilibili.com/video/BV1YC4y1H7F7
分享了库拉托夫斯基定理,里面的Up主有一些内容引起了我的兴趣。
下面是我的一些笔记。

1 平面图定义:在图论中,平面图是可以画在平面上并且使得不同的边可以互不交叠的图。
2 非平面图定义: 如果一个图无论怎样都无法画在平面上,并使得不同的边互不交叠,那么这样的图不是平面图,或者称为非平面图。

下面是几个平面图和非平面图例子。
在这里插入图片描述
在这里插入图片描述

3 完全图 K 5 K_5 K5和完全二分图 K 3 , 3 K_{3,3} K3,3(汤玛森图)是最“小”的非平面图。
这里最小的含义在于 K 5 K_5 K5 是顶点最小的非平面图, K 3 , 3 K_{3,3} K3,3 是边数最小的非平面图。

4 库拉托夫斯基定理
在这里插入图片描述

注: 库拉托夫斯基定理里面涉及的图的同胚含义。 注意并不是同构,也就是说不意味该图一定含 K 5 K_5 K5 K 3 , 3 K_{3,3} K3,3子图.

图的同胚

若两图 G G G G ′ G' G,其中 G G G是某图的若干细分变换结果,且 G ′ G' G可以透过其原像套用若干细分变换来形成,则称 G G G G ′ G' G同胚。
若两图的线条(即从一个顶点出发抵达另外一个顶点中途都没有其他分支的路径)皆能一一对应,则称两图同胚。

可以用图的细分和简化去描述两图的同胚。这时候理解将会容易一些。
在这里插入图片描述
判断两图同胚是一个 N P NP NP 难的问题。所以利用库拉托夫斯基定理去判断一个图是否平面在算法上将不会很好。实际过程并不采用上述定理去判断。但这不影响该定理的理论应用价值。

至于有效地去找同胚于 K 5 K_5 K5 K 3 , 3 K_{3,3} K3,3的子图呢? 这也是值得思考的问题。

第一个: 凭直觉! 这可容易理解。但是多少有点运气的成分。
第二个: 有没有一些程序化地办法去找!这个也是我的疑问。
我的思考:
一种似乎可行地办法是依次删除一些边。 这些边满足去掉原图依旧非平面的边。直到所有的边都尝试过。 我们将保留的非平面的边构成我们想要的子图。

附录
针对Up主的视频的图我们用 Mathematica 去寻找同胚于 K 5 K_5 K5 K 3 , 3 K_{3,3} K3,3的子图。有时候称这样的子图称为库拉托夫斯基子图。可以调用IGraph处理(需要提前安装)。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这可以看出Up视频里面的图不是平面图: 删除边 b f , c e bf,ce bf,ce, 找到同胚于 K 3 , 3 K_{3,3} K3,3的子图 ,即第二张图中红色标注的图,(由抹去顶点e可得到 K 3 , 3 K_{3,3} K3,3 也就是上述代码的IGSmoothen操作:删除二度顶点), 依据库拉托夫斯基定理,可知该图非平面图.
代码文本:

g1 = Graph[{a <-> b, a <-> c, a <-> f, b <-> f, b <-> g, b <-> d, c <-> d, c <-> e, c <-> g, d <-> e, e <-> f, f <-> g}, VertexLabels -> Automatic]
<< IGraphM`;
kuratowski = IGKuratowskiEdges[g1];
HighlightGraph[g1, Graph[kuratowski]]
IGSmoothen[Graph[kuratowski]]
IGLayoutBipartite[%]

可点击此处查看参考内容


http://www.ppmy.cn/news/842085.html

相关文章

基于拉普拉斯算子的模糊图像评价

一. 模糊图像评价基础知识 图像质量评价(IQA)&#xff0c;根据参考图片(reference image)&#xff0c;即原始图片的存在与否&#xff0c;可分为&#xff1a; 全参考&#xff08;full-reference&#xff09;方法, 有原始图片的全部信息半参考&#xff08;reduced-reference&am…

好用的电容笔有哪些?电容笔品牌排名推荐

随着电容笔的普及&#xff0c;很多人都用它来运用于各种各样的网页应用&#xff0c;但是因为苹果原装的电容笔太贵&#xff0c;给用户造成了很大的负担&#xff0c;很少人会选择入手。因此大家都在寻找更好的、更好的平替电容笔。那么&#xff0c;平替式电容笔哪个品牌更省钱&a…

VirtualBox单机版安装K8S+TF

本文参考自&#xff1a;kubernetes最新版安装单机版v1.21.5_kubernetes下载_qq759035366的博客-CSDN博客 只用一台VB虚拟机&#xff0c;装K8S加Tungsten Fabric。 0. 提前避坑&#xff1a; 0.1 Tungsten Fabric的VRouter对Linux内核版本有要求&#xff0c;以下内核版本才…

REE刷TLB时会把安全的TLB刷掉吗

思考: REE刷TLB时会把安全的TLB刷掉吗? TEE刷TLB时能否刷安全的TLB?例如页表管理着的共享内存,它的翻译缓存到了TLB. 首先,纠正一下用词,这里的"刷",来自某些操作系统中的"flush",在TLB底层的操作指令中,是没有flush或clean的,关于TLB的操作指令…

前端开发中常用的数据处理方法

数组 生成数组 当你需要要生成一个 0-99 的数组 方案 1 const createArr = (n) => Array.from(new Array(n), (v, i) => i) const arr = createArr(100) // 0 - 99 数组方案 2 const createArr = (n) => new Array(n).fill(0).map((v, i) => i) createArr(100)…

【来不及刷题之】44、滑动窗口最小值

暴力方法&#xff1a;超时 class Solution {public int[] maxSlidingWindow(int[] nums, int k) {int nnums.length;int sizen-(k-1);int[] resnew int[size];int slow0,quickk-1;int maxNumfindMax(nums,slow,quick);res[0]maxNum;while (quick<n-1){quick;int addNumnums…

搜狗输入法调出符号栏

按’F’(fuhao)键调出输入框&#xff0c;按提示’6’调出更多符号。

谷歌浏览器默认打开搜狗问题

找到谷歌的属性 把红色部分删掉&#xff0c;只要谷歌就可以啦