一、图的基本概念

文章目录

  • 1、无向图和有向图
  • 2、图的表示
    • 2.1 图解表示
    • 2.2 图的邻接矩阵表示
    • 2.2 图的邻接表表示
  • 3、子图
  • 4、度
  • 5、正则图
  • 6、同构
  • 7、路,圈和连通图
    • 7.1 连通图的判定条件
    • 7.2 圈的判定条件
  • 8、补图和双图
    • 8.1 补图
    • 8.2 双图
  • 9、欧拉图
  • 10、哈密顿图
    • 10.1 哈密顿图判定的充分条件
  • THE END

1、无向图和有向图

\qquad 定义1. 设 V V V为有穷集合,令 P 2 ( V ) = { { u , v } ∣ u , v ∈ V } P_2(V)=\{\{u,v\}|u,v \in V \} P2(V)={{u,v}u,vV}表示 V V V中任意两个元素的二元组集合,令 E ⊆ P 2 ( V ) E\subseteq P_2(V) EP2(V)表示 P 2 ( V ) P_2(V) P2(V)中的任意子集,则称二元组( V , E V, E V,E)为无向图。
\qquad 记作 G = ( V , E ) G=(V, E) G=(V,E),其中 V V V表示定点集合, E E E表示边集合。 ∀ { u , v } ∈ E \forall \{u,v\} \in E {u,v}E,称 u u u v v v邻接,边 { u , v } \{u,v\} {u,v}和顶点 u u u和顶点 v v v相关联。
\qquad 两个图 G = ( V , E ) G=(V,E) G=(V,E) H = ( U , F ) H=(U,F) H=(U,F)是相等的,当且仅当满足 V = U , E = F V=U, E=F V=U,E=F
\qquad ∀ G = ( V , E ) , ∣ V ∣ = p , ∣ E ∣ = q \forall G=(V,E), |V| = p, |E| = q G=(V,E)V=p,E=q,则称 G G G ( p , q ) (p,q) (p,q)图。 特殊地,称 ( 1 , 0 ) (1,0) (1,0)为平凡图, ( p , 0 ) (p,0) (p,0)为零图。
\qquad 定义2. 设 V V V为有穷集合,令 A ⊆ V × V \ { ( v , v ) ∣ v ∈ V } A \subseteq V×V \backslash \{ (v,v)|v\in V\} AV×V\{(v,v)vV}表示有向边集合,则称 ( V , A ) (V, A) (V,A)为有向图,记作 D = ( V , A ) D=(V,A) D=(V,A)
\qquad 需要注意,有向图和无向图中, E E E A A A均是反自反的。

2、图的表示

2.1 图解表示

\qquad 给定顶点集合和边集合之后,可以直观地将图进行可视化绘制,这种表示方法称为图解表示法。

2.2 图的邻接矩阵表示

\qquad 将图的所有顶点分别构成一个二维矩阵的行列,将顶点之间的边关系表示在构成的矩阵之中,则称这个二维矩阵为图的邻接矩阵。

2.2 图的邻接表表示

\qquad 上述使用图的邻接矩阵表示图的时候,当图时一个稀疏图时(图中的边数量较少),在图的存储时会浪费大量的存储空间,所以需要将图进行压缩存储。一种简单的方式就是利用图的邻接表来存储图。邻接表中表的头结点表示图中每一个顶点,邻接表中的每一个节点中有值域和指针域,值域存储图中节点的编号,指针域存储一个指针,指向和当前结点相邻接的其他结点。

3、子图

\qquad 给定一个图 G = ( V , E ) G=(V, E) G=(V,E),称 G 1 = ( V 1 , E 1 ) G_1=(V_1, E_1) G1=(V1,E1)为图 G G G的子图,当且仅当 V 1 ∈ V V_1\in V V1V并且 E 1 ∈ E E_1\in E E1E
\qquad G G G的生成子图指的是包含 G G G的所有顶点的子图 G ′ G' G的,但是 G ′ G' G中不包含 G G G中所有的边。

4、度

\qquad G = ( V , E ) G=(V, E) G=(V,E),对于 ∀ v ∈ V \forall v \in V vV,与 v v v相关联的边的条数称为顶点 v v v的度,记作 d e g v deg\ v deg v

  • 定理 1. (握手定理) 给定一个图 G = ( V , E ) G=(V, E) G=(V,E)是一个 ( p , q ) (p,q) (p,q)图,则有 ∑ v ∈ V d e g v = 2 ∗ q \sum_{v \in V}deg \ v = 2*q vVdeg v=2q,即 G G G中顶点的度数是边点数量的两倍。
  • 推论 1. 握过奇数次手的人有偶数个。
    \qquad 推论 1. 简单说明,因为有 定理 1. 成立,所以图中所有顶点的度数总和为偶数;将图中的顶点按照度数多少分为奇数点和偶数点,因为偶数乘以任何数都为偶数,说以奇数点的个数必定为偶数个。
    \qquad 记图 G G G的最小度数节点为 δ ( G ) = m i n v ∈ V { d e g v } \delta(G) = min_{v \in V}\{deg \ v\} δ(G)=minvV{deg v},记图 G G G的最大度数节点为 Δ ( G ) = m a x v ∈ V { d e g v } \Delta(G) = max_{v \in V}\{deg \ v\} Δ(G)=maxvV{deg v}

5、正则图

\qquad 给定一个 ( p , q ) (p, q) (p,q) G = ( V , E ) G=(V, E) G=(V,E),如果 ∀ v ∈ V \forall v \in V vV,均满足 d e g v = r deg \ v = r deg v=r,则称 G G G r r r-正则图。若 G G G中所有顶点的度数均为 p − 1 p-1 p1,则称 G G G为完全图,即 p − 1 p-1 p1-正则图即为完全图,记为 K p K_p Kp

6、同构

\qquad G = ( V , E ) G=(V, E) G=(V,E) H = ( U , F ) H=(U, F) H=(U,F),令 ∣ V ∣ = ∣ U ∣ |V|=|U| V=U;如果 ∃ ϕ : V → U \exist \phi: V →U ϕ:VU ϕ \phi ϕ是一个双射,满足 ( v 1 , v 2 ) ∈ E ⇆ ϕ ( v 1 ) ϕ ( v 2 ) ∈ F (v_1, v_2) \in E \leftrightarrows \phi(v_1)\phi(v_2) \in F (v1,v2)Eϕ(v1)ϕ(v2)F,则称 G G G H H H是同构的,记作 G ≅ H G \cong H GH

7、路,圈和连通图

\qquad 通道: G = ( V , E ) G=(V, E) G=(V,E) G G G的顶点和边的交错序列 v 0 , x 0 , v 1 , x 1 , . . . , x n , v n v_0, x_0, v_1, x_1, ..., x_n, v_n v0,x0,v1,x1,...,xn,vn 称为 G G G的一条通道,通道的程度为通道中边的数量,若 v 0 = v n v_0 = v_n v0=vn,则称这个通道为闭通道。
\qquad 迹: G G G 的一条(闭)通道如果没有重复的边,则称其为一条(闭)迹。
\qquad 路: G G G 的没有重复顶点的(闭)通道,称为(闭)路,闭路也称为圈。
\qquad 连通图: G = ( V , E ) , ∀ u , v ∈ V G=(V, E),\forall u,v \in V G=(V,E)u,vV,如果 u u u v v v之间有路,则称图 G G G连通。

7.1 连通图的判定条件

\qquad (充分条件) 定理 1. G = ( V , E ) G=(V, E) G=(V,E)是一个 ( p , q ) (p,q) (p,q)图, ∀ u , v ∈ V \forall u,v \in V u,vV, 如果 ( u , v ) ∉ E (u,v) \notin E (u,v)/E,且 d e g u + d e g v ≥ p − 1 deg \ u + deg \ v \geq p-1 deg u+deg vp1,则称 G G G是连通的。
\qquad 图的极大连通子图:在一个非联通图中,任意一个连通的子图称为极大连通子图。之所以称为“极大”是因为连通子图中任意再多加一个点,则子图就变得不连通。
\qquad 推论. G = ( V , E ) G=(V, E) G=(V,E)是一个 ( p , q ) (p,q) (p,q)图,若 ∀ v ∈ V \forall v \in V vV d e g v ≥ ⌈ p 2 ⌉ deg\ v \geq \lceil \frac{p}{2} \rceil deg v2p,则 G G G是连通的。

7.2 圈的判定条件

\qquad G = ( V , E ) G=(V, E) G=(V,E)图, ∀ v ∈ V \forall v \in V vV, 如果 G G G v v v顶点的度为偶数,则 G G G中必定有圈存在。同时有:若 δ ( G ) ≥ m ≥ 2 \delta(G) \geq m \geq 2 δ(G)m2, 则有长度至少为 m + 1 m+1 m+1的圈存在。(可以使用最长路方法进行证明)。
\qquad G = ( V , E ) G=(V, E) G=(V,E)图,若 ∀ u , v ∈ V \forall u,v \in V u,vV之间有两条不同的路,则 G G G中有圈存在。

8、补图和双图

8.1 补图

\qquad 定义:设 G = ( V , E ) G=(V, E) G=(V,E), 则 G G G的补图 G c = ( V , E c ) G^c = (V, E^c) Gc=(V,Ec),其中 E c = P 2 ( V ) / E E^c = P_2(V) /\ E Ec=P2(V)/ E。若 G G G H H H同构,则 G c G^c Gc H c H^c Hc也同构,若 G G G G c G^c Gc同构,则称, G G G为自同构。
\qquad 利用补图的定义,可以方便地证明在6个顶点的图 G G G中,或者图 G G G中有三角形存在,或者 G c G^c Gc中有三角形存在。

8.2 双图

\qquad 定义:设 G = ( V , E ) G=(V, E) G=(V,E),若存在一个 V V V的二划分 { V 1 , V 2 } \{V_1, V_2 \} {V1,V2},使得 ∀ u v ∈ E , u ∈ V 1 , v ∈ V 2 \forall uv \in E, u \in V_1, v \in V_2 uvE,uV1,vV2或者 u ∈ V 2 , v ∈ V 1 u \in V_2, v \in V_1 uV2,vV1,则称 G G G为双图。
\qquad 定理 1. 设 G = ( V , E ) G=(V, E) G=(V,E)是一个无向图,则 G G G是双图的充分必要条件为: G G G中圈的长度为偶数。
\qquad 图兰定理. (在没有三角形的图中,完全双图的边数最多). 设 G = ( V , E ) G=(V, E) G=(V,E) ( p , q ) (p,q) (p,q)图,如果 G G G中没有三角形,则 q ≤ ⌈ p 2 4 ⌉ q \leq \lceil \frac{p^2}{4} \rceil q4p2

9、欧拉图

\qquad 定义图 G = ( V , E ) G=(V,E) G=(V,E),包含 G G G中所有顶点和所有边的(闭)迹称为欧拉(闭)迹
\qquad 包含欧拉(闭)迹的图称为欧拉图
\qquad 欧拉定理 G G G是欧拉图,当且仅当 G G G是连通的,且 G G G中每一个顶点的度为偶数。
\qquad 定理2:图 G G G中有一条欧拉开迹,当且仅当 G G G中恰好有两个奇度顶点。
\qquad 定理3:假设 G G G中有2 n n n个奇度顶点,则 G G G中至少有 n n n条迹。

10、哈密顿图

\qquad 对于一个无向图 G = ( V , E ) G=(V,E) G=(V,E),如果 G G G中有生成圈(每一个节点只走一次的环路),则称 G G G为哈密顿图。
\qquad 可以使用染色法来判别一个图 G G G是否为哈密顿图,染色法是指在一个图中用两种不同的颜色进行染色,同一个边的两端的节点需要染成不同的颜色,图中所有节点均需要进行染色。若某个图 G G G可以进行染色,满足每一条边的两个端点均为不同的颜色,同时满足不同颜色的节点数量不同,则这个图 G G G一定不是哈密顿图。
\qquad 哈密顿图判定的必要条件:给定一个图 G = ( V , E ) G=(V,E) G=(V,E), 令 S ⊆ V S \subseteq V SV,令 ∣ G − S ∣ |G-S| GS表示从 G G G中去除 S S S之后图中剩余的枝的数量, ∣ S ∣ |S| S表示集合 S S S中的节点数量, 当且仅当 ∣ G − S ∣ ≤ ∣ S ∣ |G-S| \leq |S| GSS,则 G G G为一个哈密顿图。

10.1 哈密顿图判定的充分条件

\qquad 定理1(Dirac定理). 给定一个图 G = ( V , E ) G=(V,E) G=(V,E)是一个 ( p , q ) (p,q) (p,q)图, ∣ V ∣ = p > 3 |V|=p>3 V=p>3,如果 ∀ v ∈ V \forall v \in V vV d e g ( v ) ≥ p / 2 deg(v) \geq p/2 deg(v)p/2, 则 G G G为哈密顿图。
\qquad 定理2(Ore定理). 给定一个图 G = ( V , E ) G=(V,E) G=(V,E)是一个 ( p , q ) (p,q) (p,q)图, ∀ u , v ∈ V , ( u , v ) ∉ E \forall u,v \in V, (u,v) \notin E u,vV,(u,v)/E,若 d e g ( u ) + d e g ( v ) ≥ p deg(u)+deg(v) \geq p deg(u)+deg(v)p,则 G G G为哈密顿图。
\qquad 定理3. 给定一个图 G = ( V , E ) G=(V,E) G=(V,E)是一个 ( p , q ) (p,q) (p,q)图, ∀ u , v ∈ V , ( u , v ) ∉ E \forall u,v \in V, (u,v) \notin E u,vV,(u,v)/E,若 d e g ( u ) + d e g ( v ) ≥ p − 1 deg(u)+deg(v) \geq p-1 deg(u)+deg(v)p1,则 G G G中有一个哈密顿路。

THE END

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

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

相关文章

考研C语言复习进阶(2)

目录 1. 字符指针 2. 指针数组 3. 数组指针 3.1 数组指针的定义 3.2 &数组名VS数组名 4. 函数指针 5. 函数指针数组 6. 指向函数指针数组的指针 7. 回调函数 8.三步辗转法 9. 指针和数组笔试题解析 10. 指针笔试题 指针的主题,我们在初级阶段的《指…

工程师日常:六大茶类--乌龙茶

工程师日常:六大茶类–乌龙茶 乌龙茶的产区主要分布在福建、广东和台湾。 福建是乌龙茶的发源地和最大产区。所产乌龙茶按地域分为闽北乌龙、闽南乌龙。那么主要的代表性的产品分别为武夷岩茶和安溪铁观音。 广东作为乌龙茶另一重要产区,那么主要地域…

【小沐学C#】C#文件读写方式汇总

文章目录 1、简介2、相关类介绍3、代码示例3.1 FileStream(流文件)3.2 StreamReader / StreamWriter (文本文件)3.2.1 StreamReader3.2.2 StreamWriter 3.3 BinaryReader / BinaryWriter (二进制文件)3.3.1…

地理数据 vs. 3D数据

在表示我们周围的物理世界时,地理空间数据和 3D 建筑数据是两个最常见的选择。 他们在各个行业和项目中发挥着至关重要的作用。 从构建数字孪生到可视化城市景观和创建沉浸式应用程序。 尽管地理空间和 3D 建筑数据有相似之处,但它们不可互换。 虽然地…

国投用什么档案管理系统好

国投适合使用综合档案管理系统。这是因为国投通常规模较大,涉及的业务范围也比较广泛,包括行政管理、财务管理、人力资源管理等。 玖拓智能综合档案管理系统能够整合这些不同部门的档案管理需求,提供统一的档案管理平台,方便国投内…

蓝桥杯 填空 卡片

蓝桥杯 填空题 卡片 解题思路&#xff1a; 我们只需要消耗完卡片的个数即可。 代码示例&#xff1a; #include<bits/stdc.h> using namespace std; int a[10]; bool isEnd(){for(int i0;i<10;i){if(a[i]-1)return false;}return true; } bool getN(int x){while(x){i…

react简单实现获取dom元素

家人们 今天从老杨那里又学到新东西了&#xff01; 赶紧来看看吧 第一个方法&#xff1a; // 使用ref声明一个变量const tel useRef(null)const pass useRef(null) 再给input 内标签属性里面绑定 ref{变量名} <inputclassName{style.inputs}type"text"placeh…

SQLiteC/C++接口详细介绍之sqlite3类(五)

快速跳转文章列表&#xff1a;SQLite—系列文章目录 上一篇&#xff1a;SQLiteC/C接口详细介绍之sqlite3类&#xff08;四&#xff09; 下一篇&#xff1a;SQLiteC/C接口详细介绍之sqlite3类&#xff08;六&#xff09;&#xff08;未发表&#xff09; 14.sqlite3_busy_handle…

4、ETAS INCA标定系统基本操作

目录 一、标定开始操作 二、Working Page & Reference Page 三、Memory Pages存储页 一、标定开始操作 使用实验环境进行上传/下载标定数据,并观察和编辑标定数据 1. 上传/下载标定数据和代码 2. 添加测量变量 3. 添加标定变量 4. 配置测量变量 5. 建立存储触发

2024年云仓酒庄:店中店增项新模式,开启葡萄酒文化新篇章

2024云仓酒庄&#xff1a;店中店增项新模式&#xff0c;开启葡萄酒文化新篇章 在葡萄酒行业蓬勃发展的今天&#xff0c;云仓酒庄以其独特的经营模式和创新思维&#xff0c;在市场中脱颖而出。2024年&#xff0c;云仓酒庄继续深化其战略布局&#xff0c;不仅在多地开设酒庄实体…

docker实战(1)

docker搭建mysql 一,搭建docker环境 二,Docker安装mysql 1,查看mysql版本:docker search mysql 2,安装指定mysql版本或安装最新版本 docker pull mysql:5.8 或 docker pull mysql:latest 3,查看本地镜像中是否已安装好mysql镜像:docker images 4,运行容器启动my…

运维专题.Docker+Nginx服务器的SSL证书安装

运维专题 DockerNginx服务器的SSL证书安装 - 文章信息 - Author: 李俊才 (jcLee95) Visit me at CSDN: https://jclee95.blog.csdn.netMy WebSite&#xff1a;http://thispage.tech/Email: 291148484163.com. Shenzhen ChinaAddress of this article:https://blog.csdn.net/q…

【C++】—— 代理模式

目录 &#xff08;一&#xff09;什么是代理模式 &#xff08;二&#xff09;为什么使用代理模式 &#xff08;三&#xff09;代理模式实现步奏 &#xff08;四&#xff09;代码示例 &#xff08;五&#xff09;代理模式优缺点 &#xff08;一&#xff09;什么是代理模式 …

备考2025年AMC8竞赛:吃透2000-2024年600道真题(免费赠送真题)

我们继续来随机看五道AMC8的真题和解析&#xff0c;根据实践经验&#xff0c;对于想了解或者加AMC8美国数学竞赛的孩子来说&#xff0c;吃透AMC8历年真题是备考最科学、最有效的方法之一。 即使不参加AMC8竞赛&#xff0c;吃透了历年真题600道和背后的知识体系&#xff0c;那么…

用 C 语言模拟 Rust 的 Box 类型

在 Rust 中&#xff0c;Box<T> 是一个堆上分配的指针类型&#xff0c;用于在堆上存储值而不是栈上。在 C 语言中&#xff0c;没有直接对应于 Rust 的 Box<T> 的类型&#xff0c;但我们可以使用指针和动态内存分配来模拟这种行为。 下面是一个简单的示例&#xff0…

76. 最小覆盖子串-力扣hot100(C++)

76. 最小覆盖子串s 初始化和特判 //本题做题思想 //从头开始&#xff0c;首先找到一个包含所有字母的字串&#xff0c;将i移动到包含字串字母的位置&#xff0c;然后更新长度和字符串ans后&#xff0c; //i的位置加1&#xff0c;j的位置也加1&#xff0c;从新开始上面的流程&…

【Docker】常用命令 docker run

文章目录 什么是docker run命令基本用法常用选项-d&#xff1a;后台运行--name&#xff1a;指定容器名称-p&#xff1a;端口映射-v&#xff1a;挂载数据卷-e&#xff1a;设置环境变量 实际示例运行一个简单的Web服务器运行一个交互式Shell 总结 在Docker中&#xff0c; docker…

Python实战:Python控制结构:条件语句if...else...

在Python编程中&#xff0c;条件语句是用于根据特定条件执行不同代码路径的基本控制结构。本文将详细介绍Python中的条件语句if…else…&#xff0c;包括其语法、工作原理、使用场景和最佳实践。 1. 条件语句的基本语法 Python中的条件语句使用if、elif&#xff08;可选&…

仿真一些记录

1、Vivado生成库文件 在vivado的TCL窗口输入“compile_simlib -simulator modelsim -directory {E:\library\vivado}”&#xff0c;生成vivado的库文件。 2、Modelsim&#xff08;PE、DE、SE&#xff09;不同版本的区别 ModelSim PE (Personal Edition) is the industry-lead…

【MODBUS】Java实现的Modbus协议类库——推荐j2mod库

目录 一、j2mod 二、Modbus4J 三、Jamod 在Java中&#xff0c;有几个流行的库可以用于实现Modbus协议以读取设备数据。以下是一些常用的库&#xff1a; 一、j2mod 这是jamod Modbus库的一个分支&#xff0c;取自1.2.1版本&#xff0c;根据Apache 2许可证发布&#xff0c;包…