离散数学_十章-图 ( 4 ):图的表示和图的同构

news/2024/11/24 7:30:37/

📷10.4 图的表示和图的同构

  • 1. 图的表示
    • 1.1 邻接表
      • 1.1.1 简单图的邻接表
      • 1.1.2 有向图的邻接表
    • 1.2 邻接矩阵
    • ❗在邻接表和邻接矩阵之间取舍
    • 1.3 关联矩阵
  • 2. 图同构
  • 3. ⚡判断两个简单图是否同构

图的表示方式有很多种,选择最方便的表示有助于对图的处理~

有时,两个图具有完全相同的形式,从某种意义上就是两个图的顶点之间存在着一 一对应,这个对应保持边的对应关系。在这种情形下,就说这两个图是同构的。

1. 图的表示

1.1 邻接表

表示不带多重边的图的一种方式是列出这个图的所有边。

另一种表示不带多重边的图的方式是邻接表,它给出了与图中每个顶点相邻的顶点。

注意,终点的个数 = 起点的出度数

1.1.1 简单图的邻接表

在这里插入图片描述

1.1.2 有向图的邻接表

在这里插入图片描述

1.2 邻接矩阵

假设图 G = (V, E) 是一个简单图,其中 |V| = n( 顶点集元素的个数(顶点的个数)为n ) 假设把G 的顶点任意排列成 v1, v2, … , vn。G 的邻接矩阵 A(或AG) 是一个n × n 的 0-1矩阵,它满足这样的性质:当 vi 和 vj 相邻时第( i, j )项是1,否则为0

若邻接矩阵是AG = [ aij ],则在这里插入图片描述
注意!
邻接矩阵外面是方括号“ [ ] ”,不可写成“ | | ”(这样就是行列式了)

例题1:
用邻接矩阵表示图3所示的图。
在这里插入图片描述
🔴解:
把顶点排列成a, b, c, d,表示这个图的矩阵是:
在这里插入图片描述
例题2:

画出具有顶点顺序a,b,c,d的邻接矩阵的图
在这里插入图片描述
🔴解:
在这里插入图片描述
无向图 ⇒ 邻接矩阵对称
邻接矩阵对称 ⇏ 无向图

无向图的邻接矩阵一定是对称的,而有向图的邻接矩阵不一定对称

❗在邻接表和邻接矩阵之间取舍

当一个简单图包含的边相对较少,即该图是一个稀疏图时,通常邻接表比邻接矩阵更适合表示它

需要注意的是,稀疏图的邻接矩阵是稀疏矩阵,即矩阵中只有少量元素不为0。(有专门的技术表示和处理稀疏矩阵

👉稀疏矩阵可以用邻接表,稠密矩阵可以用邻接矩阵表示

1.3 关联矩阵

表示图的另一种常用方式是用关联矩阵

设G = (V,E)是无向图。设 v1, v2, … , vn 是的图G的顶点,而e1,e2,…,em 是该图的边。相对于V和E的这个顺序的关联矩阵是n×m的矩阵M=[mij],

其中在这里插入图片描述
任意一列有且仅有两个1(简单图)
每行" 1 "的个数 = 该行对应点的度

例题1:
用关联矩阵表示图6所示的图
在这里插入图片描述

🔴解:

在这里插入图片描述

例题2:
用关联矩阵表示图7所示的伪图:
在这里插入图片描述
🔴解:

在这里插入图片描述

2. 图同构

图的同构 类似于 “相似”

定义:简单图G1 = (V1, E1) 和 G2 = (V2, E2) 是简单图,若存在一对一的映上的从 V1到 V2的函数 f ,且 f 具有这样的性质:对 V1 中所有的a和b来说, a和b在 G1 相邻当且仅当 f(a) 和 f (b) 在 G2 中相邻,则称 G1 和 G2 是同构的。 这样的函数 f 称为同构

两个不同构的简单图称为非同构的

当两个简单图同构时,两个图的顶点之间具有保持相邻关系的一 一对应。所以,图的同构是一个等价关系。

在这里插入图片描述

在这里插入图片描述

3. ⚡判断两个简单图是否同构

证明两个图不同构并不困难。如果能找到某个属性,两个图中只有一个图具有这个属性,但该属性应该在同构时保持,就可以说这两个图不同构。

这种在图的同构中保持的属性称为图形不变量。比如同构的简单图必须有相同顶点数、相同边数,对应顶点的度相同,邻接矩阵相同。

① 顶点个数、对应顶点的度、边数相等

② 回路中顶点个数相等

③ 图G中顶点w、v相邻 iff 在图H中 f(w) 、f(v)相邻

例题1:
判定图 G 和 H 是否同构。

在这里插入图片描述

🔴解:

G的邻接矩阵:
在这里插入图片描述
H的邻接矩阵:

在这里插入图片描述
因为AG=AH,所以 f 是同构的 → G 和 H 是同构的

!!!( 考试时,越长得像的越不是同构 )


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

相关文章

C++中变量、指针、引用、函数和类的内存机制

变量:变量在内存中是一个存储器单元,它能够保存数据,并且可以通过变量名来访问。变量的内存空间大小与其数据类型有关。 指针:指针实际上是一个变量,它存储的是内存中另一个变量的地址。指针在内存中本身也有存储器单…

这篇文章把MOS管的基础知识讲透了

MOS管(Metal-Oxide-Semiconductor field-effect transistor)是一种常见的半导体器件,它在数字电路、模拟电路、功率电子等领域都有广泛的应用。本文将从MOS管的基本结构、工作原理、参数特性等方面讲解MOS管的基础知识。 一、MOS管的基本结构…

Python3数据分析与挖掘建模(6)离散分布分析示例

1. 离散分布分析示例 相关库: pandas详细用法 numpy详细用法 1.1 引入算法库 # 引入 pandas库 import pandas as pd # 引入 numpy库 import numpy as np# 读取数据 dfpd.read_csv("data/HR.csv")# 查看数据 df Out[6]: satisfaction_level last_eval…

Mybaits Oracle CLob类型处理

问题描述: 使用的是Oracle 数据库, 表中有一个字段类型为clob类型 问题 : 当使用mybatis查询返回map类型时, 该字段的值为clob对象,而不是数据库里面的字符串 解决方案: 1.手动进行转换,把clob类型转换为字符串(这种比较简单) if(map.get("MAIN_BIZ") instanceo…

代码随想录补打卡 647 回文子串 516 最长回文子序列

647 回文子串 代码如下 func countSubstrings(s string) int { //dp[i][j]数组的含义是i-j这个范围的元素是否为回文串 dp : make([][]bool,len(s)) for i,_ : range dp { dp[i] make([]bool,len(s)) } res : 0 for i : len(s)-1 ; i > 0 ; i-- { 因为dp[i…

点成分享丨ELISA实验的类型及原理

ELISA实验,即酶联免疫吸附测定(Enzyme-Linked Immunosorbent Assay)实验,是免疫学中的经典实验之一,它是一种利用抗原抗体特异性结合进行免疫反应的定性和定量检测方法,目前已被广泛应用于生物学、医学、植…

面试题第一期

1.如何让3个元素的四个间距平分盒子 justify-content: space-evenly; space-between:两端对齐,项目之间的间隔是相等的(n-1个间隔) space-evenly:均匀排列每个元素,每个元素之间的间隔相等(n+1) 第二种: margin-left:calc((100%-4*元素宽度)/4) 2.promise.all 特性是一个…

【HarmonyOS】hap包在多台设备中安装和HarmonyOS应用含多个module安装问题

在HarmonyOS应用开发过程中,大家会遇到一些hap安装问题,如多模块hap包存在调用如何在模拟器上统一运行、或者同一hap包如何在多台设备运行问题等,这里汇总一些hap安装问题解答,供大家参考。 【问题1】我的HarmonyOS工程创建了多个…