Netlogo,将 link-with 更改为 link-to
Netlogo, changing link-with to link-to
我正在尝试在我的设置中为我的海龟创建一个影响网络。每只海龟都有一个随机设置在 0 和 1.Each 之间的 AD 变量,它们将创建 5 个无向的 link。现在,如果他们的 AD 低(低于 0.3),他们应该在他们的网络中寻找 AD 高(高于 0.7)的人,并为该人创建 link(成为追随者)。
我试过这段代码,但它不起作用,因为有些网络不会有 AD > 0.7 的任何人,所以当我试图杀死 link 时,我得到了运行时。有人知道解决办法吗? (特别是如果我们可以避免两步过程并在满足条件时直接创建 links-to)。
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
]
]
谢谢!
根据你的代码,我认为你希望 (1) 每个代理人与其他 5 个代理人一起制作 links(因此平均他们都会有 10 个,因为他们也会从中获得 links其他)。 (2)如果自己的AD低,那么link中至少有一个是高值AD节点。下面的代码创建了一个 link (如果需要的话用 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
由于更具体的问题而更新。避免错误的正常方法是创建一个可能的代理集,然后测试是否有任何成员。看起来有点像这样:
...
let candidates turtles with [AD > 0.7]
if any? candidates
[ create-links-with one-of candidates
]
...
我正在尝试在我的设置中为我的海龟创建一个影响网络。每只海龟都有一个随机设置在 0 和 1.Each 之间的 AD 变量,它们将创建 5 个无向的 link。现在,如果他们的 AD 低(低于 0.3),他们应该在他们的网络中寻找 AD 高(高于 0.7)的人,并为该人创建 link(成为追随者)。
我试过这段代码,但它不起作用,因为有些网络不会有 AD > 0.7 的任何人,所以当我试图杀死 link 时,我得到了运行时。有人知道解决办法吗? (特别是如果我们可以避免两步过程并在满足条件时直接创建 links-to)。
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
]
]
谢谢!
根据你的代码,我认为你希望 (1) 每个代理人与其他 5 个代理人一起制作 links(因此平均他们都会有 10 个,因为他们也会从中获得 links其他)。 (2)如果自己的AD低,那么link中至少有一个是高值AD节点。下面的代码创建了一个 link (如果需要的话用 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
由于更具体的问题而更新。避免错误的正常方法是创建一个可能的代理集,然后测试是否有任何成员。看起来有点像这样:
...
let candidates turtles with [AD > 0.7]
if any? candidates
[ create-links-with one-of candidates
]
...