c语言 判断一个图是否全连通_随机图模型

随机图模型

数学家是一种把咖啡变成定理的机器。--- Alfred Renyi A mathematician is a machine for turning coffee into theorems. --- Alfred Renyi

随机图的历史

在 1959 和 1968 年期间,数学家 Paul Erdos 和 Alfred Renyi 发表了关于随机图(Random Graph)的一系列论文,在图论的研究中融入了组合数学和概率论,建立了一个全新的数学领域分支---随机图论。

c0d4b830df2beaae34cdbd791a995a0b.png
随机图的案例 p=0.01

随机图的定义

本文只关注无向图的场景。顾名思义,随机图(Random Graph)就是将一堆顶点随机的连接上边。好比在地上撒了一堆豆子,而豆子之间是否用线来相连是根据某个概率值来确定的。通常来说,对于随机图而言有两种定义方式

  1. 【定义一】给定
    的定义是随机从
    个顶点和
    条边所生成的所有图集合中选择一个。其中,这样的图集合的势是
    因此获得其中某一个图的概率是
  2. 【定义二】给定
    的定义是有
    个顶点,并且两个顶点之间以概率
    来决定是否连边。

事实上,这两个定义是等价的,

个顶点的图最多拥有的边数是
恰好有
条边,并且它们分配的概率是均等的,因此两个顶点之间是否存在边的概率就是
这里的
指的是组合数。i.e.

另一方面,对于

而言,顶点两两之间是否存在边的概率是
个顶点的图最多拥有
条边,于是边数为
i.e.

进一步地,通过以上两个公式可以得到:

在定义一中,可以直接算出所有顶点的平均度是

但如果要计算图的其余指标,用第二种定义
反而更加容易,因此后续将会重点关注第二种定义,为方便起见,记号简化为

随机图的度

图的度(degree)指的是对于某个顶点而言,与它相关联的边的条数。对于随机图

而言,它的边数大约是
最多与该节点相连接的顶点数为
整个图的顶点平均度是(边数 * 2) / 顶点数,用记号
来表示,意味着顶点平均度是
充分大的时候成立。换言之,

92db19af9f513c0b121ca35b6737cfb7.png
顶点上的值就是该顶点的度

对于随机图

中的一个顶点
而言,我们想计算它恰好有
条边的概率值。事实上,对于除了
之外的
个点而言,有
个顶点与
相连,
个顶点与
不相连,其概率是
同时需要从这
个点中选择
个点,因此,顶点
的度恰好是
的概率是

特别地,当

时,上述概率近似于泊松分布(Possion Distribution)。事实上,
并且

因此,在

时,
近似于泊松分布,

随机图的连通分支

对于随机图

而言,它的连通分支个数是与顶点的平均度
息息相关的。特别地,当
时,每个顶点都是孤立的,连通分支个数为
时,任意两个顶点都有边相连接,整个图是完全图,连通分支的个数是
顶点的平均度从
的过程中,连通分支的个数从
演变到
最大连通分支顶点数从
演变到
那么在这个变化的过程中,最大连通分支的顶点数究竟是怎样变化的呢?是否存在一些临界点呢?数学家 Erdos 和 Renyi 在 1959 年的论文中给出了答案:

对于随机图

而言,用
表示最大连通分支的顶点个数,那么对于图的平均度
而言,
  1. 那么
  2. 那么
  3. 那么巨连通分支(Giant Component)存在,同时存在很多小的连通分支,在临界点
    的附近时,
    这里
  4. 那么图
    是全连通图,i.e.

在这个定理中,对于顶点的平均度

而言,存在两个临界点,分别是
时,巨连通分支不存在,所有连通分支的量级都在
以下;当
时,巨连通分支开始出现,量级大约是
时,随机图存在一个巨连通分支和很多小的连通分支;当
时,图是连通图。

ae606b95a2cc9ce7a95bd97bde283738.png
图的平均度的临界点

整个定理的证明有点复杂,但本文将会介绍两个临界点的计算。先来考虑第一个临界点

的情况:

来表示随机图
中的最大连通分支的顶点个数,
表示图
中不在最大连通分支的顶点比例,i.e.

图的顶点不在最大连通分支的概率。

对于不在最大连通分支的顶点

而言,其余的
个顶点分成两种情况,Case(1):要么
与之不相连,此时概率是
Case(2):要么
与之相连,但此时的顶点不能在最大连通分支中,那就只能在剩下的
个顶点中,其概率是
于是,对于所有顶点而言,它不在最大连通分支的概率是
于是,

根据

可以得到当
充分大时,有

它表示最大连通分支的顶点个数在所有顶点个数的占比,从而可以得到
近似方程

它的导数是
通过计算可以得到:
  1. 时,
    上成立,i.e.
    上的唯一解是
    换言之,
  2. 时,
    成立,
    成立。换言之,
    上除了零之外还有解
    此时会存在巨连通分支,
    是解。

因此,最大连通分支的顶点数在这个点会出现突变,

是该方程的第一个临界点,并且是出现巨连通分支的临界点。

再来考虑第二个临界点

的情况。对于极限状况而言,假设仅有一个顶点不在最大连通分支中,那么
此刻,

两边求对数可以得到

因此,
也是一个临界点,并且是出现全连通图的临界点。

随机图的六度分离

六度分离又称为小世界现象,它的含义是在地球上任意选择两个人,他们之间最多相隔

个相识关系。换言之,来自世界上任何地方的两个人都可以通过不超过
个相识关系所连接起来。

b62486c4cf682c0beebf6d0d86d95062.png
The Six Degrees of Larry Stone

图中两个顶点的距离定义为两个顶点之间的最短路径长度,图的直径就是图中任意两点的距离的最大值。对于随机图

而言,如果
则是不连通的,因此通常只需要考虑
的情况,甚至只考虑
的全连通图。任取一个顶点
,则有
  1. 个距离为
    的顶点;
  2. 个距离为
    的顶点;
  3. 个距离为
    的顶点;
  4. 个距离为
    的顶点;

同时,

而言,顶点的个数为
这意味着
通过等比级数的公式可以得到
因此,

而随机图的直径的量级是与

成正比的,因此,随机图的直径量级同样是
如果
并且每个人认识
个人,于是随机图的直径量级是

参考文献

  1. Erdos Renyi Model:https://en.wikipedia.org/wiki/Erd%C5%91s%E2%80%93R%C3%A9nyi_model
  2. Giant Component:https://en.wikipedia.org/wiki/Giant_component
  3. Erdős P, Rényi A. On the evolution of random graphs[J]. Publ. Math. Inst. Hung. Acad. Sci, 1960, 5(1): 17-60.
  4. Albert R, Barabási A L. Statistical mechanics of complex networks[J]. Reviews of modern physics, 2002, 74(1): 47.
  5. 《巴拉巴西网络科学》,艾伯特-拉斯洛·巴拉巴西(Albert-LászlóBarabási),2020.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于C++&OPENCV 的像拼接 C++是一种广泛使用的编程语言,它是由Bjarne Stroustrup于1979年在新泽西州美利山贝尔实验室开始设计开发的。C++是C语言的扩展,旨在提供更强大的编程能力,包括面向对象编程和泛型编程的支持。C++支持据封装、继承和多态等面向对象编程的特性和泛型编程的模板,以及丰富的标准库,提供了大量的据结构和算法,极大地提高了开发效率。12 C++是一种静态类型的、编译式的、通用的、大小写敏感的编程语言,它综合了高级语言和低级语言的特点。C++的语法与C语言非常相似,但增加了许多面向对象编程的特性,如类、对象、封装、继承和多态等。这使得C++既保持了C语言的低级特性,如直接访问硬件的能力,又提供了高级语言的特性,如据封装和代码重用。13 C++的应用领域非常广泛,包括但不限于教育、系统开发、游戏开发、嵌入式系统、工业和商业应用、科研和高性能计算等领域。在教育领域,C++因其结构化和面向对象的特性,常被选为计算机科学和工程专业的入门编程语言。在系统开发领域,C++因其高效性和灵活性,经常被作为开发语言。游戏开发领域中,C++由于其高效性和广泛应用,在开发高性能游戏和游戏引擎中扮演着重要角色。在嵌入式系统领域,C++的高效和灵活性使其成为理想选择。此外,C++还广泛应用于桌面应用、Web浏览器、操作系统、编译器、媒体应用程序、据库引擎、医疗工程和机器人等领域。16 学习C++的关键是理解其核心概念和编程风格,而不是过于深入技术细节。C++支持多种编程风格,每种风格都能有效地保证运行时间效率和空间效率。因此,无论是初学者还是经验丰富的程序员,都可以通过C++来设计和实现新系统或维护旧系统。3

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值