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.mzph.cn/news/109800.shtml

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

相关文章

214. Devu和鲜花

214. Devu和鲜花 - AcWing题库 如果每个盒子里的花的数量是无限的,用隔板法可以得出答案是 现在每个盒子中区的花数要满足n个条件 我们可以求答案的补集,用全部方案数减去补集方案数 每一个不符合条件的要求为,设为Bi 补集方案数为就成了…

24、Flink 的table api与sql之Catalogs(java api操作视图)-3

Flink 系列文章 1、Flink 部署、概念介绍、source、transformation、sink使用示例、四大基石介绍和示例等系列综合文章链接 13、Flink 的table api与sql的基本概念、通用api介绍及入门示例 14、Flink 的table api与sql之数据类型: 内置数据类型以及它们的属性 15、Flink 的ta…

7.MidBook项目经验之阿里OSS,微信支付(退款),定时任务,图表数据处理

1.阿里云实名认证 阿里云对象存储oss,标准高频率访问, 低频访问存储,归档存储(根本不经常访问) 冗余存储(备份) 读写权限(所有人还是自己访问) Component public class ConstantOssPropertiesUtils implements InitializingBean {不用注入,由spring创建bean使用流 MultipartFil…

Flask自定义装饰和g的使用

1. 在commons.py文件中新增一个装饰器类: 注:一定要加入wraps进行装饰否则,装饰器在给多个函数进行装饰时会报错 from functools import wraps from flask import session, current_app, g# 定义登陆装饰器,封装用户的登陆数据 def user_log…

软考-认证技术原理与应用

本文为作者学习文章,按作者习惯写成,如有错误或需要追加内容请留言(不喜勿喷) 本文为追加文章,后期慢慢追加 by 2023年10月 网络安全认证技术是指通过密码、数字证书、生物特征识别等手段,对使用网络的用…

【Mac】时间机器频繁提示磁盘没有正常推出

问题描述 有一次在进行时间机器备份的时候总是提示“磁盘没有正常推出”,并且好几次直接导致系统重启… 估计是 MacOS 系统 bug 解决 看了 Vex 一个帖子之后设置了一个硬盘是否休眠就好了,不要勾选让硬盘处于休眠就可以了,在电池选项界面中…

MySQL 8.0 OCP认证精讲视频、环境和题库之五 事务、缓存

redo log buffer: 缓存与事务有关的redo log ,用来对mysql进行crash恢复,不可禁用; 日志缓冲区是存储要写入磁盘上日志文件的数据的内存区域。日志缓冲区大小由innodb_Log_buffer_size变量定义。 默认大小为16MB。日志缓冲区的内容会定…

2023-10-17 mysql-从库从binlog回放事件-分析

摘要: 2023-10-17 mysql-从库从binlog回放事件-分析 上下文: 2023-10-17 mysql-配置主从-记录-CSDN博客 场景: 两个机器上分别装mysql一个mysql配置成master,另外一个配置成slave, 并建立主从关系配置binlog为row格式在master上insert一条数据在slave的handler接口ha_write…

微信小程序-4

一、使用scss编译wxss文件 1.vscode安装easysass扩展 vscode插件 - - - easysass - - - 安装 2.微信小程序 导入vscode扩展 开发者工具 - - - 视图 - - - 扩展 - - - 右侧三个点 - - - 导入已安装的vscode扩展 3.编辑 打开编辑器扩展目录,找到easysass文件夹&…

spring-statemachine 状态机自定义持久化入库

使用 spring-statemachine 状态机持久化时,可以通过内存、spring-statemachine-redis 或 spring-statemachine-data-jpa 现有方式持久化处理。 因项目审核操作记录频繁,数据量大,使用 内存 或 spring-statemachine-redis 模式不可取&#xf…

QTday02(常用类、UI界面下的开发、信号与槽)

今日任务 1. 使用手动连接,将登录框中的取消按钮使用qt4版本的连接到自定义的槽函数中,在自定义的槽函数中调用关闭函数 将登录按钮使用qt5版本的连接到自定义的槽函数中,在槽函数中判断ui界面上输入的账号是否为"admin"&#x…

v-model表单数据双向绑定-表单提交示例

示例如下&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>v-model表单数据双向绑定<…

354 俄罗斯套娃信封问题(贪心+二分)

题目 链接 给你一个二维整数数组 envelopes &#xff0c;其中 envelopes[i] [wi, hi] &#xff0c;表示第 i 个信封的宽度和高度。 当另一个信封的宽度和高度都比这个信封大的时候&#xff0c;这个信封就可以放进另一个信封里&#xff0c;如同俄罗斯套娃一样。 请计算 最多…

【17.19消失的两个数字】

目录 一、题目描述二、算法原理三、代码实现 一、题目描述 二、算法原理 三、代码实现 class Solution { public:vector<int> missingTwo(vector<int>& nums) {//找到a^bint temp0;for(auto num:nums){temp^num;}for(int i1;i<nums.size()2;i){temp^i;}//找…

Flink测试利器之DataGen初探 | 京东云技术团队

什么是 Flinksql Flink SQL 是基于 Apache Calcite 的 SQL 解析器和优化器构建的&#xff0c;支持ANSI SQL 标准&#xff0c;允许使用标准的 SQL 语句来处理流式和批处理数据。通过 Flink SQL&#xff0c;可以以声明式的方式描述数据处理逻辑&#xff0c;而无需编写显式的代码…

React 路由总结 react-router-dom6+react-router-dom5

开题 单页面应用和多页面应用 SPA&#xff1a;单页面应用程序&#xff0c;整个应用中只有一个页面(index.html) MPA&#xff1a;多页面应用程序&#xff0c;整个应用中有很多页面(*.html) react路由 现在的前端应用大多都是SPA单页面应用程序&#xff0c;也就是一个HTML页面的…

百度OCR识别图片文本字符串——物联网上位机软件

一、开发背景 根据项目需求&#xff0c;我们需要完成LED显示屏实时显示歌词的效果。最优的方法是调用歌曲播放器的API获取歌词&#xff0c;但是由于这个开发资格不是很好申请&#xff0c;因此我们采用其他方案&#xff0c;即通过OCR识别获取歌词&#xff0c;并投射到LED显示屏上…

二、电脑装机实践

计算机装机实践 一、零部件组装与启动二、操作系统安装与使用2.0 先导内容&#xff1a;BIOS引导模式、Boot Loader-引导加载程序、硬盘分区模式2.1 Win11安装2.2 Ubuntu22.042.2.0 Ubuntu简介2.2.1 Ubuntu22.04安装2.2.2 Ubuntu22.04使用2.2.2.1 新建文件模版2.2.2.2 给新安装应…

ExposureDiffusion: Learning to Expose for Low-light Image Enhancement论文阅读笔记

南洋理工大学、鹏城实验室、香港理工大学在ICCV2023发表的暗图增强论文。用diffusion模型来进行raw图像暗图增强&#xff0c;同时提出了一个自适应的残差层用来对具有不同信噪比的不同区域采取不同的去噪策略。 方法的框图如下所示&#xff1a; 一张raw图片可以由信号和噪声…

如何解决idea运行出现java: 程序包XX不存在

原因一&#xff1a;pom.xml没有将程序包XXX的<dependency>配置 直接将程序包的<dependency>配置写上即可 原因二&#xff1a;maven配置问题 打开idea的Settings, 进入Build Execution Deployment/Build Tools/Maven/Runner,将Delegate IDE勾上就可以了。(将idea…