多个行为空间
Multiple behavior spaces
我有一个没有全局值的模拟。相反,实验之间发生变化的两件事是所使用的品种,以及设置中的刻度数(行为 space 开始记录结果前的转数)
目前我正在复制每个行为 space 并进行微小的更改,是否有更好的方法来执行此操作以便我可以对所有行为 space 进行编程一次运行?
有许多不同的方法可以做到这一点,但由于您没有向我们提供很多关于您正在尝试做什么的信息,我将提出一些非常笼统的建议。您应该能够根据自己的需要进行调整。
这是一个包含两个品种(alphas
和 betas
)的简单模型:
breed [ alphas alpha ]
breed [ betas beta ]
globals [
experiment-id ; this could be a chooser in your interface
breed-to-use
num-steps-after-setup
]
to setup
clear-all
ifelse experiment-id = 0 [
set breed-to-use alphas
set num-steps-after-setup 25
] [
set breed-to-use betas
set num-steps-after-setup 50
]
create-turtles 10 [
set breed breed-to-use
]
reset-ticks
repeat num-steps-after-setup [ some-step-procedure-that-does-not-tick ]
end
您可以使 experiment-id
在您的 BehaviorSpace 实验定义中有所不同:
["experiment-id" 0 1]
setup
中的 ifelse experiment-id = 0
语句负责根据您正在 运行 进行的实验设置其他参数。
顺便说一句,在 setup
的末尾设置一个程序 运行 来延迟 BehaviorSpace 的步骤记录可能不是一个好主意,但很难在不知情的情况下提出替代方案你为什么要这样做。
我有一个没有全局值的模拟。相反,实验之间发生变化的两件事是所使用的品种,以及设置中的刻度数(行为 space 开始记录结果前的转数)
目前我正在复制每个行为 space 并进行微小的更改,是否有更好的方法来执行此操作以便我可以对所有行为 space 进行编程一次运行?
有许多不同的方法可以做到这一点,但由于您没有向我们提供很多关于您正在尝试做什么的信息,我将提出一些非常笼统的建议。您应该能够根据自己的需要进行调整。
这是一个包含两个品种(alphas
和 betas
)的简单模型:
breed [ alphas alpha ]
breed [ betas beta ]
globals [
experiment-id ; this could be a chooser in your interface
breed-to-use
num-steps-after-setup
]
to setup
clear-all
ifelse experiment-id = 0 [
set breed-to-use alphas
set num-steps-after-setup 25
] [
set breed-to-use betas
set num-steps-after-setup 50
]
create-turtles 10 [
set breed breed-to-use
]
reset-ticks
repeat num-steps-after-setup [ some-step-procedure-that-does-not-tick ]
end
您可以使 experiment-id
在您的 BehaviorSpace 实验定义中有所不同:
["experiment-id" 0 1]
setup
中的 ifelse experiment-id = 0
语句负责根据您正在 运行 进行的实验设置其他参数。
顺便说一句,在 setup
的末尾设置一个程序 运行 来延迟 BehaviorSpace 的步骤记录可能不是一个好主意,但很难在不知情的情况下提出替代方案你为什么要这样做。