《离散数学》:特殊的图

news2024/11/14 22:42:30

〇、前言

这一节会重点讨论一下一些特殊的图,这些图会解决一些特殊的问题。

一、欧拉图

给定无向连通图 G,若存在一条路经过 G 中每边一次且仅一次,则该路为欧拉路。若存在一条回路经过 G 中每边一次且仅一次,则该回路称为欧拉回路。

  • 具有欧拉路的图称为半欧拉图
  • 具有欧拉回路的图称为欧拉图

1、(半)欧拉图的判定

这些判定很简单,我们可以找一个欧拉图的充要条件:G的所有结点的度数都是偶数
同样,我们也可以找一个半欧拉图的充要条件:连通图 G 具有一条连接顶点 u 和 v 的欧拉通路当且仅当 u 和 v 是 G 中仅有的奇数度顶点

2、有向(半)欧拉图

一个连通有向图具有(单向)欧拉回路的充要条件是图中每个结点的入度等于出度
一个连通有向图具有单向欧拉路的充要条件是最多除两个结点外的每个结点的入度等于出度,但在这两个结点中,一个结点的入度比出度大1,另一个结点的入度比出度少1

3、应用欧拉回路的一个经典例子:中国邮递员问题

问题是这样叙述的:邮递员从邮局出发,走遍他负责的街区投递邮件,最后回到邮局。问如何走才能使他走的路最短?
从图论的观点来看,该问题就是:给定一个带权无向图,其中每条边的权为非负实数,求每条边至少经过一次的最短回路
这个问题是我国管梅谷教授1962年提出的,故被称为中国邮递员问题。

注意:每条边至少走一遍,可以走多遍,只要遍历完后路程最短就是该问题的解。

邮递员负责的街区如下图所示,长度单位是百米,邮局位于 a 处。试设计邮递员的最短投递路线:

在这里插入图片描述
解:如果图中有欧拉回路,显然欧拉回路就是最短的投递路线。
图中有 4 个奇数度顶点b, c, e, j,不存在欧拉回路,因此邮递员必须重复走某些边
为此,只需把 4 个奇数度顶点分成两对,在每对顶点之间沿着某些路重复走一遍,要求重复走的路线最短,以使投递的路线最短。这样就得到了解:

在这里插入图片描述

二、哈密尔顿图

和欧拉图类似,人们想要寻找一个能同时遍历图中所有结点,且只遍历一次的回路。如果该回路存在,那么就是一个哈密尔顿图。看起来很简单,其实哈密尔顿图比欧拉图复杂得多,完全不是一个等级。

1859年英国数学家威廉-汉密尔顿图爵士发明了一个小玩具,这个小玩具是一个木刻的正十二面体,每面系正五角形,共有20个顶点,每个顶点标有世界上一个重要城市。他提出一个问题:要求沿正十二面体的边寻找一条路通过20个城市,而每个城市只通过一次,最后返回原地

事实上,任何一个凸多面体都能“平铺”在平面上,并形成一个“平面图”。

汉密尔顿问题既应用广泛又具有实际价值。

若给无向图的每一条边带上不同的权重,问题又转化为在多条路线中寻找最优路线使得既能实现遍游,又代价最小的最优化问题

结果不唯一:
在这里插入图片描述
严格的定义:给定图G,若有一条路通过 G 中每个顶点恰好一次,则这样的路称为汉密尔顿路; 若有一个圈,通过 G 个每个顶点恰好一次,这样的圈称为汉密尔顿回路(或汉密尔顿圈)。 具有汉密尔顿路的图称为半汉密尔顿图。具有汉密尔顿回路的图称为汉密尔顿图

1、哈密尔图的判定

但是到目前为止还找不到一个图为汉密尔顿图的充要条件,寻找该充要条件仍是图论中尚未解决的主要问题之一。下面先给出一个简单而有用的必要条件:
定理一:设图G=〈V ,E〉是汉密尔顿图, 则对于V 的每个非空子集 S, 均有 W(G-S )≤|S| 。

这个定理是在说,对于哈密尔顿图 G,如果删去结点集合 S,那么形成的子图的个数(连通分支)一定少于删去的点集数目。

推论 设图G=〈V ,E〉是半哈密顿图, 则对于V 的每个非空子集 S,均有 P(G-S )≤|S|+1。

比如:
在这里插入图片描述
若取S={v1, v4},则G-S3个连通分支故,该图不是哈密顿图。

因为这是一个必要条件,即 P->Q,那么我们是能通过非 Q ->非 P,来证明一个图不是哈密尔顿图,即只能用来证否。因此如果一个图满足 Q,那么它什么都不能证明。

比如彼得森图:任意删除 1 个顶点或者 2 个顶点都连通,任意删除 3 个顶点最多产生两个连通分支。可以进行实验,彼得森图总能满足:W(G-S )≤|S|。

在这里插入图片描述
该定理不能证明彼得森图是哈密尔顿图,实际上彼得森图不是哈密尔顿图。

2、哈密尔顿图的充分条件

定理:设 G=〈V ,E〉是有 n 个结点的简单图,

  • (1) 如果任两结点u,v∈V, 均有deg(u)+deg(v)≥ n-1,则在G中存在一条哈密尔顿路;
  • (2) 如果对任两结点u,v∈V, 均有deg(u)+deg(v)≥ n,则G是哈密尔顿图。

这些是充分条件,即 P->Q,但是非P 什么都推不出来。

例1: 某地有5个风景点。若每个景点均有两条道路与其他景点相通,问是否可经过每个景点恰好一次而游完这5处?

解 将景点作为结点,道路作为边,则得到一个有5个结点的无向图。
由题意,对每个结点vi,有deg(vi)=2(i∈N5)。
则对任两点vi,vj(i,j∈N5)均有
deg(vi)+deg(vj)=2+2=4=5-1
可知此图一定有一条汉密尔顿路,本题有解。

例 2:考虑在七天内安排七门课程的考试,使得同一位老师所任的两门课程的考试不排在接连的两天中,试证明如果没有老师担任多于四门课程,则符合上述要求的考试安排总是可能的。

如果一个老师担任了四门课,那么显然可以满足要求;但是如果一个老师担任了 5 门课以及以上的课程,那么7 天中至少有两门课相邻,不符合要求。那么怎么用图论来解决呢?

假设 A 老师担任了四门课,每个顶点的度数至少是3,任意两个顶点的度数至少是6,故存在哈密顿路:
在这里插入图片描述
假设 A 老师担任了五门课,每个顶点的度数至少是2,任意两个顶点的度数至少是4,4 < 6,故不存在哈密顿路:
在这里插入图片描述

例3:货郎担问题

作为汉密尔顿回路的自然推广是著名的货郎担问题。问题是这样叙述的:设有一个货郎,从他所在的城镇出发去n-1个城镇。要求经过每个城镇恰好一次,然后返回原地,问他的旅行路线怎样安排才最经济?从图论的观点来看,该问题就是:在一个带权完全图中找一条权最小的汉密尔顿回路

解答:

根据上面的充分性定理,完全图一定是一个哈密尔顿图。
因此步骤如下:
(1)由任意选择的结点开始,找与该点最靠近(即权最小)的点, 形成有一条边的初始路径。
(2)设x表示最新加到这条路上的结点,从不在路上的所有结点中选一个与x最靠近的结点, 把连接x与这一结点的边加到这条路上。重复这一步,直到G中所有结点包含在路上。
(3)将连接起始点与最后加入的结点之间的边加到这条路上,就得到一个圈,即为问题的近似解。
遗憾的是,这个方法得到的并不是最小回路,因为贪心法在这个问题中并不能得到最值。

以上就是哈密尔顿图的一些讨论。

三、二分图

二分图的概念很简单,本质上来说,这就是在研究图与图之间的关系。

1、二分图的判定

定理: 一个无向图 G 是二分图,当且仅当 G 中所有回路的长度均为偶数。这是一个充要条件,因此判断起来就很简单。

2、匹配问题

定义: 无向图 G=<V,E> ,M 为 E 的子集。若 M 中任意两条边都不相邻,则称 M 为 E 中的匹配。若 M 中再添加任意一条边就不是 G 中的匹配了,则称 M 为极大匹配。边数最多的匹配称为最大匹配最大匹配中边的条数称为 G 的匹配数。其中,M 中的点就是饱和点,若 G 中每个结点都是M饱和点,则称 M 为完美匹配

鉴于此,有以下结论:

  • (1)极大匹配不是任何其它匹配的子集。
  • (2)一个图的极大匹配可能是不唯一的。
  • (3)一个图的最大匹配可能是不唯一的。
  • (4)每个最大匹配都是极大匹配,反之不真。
  • (5)在完美匹配中,图 中的每个结点都关联匹配中的一条边。
  • (6)如果图 存在完美匹配,则图 的匹配数为图 的阶数的一半,且图 为偶数阶。
  • (7)每一个完美匹配都是最大匹配,反之不真。

3、完备匹配

定义:设 G = < V 1 , V 2 , E > G=<V_1,V_2,E> G=<V1,V2,E> 是一个二分图,|V1| ≤ \le |V2|,M为 G 的一个最大匹配,若|M| = |V1|,则M 为G 中V1 到V2 的完备匹配。如果|V2| = |V1|,那么就是完备匹配

一个充要条件(相异性条件): G = < V 1 , V 2 , E > G=<V_1,V_2,E> G=<V1,V2,E> 是一个二分图,|V1| ≤ \le |V2|, G G G中存在 V 1 V_1 V1 V 2 V_2 V2 的完备匹配当且仅当 V 1 V_1 V1 中任何k个结点至少邻接 V 2 V_2 V2中的k个结点。

一个充分条件:设二分图 G = < V 1 , V 2 , E > G=<V_1,V_2,E> G=<V1,V2,E> ,如果存在 t > 0 t>0 t>0,使得:

  • (1) 中每个结点至少关联 条边;
  • (2) 中每个结点至多关联 条边。

G G G中存在 V 1 V_1 V1 V 2 V_2 V2的完备匹配。

例1:

某学校有3个课外小组:物理组、化学组、生物组。有张、王、李、赵、陈5名同学。问在以下3种情况下能否选出3名不兼任的组长?
已知: 张、王为物理组成员,张、李、赵为化学组成员,李、赵、陈为生物组成员;

解答:

V 1 , V 2 , V 3 , V 4 , V 5 V_1,V_2,V_3,V_4,V_5 V1V2V3V4V5分别表示张、王、李、赵、陈5名同学。 U 1 , U 2 , U 3 U_1,U_2,U_3 U1U2U3 分别表示物理组、化学组、生物组。
这个问题就可以转化为,二分图中 G < V , U , E > G<V,U,E> G<VUE> 是否存在一个 U到 V 的完备匹配。
在这里插入图片描述
答案是显然。

四、平面图

平面图是一种很特殊的图,并且很具有应用的价值,比如设计单层电路板的时候,为了减少感抗、电感等,就使得电器原件之间的走线成为一个平面图。

定义: 设图 G =〈 V , E 〉 G=〈V ,E〉 G=〈V,E是一个无向图,如果能把图 G 的所有结点和边画在平面上,且使得任何两条边除了端点外没有其它的交点,就称图G是一个平面图,否则称图G为非平面图

以下两个图为最简单的非平面图: K 3 , 3 K_3,_3 K3,3

K 5 K_5 K5:
在这里插入图片描述
前者是变数最少的非平面图,后者是点数最少的非平面图,这两个图也是最基本的非平面图。称为Kuratowski图

定义:设G是一个平面图,由G的边所包围的区域(其内部不包含图的结点,也不包含图的边)称为G的一个(Facet),包围一个面 r r r的所有边所组成的回路称面 r r r的边界,边界的长度称为该面的次数,记为 d e g ( r ) deg(r) deg(r)。如果面的面积有限,则称该面为有限面,否则称为无限面。如果两个面的边界至少有一条公共边,则称这两个面是相邻的,否则是不相邻的。

定理:一个有限平面图G=〈V,E〉,面的次数之和等于其边数的两倍

定理(Euler定理):设图G是连通平面图,有v个结点e条边和r个面,则Euler公式 v − e + r = 2 v-e+r=2 ve+r=2 成立。

欧拉公式是凸多面体的公式,为什么能用在这里?

前面说了,任何一个凸多面体都能铺在平面上,并且在平面上形成的是一个平面图,而且,任何一个平面图,只要满足了一些基本条件都一定能映射出一个凸多面体。不满足基本条件的平面图,人们发现它们恰好也是满足欧拉公式的,因此欧拉公式就能用在平面图上了~

关于映射:

对于任何一个平面图(Planar Graph),并不一定能够映射出一个凸多面体(Convex Polyhedron)。

虽然平面图可以在平面上进行绘制,其中顶点由点表示,边由线段表示,并且没有边交叉,但并非所有的平面图都能对应到一个凸多面体

为了能够映射出一个凸多面体,平面图需要满足一些特定的性质,即必须是一个平面图的特例,称为平面图的平面嵌入(Planar Embedding)。

一个平面嵌入要求满足以下条件:

  • 图的边不能交叉。
  • 每个面都是一个多边形,包括外部的无限面。
  • 每个面的边界由一条简单封闭曲线组成。
  • 每个面的边界经过的顶点和边都是连续的,没有间断。

在平面图的平面嵌入满足上述条件的情况下,可以使用多种算法将平面图转换为凸多面体,例如使用凸包算法(Convex Hull Algorithm)或平面图嵌入算法(Planar Embedding Algorithm)。

定理:Euler公式的推广形式:对于任何具有p个连通分支的平面图,有 v − e + r = p + 1 v-e+r=p+1 ve+r=p+1

定理:设图 G G G是有 v v v 个结点 e e e 条边的连通简单平面图,若 v ≥ 3 v≥3 v3,则 e ≤ 3 v − 6 e≤3v-6 e3v6

在这里插入图片描述

注意:

  • 以上只是连通平面图的必要条件,即 P − > Q P->Q P>Q,只能用来证否
  • 当结点数和边数较多时,应用Euler公式等判别一个图是非平面图会相当困难。

因此,1930年,Kuratowski给出了判断一个图为平面图的充要条件,这极大地推动了平面图的研究。

定义:给定两图G1和G2,如果它们是同构的,或者通过反复插入或除去度数为2的结点,使G1和G2同构,则称G1和G2是在2度结点内同构的(或称G1和G2同胚)。

例如以下两组图都是同胚的:

在这里插入图片描述

充要条件:一个图是平面图的充要条件是它不包含与 K 3 , 3 K_3,_3 K3,3 K 5 K_5 K5同胚的子图。

一般地,判定图G是否为平面图的步骤如下:

  • ①若 e < 9 或 v < 5 e<9或v<5 e<9v<5,则G是平面图;如果 e > 3 v − 6 e>3v-6 e>3v6,则G是非平面图;
  • ②如果 G 是不连通的,则分别检测每个分图;当且仅当每个分图都是平面图时,G是平面图;
  • ③如果G中存在割点,可把图G的割点删除,构成若干个不含割点的连通子图。显然,G是平面图当且仅当每个连通子图是平面图;
  • ④移去自回路;
  • ⑤否则利用Kuratowski定理检测,或尝试看能否画一个相应的边不相交的图解;
  • ⑥移去平行边。
  • 反复运用⑤ 和⑥,并结合①进行检测。

以上就是关于几种常见特殊的图的讨论,全文完,感谢阅读。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/657604.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

LVM管理linux

1. lvm的应用场景及其弊端 应用场景&#xff1a; 随着公司的发展&#xff0c;数据增长较快&#xff0c;最初规划的磁盘容量不够用了 弊端&#xff1a; 数据不是直接存放在硬盘上&#xff0c;而是在硬盘的上面又虚拟出来一层逻辑卷存放数据&#xff0c;故而增加了磁盘数据恢复的…

Web3 将 MetaMask添加入谷歌浏览器 扩展程序中

Web3到现在理论这段是说的有点太多了 那么 我们先来看个东西 叫 MetaMask 这个在我们项目开发过程中需要使用 MetaMask是一个开源的以太坊的一个钱包 那么 钱包肯定就是用来管理数据资产的 MetaMask 是以一个浏览器插件形式存在的 它可以直接连接到以太坊的网络中来管理我们…

冒泡排序代码

时间复杂度O&#xff08;n&#xff09;

03_Linux设备树与设备树语法

目录 什么是设备树 DTS、DTB和DTC DTS语法 dtsi头文件 设备节点 标准属性 compatible属性 model属性 status属性 #address-cells和#size-cells属性 reg属性 ranges属性 name属性 device_type属性 根节点compatible属性 使用设备树之前设备匹配方法 使用设备树以…

K8S之 metrics-server 组件(十八)

首先下载&#xff1a;K8S之 metrics-server 组件 metrics-server 是一个集群范围内的资源数据集和工具&#xff0c;同样的&#xff0c;metrics-server 也只是显示数据&#xff0c;并不提供数据存储服务&#xff0c;主要关注的是资源度量 API 的实现&#xff0c;比如 CPU、…

重塑癌细胞嚣张形象!《自然》重磅论文显示,癌细胞不仅懒还很节俭

▎药明康德内容团队编辑 在我们的印象中&#xff0c;癌细胞都是身体内失去控制的猛兽&#xff0c;它们会疯狂地复制、转移&#xff0c;形成巨大的肿瘤。因此过去很长一段时间内我们都认为肿瘤是一个对资源极度贪婪的群体&#xff0c;比如一百年前&#xff0c;生理学家就发现癌…

vue2.6源码学习:数据变化监听原理之数据驱动视图(observer)

上次我们看vue2.6源码的时候&#xff0c;大概看了一下整体的项目结构目录。主要是里面的Observer和vdom这两个文件夹。 也是vue里面最核心的两个文件夹&#xff0c;今天我们继续来学习。 instance文件夹是用来做什么的 这个也是vue比较核心的一块&#xff0c;这个是与vuejs实例…

UVM中uvm_config_db机制背后的大功臣

1. 前言 本次讲一下UVM中的uvm_config_db&#xff0c;在UVM中提供了一个内部数据库&#xff0c;可以在其中存储给定名称下的值&#xff0c;之后可以由其它TB组件去检索。这样的数据库允许我们以不同的名称存储不同的配置设置&#xff0c;这些配置可以在需要时潜在地配置TB组件…

spring.session 随笔0 集成设计

0. 上个月划水时间关注的&#xff0c;最近断断续续的了解了一些 RUNOOB redis命令:APPEND 整合shiro实现分布式session同步(定制cacheManager) 我想想&#xff0c;还是照自己思绪发散的顺序开始描述这块的内容吧&#xff0c;可能侧重点有些奇怪。 由于工程使用的spring.boot.…

树莓派+Docker+cpolar(内网穿透)+Nignx

首先安装Raspberry Pi Imager&#xff0c;用于给SD卡安装系统镜像。 使用Raspberry Pi Imager&#xff08;树莓派镜像烧录器&#xff09;烧录镜像文件到SD中&#xff0c;操作步骤如下图所示&#xff1a; docker安装nginx提供web服务 获取最新版本的docker安装包&#xff1a; su…

linux上启动两个nginx实例

一台机器上启动两个nginx实例&#xff0c;主要是端口冲突问题&#xff0c;另外&#xff0c;如果一个是通过编译安装&#xff0c;另一个是拷贝的&#xff0c;那么还需要修改静态文件根路径。 这里&#xff0c;我第一个nginx是通过源码编译安装&#xff0c;安装目录是默认的/usr/…

live555交叉编译

下载live555最新源码&#xff1a;http://www.live555.com/liveMedia/public/live555-latest.tar.gz 如果是要下载具体的live555版本&#xff0c;比如2023.06.14发布的版本&#xff0c;则可以浏览器输入&#xff1a;http://www.live555.com/liveMedia/public/live.2023.06.14.t…

GPT 模型的工作原理 你知道吗?

动动发财的小手&#xff0c;点个赞吧&#xff01; Source[1] 简介 当我使用 GPT 模型编写我的前几行代码时是 2021 年&#xff0c;那一刻我意识到文本生成已经到了一个拐点。在此之前&#xff0c;我在研究生院从头开始编写语言模型&#xff0c;并且我有使用其他文本生成系统的经…

GPT-4满分通过MIT本科数学考试这套提示词火了

万万想不到啊&#xff0c;MIT数学考试&#xff0c;被GPT-4攻破了&#xff1f;&#xff01; 突然有人在最新论文工作中高调宣布&#xff1a; GPT-4在MIT的数学和EECS&#xff08;电气工程和计算机科学系&#xff09;本科学位考试中&#xff0c;表现出的能力完全满足毕业要求。…

图解左连接、右连接、内连接、全连接(小白入门)

目录 一、七种连接情况二、左连接具体例子&#xff1a;力扣数据库题目 175. 组合两个表答案1. 连接条件为&#xff1a;on Person.PersonId Address.personId2. 连接条件为&#xff1a;on Person.PersonId ! Address.personId 三、左连接不包含内连接四、右连接五、右连接不包含…

利用腾讯云函数隐藏C2服务器

1、简介 腾讯云函数&#xff0c;可以为企业和开发者提供无服务器执行环境&#xff0c;无需购买和管理服务器&#xff0c;只需要在腾讯云上使用平台支持的语言编写核心代码并设置代码运行的条件&#xff0c;即可在腾讯云基础设施上弹性 安全地运行代码。 C2服务器所有流量通过腾…

CSS入门(网络安全方向)——id与class

CSS (Cascading Style Sheets&#xff0c;层叠样式表&#xff09;&#xff0c;是一种用来为结构化文档&#xff08;如 HTML 文档或 XML 应用&#xff09;添加样式&#xff08;字体、间距和颜色等&#xff09;的计算机语言&#xff0c;CSS 文件扩展名为 .css。 通过使用 CSS 我…

Python电商数据分析系列-薪资预测

Python电商数据分析系列-薪资预测 学习目标&#xff1a; 快速掌握简单且常用的数据分析任务 自己实现预测简单预测任务 学习内容&#xff1a; 搭建 Java 开发环境掌握 Java 基本语法掌握条件语句掌握循环语句 学习对象 想快速入门的本科生转行人员想学习新技能&#xff0c…

【Python】遇到 from PIL import Image 报错怎么办?

嗨害大家好鸭&#xff01;我是小熊猫~ 很久之前有一个辛苦的小程序员 它在做验证码识别的的时候 遇上了一个小小的错误沙堆 经过它一点也不辛苦的努力&#xff0c;解决了它 于是它决定把这个宝贵的经历分享给大家~ 问题的出现&#xff1a; 前方出现红色波浪线 开始感到有一…

基于风险的测试

测试级别划分 测试级别的划分能对应解决软件开发的复杂性问题。将一个大规模复杂的系统分解&#xff0c;从小的模块开始&#xff08;单元测试&#xff09;&#xff0c;逐步放大到整个系统级别。 测试类型的设计和安排&#xff0c;将测试类型安排在最适合对应的测试级别中来识别…