在创建人类和僵尸这两个不同品种的链接时,我遇到了一些困难。
这些链接的创建方式应使第一个品种(人类)的乌龟与第二个品种(僵尸)具有更多的联系(度数),具有较高的关联第二个品种(僵尸)的可能性,即,人类的乌龟被所选内容与节点的in-degree k_in
成比例。
每次打勾时,我都会在网络中添加一个僵尸。
通过考虑优先依恋模型,我写道:
let thisZombie one-of [both-ends] of one-of links
create-link-with thisZombie
但是它返回了以下错误:
LINKS is a directed breed.
error while zombie 10 running CREATE-LINK-WITH
called by procedure ADD-ZOMBIE
called by procedure GO
called by Button 'go'.
这是此部分的全部代码:
create-zombies 1
[
if targeting = "first model"
[
let thisZombie self
ask one-of humans
[
ifelse random-float 1 < p
[create-link-from thisZombie [set color red]]
[ask thisZombie [die]]
]
]
if targeting = "second model (preferential_attachment)"
[
let thisZombie one-of [both-ends] of one-of links
create-link-with thisZombie
]
]
我有以下两个问题:
in-degree
选择人?create-link-with one-of both-ends
是否正确?谢谢
答案 0 :(得分:2)
您具有正确的通用方法(我想您是从NetLogo模型库中的优先附件模型中删除的),但是有两点导致您遇到问题:
您正确使用one-of links
来选择链接,但是通过选择该链接的one-of [both-ends]
,您可能会选择人类的 僵尸,这不是您想要的。如果您的链接始终是从僵尸到人的链接(例如它们似乎是基于您的"first model"
的代码,那么该人将始终是链接的end2
,您可以这样写:{{ 1}}。如果您不知道链接的方向,则可以编写[end2] of one-of links
,但这会降低效率。
您不能混合有向和无向的“未杂交”链接。 (有关详情,请参见the user manual。)
再次假设您的链接始终是从僵尸到人的,则您的代码应如下所示:
[one-of both-ends with [breed = humans]] of one-of links