生成无标度和小世界网络

时间:2015-06-22 11:16:18

标签: algorithm graph graph-algorithm

为了找到能够生成无标度和小世界网络的非常基本的算法版本,我在谷歌上搜索了很多。不幸的是,我的搜索没有给出结果。

我不需要非常复杂的东西。只需要解释如何生成所需网络的内容以及算法为何如此工作。

我非常清楚如何生成Erdos-Renyi图,但我无法找到类似于无标度和小世界的情况。

伪代码,以及C / C ++,Maltab,Java和Python对我都有好处。

2 个答案:

答案 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

我确定模型库可以为您提供进一步的帮助。