gpt4 book ai didi

netlogo - 有条件的网络邻居

转载 作者:行者123 更新时间:2023-12-02 18:53:45 25 4
gpt4 key购买 nike

我想选择通过 link 属性而不是 turtle 属性过滤的网络邻居。例如,这可能是根据友谊链接上的强度得分仅选择最亲密的 friend 。我可以通过为亲密 friend 提供不同的链接 品种来做到这一点,但这需要根据条件是否需要不断改变品种。

下面是一个带有 bool 条件的示例。

links-own [flag?]

to testme
clear-all
ask patches [set pcolor white]
create-turtles 20
[ setxy 0.95 * random-xcor 0.95 * random-ycor
set color black
]
ask n-of 3 turtles [set color red]
repeat 40
[ ask one-of turtles
[ create-link-with one-of other turtles
[ set flag? random-float 1 < 0.4
set color ifelse-value flag? [red] [gray]
]
]
]
; colour-neighbours
colour-neighbours2
end

to colour-neighbours
ask turtles with [color = red ]
[ ask my-links with [flag?]
[ ask other-end [ set color blue ]
]
]
end

to colour-neighbours2
ask turtles with [color = red ]
[ ask turtle-set [ other-end ] of my-links with [flag?]
[ set color blue ]
]
end

我目前正在做相当于颜色邻居的事情,但它涉及逐步遍历多个上下文。 color-neighbours2 版本在概念上更接近,因为它直接指的是网络邻居。但是,由于 of,我得到了一个邻居列表,然后我必须将其转换为代理集。

这是为了教学,虽然两者都有效,但与使用 link-neighbors 原语的无条件网络邻居相比,它们似乎非常复杂。也就是说,如果我不关心该标志,我可以简单地说询问链接邻居 [ set color blue ]

是否有更直接的方法来根据链接属性识别网络邻居?

最佳答案

您已经涵盖了大多数可能性。另一种方法是:

to colour-neighbours3
foreach [ other-end ] of my-links with [ flag? ] [ t ->
ask t [ set color blue ]
]
end

我会避免 colour-neighbours2 因为,正如您所说,它需要从列表到主体集的转换。我认为,是否应该使用 colour-neighbours 还是 colour-neighbours3 取决于个人喜好。

关于netlogo - 有条件的网络邻居,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49112374/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com