的NetLogo,改变链接与链接到(Netlogo, changing link-with to l

2019-10-28 13:01发布

我想创建的影响力网络为我在我的设置海龟。 每个龟具有AD变量随机设定0,并将它们的1.Each之间将产生5个无向链接。 现在,如果他们有AD低(低于0.3),就应该找人与他们的网络中高AD(0.7以上),并创建一个链接到该人(要成为一个追随者)。

我曾尝试与该代码试图杀死我得到运行时链接时不起作用,因为某些网络不会有任何人AD> 0.7等。 会有人知道变通的办法? (特别是如果我们能够避免的过程分为两个步骤,直接创建当满足条件时对链接)。

to setup
  ask turtles [
    create-links-with n-of 5 other turtles 
    if (AD < 0.3) [
      let target one-of (other turtles with [link-neighbor? myself and (AD > 0.7)])
    ask link-with target [die]
      create-link-to target
    ]
    ]

谢谢!

Answer 1:

从你的代码,我想你想(1)每剂使与5个其他链接(等平均而言,他们都将有10个,因为他们也会得到别人的链接)。 (2)如果自己的AD为低,则至少其中一个链接,是一种具有高值AD节点。 下面的代码创建一个链路(与如果需要的AD),然后另一个4。

to setup
  ask turtles
  [ ifelse AD < 0.3
    [ create-links with one-of other turtles with [AD > 0.7] ]
    [ create-links-with one-of 5 other turtles ]
    create-links with n-of 4 other turtles
  ]
end

UPDATE由于更具体的问题。 正常的方式,以避免错误是建立符合候选条件的agentset然后测试是否有任何成员。 看起来有点像这样:

...
let candidates turtles with [AD > 0.7]
if any? candidates
[ create-links-with one-of candidates
]
...


文章来源: Netlogo, changing link-with to link-to