【问题标题】:How to change a turtle's attribute if one of its links disappear?如果其中一个链接消失,如何更改海龟的属性?
【发布时间】:2015-06-24 22:04:20
【问题描述】:

在NetLogo中:假设模型有

  1. A 品种的海龟 (0) 与 B 品种的 3 只海龟 (1、2 和 3) 具有无向链接;
  2. 乌龟 0 有一个名为“number-of-links”的属性,它等于 3。

现在,让 0 的 3 个邻居中的一个死掉..

如何对海龟 0 进行编程以将其链接数自动更改为 2?

【问题讨论】:

    标签: netlogo die


    【解决方案1】:

    如果您只想要一种跟踪数字链接的方法,请使用count my-links 而不是自定义变量。

    一般来说,当链接数量发生变化时更新值最不容易出错的方法是在需要时计算该值。对于链接数量,这只是count my-links。对于更复杂的事情,将它们包装在记者中:

    to-report energy-of-neighbors
      report sum [ energy ] of link-neighbors
    end
    

    如果无论出于何种原因这都不起作用(代理需要对链接消失做出反应,或者您看到动态计算对性能造成严重、可衡量的影响),那么您必须自己进行更新链接数量变化。最好的方法是将行为封装在命令中:

    to update-on-link-change [ link-being-removed ] ;; turtle procedure
      ; update stuff
    end
    

    然后把可能导致链接数变化的东西(比如海龟死亡)也封装在命令中:

    to linked-agent-death ;; turtle procedure
      ask links [
        ask other-end [ update-on-link-change myself ]
      ]
      die
    end
    

    【讨论】:

    • 非常感谢!我没有完全按照你的建议做,但你给了我一个想法,简单地给链接一个属性“值”,比如 1,然后将链接数设置为 sum [ value ] of my-links:D 干杯!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-27
    相关资源
    最近更新 更多