NetLogo:死代理人 = 丢失信息?

NetLogo: dead agent = lost information?

我是这个站点和 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
    ]
  ]

如果你想存储死海龟的所有变量,我会创建一个名为 corpse 的新品种,它与你正在死亡的其他品种具有所有相同的变量,当你的品种死亡时将其品种设置为尸体。 ask turtles [set breed corpse]

如果您还没有按状态限制您的 turtle 命令(例如 ask turtles [something]ask turtles with [status = "active"] [something] 相比)

,这是 JenB 解决方案的替代方案