程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Netlogo:在行为空间中跨运行保存数据以节省加载时间大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决Netlogo:在行为空间中跨运行保存数据以节省加载时间?

开发过程中遇到Netlogo:在行为空间中跨运行保存数据以节省加载时间的问题如何解决?下面主要结合日常开发的经验,给出你关于Netlogo:在行为空间中跨运行保存数据以节省加载时间的解决方法建议,希望对你解决Netlogo:在行为空间中跨运行保存数据以节省加载时间有所启发或帮助;

我的模型在设置时需要导入一定数量的补丁相关信息(通过 import-world),这需要大约 10 秒的时间。 使用行为空间时,这些秒数加起来非常快,大大增加了运行实验所需的时间。

我需要缩短这个时间,所以我想设置一些东西,当启动 Behavior Space 时,import-world 命令仅在第一次运行时运行,而所有的其他时候可以避免。

如果有可能的话,我可以这样安排我的代码,每次启动 Behavior Space 时只需要 10 秒一次。

但是,据我所知,行为空间只要求您在每次运行开始时运行 setup 命令。

我也许能够想出一些方法来实现我想要的,但我只想到了看起来有点@R_116_10197@或编码风格不好的东西(例如,在设置时不使用 clear-all,而是清除“手动”,在我的代码末尾,将我想要清除的内容一一列出,这将允许我清除导入的补丁数据,然后使用 if设置以检查该数据是否已经存在,如果存在则不要导入它)。 但是,我想听听这里是否有更好的方法来实现我的目标。

解决方法

@H_262_28@

在这种情况下,您的“糟糕的编码风格”想法是正确的,没有其他方法可以在清除其余模型数据的同时保持补丁数据完好无损。 clear-all primitive 在文档中非常清楚它的作用,因此您只需要将其替换为除 clear-patches 之外的所有组件命令:

结合了 clear-globals、clear-ticks、clear-turtles、clear-patches、clear-drawing、clear-all-plots 和 clear-output 的效果。

然后您需要清除所有不是您要保存的“特殊”数据的补丁数据。 ask patches [ set pcolor 0 ],例如在模型运行中更改 pcolor

您确实需要检查 setup 上的某些条件以查看是否需要加载补丁数据。不仅仅是第一次运行,因为你在 BehaviorSpace 中运行的每个线程都有自己的“世界”,所以每个线程都需要运行你的数据导入命令。来自sixth item in the BehaviorSpace gotchas:

第六,每个并行运行都会有自己的世界供模型运行。如果并行运行被重新用于另一个重复,这个世界不会被 BehaviorSpace 自动清除,这种情况经常发生。这意味着,例如,如果您在一次运行中执行 ask patches [ set pcolor red ] 并且在下一次运行的设置命令中不使用 clear-allclear-patches,那么补丁仍然是红色的。通常,在每次运行之前使用 clear-all 是最佳做法,但有时您可能不希望这样做,例如从不会更改运行到运行的文件中加载数据。请注意未清除的任何数据。

希望能帮到你。

大佬总结

以上是大佬教程为你收集整理的Netlogo:在行为空间中跨运行保存数据以节省加载时间全部内容,希望文章能够帮你解决Netlogo:在行为空间中跨运行保存数据以节省加载时间所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: