随机化代理调用过程的顺序?

Randomizing the order an agent calls a procedure?

我有 5 个程序我希望代理执行,但我需要他们随机化执行它们的顺序。

例如:

1) 可能的顺序

 ask turtles [ move eat breed search spawn]

2) 另一种可能的顺序

     ask turtles [spawn eat move search breed]

3) 另一种可能的顺序:

ask turtles [search breed eat move spawn]

等等。有没有一种随机顺序执行程序的有效方法?

您可以制作一个任务列表,打乱列表,然后运行列表中的每个任务:

let procedures (list (task spawn) (task eat) (task move) (task search) (task breed))
ask turtles [foreach shuffle procedures [run ?]]