【问题标题】:Move agent based on probability/point attribute value and point distance, NetLogo基于概率/点属性值和点距离移动代理,NetLogo
【发布时间】:2019-05-03 21:20:39
【问题描述】:

我在 netlogo 中实现了一组点,并且代理正在从一个点移动到另一个点。每个点都有一个权重(数字大约在 0 到 9 之间,它不是概率)。我想做的是一个简单的规则。 我想通过权重值给出所有点的访问概率。 因此,代理将访问的下一个点应该通过基于点权重和接近点(更接近点 - 更大概率)的概率来计算,但接近度并不是点权重那么大的因素。例如,我想在公式中设置接近度是点权重的两倍。

我调查了 rnd 扩展,但我不确定如何将概率附加到我有很多点(大约 250 个点)。

【问题讨论】:

    标签: netlogo


    【解决方案1】:

    使用rnd 扩展名,您走在了正确的轨道上。从该扩展中,您需要 weighted-one-of 原语,您只需将公式放入报告器块中。

    我认为这正是您想要的。这是一个完整的模型,因此您可以运行它并查看它的作用。报告者块使用概率中的权重和距离。由于您希望更近的概率更大,所以我使用了距离的倒数,但您可以简单地从模型中的最大距离之类的东西中减去距离。您还需要一个适当的比例因子(在我的示例中替换 10),以便权重是接近度平均值的两倍。

    extensions [rnd]
    
    turtles-own [weight]
    
    to testme
      clear-all
      create-turtles 10
      [ setxy random-xcor random-ycor
        set weight 1 + random 3
        set size weight
        set color blue
      ]
      ask one-of turtles
      [ set color red
        let target rnd:weighted-one-of other turtles [ 2 * weight + 10 / distance myself ]
        ask target [ set color yellow ]
      ]
    end
    

    【讨论】:

    • 谢谢 JenB。在我的情况下,权重是 shapefile 中点的特征/属性,我的代理正在这些点之间移动。那是让我感到困惑的部分,我对 gis 扩展不太熟悉。而且 netlogo 库中只有 2 个示例。
    • 标准建议 - 不要试图一次性解决所有问题。将您的 GIS 文件导入并让代理随机选择其中一个点。一旦解决了这个问题,您就可以担心使用更复杂的关系进行选择。如果同时引入模型的多个元素,您将永远无法调试。
    • 我已经这样做了,现在我只需要规则,以免从一个点到另一个点随机走动。 :D
    • 那么我不明白你最初的评论是你不能让它与 GIS 一起工作。我的回答向您展示了如何使用包含乌龟拥有的属性和与另一只乌龟的距离的加权规则。
    • 然后您需要创建一个新问题并询问有关将 GIS 信息导入 NetLogo 的问题——无论您遇到什么问题。专注于这一点,而不是关于随机选择的所有明显不相关的信息。
    猜你喜欢
    • 1970-01-01
    • 2016-10-11
    • 2012-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多