6.7 案例分析与实现

 

思维导图:

 6.7 案例分析与实现

#### 案例6.2: 六度空间理论

【案例分析】

- **背景介绍**:  
六度空间理论提及在任意两人之间最多仅有6个人的连接。尽管这一理论被广泛提及并得到了某种程度的验证,但从科学角度看,它仍然只是一个假说。

- **早期验证**:  
很多社会学家使用E-mail进行的验证研究。其中,最著名的是2001年由美国哥伦比亚大学的Duncan J. Watts所进行的实验。他们的研究表明,要通过邮件与某人联系,平均需要经过5~7个中间人。

- **研究局限性**:  
  1. 使用E-mail保持社会关系的人群是有限的;
  2. 跟踪E-mail的路径需要大量资源;
  3. 研究依赖于志愿者的积极性,可能会有遗漏。

- **现代通信方法**:  
电话和短信是现代主流的通信方式,与E-mail相比,由于运营商的存在,其通信路径更容易跟踪。但由于数据保密,我们很难获取实际的通信数据。

- **理论模型**:  
我们可以将人际关系视为一个不带权值的无向图G。在此模型中,六度空间理论可以被描述为:在图G中,任意两个顶点之间的路径长度不超过7。

【案例实现】

- **算法6.14 六度空间理论的验证**:

  - **初始化**:  
    设定一个变量`Visit Num`来记录路径长度不超过7的顶点数。初始化为0。数组`level`记录各个层次的顶点数。选择一个起始点`Start`,标记为已访问,并将其放入队列Q。

  - **广度优先搜索**:  
    当Q非空且循环次数小于7时,执行以下操作:
    1. 取出队头顶点u;
    2. 检查u的所有未访问的邻接点w;
    3. 将w标记为已访问,路径长度不超过7的顶点数`Visit Num`加1,相应的层次顶点数也加1;
    4. 将w入队。

  - **输出结果**:  
    当退出循环后,输出从顶点`Start`到其他所有顶点的路径长度不超过7的百分比。

**笔记总结**:六度空间理论是一个有趣且广为人知的假说。尽管它在某种程度上得到了验证,但从科学的角度来看仍存在局限性。现代的通信方式为其验证提供了新的机会,但也带来了新的挑战。

**笔记:六度空间理论的验证算法描述**

---

**算法名称**: 六度空间理论的验证

**方法**: 通过广度优先搜索 (BFS) 遍历图 G 来验证六度空间理论。

**输入**: 图 G, 指定的始点 Start

**主要步骤**:
1. 初始化 `Visit Num` 为 0,用于记录路径长度不超过 7 的顶点个数。
2. 标记顶点 Start 已被访问,并将其添加到队列 Q。
3. 初始化第一层人队的顶点个数为 1。
4. 使用循环进行广度优先搜索遍历:
   - 对于每个长度在 1 到 6 范围内的路径,只要队列不为空,执行以下操作:
     1. 队头顶点 u 出队。
     2. 检查 u 的所有邻接点 w。
     3. 如果 w 尚未被访问,则标记 w 为六度顶点,并增加 `Visit Num` 和该层的顶点数。
     4. 将 w 添加到队列 Q。
5. 输出从顶点 Start 到其他顶点的路径长度不超过 7 的路径的百分比。

**算法分析**:
- 时间复杂度: 假设图 G 中有 10 亿人,即图的顶点个数 n = 10亿。若平均每人认识 150 人,则边数 e 约为 75 x 10^8。该算法的时间复杂度为 O(n+e)。
- 空间复杂度: 该算法需要数组 `visited` 和队列 Q,因此空间复杂度为 O(m)。
- 假设:平均每个人都认识其他 150 个人(基于“150定律”)。

**其他方法**:
算法6.14 使用广度优先搜索方法进行验证,实际上也可以使用求解最短路径的方法(如迪杰斯特拉算法或弗洛伊德算法)进行理论验证。

---

 

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

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

相关文章

嵌入式实时操作系统的设计与开发(调度策略学习)

将调度分为两层,上层为策略,下层为机制,并且采用策略与机制分离的设计原则,可以方便灵活地扩展调度策略,而不改变底层的调度机制。 调度策略就是如何确定线程的CPU、优先级prio等参数,线程是按照FIFO&…

小型企业团队的理想项目管理软件解决方案

中小型企业对于项目管理软件的需求是什么?中小型企业在选择项目管理软件时有什么特别需要注意的吗?市面上哪些项目管理软件更适合中小型企业团队?本文为您解惑答疑! 中小型企业的项目管理需求 在项目管理过程中,每个…

学习最优化课程中的一些疑惑

感谢gpt I: 你是一个数学专业教授,请给我讲解一下卡氏积的含义 GPT: 卡氏积(Cartesian product)是集合论中的一个概念,用来描述两个集合之间的关系。假设有两个集合A和B,卡氏积A B定义为所有有序对 (a, b)&#xf…

JS加密/解密之webpack打包代码逆向

Webpack 是一个强大的打包工具,能够将多个文件打包成一个或多个最终的文件。然而,将已经经过打包的代码还原回原始源代码并不是一件直接的事情,因为 webpack 打包的过程通常会对代码进行压缩、混淆和优化,丢失了部分变量名和代码结…

全球范围内先进封装设备划片机市场将迎来新的发展机遇

随着半导体工艺的不断发展,先进封装技术正在迅速发展,封装设备市场也将迎来新的发展机遇。作为先进封装设备中的关键设备之一,划片机的发展也备受关注。 划片机是用于切割晶圆或芯片的设备,其精度和稳定性直接影响到封装产品的质量…

动态规划:从入门到入土系列(二)

🎈个人主页:🎈 :✨✨✨初阶牛✨✨✨ 🐻推荐专栏1: 🍔🍟🌯C语言初阶 🐻推荐专栏2: 🍔🍟🌯C语言进阶 🔑个人信条: 🌵知行合一 前言 一、…

绿色低碳,数字为先:万应低代码推动能源资产管理优化

10月7日,湘江新区经济发展局发布关于印发《湖南湘江新区推进碳达峰碳中和三年行动工作方案及责任分工(2023-2025)》的通知,把碳达峰碳中和工作纳入湖南湘江新区经济社会发展和生态文明建设整体布局。 随着科学技术的不断发展&…

TypeScript核心

认识TypeScript 1. 什么是TS TypeScript 是具有类型语法的 JavaScript,是一门强类型的编程语言 2. 带来的好处 1- 静态类型检查,提前发现代码错误 2- 良好的代码提示,提升开发效率 3. 什么时候用 以下是来自社区的一些建议:…

5.2 加载矢量图层(delimitedtext,spatialite,wfs,memory)

文章目录 前言加载矢量(vector)图层delimitedtextQGis导入CSV代码导入 SpatiaLite data provider (spatialite)QgsDataSourceUriQGis导入spatialite代码导入 Web服务WFS (web feature service) data provider (wfs)QGis添加图层代码添加 Memory data providerType (memory)QGis…

从入门到进阶 之 ElasticSearch SpringData 继承篇

🌹 以上分享 从入门到进阶 之 ElasticSearch SpringData 继承篇,如有问题请指教写。🌹🌹 如你对技术也感兴趣,欢迎交流。🌹🌹🌹 如有需要,请👍点赞&#x1f…

session 反序列化

原理详解 ctfshow 新手杯 剪刀石头布 这里我们可以发现服务器使用的处理器为php_serialize,与当前页面处理器不同,在反序列化的时候会造成一些问题。同时cleanup配置没开,关闭了session自动清理,所以我们不需要进行条件竞争。并…

传输层 | UDP协议、TCP协议

之前讲过的http与https都是应用层协议,当应用层协议将报文构建好之后就要将报文往下层传输层进行传递,而传输层就是负责将数据能够从发送端传到接收端。 再谈端口号 端口号(port)标识了一个主机上进行通信的不同的应用程序,在TCP/IP协议中&…