gpt4 book ai didi

netlogo - NW 扩展 - nw :generate? 的多个图

转载 作者:行者123 更新时间:2023-12-01 23:53:36 26 4
gpt4 key购买 nike

我想在一个世界中构建多个随机子图。因为,一般来说,子图的数量是不固定的,我不想为每个子图使用不同的品种。到目前为止,我对“手工”随机网络使用了一种非常粗鲁的方法(见下文),将“我的组”变量分配给海龟。我是 NW 扩展的新手,我想知道是否可以使用 nw:generate-random 模块创建多个子图而不为每个子图使用品种。你有什么建议吗?谢谢,汉娜

to create-subgroups
crt network_size [ setxy random-xcor random-ycor ]
let group-n 0
repeat network_size / group_size [ ;; group_size is always a factor of network_size
ask turtles with [who >= (group-n * group_size) and who < ((group-n + 1) * group_size)] [
set my-group group-n ;; get group number
repeat (random 4) + 1 [ ;; create links
let target one-of other turtles with [who >= (group-n * group_size) and who < ((group-n + 1) * group_size)]
if target != nobody [
create-group-link-with target ] ] ]
set group-n group-n + 1 ]
end

最佳答案

好问题!这应该是生成与您当前正在生成的相同图形的更好方法:

to create-subgroups
repeat network_size / group_size [
let group (turtle-set)
crt group_size [ set group (turtle-set group self) ]
ask group [
create-group-links-with n-of (1 + random 4) other group
]
]
end

这假设 group_size 大于 4(否则组中可能没有足够的海龟链接到)。

这里的想法是,您可以使用 turtle-set,而不是使用 who 号码来跟踪组中的成员。除了更简洁之外,它还允许您将组存储在列表中以供以后引用。因此,如果您有一个已设置为列表的全局 groups,您可以像这样将组添加到其中:

to create-subgroups
repeat network_size / group_size [
let group (turtle-set)
crt group_size [ set group (turtle-set group self) ]
ask group [
create-group-links-with n-of (1 + random 4) other group
]
set groups (lput group groups)
]
end

更新:

您可以对 nw:generate-random 使用类似的技术。 nw:generate-random 生成一个子图,它不会接管你的整个网络。海龟和链接将是您指定的任何品种,但它们只会连接到当前由 nw:generate-random 创建的品种中的其他海龟。因此,这应该有效:

to create-subgroups
repeat network_size / group_size [
nw:generate-random turtles links group_size connection-probability
]
end

其中 connection-probability 是新创建的子图中任意两只海龟相连的概率。您仍然可以使用与上述类似的方式获取对新创建的海龟的引用以将其存储在列表中:

to create-subgroups
let group (turtle-set)
repeat network_size / group_size [
nw:generate-random turtles links group_size connection-probability [
set group (turtle-set group self)
]
]
set groups (lput group groups)
end

这样,您就拥有了每个组件的 turtle-sets,组件的数量在行为空间运行中是完全可变和可变的,并且组件彼此完全断开连接。

关于netlogo - NW 扩展 - nw :generate? 的多个图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25289948/

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