7

如何将一个 Netlogo 文件中的过程包含到另一个文件中?基本上,我想将遗传算法的代码与我的(相当复杂的)适应度函数分开,但显然,我希望将驻留在“fitness.nlogo”中的适应度报告器在遗传算法代码中可用,可能是“genetic.nlogo”。

如果可以,程序是如何导入的,代码是如何执行的?是像 Python 一样,在其中导入模块几乎会执行模块中的所有内容,还是像 C/C++ 一样,文件被盲目地“加入”?

这可能是一个愚蠢的问题,但我在谷歌上找不到任何东西。Netlogo 文档说明了一些关于的内容__includes,这是一个实验性的关键字,可能会起到作用,但那里没有太多解释。也没有例子。

有什么提示吗?我应该去__includes吗?它是如何工作的?

4

2 回答 2

14

包含您使用的文件

__includes["libfile.nls"]

添加此内容并按“检查”按钮后,“程序”下拉菜单旁边将出现一个新按钮。您可以在那里创建和管理多个源文件。

libfile.nls只是一个包含 NetLogo 代码的文本文件。它不是一个总是以 .nlogo 结尾的 netlogo 模型,因为除了 NetLogo 代码之外,NetLogo 模型还包含许多其他信息。

包含一个文件相当于在该点插入其所有内容。为了使它像可重用的库文件一样工作,应该创建使用代理集和参数作为输入变量的过程,以独立于全局定义或接口设置。

该功能记录在http://ccl.northwestern.edu/netlogo/docs/programming.html#includes的 NetLogo 用户手册中。

于 2011-04-29T10:25:20.263 回答
0

您可以创建一个文件libfile.nls并在同一文件夹中创建您的主模型model.nlogo

之后,转到你的model.nlogo并写下:

__includes["libfile.nls"]  

此文件包含您可以在模型中调用的报告器和过程。

于 2018-04-29T10:08:14.907 回答