【复杂网络】网络科学导论学习笔记-第二章网络与图

网络与图

2.1 引言

图(Graph)提供了一种用抽象的点和线表示各种实际网络的统一方法,因而也成为目前研究复杂网络的一种共同的语言。这种抽象的一个主要好处在于它使得我们有可能透过现象看本质,通过对抽象的图的研究而得到具体的实际网络的拓扑性质(Topological property )。
网络拓扑性质:只与网络中有多少个节点以及哪些节点之间有边直接相连这些基本特征相关。

2.2 网络的图表示

2.2.1 图的定义

一个具体网络可抽象为一个由点集V和边集E组成的图G = (V,E)。顶点数记为N= | Vl ,边数记为M= (El。E中每条边都有V中一对点与之相对应。经过这样的抽象之后,今后我们会经常交替使用网络和图这两个词。网络中的点通常称为节点(Node)2,图中的点则常称为顶点( Vertex)。
在这里插入图片描述
图:必须有点(顶点),可以没有边。

如:
在这里插入图片描述
这个图是由V1,V2,V3,V4,V5五个顶点和七条边组成的。

2.2.2 图的类型

按照图中的边是否有向和是否有权,可以有四种类型的图
在这里插入图片描述

1.加权有向图

图中的边是有向的( Directed)和有权的(Weighted)。边是有向的是指存在一条从顶点i指向顶点j的边(i,j)并不一定意味着存在一条从顶点j指向顶点i的边(j,i)。对于有向边(i,j),顶点i称为始点,顶点j称为终点 。边是有权的是指网络中的每条边都赋有相应的权值,以表示相应的两个节点之间的联系的强度。

简单来说有向图就是每个顶点之间的边都是有方向的,可以从i顶点到j顶点的一条边,也可以是从j顶点到i顶点的一条边。

在这里插入图片描述

2.加权无向图

图中的边是无向的( Undirected)和有权的。所谓无向的是指任意点对(i,j)与(j,i)对应同一条边。顶点i和j也称为无向边(i,j)的两个端点(End-points)
加权无向图可以通过对加权有向图的对称化处理而得到:
(1)首先是把有向图转化为无向图。两种简单的方式是:
①无向图中节点A和节点B之间有一条无向边(A,B)当且仅当在原始的有向图中既有从节点A指向节点B的边(A,B)也有从节点B指向节点A的边(B,A);
②无向图中存在无向边(A,B)当且仅当在原始的有向图中存在有向边(A,B)和/或有向边(B,A)。
(2)其次是确定每一条无向边的权值。两种常见的方式是:
①取有向图中两点之间的有向边的权值之和;
②取两点之间的有向边的权值的最小值或最大值(如果存在两条有向边)。
在这里插入图片描述
一个典型的例子就是科研人员之间的合作网络,其中,每个科研人员为一个节点,两个科研人员如果合作发表过文章,那么就在相应的两个节点之间有一条边,边的权值对应于两个人合作发表论文的数量。

3.无权有向图

图中的边是有向的和无权的( Unweighted )。所谓无权图实际上也可意味着图中边的权值都相等(通常可假设每条边的权值均为1)。
我们可以通过对加权图的阈值化处理得到对应的无权图。
具体做法是:设定一个阈值r,网络中权值小于等于r的边全部去掉,权值大于r的边全部保留下来并且权值都重新设置为1。
在这里插入图片描述

4.无权无向图

图中的边是无权的和无向的。无权无向图可以通过对有向图的无向化处理和加权图的阈值化处理而得到。
tips:如果从有权有向图转为无权无向图需要做两次处理。
在这里插入图片描述

2.2.3 简单图

首先介绍两个概念
重边:即任意两个节点之间至多只有一条边。
在这里插入图片描述
自环:即没有以同一顶点为起点和终点的边。
在这里插入图片描述
在图论中,没有重边和自环的图称为简单图(Simple graph)。
  ① 不存在重复边;
  ② 不存在顶点到自身的边;
在这里插入图片描述
假设图G=(V,E)是一个顶点数为N、边数为M的简单图。由于任意两个顶点之间至多有一条边,我们有如下关系:
在这里插入图片描述
简单图的两种极端情形为:
(1)空图( Null graph):它有两种定义,一是指没有任何节点和连边的图;二是指没有任何连边的图,即由一群孤立节点组成的图。
(2)完全图(Complete graph):图中任意两个顶点之间都有一条边,即总边数为N(N- 1 )/2。
如果图G是有向图,那么两个不同的节点之间有可能存在两条方向相反的边,这时网络中的边数满足如下关系:
在这里插入图片描述
在这里插入图片描述

这里在介绍另外两个概念:
稠密图和稀疏图

一个图中,顶点数 n 边数 m

当n^2>>m 时,我们称之为稀疏。

当m相对较大时,我们称之为稠密。
在后面介绍最小生成树选取Prim算法和Kruskal算法时会应用到。

2.3 图的计算机表示

2.3.1 邻接矩阵

图的存储方式有:邻接矩阵、邻接表、十字链表、邻接多重表等等。
用计算机分析实际网络的性质面临的第一个问题就是如何在计算机中表示一个网络。在传统的图算法中,两种最常见的表示图的基本结构是邻接矩阵( Adjacency matrix)和邻接表( Adjacency list)。
在这里插入图片描述
图的邻接矩阵:用来表示顶点之间相邻关系的矩阵。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

对无向图而言,邻接矩阵一定是对称的,而且主对角线一定为零,副对角线不一定为0,有向图则不一定如此。

邻接矩阵来表示一个具有n个顶点的有向图时需要n^2个单元来存储邻接矩阵;对有n个顶点的无向图则只需存入上(下)三角阵中剔除了左上右下对角线上的0元素后剩余的元素压缩存储,故只需1+2+…+(n-1)=n(n-1)/2个单元。

在这里插入图片描述

2.3.2 邻接表和三元组

在图算法中,表示稀疏的无权图的最常用方法是邻接表。它对每个顶点i建立一个单链表(即邻接表),这个单链表由邻接于顶点i的所有顶点构成。
在这里插入图片描述在这里插入图片描述
三元组可以很容易地表示一般的加权有向图
在这里插入图片描述
以第一行的三元组1 2 3为例,它表示有一条从顶点1指向顶点2的边,且该边的权值为3。在无向图的三元组表示中,每条边也会出现两次。

2.4 共引和文献耦合

这里我们以一个典型的有向网络——引文网络(Citation network)为例,介绍从一个有向网络得到无向网络的两种对偶方法:共引 ( Co-citation)和文献耦合( Bibliographic coupling)

2.4.1 共引网络

在一个有向引文网络中**,一个节点表示一篇文章,如果文章i引用了文章j,那么就有一条从节点i指向节点j的有向边**。两篇文章的共引就是指同时引用这两篇文章的其他文章的数量。我们可以构造无向的共引网络如下:如果两篇文章被至少一篇其他文章同时引用,那么在对应的两个节点之间就有一条无向边
在这里插入图片描述
在这里插入图片描述
这里BD是指paperB和paperD同时被A引用,DE是指paperD和paperE同时被B引用。
在这里插入图片描述
在这里插入图片描述

2.4.2 文献耦合网络

文献耦合与共引类似。在引文网络中,两篇文章的文献耦合就是指这两篇文章的参考文献中的相同文章的数目,也就是同时被这两篇文章引用的其他文章的数目。我们可以定义有向的引文网络所对应的无向的文献耦合网络如下:如果两篇文章至少有一篇相同的参考文献,那么在对应的两个节点之间就有一条边。
在这里插入图片描述
上图中文章A和B同时引用了D,文章A和文章C同时引用文章D,文章B和C同时引用了文章D和E。由此得到如下无向的文献耦合网络:
在这里插入图片描述
在这里插入图片描述
总结:文献耦合和共被引都是指两篇文献通过另外一篇或者多篇文献建立联系。
在这里插入图片描述
注意:文献耦合反映的是两篇施引文献之间的关系,共被引反映的是两篇被引证文献之间的关系。文献耦合反映的文献间的关系是一种固定的长久的关系,而共被引反映的则是变化的或暂时的关系。
点击这个查看另一位博主对共引和文献耦合进行的代码实现

2.5 路径与连通性

2.5.1 路径

有连才有网,讨论两个节点是否相关,即两个节点之间有无路径。设一个无向图为G=(V,E)。

路径(Path):无向图中的路径是指一个节点至另一个节点之间的边,如无向图G中,存在一个节点A,和一个节点D,二者本身是不相邻的,没有直接的连边,但A可以通过其相邻节点找到与D相连的一组连边,这一组连边即A-D的路径,一条路径的长度即这条路径中所包含的连边数。

回路(Circuit):起点与终点重合的路径。

简单路径(Simple Path):各个顶点互不相同的路径。

圈(Circle):圈可以成为特殊的回路,即起点与终点重合,但路径中间历经的节点并无重合。所以说,一个圈必定是一个回路,而一个回路中可能包含多个圈。

2.5.2 连通性

无向图连通性:

若每一对节点之间都存在一条路径,则称这个无向图是连通的;否则则是不连通的。而一个不连通图是由多个连通片组成的。连通片是网络中满足连通性和独立性的子图。
每一个不连通图都是由若干个不相交(即没有公共顶点)的连通片组成的。其中包含顶点数最多的连通片就称为最大连通片。
在这里插入图片描述
不连通网络的邻接矩阵可以通过对节点适当编号写为如下的块对角的形式
在这里插入图片描述
即所有的非零元都在沿着对角线排列的一些方块中,其余部分元素均为零。

连通性判别:若一个网络的邻接矩阵是不可约的,则该网络是连通的。

有向图连通性:

强连通:一个有向图的任意节点对之间存在相互指向的路径。
弱连通:当且仅当将有向图的有向边转换为无向边之后的无向图的是连通的。

2.5.3 路径与连通性的邻接矩阵表示

在这里插入图片描述

2.5.4 割集与Menger定理

1、Menger定理

(1)点形式:设顶点s和顶点t为图G中两个不相邻的顶点,则使顶点s和顶点t分别属于不同的连通片所需去除的顶点的最少数目等于连接顶点s和顶点t的独立的简单路径的最大数目。
(2)边形式:设顶点s和顶点t为图G中两个不同的顶点,则使顶点s和顶点t分别属于不同的连通片所需去除的边的最少数目等于连接顶点s和顶点t的不相交的简单路径的最大数目。
注意:连接顶点s和顶点t的两条简单路径是独立的,是指这两条路径的公共顶点只有顶点s和顶点t。连接两个顶点的简单路径称为是不相交的是指这两条路径没有经过一条相同的边。

2、割集

(1)点割集:使得一对顶点分属于不同的连通片所需去除的一组顶点称为这对顶点的点割集。
(2)边割集:使得一对顶点分属于不同的连通片所需取出的一组边称为这对顶点的边割集。
(3)极小割集:包含顶点数或边数最少的割集称为极小割集。
在这里插入图片描述
这里引出两个算法来求解最短路径

3、dijkstra算法(求解单源最短路径)

dijkstra算法思想是基于贪心算法思想的。所谓贪心算法即始终保持当前迭代解为当前最优解。意思就是在已知的条件下或是当前拥有的全部条件下保证最优解,若在此后的迭代中由于加入了新的条件使得产生了更优解则替代此前的最优解。通过不断的迭代不断保证每次迭代的结果都是当前最优解,那么当迭代到最后一轮时得到的就会是全局最优解。 由于下一轮迭代会参考上一轮的最优解,因此每一轮的迭代的工作量基本一致,降低了整体工作的复杂性。
具体步骤:
声明一个数组来保存起始点到各个顶点的最短距离和一个保存已经找到了最短路径的顶点集合S,剩余顶点的集合V。
初始时,S中只有起始点然后从剩余顶点中找到一个点使得从从起始点到该点的路径是最短路径,并且把该点加入到S中。
然后我们需要看看新加入的顶点是否可以到达其他顶点并且看看通过该顶点到达其他点的路径长度是否比源点直接到达短,如果是,那么就修改这些顶点在数组中的值。
然后,重复上述动作,直到S中包含了图的所有顶点。
最短路径问题 — Dijkstra算法详解
视频讲解最短路径查找—Dijkstra算法

4、Floyd算法(动态规划算法)

算法步骤:
初始时,对于任意两个顶点,若他们之间存在边,则以此边上的权值作为它们之间的最短路径长度,若不存在有向边,则以∞作为它们之间的最短路径长度,
之后逐步尝试在原路径中加入顶点作为中间顶点,如果增加中间顶点后,得到的路径比原来的路径短,则以此新路径代替原路径。
视频讲解Floyd算法

二者的主要区别在于:
Dijkstra仅求解一个顶点到其余顶点的最短路径;Floyd求解所有顶点到其余顶点的最短路径。
Dijistra的复杂度为O(n2),Floyd的复杂度为O(n3),但Floyd算法简洁优美,非常好看。
Dijkstra和Floyd算法代码实现

2.5.5 有向图的连接性

·一个有向图称为是强连通的( Strongly connected ),如果对于图中任意一对顶点u和v,都既存在一条从顶点u到顶点v的路径也存在一条从顶点v到顶点u的路径。一个有向图称为是弱连通的(Weakly connected ) ,如果把图中所有的有向边都看做是无向边后所得到的无向图是连通的。
由于一个有向图的弱连通性是通过某个对应的无向图的连通性来判别的,因此上一小节关于无向图的连通性的所有讨论可以直接用于有向图的弱连通性。对于有向图的强连通性则需要考虑边的方向。例如,图2-19所示的有向图是弱连通的但不是强连通的,该图包含分别位于3个虚框内的3个强连通片( Strongly connected component , scc)。
在这里插入图片描述

2.6 生成树与最小生成树

2.6.1 树

一个含有N个节点与N-1条连边的连通图可以成为树。一棵树有如下特点:

    a、图G是连通的且有N-1条连边

    b、图G是连通的且不包含圈

    c、图G不包含圈并且有N-1条边
    
	d、图G中任意两个顶点之间有且只有一条路径
	
    e、图G去掉任意一条连边都会变得不连通

通过把某个顶点设定为(Root),就可以得到树的层次表示,称为根树(Rooted tree)。
在这里插入图片描述

2.6.2 广度优先搜索算法(BFS)

工作原理:

从图中某顶点v出发,首先访问定点v
在访问了v之后依次访问v的各个未曾访问过的邻接点;
然后分别从这些邻接点出发依次访问它们的邻接点,并使得“先被访问的顶点的邻接点先于后被访问的顶点的邻接点被访问;
直至图中所有已被访问的顶点的邻接点都被访问到;
如果此时图中尚有顶点未被访问,则需要另选一个未曾被访问过的顶点作为新的起始点,重复上述过程,直至图中所有顶点都被访问到为止。
在这里插入图片描述
广度优先搜索算法视频讲解

2.6.3 深度优先搜索算法(DFS)

工作原理:

从顶点v出发,首先访问该顶点;
然后依次从它的各个未被访问的邻接点出发深度优先搜索遍历图;
直至图中所有和v有路径相通的顶点都被访问到。
若此时尚有其他顶点未被访问到,则另选一个未被访问的顶点作起始点,重复上述过程,直至图中所有顶点都被访问到为止
深度优先搜索算法视频讲解

2.6.4 最小生成树

生成树:一个连通图G本身不是一棵树,但可以看作是一棵树添加了一部分连边形成的图,这棵树即为生成树。而这棵树可以看做是连通图G的一个子图。一个包含N个节点的完全图存在N^{N-2}棵生成树。
在这里插入图片描述

最小生成树:在加权无向图中,每棵生成树的连边数必然都为N-1,但其连边的权值之和不尽相同,其中权值之和最小的成为最小生成树。
在这里插入图片描述
并且有如下几个定理:
在这里插入图片描述
最小生成树构造算法往往是基于最小生成树的割性质(Cut property)和圈性质(Circle property) ,这两个性质分别给出了一条边是否在最小生成树中的判别准则。
在这里插入图片描述

2.6.5 Prim算法和Kruskal算法

在这里插入图片描述
Kruskal 算法是求解无向带权图的最小生成树的经典算法之一。

Kruskal 算法的思想是每次都选择图中的一个权值最小的边添加到结果集中,期间要保证结果集不会产生环,当结果集满足生成树的条件时,那么其必然是一棵最小生成树。

在这里插入图片描述
我们使用该示例图作为演示,看一下 Kruskal 算法的具体执行流程:
在这里插入图片描述
上图为 Kruskal 算法的执行流程。我们每次都选择权值最小的边来构建图的生成树。在第四步,由于三条权值为 4 的边都会使得生成树产生环,即这三条边不符合生成树的定义,所以并没有添加到结果集当中。

Prim 算法也是解决最小生成树问题的一种常用算法。相比于 Kruskal 算法,Prim 算法可以说更巧妙地运用了切分定理。

Prim 算法的执行流程是这样的:

从第一个顶点开始,该顶点与图中其他顶点就构成了一个切分,我们找到当前切分最短的横切边。然后不断扩展切分,直到没有切分时,就找到了图的最小生成树。详细的过程可以参考下面
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
最小生成树 Prim算法 Kruskal算法视频讲解

2.7 二分图与匹配问题

2.7.1 二分图的定义

给定图G=(V,E)。如果顶点集V可分为两个互不相交的非空子集X和Y,并且图中的每条边(i,j)的两个端点i和j分别属于这两个不同的顶点子集,那么就称图G为一个二分图,记为G=(X,E,Y)。如果在子集X中的任一顶点i和子集Y中的任一顶点j之间都存在一条边,那么就称图G为一个完全二分图。如下图所示:
在网络科学研究中,二分图也称为二分网络(Bipartite network )、从属网络Affiliation network)或二模网络(Two-mode network )。
在这里插入图片描述
判断任意一个连通的网络是否为二分网络的一般方法:
在网络中任意选取一点,把该节点以及与该节点距离为偶数的所有其他节点的集合记为X,把与该节点的距离为奇数的节点的集合记为Y。如果在集合X和Y的内部都不存在边,即所有的
边都只存在于集合X和Y之间,那么该网络就是二分网络。
在这里插入图片描述

2.7.2 二分图的实际例子

    (1)人员合作网络:集合X中的每个节点代表一名科研人员,集合Y中的每个节点代表一篇文章。

    (2)学生选课网络:集合X中的每个节点代表一名学生,结合Y中的每个节点代表一篇文章。

    (3)用户推荐网络:每个用户作为集合X中的一个元素,每间物品作为集合Y中的一个元素。
    
	(4)在线社区网络:集合X中的每个节点代表一个用户,集合Y中的每个节点代表一个话题。
	
  上述的例子都有一个共同的特征:集合X是由一组个体组成,集合Y是由这组个体参与的事件组成。

在这里插入图片描述

2.7.3 二分图到单分图的投影

在分析自然具有二分图结构的网络时,通常会先把它投影到由集合X中的顶点构成的单分图;如果在原来的二分图中,集合X中两个顶点都与集合Y中的某个顶点相连,那么在对应的单分图中,这两个顶点之间就有一条边。同样,也可以把该二分图投影到由集合Y中顶点构成的单分图,然后再分析所得到的单分图的拓扑性质。下图为将一个二分图投影到两个单分图。
在这里插入图片描述
Tips:从二分图到单分图的投影也面临类似的问题:无论是基于集合X的单分图还是基于集合Y的单分图都有可能会失去原始二分图的一些重要的特性。

2.7.4 二分图的匹配

二分图是一种十分有用的网络模型,许多涉及资源的人员分配的实际问题都可以归结为二分图的匹配问题,具体定义如下:
(1)匹配:设G=(X,E,Y)为二分图,F为边集E的一个子集,即F∈E。如果F中任意两条边都没有公共端点,那么就称F为图G的一个匹配。
(2)最大匹配:图G的所有匹配中边数最多的匹配。
(3) X-完全匹配:集合X中任一顶点均为匹配F中边的端点。
(4) Y-完全匹配:集合Y中任一顶点均为匹配F中边的端点。
(5)完全匹配:F既是X-完全匹配又是Y-完全匹配,此时,集合X和集合Y中的顶点恰好一一对应。
在这里插入图片描述

2.8 稳定匹配

2.8.1 稳定匹配的定义

这里以硕士研究生与导师之间的双向选择为例来说明稳定匹配问题。
假设师生分配问题中一个老师可以带三个学生,而一个学生只能跟一个导师。这里我们可能提前联系的导师有好几个,可能答应了某个导师后又反悔,导师也可能被很多学生选择,所以这里就涉及到一个分配问题。
若最后的分配方案能保证:
(1)如果有学生想要换导师,那么没有教师愿意接受这名学生。
(2)如果有教师想要换学生,那么没有学生愿意跟随这位教师。
那么就称此师生分配方案是稳定的。
我们可以对上述稳定分配方案的定义做进一步形式化的处理,假设学生对于想选的教师会有一个优先排名,而教师对于想要招的学生也会有一个优先排名
如果对每一个教师P和每一个没有跟随教师P的学生S,至少出现下列两种情形之一:
(1)教师P对他已经接受的每位学生都比对学生S更满意;
(2)学生S对他目前的导师比对教师P更满意。
则称此方案为稳定分配方案
如果至少存在一个教师P和一个没有跟随教师P的学生S,使得以下两点均满足:
(1)教师P对学生s至少比他所接受的学生中的一位更满意;
(2)学生S对教师P比对他目前的导师更满意。
那么就说明师生分配方案是不稳定的

2.8.2 稳定匹配的求解

这里引入G-S算法。
求解稳定的师生分配方案的G-S算法叙述如下:
每次只选择一位学生S,让他(她)按照自己的优先表从高到低依次找还没有面谈过的教师面谈。为公平起见,我们假设这位学生是通过完全随机的方式选出来的。如果与他(她)面谈的教师目前没有候选的学生,那么这位教师最安全的做法就是把这位学生列为候选学生,即使这个学生未必是这位老师的优先表中靠前的学生,因为每位教师必须要带一名学生。如果这名教师已经有了候选学生S’,那么他将应该比较学生S和学生S’ ,并从中挑选一个作为他的候选学生。按照这一程序,学生S必然在这一轮面谈后被某个教师考虑为候选学生。
然后,再随机选择一位自由的(即还没有成为候选对象的)学生,让他(她)按照自己的优先表从高到低依次找自己还没有面谈过的教师面谈,直到成为候选学生。这一迭代过程一直进行下去,直到所有学生都成为候选学生或每一个自由的学生都与所有教师面谈过为止。
在研究上述算法性质时,首先要注意到,尽管只有N个学生,该算法一般说来未必在N步之后就终止。这是因为,已经成为候选学生的人有可能在后面的某次迭代中被另一位同学顶替掉而再次成为完全自由的学生。因此,针对该算法我们依次需要考察如下问题:该算法是否会终止?如果会,迭代多少步之后终止?该算法是否能够得到一个完全匹配?如果能,这个完全匹配是否一定为稳定匹配?在回答这些问题之前,首先注意到算法的几个似乎是让学生越来越沮丧,教师越来越高兴的基本事实:
(1)教师P从第一次有学生去和他面谈开始,就一直会有候选学生,而且他的候选学生只会越变越好(按照教师P的优先表);
(2)学生S可能会在候选学生和自由学生状态之间交替,而且他(她)去面谈的教师只会越变越差(按照学生S的优先表)。
(3)如果学生S在算法的某一步是自由的,那么此时,必至少存在一位该学生没有面谈过的教师。
事实三意味着算法终止的唯一条件为所有的学生都是候选学生,即找不到自由的学生。

在这里插入图片描述
在这里插入图片描述

2.8.3 稳定匹配的公平性

(1)从学生角度看,将导致学生之间的公平性问题:在算法执行过程中,是否早被选上的学生更有利?
(2)因为算法的两个基本事实是学生越来越沮丧,教师越来越高兴,那么会导致学生与教师之间的公平性问题:该算法总体上知否对教师更有利?
对于第一个公平性问题,学生完全不必担心:算法的每次执行得到的都是同一个集合n。对于第二个公平性问题,学生更加不必担心:这一算法得到的结果是对学生最有利的。
在这里插入图片描述

2.8.4 完全匹配存在的条件

上述师生分配问题有一个前提就是每一个学生与每一个教师都有配对的可能性。但如果教师只愿意接受某几个学生,学生也只愿意跟随某几个导师,这种情况下就可能不存在完全匹配。
所以完全匹配是存在一定条件的。
在这里插入图片描述
假设有5个教师和5个学生,他们的意愿用图2-36表示。例如,教师1只愿意在学生Ⅰ和学生2中做选择。此时,我们很容易发现并不存在完全匹配:学生1、学生2和学生3这3个学生只愿意在教师1和教师2这两个教师之间做选择。我们称学生1学生2和学生3这3个学生的集合为一个抑制集(ConstrictedSet),因为他们与二分图另一端的连接抑制了完全匹配的形成。
一般地,对于二分图右端的一组节点S,如果左端某个节点有边与S中的某个节点连接,我们就称该节点为S的邻居节点。S的所有邻居节点的集合记为N(S)。如果S中的节点数目严格大于N(S)中的节点数目,则右端的节点集合S是抑制的

在这里插入图片描述

说明:以上内容是基于《网络科学导论》这本书第二章的内容整理的学习记录,同时本篇内容中涉及到一些其他博主的内容资源,主要是进行资源整合学习,如有侵权,可以删除。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ricardo_PING_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值