6.7 案例分析与实现

news2024/10/5 18:25:23

 

思维导图:

 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.coloradmin.cn/o/1107083.html

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

相关文章

模型的选择与调优(网格搜索与交叉验证)

1、为什么需要交叉验证 交叉验证目的:为了让被评估的模型更加准确可信 2、什么是交叉验证(cross validation) 交叉验证:将拿到的训练数据,分为训练和验证集。以下图为例:将数据分成4份,其中一份作为验证集。然后经过…

C/C++面试常见问题——指针和引用的区别

首先想要理解指针和引用的区别,我们要明确什么是指针,什么是引用 一,指针和引用的基本概念及特性 指针是一个特殊变量,其中存储着所指向变量的地址 指针主要有以下特性: 1. 在使用时需要*解引用 2. sizeof(指针)的…

关于我对 jeecg-boot 的项目理解、使用心得和改进建议

一句话总结: JeecgBoot帮助我提升了后端技术水平,入门了前端,让我在公司内部慢慢能够成长为全栈开发。 一、项目理解 JeecgBoot 项目的核心理念是快速开发、低代码、易扩展。它采用了前后端分离的架构,后端使用Spring Boot Myba…

5.覆盖增强技术——PUCCHPUSCH

PUSCH增强方案的标准化工作 1.PUSCH重复传输类型A增强,包括两种增强机制:增加最大重复传输次数,以及基于可用上行时隙的重复传输次数技术方式。 2.基于频域的解决方案,包括时隙间/时隙内跳频的增强 3.支持跨多个时隙的传输块&…

spring配置文件第一行导致读取配置失败

遇到读取配置存在问题,尤其当配置到第一行 通过spring执行测试类,没有问题,但是相同配置启动项目时,老找不到JdbcTemplate 使用配置: spring.shardingsphere.datasource.namesmaster,slavespring.shardingsphere.dat…

服务器往浏览器推消息(SSE)应用

1,SSE 和 WebSocket 对比 SSE(服务器发送事件) SSE是一种基于HTTP的单向通信机制,用于服务器向客户端推送数据。它的工作原理如下: 建立连接:客户端通过发送HTTP请求与服务器建立连接。在请求中&#xff…

【linux API 分析】register_chrdev

linux kernel:4.19 在注册字符设备的时候,可使用register_chrdev()函数,其对应的注销函数是unregister_chrdev(),其定义是在include\linux\fs.h文件 register_chrdev() 首先分析register_chrdev()函数 其定义如下 static inlin…

SMAP(Soil Moisture Active and Passive)数据下载

SMAP(Soil Moisture Active and Passive)数据下载 打开网站先注册登录用户 然后打开SMAP下载的网站 点击HTTPS File System进入下载页面 然后点击HDF文件下载 下载之后在HDF View里面预览

Spring中反转控制与依赖注入

目录 一、反转控制(IOC) 二、依赖注入(DI) 一、反转控制(IOC) 在以前的学习中为成员变量的赋值,一般都是直接在代码中完成,但是这种方式会产生耦合。然而利用Spring对成员变量赋值可…

QT学习day2

一、思维导图 作业: 使用手动连接,将登录框中的取消按钮使用qt4版本的连接到自定义的槽函数中,在自定义的槽函数中调用关闭函数将登录按钮使用qt5版本的连接到自定义的槽函数中,在槽函数中判断ui界面上输入的账号是否为"admi…

sublime怎么调中文?

Sublime Text是一个功能强大的文本编辑器,它被广泛使用于编码过程中。在开发过程中,Sublime Text界面的语言设置通常默认为英语,无法直接输入中文。那么如何调整Sublime Text编辑器的设置,以允许在界面中输入和编辑中文呢&#xf…

CSS盒子模型的详细解析

03-盒子模型 作用:布局网页,摆放盒子和内容。 盒子模型-组成 内容区域 – width & height 内边距 – padding(出现在内容与盒子边缘之间) 边框线 – border 外边距 – margin(出现在盒子外面) d…

计算机网络学习笔记(三):数据链路层(待更新)

目录 3.1 基本概念 3.1.1 数据链路和帧 3.1.2 三个基本问题 3.2 类型1:使用点对点信道的数据链路层(路由器) 3.2.1 点对点协议 PPP:特点 3.2.2 点对点协议 PPP:帧格式 3.2.3 点对点协议 PPP:工作状态 …

了解web基础,http协议

域名 例如:www.baidu.com dns域名: 网络上的通信都是基于ip,通信模式:TCP/IP Tcp建立连接和断开连接,都是要双方进行确认的 建立连接:三次握手 断开连接:四次挥手 通信时端到端 端口进行通…

ONLYOFFICE 文档 7.5 现已发布:新增 PDF 编辑器、屏幕朗读器等功能

我们已推出最新版的在线编辑器,整个套件具备多项增强功能。敬请继续阅读,了解所有更新。 全新 PDF 编辑器 PDF 是工作中很常见的文件格式。 我们经常需要打开各种PDF格式的宣传册,签署协议和合同等等。 我们一直记得这一点,一直…

NR SRS power control

这篇看下NR SRS power control的相关内容,主要内容集中在38.213 7.3章节,SRS power control与PUSCH很类似,当然细节上也有所不同,这里简单看下。 UL功率控制,主要是PUSCH/PUCCH/SRS/PRACH的传输功率。 对于所有PUSCH/PUCCH/SRS传输…

掌握.NET基础知识(一)

前言 本文将讲解一些.NET基础。NET基础是指在计算机编程中使用.NET框架所需要的基础知识..NET的认识: .NET是由微软开发的一个跨平台的应用程序开发框架。它包括一个运行时环境和一个面向对象的程序库,可以用于开发各种类型的应用程序,包括桌面应用程序、…

计算机操作系统-第十天

目录 1、操作系统的进程 进程的概念 进程的组成------PCB 进程的组成------程序段、数据段 旧知新学:《程序是如何运行的》 进程的特征 本节思维导图 1、操作系统的进程 进程的概念 当我们打开多个qq程序,我们会发现任务管理器的进程中有…

对代码感兴趣 但不擅长数学怎么办——《机器学习图解》来救你

目前,该领域中将理论与实践相结合、通俗易懂的著作较少。机器学习是人工智能的一部分,很多初学者往往把机器学习和深度学习作为人工智能入门的突破口,非科班出身的人士更是如此。当前,国内纵向复合型人才和横向复合型人才奇缺;具有…

C#中使用 ref

下面是一个示例,演示了如何在C#中使用 ref: class Program {static void Main(){int number 10;Console.WriteLine("原始值: " number);ModifyValue(ref number);Console.WriteLine("修改后的值: " number);}static void Modify…