NetLogo(社交网络):如何根据概率连接节点?

时间:2019-12-13 18:04:34

标签: netlogo probability

我正在尝试建立一个“在线论坛”的模型,其中该模型以2个关联的2个品种(A代理和B代理)的联系代理开始。

  1. 每次迭代都会创建2个品种之一的代理。创建哪种节点; A代理与B代理由概率确定(请参阅代码)。
  2. 新创建的业务代表(1个A业务代表或B业务代表)随后根据概率连接到A业务代表或B业务之一。

如何根据选择概率使新创建的代理附加到两种代理之一?

  • 如果新创建的节点是A代理= 58%的机会连接到一个A代理,而42%的机会连接到B代理之一?
  • 如果新创建的节点是B-agent,则表示连接A-agent的概率为56%,连接B-agent的概率为44%

到目前为止,这是我的代码,直到第1点。

breed [A-agents A-agent]
breed [B-agents B-agent]

to setup
  clear-all
  reset-ticks
  create-A-agents 1
  [ set shape "triangle"
    set size 1
    set color blue
    setxy random-xcor random-ycor
  ]
  create-B-agents 1 
  [ set shape "circle"
    set size 1
    set color red
    setxy random-xcor random-ycor
  ]
  ask B-agents [create-links-with A-agents [set color green]]
  tick
end

to go ;; create a new node based on the emprical user distribution of A-agents/B-agents
  let p random-float 100 ;; create a random number between 1-100
  if (p >= 97) [create-A-agents 1 
      [ set shape "triangle"        
        set size 1
        set color blue
      setxy random-xcor random-ycor]]
  if (p < 97) [create-B-agents 1
      [ set shape "circle"
        set size 1
        set color red
        setxy random-xcor random-ycor
  ]] 
  tick
end

1 个答案:

答案 0 :(得分:1)

您需要这样的内容(对于A代理,您可以为B代理编写类似的代码)-未经测试,可能存在语法错误。

let test-num random-float 1
ifelse test-num < 0.58
[ create-link-with one-of other A-agents ]
[ create-link-with one-of B-agents ]

我还没有进行任何测试,以确定是否确实有任何代理要连接,但这应该可以使您朝正确的方向前进。