为了找到能够生成无标度和小世界网络的非常基本的算法版本,我在谷歌上搜索了很多。不幸的是,我的搜索没有给出结果。
我不需要非常复杂的东西。只需要解释如何生成所需网络的内容以及算法为何如此工作。
我非常清楚如何生成Erdos-Renyi图,但我无法找到类似于无标度和小世界的情况。
伪代码,以及C / C ++,Maltab,Java和Python对我都有好处。
答案 0 :(得分:2)
我对无标度或小世界网络一无所知(只听过名字),但是快速的谷歌搜索引导我进入以下维基百科页面:
https://en.wikipedia.org/wiki/Barab%C3%A1si%E2%80%93Albert_model
Barabási-Albert(BA)模型是一种使用优先附着机制生成随机无标度网络的算法
https://en.wikipedia.org/wiki/Watts_and_Strogatz_model
Watts-Strogatz模型是随机图生成模型 生成具有小世界属性的图形,包括短平均值 路径长度和高聚类
这些算法在这些维基百科页面中都有很好的描述。
答案 1 :(得分:1)
很抱歉,如果这不是您想要的,但在Netlogo中,两种类型的网络模型库都有一个很好的例子。
在netlogo v.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
我确定模型库可以为您提供进一步的帮助。