📜  图形和图形模型

📅  最后修改于: 2021-01-08 06:10:23             🧑  作者: Mango


上一部分提出了用于推理,证明和解决问题的不同工具。在这一部分中,我们将研究构成许多现实问题的基础的离散结构。

我们将介绍的两个离散结构是图形和树。图是一组称为节点或顶点的点,它们由一组称为边的线互连。图学图论研究是数学,工程学和计算机科学领域中许多学科的重要组成部分。

什么是图?

定义-一个图形(表示为$ G =(V,E)$)由一组非空的顶点或节点V和一组边E组成。

示例-让我们考虑一下,一个图是$ G =(V,E)$其中$ V = \ lbrace a,b,c,d \ rbrace $和$ E = \ lbrace \ lbrace a,b \ rbrace,\ lbrace a,c \ rbrace,\ lbrace b,c \ rbrace,\ lbrace c,d \ rbrace \ rbrace $

图形

顶点度-图形G的顶点V度(用度(V)表示)是与顶点V入射的边数。

Vertex Degree Even / Odd
a 2 even
b 2 even
c 3 odd
d 1 odd

偶数和奇数顶点-如果顶点的度数为偶数,则该顶点称为偶数顶点,如果顶点的度数为奇数,则该顶点称为奇数顶点。

的度数-的度数是该图的最大顶点度。对于上面的图,图的度为3。

握手引理-在图形中,所有顶点的所有度的总和等于边数的两倍。

图的类型

有不同类型的图,我们将在下一节中学习。

空图

空图没有边。 $ n $个顶点的空图由$ N_n $表示

空图

简单图

如果图形是无向的并且不包含任何循环或多个边,则该图形称为简单图形/严格图形。

简单图

多图

如果在图中允许在同一组顶点之间有多个边,则称为多图。换句话说,它是具有至少一个环或多个边的图。

多图

有向图和无向图

如果边集由有序的顶点对构成,则图$ G =(V,E)$被称为有向图,如果边集由无序的顶点对构成,则图被称为无向图。

无向图有向图

连接图和断开图

如果图的任何两个顶点通过路径连接,则图是连接的。如果图的至少两个顶点未通过路径连接,则图断开连接。如果图G断开连接,则$ G $的每个最大连接子图都称为图$ G $的连接组件。

连接图未连接图

正则图

如果图的所有顶点具有相同的度数,则该图是规则的。在度为$ r $的规则图G中,$ G $的每个顶点的度为r。

常规图

完整图

如果每两个顶点对之间恰好有一条边连接,则该图称为完整图。具有n个顶点的完整图由$ K_n $表示

完整图

循环图

如果一个图由一个循环组成,则称为循环图。具有n个顶点的循环图由$ C_n $表示

循环图

二部图

如果图G的顶点集可以分为两个不相交的集合$ V_1 $和$ V_2 $,以使图中的每个边将$ V_1 $的顶点连接到$ V_2 $的顶点,并且G中没有连接$ V_1 $中的两个顶点或$ V_2 $中的两个顶点的边,则图$ G $被称为二部图。

二分图

完全二部图

完整的二部图是其中第一组中的每个顶点都与第二组中的每个单个顶点相连的二部图。完整的二部图用$ K_ {x,y} $表示,其中图$ G $在第一个集合中包含$ x $个顶点,在第二个集合中包含$ y $个顶点。

完全二部图

图的表示

表示图主要有两种方法-

  • 邻接矩阵
  • 邻接表

邻接矩阵

邻接矩阵$ A [V] [V] $是大小为$ V \ times V $的2D数组,其中$ V $是无向图中顶点的数量。如果在$ V_x $到$ V_y $之间存在边沿,则$ A [V_x] [V_y] = 1 $和$ A [V_y] [V_x] = 1 $的值,否则该值为零。对于有向图,如果在$ V_x $到$ V_y $之间存在边,则$ A [V_x] [V_y] = 1 $的值,否则该值为零。

无向图的邻接矩阵

让我们考虑以下无向图并构造邻接矩阵-

邻接无向

上面的无向图的邻接矩阵将是-

a

b

c

d

a

0

1

1

0

b

1

0

1

0

c

1

1

0

1

d

0

0

1

0

有向图的邻接矩阵

让我们考虑以下有向图并构造其邻接矩阵-

邻接指示

上面的有向图的邻接矩阵将是-

a

b

c

d

a

0

1

1

0

b

0

0

1

0

c

0

0

0

1

d

0

0

0

0

邻接表

在邻接列表中,链接列表的数组$(A [V])$用于表示具有顶点数量$ V $的图G。条目$ A [V_x] $表示与$ Vx-th $个顶点相邻的顶点的链接列表。无向图的邻接表如下图所示:

邻接表

平面图与非平面图

平面图-如果图形$ G $可以在没有任何边线交叉的平面上绘制,则称为平面图。如果我们在没有边缘相交的平面上绘制图形,则称为将图形嵌入平面。

平面图

非平面图-如果无法在没有图形边缘交叉的情况下在平面中绘制图形,则该图为非平面图。

非平面图

同构

如果两个图G和H包含以相同方式连接的相同数量的顶点,则它们称为同构图(用$ G \ cong H $表示)。

检查非同构比同构更容易。如果出现以下任何一种情况,则两个图是非同构的-

  • 连接的组件数量不同
  • 顶点集基数不同
  • 边缘设置基数不同
  • 学位序列不同

以下图形是同构的-

同构

同态

从图$ G $到图$ H $的同态是一个映射(可能不是双射映射)$ h:G \ rightarrow H $这样-($ x,y)\ E(G)\ rightarrow (h(x),h(y))\ in E(H)$。它将图$ G $的相邻顶点映射到图$ H $的相邻顶点。

同态的性质

  • 如果同构是双射映射,则同构是同构。

  • 同态总是保留图的边缘和连通性。

  • 同态的组成也是同态。

  • 找出另一个图是否存在同态图是一个NPcomplete问题。

欧拉图

如果存在包含图$ G $的每个边的闭合轨迹,则连通图$ G $称为欧拉图。欧拉路径是仅使用图形的每个边一次的路径。欧拉路径在不同的顶点处开始和结束。

欧拉电路是只使用图形的每个边一次的电路。欧拉电路始终在相同的顶点处开始和结束。且仅当$ G $的所有顶点均为偶数度时,连通图$ G $才是欧拉图,而当且仅当其边集可以分解为周期时,连通图$ G $才是欧拉图。

欧拉图

上图是一个欧拉图,表示为$“ a \:1 \:b \:2 \:c \:3 \:d \:4 \:e \:5 \:c \:6 \:f \:7 \:g” $覆盖图形的所有边缘。

非欧拉图

哈密顿图

如果存在一个包含$ G $每个顶点的循环,且该循环称为哈密顿循环,则连通图$ G $称为哈密顿图。图$ G $中的哈密顿步态是一次仅穿过每个顶点一次的步态。

如果$ G $是具有n个顶点的简单图形,其中$ n \ geq 3 $如果每个顶点$ v $ $ deg(v)\ geq \ frac {n} {2} $,则图形$ G $为哈密顿图。这称为狄拉克定理

如果$ G $是具有$ n $个顶点的简单图,则$ n \ geq 2 $如果$ deg(x)+ deg(y)\ geq n $对于每对非相邻顶点x和y,则图$ G $是哈密顿图。这称为Ore定理

哈密顿图非哈密顿图