gpt4 book ai didi

Netlogo & Levelspace : how to pass strings between two child-models?

转载 作者:行者123 更新时间:2023-12-01 00:14:26 27 4
gpt4 key购买 nike

我有三个模型:Parent、Child1、Child2。

Child1 生成字符串,然后必须将其传递给 Child2 以进行进一步处理。字符串是在 Child1 执行时即时生成的。每当生成新字符串时,必须立即将其发送给 Child2。有时(由不同的代理)同时生成 2 个或更多字符串,然后必须同时发送这 2 个或更多字符串(即在同一滴答内)。

一种解决方案是跳过父模型,让 Child1 成为 Parent-model,然后可以访问 Child 2。但是,这会使 Child1 复杂化,因为它将包含所有必需的 LevelSpace 代码。此外,这两个子模型必须可以单独使用。这两个模型用于教育目的,学生不应看到LevelSpace代码。因此,父模型。

另一种解决方案是让 Parent 模型不断轮询 Child 1 模型以请求新字符串。不是很漂亮。效率不高。

所以基本上我在 LevelSpace 中寻找一些共享内存和/或事件功能 :-)

顺便说一下,字符串代表 DNA、RNA 等,我们正在说明字符串等的转录和翻译。

有任何想法吗?

谢谢,
帕莱

最佳答案

Jasper 编写了一个非常好的解决方案,尽管它确实依赖于不应该起作用的行为。另一种方法是使用 child1收集在全局变量中运行的字符串。例如

child 1 代码:

globals [ strings ]

to go
set strings []
ask turtles [
set strings lput (word "hello from turtle " who) strings
]
tick
end

然后有 child2在其 go 中接受字符串列表方法

child 2 代码:
to go [ strings ]
; do stuff with the strings
end

然后父级在它们之间传递列表:

父代码:
to go
ls:ask child1 [ go ]
ls:let child1-strings [ strings ] ls:of child1
ls:ask child2 [ go child1-strings ]
tick
end

关于Netlogo & Levelspace : how to pass strings between two child-models?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54332081/

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