为了找到能够生成无标度和小世界网络的算法的非常基本的版本,我在网上搜了很多。不幸的是,我的搜索没有给出结果。生成无标度和小世界网络
我不需要一些非常复杂的东西。只需要解释如何生成所需网络以及算法如何工作。
我非常了解如何生成Erdos-Renyi图,但是我无法找到类似于无标度和小世界的情况。
伪代码,以及C/C++,Maltab,Java和Python对我来说都很好。
为了找到能够生成无标度和小世界网络的算法的非常基本的版本,我在网上搜了很多。不幸的是,我的搜索没有给出结果。生成无标度和小世界网络
我不需要一些非常复杂的东西。只需要解释如何生成所需网络以及算法如何工作。
我非常了解如何生成Erdos-Renyi图,但是我无法找到类似于无标度和小世界的情况。
伪代码,以及C/C++,Maltab,Java和Python对我来说都很好。
我一无所知无标度或小世界网络(仅听说过的名字),但快速谷歌搜索导致我下面的维基百科页面:
https://en.wikipedia.org/wiki/Barab%C3%A1si%E2%80%93Albert_model
的Barabási - 阿尔伯特(BA)模型是用于使用优先连接机构
https://en.wikipedia.org/wiki/Watts_and_Strogatz_model
产生随机无标度网络的算法0瓦茨-斯托加茨模型是随机图形生成模型 产生图形与小世界的特性,包括短平均 路径长度和高聚类
这两种算法是公descriped在这些维基百科页面。
。无论如何,算法的描述缺乏一些信息。例如,BA的算法开始于“网络以$ m_0 $个节点的初始连接网络开始。”什么意思是连接网络?任何网络?完全连接的网络?只有一个连接组件的网络? –
这并不重要。你通常采取一个小派。但最终,经过大量的迭代后,这不会对最终网络产生重大影响。唯一的约束是每个节点至少应该有一个邻居,否则它将永远不会被选中来附加新节点,并且它将保持孤立。顺便说一句,如果你发现维基百科的文章不完整,只需提交他们引用的原始论文。 –
对不起,如果这不是你想要的,但在Netlogo中,这两种类型的网络模型库都有一个非常好的例子。
的代码生成的NetLogo V A小世界网络5:
to setup_network
if network = "small-world" [
let max-who 1 + max [who] of turtles
let sorted sort ([who] of turtles)
foreach sorted[ ?1 ->
ask turtle ?1 [
let i 1
repeat number-of-links [
create-link-with turtle ((?1 + i) mod max-who)
set i i + 1
]
]
]
repeat round (rewire-prop * number-of-agents) [
ask one-of turtles [
ask one-of my-links [die]
create-link-with one-of other turtles with [link-with myself = nobody]
]
]
]
if display-network? [
layout-circle (sort turtles) (max-pxcor - 1)
display
]
end
Im肯定模型库还可以帮助你。
非常感谢,我会检查这个。 –
+1对于某些定义我不知道存在。为什么不先生成节点,然后以某种概率生成边?照顾无标度。然后,通过一些(随机?)阈值,如果节点相距太远,则添加边以使节点“更靠近”。这应该很好地解决小世界 –