NetLogo:dead agent=信息丢失?

NetLogo:dead agent=信息丢失?,netlogo,die,Netlogo,Die,我是这个网站和NetLogo的新手。 我试图模拟意大利的百日咳疫情,我想知道特工生病时的年龄 问题是特工可能会死!!所以我丢失了所有与死亡特工有关的数据 有没有办法从死海龟身上获取变量的值 谢谢 不要用[die]命令要求他们实际死亡,只需使用一个变量来表示他们已经死亡。您可能有跟踪其感染状态的东西(例如易感、已感染、已恢复),因此您可以添加另一个状态(易感、已感染、已恢复、已死亡)。然后,您可以使用命令获取信息,如set VARNAME count turtles with[status=dea

我是这个网站和NetLogo的新手。 我试图模拟意大利的百日咳疫情,我想知道特工生病时的年龄

问题是特工可能会死!!所以我丢失了所有与死亡特工有关的数据

有没有办法从死海龟身上获取变量的值


谢谢

不要用
[die]
命令要求他们实际死亡,只需使用一个变量来表示他们已经死亡。您可能有跟踪其感染状态的东西(例如易感、已感染、已恢复),因此您可以添加另一个状态(易感、已感染、已恢复、已死亡)。然后,您可以使用命令获取信息,如
set VARNAME count turtles with[status=dead]

根据下面的评论,如果您需要将死海龟排除在交互之外,这可能会使您的其他代码变得困难。因此,另一个选择是在相同的代码中添加其他命令,告诉海龟去死。这些其他命令可以像递增计数器一样简单,但也可以向某些列表中添加值

ask turtles
  [ if ... (whatever your test is to see if the turtle dies)
    [ set deathcounter deathcounter + 1
      die
    ]
  ]

如果你想储存死海龟的所有变量,我会创建一个新品种,名为尸体,它的变量与你的另一个即将死亡的品种相同,当你的品种死亡时,将其品种设置为尸体<代码>询问海龟[设置繁殖尸体]


这是JenB解决方案的另一种选择,如果您不通过状态限制您的turtle命令(例如,
询问turtles[something]
相比于
询问turtles[status=“active”][something]

,另外,我认为,他们需要确保与海龟相关的任何现有代码都需要排除死海龟(例如step命令)。当海龟死亡时,它们不再在模拟中。确实,我过去一直在考虑我的流行病模拟,并假设它们已经限制了事情的发展(例如,感染只能从受感染者传播到易感者),但我会更新我的模拟,让你的解决方案起作用。我们不知道用户如何/是否限制他们的代理集,所以两者都可以很好地呈现。我相信,与其复制即将死亡的品种的所有值,您可以简单地要求即将死亡的海龟
设置品种尸体
,假设两个品种具有相同的变量。