码迷,mamicode.com
首页 > 其他好文 > 详细

平面图上的欧拉公式

时间:2018-03-06 00:52:22      阅读:546      评论:0      收藏:0      [点我收藏+]

标签:不能   构建   端点   一个   class   构造   今天   post   div   

  今天学了一个平面图上的欧拉公式,内容如下:

  对于平面上的连通图,我们称一组k个不同顶点组成的顶点序列[v1,v2,...,vk]围成了一个区域 ,当且仅当每个顶点仅且与相邻顶点之间有边相连(认为vk与v1相邻),换言之即这组顶点序列正好组成了一个环。同时还要求非相邻顶点之间不存在其它路径。同时我们认为在连通图外的无垠区域也是一个区域。若连通图中包含|V|个顶点和|E|条边,那么欧拉公式给出f+|V|=|E|+2,其中f为平面上的区域数目。

  简单说明一下缘由。我们可以通过构造的方式来证明。对于只有一个顶点的图,图中只含有一个顶点v,若存在从v到v的边,此时边的数目与顶点数目均为1,而平面上的连通图呈现为一个环状(类似圆),平面上的区域为2,若v无边,那么区域只有一个外部区域,公式均成立。之后我们每次向图中加入一个顶点m,并令m位于原有边(u,v)之间,即我们用这个顶点截断了边(u,v),同时新增了两条边(u,m)与(m,v),考虑到同时增加顶点和边数,因此公式始终成立。而若x与y是某个区域的共同边缘顶点(即x与y组成的某个环围成了这个区域),那么我们向图中加入边(x,y),很显然我们将区域截断为两部分,形成了两个区域,次数区域数目f与|E|同时增加,故公式依旧成立。

  下面说明对于任意平面上的连通图,我们都保证欧拉公式成立。

  对于任意连通图,其中区域数目是可数的,且每个顶点至少是一个区域的边缘端点。假设存在顶点x不是任何区域的边缘端点,那么对于顶点x,我们找另外一个与x相邻的顶点y,并取出含x与y的环(连通图保证环存在)。由于环不能形成区域,因此环中必定存在两个非相邻顶点之间有边。我们可以移除环中边的两端点之间的所有顶点(选取不含x与y的那一部分),这样我们缩小了环,重复缩小的过程直到环中只有两个顶点,此时环一定形成区域,且含x,故假设不成立。同时我们也发现从任意环中至少能提取一个包含该环中某两个相邻的某个区域。

  我们通过逆向思维来证明,即通过逐步消解图而非构建图来证明原图中的区域数满足欧拉函数。

  由于每个非平凡连通图中至少有两个顶点不是割点,因此我们可以从图中取任意顶点x。若x的度为1,则我们移除x与其唯一的边,此时欧拉公式保持。若x的度大于2,设y与z是x的两个直接相连的结点,由于x不是割点,故y与z之间有一条不含x的路径,故x,y,z处于一个环中。我们从中取出包含x与y的区域R1,并删除x与y的边。若x与y之间依旧形成环,从中继续取出x与y的区域R2,考虑到R1中剩余了从x到y的一条路径,因此R2对应的环必定包含路径R1,而当我们向R2中加入(x,y)时,R2被切割为两个区域,故我们能保证此时区域和边同时减少1。若x与y之间不再形成环,此时区域数目和边明显同时减少1,无论哪种情况都会保证边和区域的数目同时减少1。重复上面的过程直到连通图平凡(即只余下一个顶点)。完成上述过程,此时平面上的区域总数为1,结束时欧拉公式成立。由于我们每次或者同时减少一个顶点和边,或者减少一个边和区域,因此欧拉函数f+|V|=|E|+2对于原始连通图是成立的。

平面图上的欧拉公式

标签:不能   构建   端点   一个   class   构造   今天   post   div   

原文地址:https://www.cnblogs.com/dalt/p/8512016.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!