优先附着:以一定的概率分配边缘

时间:2017-06-29 22:43:51

标签: netlogo social-networking agent-based-modeling

我正在尝试在Netlogo中创建一个带有可调伽玛参数的优先附件网络。我发布了一个更普遍的问题here,但我觉得我不完全理解优惠附件模型背后的机制,所以我会问一些其他问题。我对网络有以下定义:

“首先,根据分布p(k)αk^-γ为每个人分配一些关系,其中k是特定个体所具有的关系数。然后,随机地在个体之间建立联系,从在第一步中分配了最多关系的那些开始,直到在第一步中分配的所有连接都被考虑,或者在不增加每人的指定连接数的情况下不能进行其他连接。“

这个定义似乎表明首先必须创建节点,然后必须分配关系数,之后必须将这些关系定向到其他节点。如果我们看一下netlogo模型库中的优先附件模型,那么过程就大不相同了。即,顺序地创建节点。节点根据现有关系的数量选择要链接的人,就好像他们是彩票一样。

所以目前我正在试图找出使用可调伽玛创建网络的最佳方法。为了使第一个描述的过程工作,我应该创建一组节点,然后分配给定分布的关系数。这是怎么做到的?

谢谢!

编辑:

基于@JenB给出的答案。我想确保我正确理解它。如果我有以下代码:

to create-new-nodes [n]
    clear-all
    ask patches [ set pcolor white ]
    create-nodes n [
    set color red
    set shape "circle"
  ]

    reset-ticks
end

to wire-pref-attach
  create-new-nodes num-nodes
  set friends [;;distribution should be included here?]
  ask nodes
[ let new-edges friends - count my-edges
  if new-edges > 0
  [ let candidates other nodes with [ count my-edges < friends ]
    create-edges-with n-of min (list new-edges count candidates) candidates
    [ hide-link ]
  ]
]
  radial-layout
end

set friends命令应该包含可调伽玛的分布,对吗?这是如何实现的?通过使用加权rnd扩展?另外,我仍然不完全理解 A m 的含义。有人愿意用最基本的语言解释吗?我知道 A 被定义为固有的吸引力,m是新节点创建的边数,但这些参数的高(低)值如何转化为网络结构的结果?

EDIT2:

从其他来源收到建议,使用以下“黑客”来正确编程网络算法。代码应具有以下结构:

  1. 设k_i为节点i的程度
  2. 让变量D(分母)为所有(k_i)^(gamma)的总和
  3. 迭代节点;对于每个节点i,如果random-float 1.0&lt; = k_i ^ gamma / D
  4. ,则创建边

    这被认为是一种黑客攻击,因为该模型每回合平均创建一个链接。它不会每回合创建一个链接。

    我试图通过以下方式对其进行编码:

    to wire-pref-attach
      create-new-nodes num-nodes
      let connect? False
      let denominator (count nodes * k_i ^ gamma) ;;HOW TO DETERMINE K_i? 
      let numerator (k_i ^ gamma)
      ask other nodes [
        if (numerator / denominator) >= random-float 1.0 [
         set connect? true
          create-link-from myself
        ]
      ]
        radial-layout
    end
    

    但是,我仍然不明白我应该如何确定k_i以及它如何与下面评论中提到的变量m和A相关。

1 个答案:

答案 0 :(得分:2)

该'定义'是用于创建具有任意度分布的网络的通用算法。也就是说,您可以从您想要的任何分布中为每个节点分配预期或目标学位。然后,您只需创建链接,直到达到目标程度。与优先依恋无关,除了您提供的分配是使用优先附加机制时产生的分布。

我认为您需要Dorogovtsev等人(2000)使用优先链接的增长网络结构中描述的算法(如果您有权限,请参阅https://journals.aps.org/prl/pdf/10.1103/PhysRevLett.85.4633)。在Barabasi-Albert算法中,现有网络中用于连接新节点的节点的选择概率与度(与问题中的 k )成正比。在扩展算法中,每个节点都具有固有的吸引力 A ,而选择的概率则是 A + k

本文中的公式12描述了指数之间的关系(您的参数gamma为:gamma = 2 + A / m,其中 m 是每个节点附加的边数。

另请参阅NetLogo Efficient way to create fixed number of links了解可能的一般代码。