记者的不同结果turtles/turtle x
Different results of reporters turtles/turtle x
我创建了一个意见动态模型,效果很好。但现在我想看看我所有海龟的意见如何变化。所以我创建了记者“海龟的报告[意见]”。当我把它放在行为空间中时,我得到了与我观察到的不符的疯狂跳跃的结果。如果我用像“0 号海龟的报告 [意见]”这样的个体海龟来测试它,我会得到我期望看到的平滑曲线进展。
有谁知道为什么会这样?如果我必须将每只乌龟单独放入我的行为空间,我会发现它相当笨拙,因为我有滑动的 Agentsnumbers。
你可以让每只海龟都有一个列表变量,在列表变量的开头记录每只海龟的ID。在每一步,每只海龟都会附加其 opinion
值。
然后你可以有一个全局变量,你将使用它作为列表的列表,在模拟结束时每只海龟将附加它自己的列表。
在 BheaviorSpace 中,您只需在每个实验结束时使用一个报告器(列表列表)运行。
请参阅下面的工作示例:
globals [
results
]
turtles-own [
opinion
my-list
]
to setup
clear-all
reset-ticks
set results (list)
create-turtles 3 [
set opinion random 10
set my-list list self opinion
]
end
to go
if (ticks = 5) [
ask turtles [
set results lput my-list results
]
stop
]
ask turtles [
set opinion opinion + 1
set my-list lput opinion my-list
]
tick
end
在每个 运行 结束时,results
记者将看起来像:
[[(turtle 2) 3 4 5 6 7 8] [(turtle 0) 0 1 2 3 4 5] [(turtle 1) 5 6 7 8 9 10]]
请注意,这样,results
中的列表将始终以随机顺序排列。
如果您有兴趣根据某种标准对它们进行排序,您可以这样做。
下面的示例将 if (ticks = 5)
语句更改为根据海龟的 ID 排序 results
,但您可以只对您感兴趣的任何特征使用 sort
。
if (ticks = 5) [
let sorted-turtles sort turtles
foreach sorted-turtles [this-turtle -> ask this-turtle [set results lput my-list results]]
stop
]
我创建了一个意见动态模型,效果很好。但现在我想看看我所有海龟的意见如何变化。所以我创建了记者“海龟的报告[意见]”。当我把它放在行为空间中时,我得到了与我观察到的不符的疯狂跳跃的结果。如果我用像“0 号海龟的报告 [意见]”这样的个体海龟来测试它,我会得到我期望看到的平滑曲线进展。
有谁知道为什么会这样?如果我必须将每只乌龟单独放入我的行为空间,我会发现它相当笨拙,因为我有滑动的 Agentsnumbers。
你可以让每只海龟都有一个列表变量,在列表变量的开头记录每只海龟的ID。在每一步,每只海龟都会附加其 opinion
值。
然后你可以有一个全局变量,你将使用它作为列表的列表,在模拟结束时每只海龟将附加它自己的列表。
在 BheaviorSpace 中,您只需在每个实验结束时使用一个报告器(列表列表)运行。
请参阅下面的工作示例:
globals [
results
]
turtles-own [
opinion
my-list
]
to setup
clear-all
reset-ticks
set results (list)
create-turtles 3 [
set opinion random 10
set my-list list self opinion
]
end
to go
if (ticks = 5) [
ask turtles [
set results lput my-list results
]
stop
]
ask turtles [
set opinion opinion + 1
set my-list lput opinion my-list
]
tick
end
在每个 运行 结束时,results
记者将看起来像:
[[(turtle 2) 3 4 5 6 7 8] [(turtle 0) 0 1 2 3 4 5] [(turtle 1) 5 6 7 8 9 10]]
请注意,这样,results
中的列表将始终以随机顺序排列。
如果您有兴趣根据某种标准对它们进行排序,您可以这样做。
下面的示例将 if (ticks = 5)
语句更改为根据海龟的 ID 排序 results
,但您可以只对您感兴趣的任何特征使用 sort
。
if (ticks = 5) [
let sorted-turtles sort turtles
foreach sorted-turtles [this-turtle -> ask this-turtle [set results lput my-list results]]
stop
]