六度空间理论
什么是“六度空间”理论
什么是“六度空间”理论六度分隔/六度空间理论 (1)六度分隔假说:两个陌生人的距离究竟有多远? (3)六度分隔假说(Six Degrees of Separation) (4)六度分隔实验: (4)尚未证明的“理论”: (5)哥伦比亚大学:跟踪Email的传播过程 (6)俄亥俄州大学:为网络里的关系网画张地图 (7)为什么是“六”度? (8)六度分隔的应用 (9)什么是SNS网站? (10)“六度空间”理论又称作六度分隔 Six Degrees of Separation 理论。
这个理论可以通俗地阐述为:“你和任何一个陌生人之间所间隔的人不会超过六个,也就是说,最多通过六个人你就能够认识任何一个陌生人。
”该理论产生于20世纪60年代,由美国心理学家米尔格伦提出。
六度分隔/六度空间理论你和任何一个陌生人之间所间隔的人不会超过六个,也就是说,最多通过六个人你就能够认识任何一个陌生人。
社会网络其实并不高深,它的理论基础正是“六度分隔”。
而社会性软件则是建立在真实的社会网络上的增值性软件和服务。
有这么一个故事,几年前一家德国报纸接受了一项挑战,要帮法兰克福的一位土耳其烤肉店老板,找到他和他最喜欢的影星马龙·白兰度的关联。
结果经过几个月,报社的员工发现,这两个人只经过不超过六个人的私交,就建立了人脉关系。
原来烤肉店老板是伊拉克移民,有个朋友住在加州,刚好这个朋友的同事,是电影《这个男人有点色》的制作人的女儿在女生联谊会的结拜姐妹的男朋友,而马龙·白兰度主演了这部片子。
你也许认为这只是一个特例,但是1967年哈佛大学心理学教授Stanley Milgram做过的一次连锁信实验,也得出这一结论。
现代版本则是哥伦比亚大学今天用E-mail进行的同样实验。
有科学家甚至从这个现象推演出一个可以评估的数学模型。
你也许不认识克林顿,但是在优化的情况下,你只需要通过六个人就可以结识他。
“六度分隔”说明了社会中普遍存在一些“弱链接”关系,但是却发挥着非常强大的作用。
第六空间
逛豆瓣的时候,看见有人说:“豆瓣越来越SNS化了。
”出于好奇,就查了SNS是什么意思。
而在了解SNS的时候,看见这样一句话:“你和任何一个陌生人之间所间隔的人不会超过六个”。
身为一个多年的伪数学迷,第一反应就觉得这是一个数学定理,遂在网上查了证明方法,结果发现这既是一个猜想,也是一个社会学理论。
现将查得的资料整理如下。
-------------------------------------------------------------------------------什么是六度空间理论(Six Degrees of Separation),它是数学领域的一个猜想,名为Six Degrees of Separation,中文翻译包括以下几种:六度空间理论、六度分隔理论、六度分割理论或叫作小世界理论等。
六度空间理论指出:你和任何一个陌生人之间所间隔的人不会超过六个,也就是说,最多通过六个人你就能够认识任何一个陌生人。
这就是六度空间理论,也叫小世界理论。
六度分隔的现象,并不是说任何人与人之间的联系都必须要通过六个层次才会产生联系,而是表达了这样一个重要的概念:任何两位素不相识的人之间,通过一定的联系方式,总能够产生必然联系或关系。
显然,随着联系方式和联系能力的不同,实现个人期望的机遇将产生明显的区别。
小世界现象(又称小世界效应)假设世界上所有互不相识的人只需要很少中间人就能建立起联系。
后来1967年哈佛大学的心理学教授斯坦利·米尔格拉姆(Stanley Milgram,1933年—1984年)根据这概念做过一次连锁信实验,尝试证明平均只需六个人就可以联系任何两个互不相识的美国人。
---------------------------------------------------------------------------------------米尔格伦连锁信实验【实验经过】米尔格伦的研究本来在无特定的市民大众进行,而不是在专业的、需要高度合作的数学界及演艺界进行(参见下)。
精选-什么是六度空间理论-范文资料
什么是六度空间理论“六度空间”理论又称作六度分隔SixDegreesofSeparation理论。
这个理论可以通俗地阐述为:“你和任何一个陌生人之间所间隔的人不会超过六个,也就是说,最多通过六个人你就能够认识任何一个陌生人。
”该理论产生于20世纪60年代,由美国心理学家米尔格伦提出。
六度分隔/六度空间理论你和任何一个陌生人之间所间隔的人不会超过六个,也就是说,最多通过六个人你就能够认识任何一个陌生人。
社会网络其实并不高深,它的理论基础正是“六度分隔”。
而社会性软件则是建立在真实的社会网络上的增值性软件和服务。
有这么一个故事,几年前一家德国报纸接受了一项挑战,要帮法兰克福的一位土耳其烤肉店老板,找到他和他最喜欢的影星马龙·白兰度的关联。
结果经过几个月,报社的员工发现,这两个人只经过不超过六个人的私交,就建立了人脉关系。
原来烤肉店老板是伊拉克移民,有个朋友住在加州,刚好这个朋友的同事,是电影《这个男人有点色》的制作人的女儿在女生联谊会的结拜姐妹的男朋友,而马龙·白兰度主演了这部片子。
你也许认为这只是一个特例,但是1967年哈佛大学心理学教授StanleyMilgram做过的一次连锁信实验,也得出这一结论。
现代版本则是哥伦比亚大学今天用E-mail进行的同样实验。
有科学家甚至从这个现象推演出一个可以评估的数学模型。
你也许不认识克林顿,但是在优化的情况下,你只需要通过六个人就可以结识他。
“六度分隔”说明了社会中普遍存在一些“弱链接”关系,但是却发挥着非常强大的作用。
有很多人在找工作时会体会到这种弱链接的效果。
这个理论用另一种方式阐述就更加惊人:“你和任何一个陌生人之间所间隔的人不会超过六个,也就是说,最多通过六个人你就能够认识任何一个陌生人。
”这个玄妙理论引来了数学家、物理学家和电脑科学家纷纷投入研究,结果发现,世界上许多其他的网络也有极相似的结构。
比如,人际网络和WWW的架构几乎完全一样,通过超文本链接的网络、经济活动中的商业联系网络、生态系统中的食物链,甚至人类脑神经元、以及细胞内的分子交互作用网络,有着完全相同的组织结构。
复杂网络与六度空间理论
复杂网络与六度空间理论复杂网络是指由大量节点和连接构成的网络,其节点之间的关系和连接具有复杂性和多样性。
在复杂网络中,节点可以是人、物品、概念等等,连接可以包括社交关系、贸易往来、物理距离等等。
复杂网络的特点是节点度分布呈现幂律分布,也就是说大多数节点的度数很小,少部分节点的度数很大。
这种特殊的度分布表明了在复杂网络中具有一些重要的节点,被称为“关键节点”。
研究复杂网络的一个重要问题是“六度分隔现象”。
“六度分隔现象”是指在一个网络中,任何两个节点之间的距离不超过六步。
这个现象被称为“六度空间理论”,也被称为“小世界现象”。
这个理论的提出和证明主要得益于数学家米尔格拉姆和社交学家特拉弗斯。
米尔格拉姆通过一项实验来验证这个理论:他先选定了一个美国人作为起点,然后通过让他把一封信转发给他认为能使信件尽早到达目标的其他人,这样链式传递下来,结果发现平均只需要五六次传递就可以把信件传到它应该到达的那个人手中。
特拉弗斯通过研究社交网络发现,人际交往网络如同小世界,任何两个人之间都能用少数几个介系人相连,而且小世界网络能够增加信息的传递效率,提高信息传播的速度和范围。
六度空间理论在信息科学、社会科学和生命科学中有着广泛的应用。
在信息科学中,六度空间理论可以帮助设计局域网、搜索引擎等系统,提高信息的传输与互通性。
在社会科学中,六度空间理论可以用来研究人际关系的紧密度、影响力和传播模式等问题,可以被用来制定社交网络营销策略、广告策略等。
在生命科学中,六度空间理论则可以应用于研究生物分子之间的相互作用和网络关系,研究基因网络的复杂性和关键基因的发现等问题。
总的来说,复杂网络和六度空间理论的研究不仅是一项有趣的科学问题,而且具有重要的现实应用。
通过研究网络的形成、演化和特性,可以更好地理解和利用网络系统,提高信息和资源的利用效率,加强社会和生物领域的交流和合作,从而推动社会和科技的发展。
六度空间的应用——找出两个陌生人之间的关系
六度空间的应用——找出两个陌生人之间的关系社交网络1.2.1 六度空间理论当今最流行的Facebook、Twitter、新浪微博、人人网等社交网络站点的理论基础正是“六度空间理论”。
人们通过社交网络服务提供的人际关系网,在找到老同学、老同事的同时,也可以继续结识新朋友,扩展自己的人脉网络。
六度空间理论(Six Degrees of Separation)是一个数学领域的猜想,又称为六度分割理论,也叫做小世界理论。
该理论指出:任何两个陌生人之间所间隔的人数量不会超过六个。
用一个简单的说法,最多通过六个人间隔,你就能够认识地球上任何一个陌生人。
20世纪20年代,匈牙利作家弗里奇斯·卡林思在他的一篇短篇小说中首次提到:尽管世界很庞大,社会很复杂,但是世界上的所有人,都可以通过至多五个中间人串连起来。
20世纪60年代,美国哈佛大学的心理学教授斯坦利·米尔格兰姆(StanleyMilgram,1933—1984)设计了一次连锁信件实验。
他把信随机发送给住在美国各大城市的一部分居民,信中写有一个波士顿股票经纪人的名字,并要求每名收信人把这封信寄给自己认为是比较接近这名股票经纪人的朋友。
这位朋友收到信后,再把信寄给他认为更接近这名股票经纪人的朋友。
最终,大部分信件都寄到了这名股票经纪人手中,每封信平均经手6.2次到达。
米尔格兰姆基于这个连锁信实验提出了六度分割猜想,尝试证明平均只需六个人就可以联系任何两个互不相识的美国人。
2001年秋天,美国哥伦比亚大学的社会学教授瓦茨(Duncan Watts)组建了一个研究小组,利用电子邮件开始进行六度空间理论的实验。
在一年多时间里,总共有166个国家和地区的6万多名志愿者参与实验。
实验结果证明,一封电子邮件平均被转发6次,即可回到原始发件人那里。
一个经典的关于六度空间理论的故事是:数年前一家德国报纸接受了一项挑战,要帮法兰克福的一位土耳其烤肉店老板,找到他和他最喜欢的影星马龙?白兰度的潜在关联。
六度空间理论及其应用 PDF
1 六度空间理论及其应用一、六度空间理论的背景以及基本定义 1.六度空间理论简述六度空间理论Six Degrees of Separation是一个数学领域的猜想中文翻译包括以下几种六度分割理论、六度空间理论或小世界理论等。
六度空间理论的实质即为你和任何一个陌生人之间所间隔的人不会超过六个也就是说最多通过六个人你就能够认识任何一个陌生人。
这就是六度空间理论也叫小世界理论。
二、六度分割的提出上世纪60年代美国哈佛大学的社会心理学家米尔格伦提出了“六度分割”的理论。
简单来说“六度分割”就是在这个社会里任何两个人之间建立一种联系最多需要六个人不包括这两个人在内无论这两个人是否认识生活在地球上任何偏僻的地方他们之间只有六度分割。
三、六度空间理论应用 1. 六度空间理论的实验基础 1寻找马龙?白兰度的过程有这么一个故事几年前一家德国报纸接受了一项挑战要帮法兰克福的一位土耳其烤肉店老板找到他和他最喜欢的影星马龙?白兰度的关联。
结果经过几个月报社的员工发现这两个人只经过不超过六个人的私交就建立了人脉关系。
原来烤肉店老板是伊拉克移民有个朋友住在加州刚好这个朋友的同事是电影《这个男人有点色》的制作人的女儿在女生联谊会的结拜姐妹的男朋友而马龙?白兰度主演了这部片子。
2耶鲁大学教授设计的连锁信件实验2 20世纪60年代耶鲁大学的社会心理学家米尔格兰姆就设计了一个连锁信件实验。
他将一套连锁信件随机发送给居住在内布拉斯加州奥马哈的160个人信中放了一个波士顿股票经纪人的名字信中要求每个收信人将这套信寄给自己认为是比较接近那个股票经纪人的朋友。
朋友收信后照此办理。
最终大部分信在经过五、六个步骤后都抵达了该股票经纪人。
六度空间的概念由此而来。
这个连锁实验体现了一个似乎很普遍的客观规律社会化的现代人类社会成员之间都可能通过“六度空间” 而联系起来绝对没有联系的A与B是不存在的。
这是一个更典型、深刻而且普遍的自然现象。
那么怎样用数学理论揭示“六度分割现象”这是现代数学领域又一个重大的数学猜想。
六度空间理论分析报告
六度空间理论分析报告六度空间理论又称六度分割理论或小世界理论,你和任何一个陌生人之间所间隔的人不会超过六个(也就是说,最多通过五个中间人你就能够认识任何一个陌生人)涵义:假设世界上所有互不相识的人只需要很少中间人就能建立起联系。
后来1967年哈佛大学的心理学教授斯坦利·米尔格拉姆根据这概念做过一次连锁信件实验,尝试证明平均只需要五个中间人就可以联系任何两个互不相识的美国人。
价值:不管理论如何深奥,“六度分割”和互联网的亲密结合,已经开始显露出商业价值。
人们在近几年越来越关注社会网络的研究,很多网络软件也开始支持人们建立更加互信和紧密的社会关联,这些软件被统称为“社会性软件”(Social Software)。
例如Blog就是一种社会性软件,因为Blog写作所需要的个性和延续性,已使Blogger圈这种典型的物以类聚的生态形式,越来越像真实生活中的人际圈。
据致力于研究社会软件的毛向辉介绍,国外当今更流行的是一种快速交友,或者商业联系的工具,例如LinkedIN。
人们可以更容易在全球找到和自己有共同志趣的人、更容易发现商业机会、更容易达到不同族群之间的理解和交流,等等。
20世纪60年代,美国心理学家米尔格兰姆设计了一个连锁信件实验。
米尔格兰姆把信随机发送给住在美国各城市的一部分居民,信中写有一个波士顿股票经纪人的名字,并要求每名收信人把这封信寄给自己认为是比较接近这名股票经纪人的朋友。
这位朋友收到信后,再把信寄给他认为更接近这名股票经纪人的朋友。
最终,大部分信件都寄到了这名股票经纪人手中,每封信平均经手6.2次到达。
于是,米尔格兰姆提出六度分割理论,认为世界上任意两个人之间建立联系,最多只需要6个人分析应用关系强弱——权值问题我们一生可能会认识千百人,他们有的对我极其重要,有的对我无足轻重,我们联系建立的原因和方法也是千差万别的。
有父母亲属这类生而固有的联系,也有因为地理位置接近发展出来的。
六度空间理论、六度分隔理论
一个数学领域的猜想,名为Six Degrees of Separation,中文翻译包括以下几种:六度分割理论或小世界理论等。
理论指出:你和任何一个陌生人之间所间隔的人不会超过六个,也就是说,最多通过五个中间人你就能够认识任何一个陌生人,见图所示。
这就是六度分割理论,也叫小世界理论。
中文名六度空间理论外文名Six Degrees of Separation别称六度分割理论,小世界理论提出者斯坦利· 米尔格兰姆(Stanley Milgram, 1933-1984应用学科社会科学,心理学适用领域围社交,网络目录基本知识编辑涵义小世界现象(又称小世界效应),也称六度空间理论、六度分隔理论(英文:Six Degrees of Separation)。
假设世界上所有互不相识的人只需要很少中间人就能建立起联系。
后来1967年哈佛大学的心理学教授斯坦利·米尔格拉姆根据这概念做过一次连锁信件实验,尝试证明平均只需要五个中间人就可以联系任何两个互不相识的美国人。
这种现象,并不是说任何人与其他人之间的联系都必须通过六个层六度空间理论示意图《这个男人有点色》的制作人的女儿在女生联谊会的结拜姐妹的男朋友,而马龙·白兰度主演了这部片子。
价值不管理论如何深奥,“六度分割”和互联网的亲密结合,已经开始显露出商业价值。
人们在近几年越来越关注社会网络的研究,很多网络软件也开始支持人们建立更加互信和紧密的社会关联,这些软件被统称为“社会性软件” (Social Software)。
例如Blog就是一种社会性软件,因为Blog写作所需要的个性和延续性,已使Blogger圈这种典型的物以类聚的生态形式,越来越像真实生活中的人际圈。
据致力于研究社会软件的毛向辉介绍,国外当今更流行的是一种快速交友,或者商业联系的工具,例如LinkedIN。
人们可以更容易在全球找到和自己有共同志趣的人、更容易发现商业机会、更容易达到不同族群之间的理解和交流,等等。
六度空间法则
六度空间法则
六度空间法则是一个数学领域的猜想,名为Six Degrees of Separation,中文翻译包括以下几种:六度分割理论或小世界理论等。
理论指出:你和任何一个陌生人之间所间隔的人不会超过六个,也就是说,最多通过6个中间人你就能够认识任何一个陌生人。
这就是六度分割理论,也叫小世界理论。
这种现象,并不是说任何人与其他人之间的联系都必须通过六个层次才会产生联系,而是表达了这样一个重要的概念:任何两个素不相识的人,通过一定的方式,总能够产生必然联系或关系。
显然,随着联系方式和联系能力的不同。
社会网络其实并不高深,它的理论基础正是“六度分割”。
而社会性软件则是建立在真实的社会网络上的增值性软件和服务。
有这么一个故事,几年前一家德国报纸接受了一项挑战,要帮法兰克福的一位土耳其烤肉店老板,找到他和他最喜欢的影星马龙·白兰度的关联。
复杂网络与六度空间理论
复杂网络与六度空间理论复杂网络与六度空间理论是当今网络科学领域的两大重要理论。
复杂网络理论主要研究网络中各种节点之间的复杂连接关系,而六度空间理论则关注于社交网络中人与人之间的熟人关系网络。
这两个理论的提出与发展,深刻地影响着我们对于社交生活和信息传播的理解。
一、复杂网络理论复杂网络是一种拓扑结构复杂、节点之间联系紧密的网络。
在复杂网络中,节点之间的连接关系并非简单的线性关系,而是由复杂的非线性关系所构成。
这些非线性关系导致了网络的复杂性,使得网络结构呈现出高度的分布式性、非均匀性和不稳定性。
复杂网络理论的提出,为我们理解和研究复杂系统提供了新的思路和方法。
1.1 复杂网络的基本结构在复杂网络中,节点之间的连接关系可以用图论中的边来表示。
而边的连接方式则由网络的拓扑结构来决定。
目前,研究人员已经发现了许多种不同的复杂网络结构,如小世界网络、无标度网络、随机网络等。
小世界网络是一种介于规则网络和随机网络之间的网络结构。
在小世界网络中,大部分节点之间的连接关系呈现出较高的局部关联性,而少数节点则通过一些跨度较大的边相互连接。
这种结构使得网络具有短平均路径和较高的聚类系数,从而在信息传播和搜索等方面具有良好的性能。
无标度网络则是一种具有幂律分布的网络结构。
在这种网络中,少数节点拥有大量的连接边,而大多数节点只拥有少量的连接边。
这种结构使得网络具有高度的鲁棒性和抗干扰性,但同时也容易出现寡头效应和信息不对称的问题。
除了不同的拓扑结构外,复杂网络还具有许多独特的功能特征。
其中最重要的一点是小世界性和无标度性。
小世界性意味着网络中的节点之间平均只需要很短的路径就可以建立联系。
这种特性使得信息可以迅速地在网络中传播,并且使得网络具有较高的效率和可达性。
而无标度性则意味着网络中的节点度数分布呈现出幂律分布的形式。
这种分布特性使得网络具有高度的鲁棒性,并且能够更有效地适应外部环境的变化。
复杂网络理论已经被广泛地应用于各种领域。
最新什么是六度空间理论-范文文档
什么是六度空间理论“六度空间”理论又称作六度分隔SixDegreesofSeparation理论。
这个理论可以通俗地阐述为:“你和任何一个陌生人之间所间隔的人不会超过六个,也就是说,最多通过六个人你就能够认识任何一个陌生人。
”该理论产生于20世纪60年代,由美国心理学家米尔格伦提出。
六度分隔/六度空间理论你和任何一个陌生人之间所间隔的人不会超过六个,也就是说,最多通过六个人你就能够认识任何一个陌生人。
社会网络其实并不高深,它的理论基础正是“六度分隔”。
而社会性软件则是建立在真实的社会网络上的增值性软件和服务。
有这么一个故事,几年前一家德国报纸接受了一项挑战,要帮法兰克福的一位土耳其烤肉店老板,找到他和他最喜欢的影星马龙·白兰度的关联。
结果经过几个月,报社的员工发现,这两个人只经过不超过六个人的私交,就建立了人脉关系。
原来烤肉店老板是伊拉克移民,有个朋友住在加州,刚好这个朋友的同事,是电影《这个男人有点色》的制作人的女儿在女生联谊会的结拜姐妹的男朋友,而马龙·白兰度主演了这部片子。
你也许认为这只是一个特例,但是1967年哈佛大学心理学教授StanleyMilgram做过的一次连锁信实验,也得出这一结论。
现代版本则是哥伦比亚大学今天用E-mail进行的同样实验。
有科学家甚至从这个现象推演出一个可以评估的数学模型。
你也许不认识克林顿,但是在优化的情况下,你只需要通过六个人就可以结识他。
“六度分隔”说明了社会中普遍存在一些“弱链接”关系,但是却发挥着非常强大的作用。
有很多人在找工作时会体会到这种弱链接的效果。
这个理论用另一种方式阐述就更加惊人:“你和任何一个陌生人之间所间隔的人不会超过六个,也就是说,最多通过六个人你就能够认识任何一个陌生人。
”这个玄妙理论引来了数学家、物理学家和电脑科学家纷纷投入研究,结果发现,世界上许多其他的网络也有极相似的结构。
比如,人际网络和WWW的架构几乎完全一样,通过超文本链接的网络、经济活动中的商业联系网络、生态系统中的食物链,甚至人类脑神经元、以及细胞内的分子交互作用网络,有着完全相同的组织结构。
复杂网络与六度空间理论
复杂网络与六度空间理论
复杂网络是指由大量节点和节点之间的连接构成的网络系统。
它在各个领域中都有着广泛的应用,比如社交网络、蛋白质网络、互联网等等。
与传统的规则网络(如正方形网格)相比,复杂网络的节点连接方式更为随机和不规则,这使得复杂网络具有许多有趣的特性和行为。
复杂网络的一个重要概念是六度空间理论,它提出了一个有趣的观点:任何两个陌生人之间最多只需要通过六个中间人就能够建立联系。
这个理论最早由美国心理学家斯坦利·米尔格拉姆于20世纪60年代提出,通过他的著名实验,他发现了实际存在的社交网络中的短路径现象。
六度空间理论的核心思想是:“世界是小的”。
在一个复杂网络中,任何两个节点都可以通过一条或多条路径连接起来。
而在现实生活中的社交网络中,我们可能通过朋友、家人、同事等来建立联系。
通过这些联系,我们能够迅速地找到与我们有共同兴趣或目标的人。
这就是六度空间理论的核心观点:我们与其他人之间的距离是如此之近,以至于我们可以通过一个共同的朋友或联系人来建立联系。
六度空间理论在社交网络的研究中起到了非常重要的作用。
它帮助我们了解了人与人之间的联系是如何建立起来的,以及信息、观念和文化是如何在网络中传播的。
通过研究复杂网络和六度空间理论,我们可以更好地理解社会网络的形成和结构,并探索社交网络对人类行为和决策的影响。
六度空间理论还具有许多实际应用的价值。
在社交媒体时代,通过六度空间理论,我们可以更好地理解信息的传播和影响力的扩散。
通过研究社交网络中的核心节点和关键影响者,我们可以设计更加有效的广告、宣传和推广策略。
复杂网络与六度空间理论
复杂网络与六度空间理论随着信息技术的飞速发展和互联网的普及,人们之间的连接和交流变得越来越频繁和紧密。
在这样的背景下,复杂网络的研究成为了社会学、物理学和计算机科学等领域的热门话题。
复杂网络是指由大量节点和连接构成的网络结构,其中节点之间的连接关系呈现出一定的规律性和复杂性。
复杂网络的研究不仅有助于深入了解现实世界中的各种网络结构和现象,也有助于揭示网络中的一些普遍规律和特性。
六度空间理论则是指任意两个人之间的关系最多经过6个中间人就可以联系上。
本文将介绍复杂网络和六度空间理论的相关概念和研究进展,并探讨它们在现实生活中的应用和意义。
一、复杂网络的基本概念1.1 复杂网络的定义复杂网络是由大量节点和连接组成的网络结构,其中节点代表网络中的个体或单位,连接则代表节点之间的关系或联系。
复杂网络的拓扑结构可以是任意的,包括随机网络、小世界网络和无标度网络等。
随机网络是指节点之间的连接关系是随机的,没有明显的规律性;小世界网络是指网络中的节点之间具有较短的平均路径长度和较大的聚集系数;无标度网络则是指网络中的节点度分布呈幂律分布。
复杂网络具有高度的灵活性和鲁棒性,能够适应各种复杂环境和动态变化,因此在生物学、社会学、信息科学等领域得到了广泛的应用和研究。
复杂网络具有许多独特的特性,如小世界效应、无标度特性和社群结构等。
小世界效应表明网络中的任意两个节点之间的平均最短路径长度较短,使得信息传播和交流变得更加高效和便利。
无标度特性表明网络中的节点度分布呈现出幂律分布,即存在少数节点的度数极高,而大多数节点的度数较低。
社群结构则表明网络中的节点之间存在着密集的内部连接,形成了一些子网络或社群。
这些特性使得复杂网络在信息传播、灾害传播、社交网络等方面都具有重要的应用意义和研究价值。
研究复杂网络的方法主要包括图论、统计物理学、计算机模拟和实证研究等。
图论是研究网络结构和性质的基本工具,通过构建网络模型和分析网络特性可以揭示网络的一些规律和特性。
复杂网络与六度空间理论
复杂网络与六度空间理论复杂网络与六度空间理论是当今网络科学领域中的两个重要理论。
复杂网络理论研究网络结构、特性和功能,探讨网络中节点之间的联系和信息传递机制;六度空间理论则研究了网络中节点之间的短路径问题,即人们常说的“六度分隔”现象。
两者在研究网络结构和信息传递规律方面有着密切的联系,本文将介绍复杂网络与六度空间理论的基本概念、发展历程和相关研究成果。
一、复杂网络理论1.1 复杂网络的基本概念复杂网络是由大量节点和连接它们的边组成的网络,具有复杂的结构和功能。
在复杂网络中,节点之间的联系可以是多种多样的,连接关系可以是对称的,也可以是非对称的;节点之间的联系强度也可以是不同的。
复杂网络的结构和功能通常不是简单规则化的,而是呈现出一定的随机性和复杂性。
复杂网络理论的出现,为人们对网络结构和功能的研究提供了新的视角和方法。
20世纪90年代末以来,复杂网络理论逐渐成为物理学、数学、计算机科学、生物学等多个学科领域的热点研究方向。
物理学家、计算机科学家、生物学家等学科的专家们相继提出了很多重要的概念和模型,如小世界网络、无标度网络、社交网络等,在复杂网络的研究中取得了重要进展。
这些成果在社交网络、信息传播、疾病传播等方面有着广泛的应用。
复杂网络理论的研究成果丰富多彩,主要包括网络模型、网络特性、信息传播规律等方面。
网络模型是指用数学或计算机模拟的方法来描述和分析网络结构和功能的模型。
小世界网络和无标度网络是两个著名的网络模型。
小世界网络是由美国社会学家米尔曼和匈牙利数学家斯特罗加兹提出的,它具有短平均路径和较高的集聚系数,能够很好地解释“六度分隔”现象。
无标度网络则是由匈牙利生物物理学家巴拉巴西-阿尔伯提出的,它的节点度数分布呈现幂律分布,即存在少量的枢纽节点,它们具有极高的度数,对网络的结构和功能有着巨大影响。
网络特性是指网络的一些基本性质,如节点度数分布、平均路径长度、集聚系数等。
研究者们通过实验和理论分析发现,许多现实中的复杂网络都具有小世界特性和无标度特性,这些特性对网络的稳定性和信息传播有着重要影响。
SixDegreeofSeparation
SixDegreeofSeparation本博客的代码的思想和图⽚参考:好⼤学慕课浙江⼤学陈越⽼师、何钦铭⽼师的《数据结构》题⽬:六度空间”理论⼜称作“六度分隔(Six Degrees of Separation)”理论。
这个理论可以通俗地阐述为:“你和任何⼀个陌⽣⼈之间所间隔的⼈不会超过六个,也就是说,最多通过五个⼈你就能够认识任何⼀个陌⽣⼈。
”如图1所⽰。
图1 六度空间⽰意图“六度空间”理论虽然得到⼴泛的认同,并且正在得到越来越多的应⽤。
但是数⼗年来,试图验证这个理论始终是许多社会学家努⼒追求的⽬标。
然⽽由于历史的原因,这样的研究具有太⼤的局限性和困难。
随着当代⼈的联络主要依赖于电话、短信、微信以及因特⽹上即时通信等⼯具,能够体现社交⽹络关系的⼀⼿数据已经逐渐使得“六度空间”理论的验证成为可能。
假如给你⼀个社交⽹络图,请你对每个节点计算符合“六度空间”理论的结点占结点总数的百分⽐。
输⼊格式:输⼊第1⾏给出两个正整数,分别表⽰社交⽹络图的结点数NNN(1<N≤1041<N\le 10^41<N≤10输出格式:对每个结点输出与该结点距离不超过6的结点数占结点总数的百分⽐,精确到⼩数点后2位。
每个结节点输出⼀⾏,格式为“结点编号:(空格)百分⽐%”。
输⼊样例:10 91 22 33 44 55 66 77 88 99 10输出样例:1: 70.00%2: 80.00%3: 90.00%4: 100.00%5: 100.00%6: 100.00%7: 100.00%8: 90.00%9: 80.00%10: 70.00%We use two kinds of method to store the graph:adjacnet matrix and adjacnet tableThe code is followed:1/*2 * sixDigreeSeparation.c3 *4 * Created on: 2017年5⽉8⽇5 * Author: ygh6*/7 #include <stdio.h>8 #include <stdlib.h>910/*11 * Algorithm thought:12 * We easily know this question is BFS.13 * we access the first level nodes, then access second level nodes14 * until we reach the sixth level.15 * We let every node to BFS until it reach the sixth level,then we record the total nodes M16 * it can reach, calculate the M/N(The total point the test data gives) .17*/19#define MAX_VERTEX_MUM 1000120 typedef int vertex; /*vertex is the index of point in the graph*/21 typedef int dataType; /*dataType is the data type of vertex */22 typedef int weightType; /*The data type of weight */2324/*25 * Define a data structure to edge26*/27 typedef struct eNode *ptrToENode;28 typedef struct eNode {29 vertex v1, v2;30 weightType wight;31 };32 typedef ptrToENode edge;3334/*35 * Define a data structure for adjacent table node36*/37 typedef struct adjNode *ptrToAdjNode;38 typedef struct adjNode {39 vertex adjVertex; /*The index of vertex in the graph*/40 weightType weight; /*the value of the weight*/41 ptrToAdjNode next; /*A point to point next node*/42 };4344/*45 * Define a data structure for adjacent table head point46*/47 typedef struct vNode *ptrToVNode;48 typedef struct vNode {49 dataType data; /*The value of every vertex,some times it will be ignore*/50 ptrToAdjNode head;/*The point to point the adjacent table first element*/51 } adjList[MAX_VERTEX_MUM];5253/*Define a data structure for graph*/54 typedef struct gNode *ptrToGNode;55 typedef struct gNode {56int vertex_num;57int edge_num;58 adjList g;59 };60 typedef ptrToGNode adjacentTableGraph; /*a graph show by adjacent table*/ 6162/*63 create a graph given the vertex number.64 @param vertexNum The verter number of the graph65 @return a graph with vertex but no any egdgs66*/67 ptrToGNode createGraph(int vertexNum) {68 vertex v;69 adjacentTableGraph graph = (adjacentTableGraph) malloc(70sizeof(struct gNode));71 graph->vertex_num = vertexNum;72 graph->edge_num = 0;73for (v = 1; v <= graph->vertex_num; v++) {74 graph->g[v].head = NULL;75 }76return graph;77 }7879/*80 insert a edge to graph.We will distinct oriented graph and undirected graph81 The e->v1 and e->v2 are the vertexs' indexs in the adjacent table82 @param graph The graph you want to insert edge83 @param e The edge you want to insert the graph84 @param isOriented Whether the graph is oriented graph.If the graph is oriented85 we will set adjacent table graph[v1]->head=v2 and set graph[v1].head=v286 otherwise we only set graph[v1].head=v287*/88void insertEdge(adjacentTableGraph graph, edge e, int isOriented) {89 ptrToAdjNode newNode;90 newNode = (ptrToAdjNode) malloc(sizeof(struct adjNode));91 newNode->adjVertex = e->v2;92 newNode->weight = e->wight;93 newNode->next = graph->g[e->v1].head;94 graph->g[e->v1].head = newNode;95if (!isOriented) {96 newNode = (ptrToAdjNode) malloc(sizeof(struct adjNode));97 newNode->adjVertex = e->v1;98 newNode->weight = e->wight;99 newNode->next = graph->g[e->v2].head;100 graph->g[e->v2].head = newNode;101 }103104 adjacentTableGraph buildGraph() {105 adjacentTableGraph graph;106 edge e;107 vertex v;108int vertex_num;109 scanf("%d", &vertex_num);110 graph = createGraph(vertex_num);111 scanf("%d", &(graph->edge_num));112if (graph->edge_num) {113 e = (edge) malloc(sizeof(struct eNode));114for (v = 0; v < graph->edge_num; v++) {115 scanf("%d %d", &e->v1, &e->v2);116 e->wight = 1;117 insertEdge(graph, e, 0);118 }119 }120return graph;121 }122123/*==============================define a queue=====================================================*/ 124/*define a list to store the element in the queue*/125 typedef vertex elementType;126 typedef struct node *pList;127 typedef struct node {128 elementType element;129struct node *next;130 };131132/*define a queue to point the list*/133 typedef struct node2 *pQueue;134 typedef struct node2 {135 pList front; /*the front point to point the head of the list*/136 pList rear; /*the rear point to point the rear of of the list*/137 };138139/*create a empty list to store the queue element*/140 pList createEmptyList() {141 pList list;142 list = (pList) malloc(sizeof(struct node));143 list->next = NULL;144return list;145 }146/*create a empty queye*/147 pQueue createEmptyQueue() {148 pQueue queue = (pQueue) malloc(sizeof(struct node2));149 queue->front = NULL;150 queue->rear = NULL;151return queue;152 }153154/*155 Wether the queue is empty156 @param queue The queue need to adjust157 @return If the queue is null,return 1 otherwise return 0158*/159int isQueueEmpty(pQueue queue) {160return (queue->front == NULL);161 }162163/*164 Add a element to a queue,If the queue is null,we will create a new queue165 @parama queue The queue we will add elememt to166 @prama element The element we will add to queue167*/168void addQueue(pQueue queue, elementType element) {169if (isQueueEmpty(queue)) {170 pList list = createEmptyList();171 list->element = element;172 queue->front = queue->rear = list;173 } else {174 pList newNode = (pList) malloc(sizeof(struct node));175 newNode->element = element;176 newNode->next = queue->rear->next;177 queue->rear->next = newNode;178 queue->rear = newNode;179 }180 }181182/*183 delete a element from a queue184 @param queue The queue will be deleted a element185 @return The element has been deleted187 elementType deleteEleFromQueue(pQueue queue) {188if (isQueueEmpty(queue)) {189 printf("the queue is empty,don't allow to delete elemet from it!"); 190 } else {191 pList oldNode = queue->front;192 elementType element = oldNode->element;193if (queue->front == queue->rear) {194 queue->rear = queue->front = NULL;195 } else {196 queue->front = queue->front->next;197 }198free(oldNode);199return element;200 }201 }202203/*204 * Initialize a visited array that make them all to zero205*/206void initVisited(adjacentTableGraph graph, int *visited) {207int i;208for (i = 0; i <= graph->vertex_num; i++) {209 visited[i] = 0;210 }211 }212213/*214 Breadth first search215 @param graph The graph stored by the adjacent table216 @param startPoint The point we start search217 @param visited A array to tag the elemeent whether has been visited 218*/219int BFS(adjacentTableGraph graph, vertex startPoint, int *visited) { 220 ptrToAdjNode p;221int count = 0;222int level = 0;223int last = startPoint, tail;224 visited[startPoint] = 1;225 count++;226 pQueue queue = createEmptyQueue();227 addQueue(queue, startPoint);228while (!isQueueEmpty(queue)) {229 elementType element = deleteEleFromQueue(queue);230for (p = graph->g[element].head; p; p = p->next) {231if (visited[p->adjVertex] == 0) {232 visited[p->adjVertex] = 1;233 addQueue(queue, p->adjVertex);234 count++;235 tail = p->adjVertex;236 }237 }238if (last == element) {239 level++;240 last = tail;241 }242if (level == 6) {243return count;244 }245 }246return count;247 }248249/*250 *Prove the six degree of separation251*/252void SDS(adjacentTableGraph graph) {253 vertex v;254int count;255int visited[graph->vertex_num+1];256float result;257for (v = 1; v <= graph->vertex_num; v++) {258 initVisited(graph, visited);259 count = BFS(graph, v, visited);260 result = (float)((float)count / graph->vertex_num)*100;261 printf("%d: %0.2f", v, result);262 printf("%%");263 printf("\n");264 }265 }266267int main() {268 adjacentTableGraph graph = buildGraph();269 SDS(graph);Adjacnet Table1/*2 * sixDigreeSeparation.c3 *4 * Created on: 2017年5⽉9⽇5 * Author: ygh6*/7 #include <stdio.h>8 #include <stdlib.h>910/*11 * Algorithm thought:12 * We easily know this question is BFS.13 * we access the first level nodes, then access second level nodes14 * until we reach the sixth level.15 * We let every node to BFS until it reach the sixth level,then we record the total nodes M16 * it can reach, calculate the M/N(The total point the test data gives) .17*/1819#define MAX_VERTEX_NUM 10001 /*define the max number of the vertex*/20#define INFINITY 65535 /*define double byte no negitive integer max number is 65535*/2122 typedef int vertex; /*define the data type of the vertex*/23 typedef int weightType; /*define the data type of the weight*/24 typedef char dataType; /*define the data type of the vertex value*/2526/*define the data structure of the Edge*/27 typedef struct eNode *ptrToENode;28 typedef struct eNode {29 vertex v1, v2; /*two vertex between the edge <v1,v2>*/30 weightType weight; /*the value of the edge's weigth */31 };32 typedef ptrToENode edge;3334/*define the data structure of the graph*/35 typedef struct gNode *ptrToGNode;36 typedef struct gNode {37int vertex_number; /*the number of the vertex*/38int edge_nunber; /*the number of the edge*/39 weightType g[MAX_VERTEX_NUM][MAX_VERTEX_NUM]; /*define the adjacent matrix of graph*/40 dataType data[MAX_VERTEX_NUM]; /*define the dataType array to store the value of vertex*/41 };42 typedef ptrToGNode adjacentMatrixGraph; /*a graph show by adjacent matrix*/4344/*45 create a graph given the vertex number.46 @param vertexNum The verter number of the graph47 @return a graph with vertex but no any egdgs48*/49 adjacentMatrixGraph createGraph(int vertexNum) {50 vertex v, w;51 adjacentMatrixGraph graph;52 graph = (adjacentMatrixGraph) malloc(sizeof(struct gNode));53 graph->vertex_number = vertexNum;54 graph->edge_nunber = 0;55/*initialize the adjacent matrix*/56for (v = 1; v <= graph->vertex_number; v++) {57for (w = 1; w <= graph->vertex_number; w++) {58 graph->g[v][w] = 0;59 }60 }6162return graph;63 }6465/*66 insert a edge to graph.We will distinct oriented graph and undirected graph67 @param graph The graph you want to insert edge68 @param e The edge you want to insert the graph69 @param isOriented Whether the graph is oriented graph.If the graph is oriented70 we will set adjacent matrix [n][m]=[m][n]=edge's weight,else we only set71 the adjacent matrix [n][m]=edge's weight72*/73void inserEdge(adjacentMatrixGraph graph, edge e, int isOriented) {74 graph->g[e->v1][e->v2] = e->weight;75if (!isOriented) {76 graph->g[e->v2][e->v1] = e->weight;7980/*81 construct a graph according user's input8283 @return a graph has been filled good84*/85 adjacentMatrixGraph buildGraph() {86 adjacentMatrixGraph graph;87 edge e;88int vertex_num, i;89 scanf("%d", &vertex_num);90 graph = createGraph(vertex_num);91 scanf("%d", &(graph->edge_nunber));92if (graph->edge_nunber) {93 e = (edge) malloc(sizeof(struct eNode));94for (i = 0; i < graph->edge_nunber; i++) {95 scanf("%d %d", &e->v1, &e->v2);96 e->weight = 1;97 inserEdge(graph, e, 0);98 }99 }100101return graph;102103 }104105/*=====================define a queue used BFS================================*/ 106/*107 * The elementType is element which the following list store.108*/109 typedef int elementType;110111/*112 * Define a list to store the queue elements113*/114 typedef struct node1 *pList;115 typedef struct node1 {116 elementType element;117struct node1 *next;118 };119120/*121 * Define a queue used to BFS122*/123 typedef struct node2 *pQueue;124 typedef struct node2 {125 pList font;126 pList rear;127 };128129/*130 * Create a empty list131*/132 pList createEmptyList() {133 pList list = (pList) malloc(sizeof(struct node1));134 list->next = NULL;135return list;136 }137138/*139 * Create a empty queue140*/141 pQueue createEmptyQueue() {142 pQueue queue = (pQueue) malloc(sizeof(struct node2));143 queue->font = queue->rear = NULL;144return queue;145 }146147/*148 * Whether the queue is empty149*/150int isQueueEmpty(pQueue queue) {151return (queue->font == NULL);152 }153154/*155 * Insert a element to a queue156*/157void insertQueue(pQueue queue, elementType element) {158159if (isQueueEmpty(queue)) {160 pList list = createEmptyList();162 queue->font = queue->rear = list;163 } else {164 pList newNode = (pList) malloc(sizeof(struct node1));165 newNode->element = element;166//newNode->next = queue->rear->next;167 queue->rear->next = newNode;168 queue->rear = newNode;169 }170 }171172 elementType deleteElementQueue(pQueue queue) {173if (isQueueEmpty(queue)) {174return -1;175 } else {176if (queue->font == queue->rear) {177 pList temp = queue->font;178 elementType elememt = temp->element;179free(temp);180 queue->font = queue->rear = NULL;181return elememt;182 } else {183 pList temp = queue->font;184 elementType elememt = temp->element;185free(temp);186 queue->font = queue->font->next;187return elememt;188 }189190 }191192 }193194/*195 *Breath first search a graph which store in form of adjacent matrix 196 *@param graph The graph stored with adjacent matrix197 *@param startPoint The start point we start search198 *@param visited A array to tag whether element has been accessed 199*/200int BFS(adjacentMatrixGraph graph, vertex startPoint, int *visited) { 201 vertex v, w;202/*203 * count:to record the total nodes the start point can access204 * level:to record the level the current node accessed205 * tail:to record the every node's index, every access it will be flush 206 * last:to record last lever latest accessed node,we can use it to 207 * let level add.208*/209int count = 0;210int level = 0, last = startPoint;211int tail = last;212 pQueue queue = createEmptyQueue();213 count++;214 visited[startPoint] = 1;215 insertQueue(queue, startPoint);216while (!isQueueEmpty(queue)) {217 w = deleteElementQueue(queue);218for (v = 1; v <= graph->vertex_number; v++) {219if (graph->g[w][v] != 0 && visited[v] == 0) {220 visited[v] = 1;221 insertQueue(queue, v);222 tail = v;223 count++;224 }225 }226if (w == last) {227 level++;228 last = tail;229 }230231if (level == 6) {232return count;233 }234 }235return count;236237 }238239/*240 * Initialize a visited array that make them all to zero241*/242void initVisited(adjacentMatrixGraph graph, int *visited) {243int i;244for (i = 1; i <= graph->vertex_number; i++) {246 }247 }248249/*250 *Prove the six degree of separation251 *@param graph A graph prepared252*/253void SDS(adjacentMatrixGraph graph) {254int visited[graph->vertex_number + 1];255 vertex v;256int count;257float result;258for (v = 1; v <= graph->vertex_number; v++) {259 initVisited(graph, visited);260 count = BFS(graph, v, visited);261 result = (float) ((float) count / graph->vertex_number * 100);262 printf("%d: %0.2f", v, result);263 printf("%%");264 printf("\n");265 }266 }267268int main() {269 adjacentMatrixGraph graph = buildGraph();270 SDS(graph);271return0;272 }Adjacnet MatrixFrom PTA test result,we find the adjacent matrix effective is more high than adjacent table.But the adjacent matrix take more memory.Is it use spaceto swap the timethe test result is follow。
六度空间模式详解
六度空间模式详解六度空间模式是一种网络结构的理论模型,它最早由斯坦利·米洛尔曼和菲利普·波尔曼在1998年提出。
其基本假设是,在社交网络中任意两个人之间最多只需要经过六个人,就可以将它们联系起来。
由此引申出的“六度分隔理论”(Six Degrees of Separation)在人类关系、社交媒体、谣言传播等研究领域中被广泛应用。
六度空间模式在现代社会的发展中,也具有重要的作用。
它可以指导我们如何有效地构建社交网络,如何更好地推广产品和服务。
具体来说,六度空间模式可以帮助我们理解以下几个方面:一、网络的构建在六度空间模式中,每个人都有若干个邻居,这些邻居彼此之间又有联系。
这种联系可以是家庭、亲友、同事、老师、学生、邻居、同乡、同学等等。
这些联系可以在社交网络中进行衡量和分析。
社交网络的构建应该考虑人们的兴趣、背景、职业等多种因素,并加以分类、分层,使得人群可以按照自己的需求找到与之联系的对象。
二、信息传播根据六度空间模式,人与人之间的联系构成了庞大的社交网络,这个社交网络非常有利于信息的传播。
例如,在社交网络平台上,如果一篇文章能被关注的人看到,那么这篇文章就有可能在短时间内像病毒一样传播开来。
六度空间模式提醒我们,如果想把一则消息快速传播,那么只需要找到几个“关键节点”,把消息发给他们,就有可能迅速扩散开来。
三、病毒营销病毒营销是指利用社交网络等方式制造有趣或有震撼力的信息或产品广告,让人传播这个信息或产品的营销策略。
如果这个信息或产品的创意有足够的吸引力,就能让人们分享,转发,从而形成传播的病毒效应。
根据六度空间模式,只需要通过很少的人,就可以将这种病毒式的传播在社交网络中不断扩大。
四、谣言传播在社交网络中,谣言也可以像病毒一样迅速传播。
ただし,谣言传播可能会对社会造成不良影响。
通过六度空间模式,我们可以预测和研究谣言的传播规律,更好地防止谣言的传播,维护社会稳定。
总结来说,六度空间模型是一个优秀的社会学理论,它可以帮助我们更好地理解人和人之间的联系,构建更加有效的社交网络。
六度空间原理
六度空间原理
有一个数学领域的猜想,名为Six Degrees of Separation,中文翻译有以下几种:六度分割理论、六度空间理论以及小世界理论等。
你和任何一个陌生人之间所间隔的人不会超过六个,也就是说,最多通过六个人你就能够认识任何一个陌生人。
这就是六度空间理论,也叫小世界理论。
六度分隔的现象,并不是说任何人与人之间的联系都必须要通过六个层次才会产生联系,而是表达了这样一个重要的概念:任何两位素不相识的人之间,通过一定的联系方式,总能够产生必然联系或关系。
显然,随着联系方式和联系能力的不同,实现个人期望的机遇将产生明显的区别。
复杂网络与六度空间理论
复杂网络与六度空间理论复杂网络(complex network)是一种由大量节点(nodes)和连接节点的边(edges)构成的网络结构。
在复杂网络中,节点可以表示各种各样的实体,如人物、社会、互联网等,而边则表示节点之间的关系或连接。
复杂网络具有非常复杂的拓扑结构,可以呈现出许多有趣的特性和现象。
六度空间理论(six degrees of separation)是一种社会学概念,指的是人与人之间的联系可以通过不超过六个中间人(即“朋友的朋友的朋友……”)建立起来。
这个概念最早由美国小说家米尔顿·叶达曼在他的一部小说中提出,并在后来被社会心理学家斯坦利·米尔格拉姆用实验证实。
复杂网络和六度空间理论之间存在着密切的关系。
复杂网络的拓扑结构决定了节点之间的连接方式,而这种连接方式可以影响到信息的传播和交流。
六度空间理论正是基于这种连接方式的观察和猜测,认为人们之间的联系是通过短路径连接的。
复杂网络的研究主要关注其拓扑结构的性质和特征。
复杂网络中节点的度分布通常呈现出幂律分布(power-law distribution),即少数节点的度非常高,而大多数节点的度非常低。
这意味着少数节点具有非常重要的地位和影响力,也被称为“关键节点”(key nodes)。
这些关键节点的存在,使得信息和影响可以在网络中快速传播,从而实现六度空间的存在。
除了度分布,复杂网络还有其他一些重要的特性。
聚类系数(clustering coefficient)用于描述网络中节点之间的聚集程度,表示节点的朋友之间是否也是朋友。
短路径长度(average path length)用于描述网络中节点之间的平均距离,从而量化网络的“小世界性”(small-worldness)。
小世界性是指,虽然网络规模巨大,但节点之间的距离相对较短,可以通过很少的中间节点快速到达目标节点。
复杂网络理论的研究不仅仅局限于社交网络,也包括物理网络、生物网络等。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
六度空间理论有一个数学领域的猜想,名为Six Degrees of Separation,中文翻译包括以下几种:六度分隔理论、六度空间理论以及小世界理论等。
六度空间理论指出:你和任何一个陌生人之间所间隔的人不会超过六个,也就是说,最多通过六个人你就能够认识任何一个陌生人。
这就是六度空间理论,也叫小世界理论。
六度分隔的现象,并不是说任何人与人之间的联系都必须要通过六个层次才会产生联系,而是表达了这样一个重要的概念:任何两位素不相识的人之间,通过一定的联系方式,总能够产生必然联系或关系。
显然,随着联系方式和联系能力的不同,实现个人期望的机遇将产生明显的区别。
社会网络其实并不高深,它的理论基础正是“六度分隔”。
而社会性软件则是建立在真实的社会网络上的增值性软件和服务。
有这么一个故事,几年前一家德国报纸接受了一项挑战,要帮法兰克福的一位土耳其烤肉店老板,找到他和他最喜欢的影星马龙·白兰度的关联。
结果经过几个月,报社的员工发现,这两个人只经过不超过六个人的私交,就建立了人脉关系。
原来烤肉店老板是伊拉克移民,有个朋友住在加州,刚好这个朋友的同事,是电影《这个男人有点色》的制作人的女儿在女生联谊会的结拜姐妹的男朋友,而马龙·白兰度主演了这部片子。
1967年,哈佛大学的社会心理学家米尔格兰姆 (Stanley Milgram)就设计了一个连锁信件实验。
他将一套连锁信件随机发送给居住在内布拉斯加州奥马哈的160个人,信中放了一个波士顿股票经纪人的名字,信中要求每个收信人将这套信寄给自己认为是比较接近那个股票经纪人的朋友。
朋友收信后照此办理。
最终,大部分信在经过五、六个步骤后都抵达了该股票经纪人。
六度空间的概念由此而来。
这个连锁实验,体现了一个似乎很普遍的客观规律:社会化的现代人类社会成员之间,都可能通过“六度空间” 而联系起来,绝对没有联系的A与B是不存在的。
这是一个更典型、深刻而且普遍的自然现象。
那么,怎样用数学理论揭示“六度分隔现象”?这是现代数学领域又一个重大的数学猜想。
这有点儿像地图的邻接色问题,只不过邻接色问题是通过数学方法可以精确证明的(即最多只需要使用4种颜色即可),而六度分隔理论我个人估计只能通过不完全归纳来形成假设了吧,社会的模型还是比二维地图模型要复杂莫测得多。
不管理论如何深奥,“六度分隔”和互联网的亲密结合,已经开始显露出商业价值。
人们在近几年越来越关注社会网络的研究,很多网络软件也开始支持人们建立更加互信和紧密的社会关联,这些软件被统称为“社会性软件” (Social Software)。
例如Blog就是一种社会性软件,因为Blog写作所需要的个性和延续性,已使Blogger圈这种典型的物以类聚的生态形式,越来越象真实生活中的人际圈。
据致力于研究社会软件的毛向辉介绍,国外现在更流行的是一种快速交友,或者商业联系的工具,例如LinkedIN。
人们可以更容易在全球找到和自己有共同志趣的人、更容易发现商业机会、更容易达到不同族群之间的理解和交流,等等。
社会性软件的定义很多,而且还都在不断的发展演变过程之中。
它的核心思想其实是一种聚合产生的效应。
人、社会、商业都有无数种排列组合的方式,如果没有信息手段聚合在一起,就很容易损耗掉。
WWW成功地将文本、图形聚合在一起,使互联网真正走向应用;即时通讯又将人聚合在一起,产生了ICQ这样的工具。
然而这还是虚拟的,虚拟虽然是网络世界的一种优势,但是和商业社会所要求的实名、信用隔着一条鸿沟。
通过熟人之间,通过“六度分隔”产生的聚合,将产生一个可信任的网络,这其中的商业潜能的确是无可估量的。
聚合作为社会研究的对象也具有实际价值。
康奈尔大学的科学家开发了一个算法,能够识别一篇文章中某些文字的“突发”增长,而这些“突发”增长的文字可以用来快速识别最新的趋势和热点问题,因此能够更有效地筛选重要信息。
过去很多搜索技术都采用了简单计算文字 /词组出现频率的方法,却忽略了文字使用增加的速率。
如果这种方法应用到广告商,就可以快速找到潜在的需求风尚。
社会、网络、地域、商业、Blog,这些词汇你也许都听麻木了。
然而一旦那些预见先机的人找到聚合它们的商业价值,被改变的绝不仅仅是网络世界。
六度虽然是个社会学的理论,但是实际上它更像一个数学理论,很多人说六度和四色问题有异曲同工之妙。
在我看来,六度理论很好的阐述了在一个网状结构(我们的人类社会)下,不同节点之间的联系和连接关系,然而它并不完整,并不足以指导我们的实践。
关系的强弱——权值问题首先六度肯定了人与人之间的普遍联系,但是没有对这种联系作定量分析。
我们一生可能会认识千百人,他们有的对我极其重要,有的对我无足轻重,我们联系的建立的原因和方法也是千差万别,有父母亲属这类生而固有的联系,也有因为地理位置接近发展出来的,如邻里关系,还有因为共同学习生活而发展出来的同学、同事关系。
六度理论中只把他们统统归结于联系,没有强弱之分。
在网状结构里面,人与人的关系,需要加权处理,在这里,六度是残缺的。
到达和建立联系的区别——目的和结果问题20世纪60年代,耶鲁大学的社会心理学家米尔格兰姆 (Stanley Milgram)就设计了一个连锁信件实验。
他将一套连锁信件随机发送给居住在内布拉斯加州奥马哈的160个人,信中放了一个波士顿股票经纪人的名字,信中要求每个收信人将这套信寄给自己认为是比较接近那个股票经纪人的朋友。
朋友收信后照此办理。
最终,大部分信在经过五、六个步骤后都抵达了该股票经纪人。
六度分割(也叫“六度空间”)的概念由此而来。
这个故事很多六度的爱好者都知道,并奉为圣经。
但是我请大家注意这个故事和我们现在流行的SNS网站的理念的重要差别。
在这个故事里面,信到达了波士顿股票经纪人手里面没错,但是请注意整个过程中,每个人的朋友关系都没有发生改变。
对,这点很重要,这个故事里面传递的信息,而我们现在看到的SNS网站希望在用户之间传递的是什么呢?是联系方式是朋友关系。
说到这里想提一下前面提到的火炬的买车票的实验,在那个实验里面,传递的实际上也是信息,而不是朋友关系。
传递的成本和激励——阻尼问题在Stanley Milgram的实验和火炬的实验里面,都没有任何的花费,或者说看起来成本为0。
但是是不是真的成本为0呢?每个人传递一下信件花费极低,改下msn名字更是没有成本,然而那些人肯这么做,其实是看着朋友的面子上,所以这里花费的成本实际是什么呢?是中国人说的人情债,所谓的关系成本。
没有人喜欢一个整天都要人帮忙这帮忙那的人,人情债和金钱债一样,背了就一定要还,这就是传递中的成本问题。
火炬的火车实验后,我们一直在想这个问题,今天我们急需车票,可以请朋友们改他们的名字,但是我们能不能天天都用这种方法来找人帮忙呢?今天买车票,明天买球票,也许一次两次可以,次数多了,朋友们肯定会觉得厌烦,甚至放弃你这个朋友。
Gmail的邀请方式直至今日仍被很多人称颂,刚刚出现的时候,一个邀请甚至可以卖到60美金。
很多人惊呼这是最伟大的营销。
然而,到了今天,很多人的邀请已经变得无法送出去。
为什么呢?因为一开始的时候 Gmail是稀缺物品,所以价值高昂,加上Gmail带有Google的强势品牌和高度用户认同感,所以就更加被追捧,拥有Gmail成了荣誉的象征。
这是这种荣誉成为了Gmail 邀请在六度网络中疯狂传播的激励。
然而随着Gmail的高度普及,这种荣誉感逐步下降,最终降低了激励,从来使传播陷入了停滞状态。
阻尼是好还是坏?没有阻尼我们可以给任何人发送信息,每个 SNS网站都在宣扬你只需要六度就可以认识克林顿可以认识盖茨,但是有几个人真的去认识他们了?是因为他们不值得认识么?不是,是因为联系虽然看起来只有六度,然而每度的阻尼都有可能都是无法跨越的。
但是你不要悲观,如果没有阻尼也许你会更加不爽!LLF算过“举例来说吧。
假设每个人有30个朋友,信息经过六度是30的6次方 =729000000,数量足够到达一个能够覆盖所有可能的人的级别。
”,如果六度的连接没有任何的阻尼,估计我们每天收到的来自六度好友的各种各样的信息就会让我们的脑袋爆炸。
在我们的生活里面,一个身份越高的人,越有名的人他就会有越多的好友,于是他也就越不想随便拓展自己的关系圈子,因为他们往往不胜其扰。
前些日子的600演艺名人联系方式泄露事件就是一个例子,本来我们作为社会一分子都和这600名人有着六度的联系,然而某天因为他们的联系方式被公开,他们和我们的联系立刻被扁平化变成了一度。
一瞬间,阻尼消失了,你可以随便打电话给那英、田震了,你不是想跟冯小刚聊电影么?你现在可以打电话了。
但是,我们只能说结果这成了一场灾难,很多名人诉苦,说很多人打电话到他们的家里,说了句“你是XXX么?我很喜欢你!”然后就挂了电话。
很多人不堪其扰停了机,甚至换了号。
这场灾难对我们这些局外人来说是一个很有意思的故事,很有趣的一点在于此,一旦这些名人和大众的关系扁平化后(六度变成一度),他们对大众的价值也开始流失,大众们只能打电话过去,问一声,然后炫耀自己给明星打过电话,仅此而已。
这个巨大的扁平化工程并没有扩展追星族们的朋友圈子,他们仍旧离那些明星很远……朋友的朋友是朋友的假设——关系的方向和传递问题SNS网站最爱说的一句话也许就是“朋友的朋友是朋友”,然而那天我跟LLF在Msn聊天的时候就说过这个问题,我认识的某A的朋友某B是我非常反感的一个家伙,而且我的朋友里面还有个人某C对那个家伙某B更加痛恨。
所以在现在的SNS服务里面我是不敢把某A和某C同时引入的,因为他们同时引入后,很可能的结果是某B和某C建立联系后,开始吵架。
六度分割上世纪60年代,美国哈佛大学的社会心理学家米尔格伦提出了“六度分隔”(Six Degrees of Separation)的理论。
简单来说,“六度分隔”就是在这个社会里,任何两个人之间建立一种联系,最多需要六个人(不包括这两个人在内),无论这两个人是否认识,生活在地球上任何偏僻的地方,他们之间只有六度分隔。