【问题标题】:Netlogo Probabilistic movement by a turtle to surrounding patchesNetlogo 海龟对周围斑块的概率运动
【发布时间】:2014-07-23 11:50:23
【问题描述】:

我想要一只乌龟概率性地移动到它的邻居中的一个补丁。补丁变量的概率值。 这与遗传算法选择非常相似。 我希望实现任何可能的选择技术。

更新:

补丁的概率值: 表示选择该补丁的机会。所以一个概率为零的补丁是没有机会被选中的。并且总是会选择 100% 概率的补丁。:

更新 2: 我发现以下内容我认为可以,但我认为非常了解:

 report last first filter [first ? >= rand-num] probabilities

尝试了其他代码,请检查是否有意义:

ask neighbors4[calculate-proabalities]
let patchset neighbors4
  let pick random-float sum [score] of patchset
  let winner nobody
  ask patchset[
    if (is-patch? winner = false)
    [
      ifelse (score > pick)
       [set winner self]
       [set pick pick - score]
       ]
    ]
  report winner

【问题讨论】:

    标签: netlogo


    【解决方案1】:

    您基本上是在重复模型库中彩票示例中的代码。 (归因是一个好主意。)目前还不清楚为什么你改变了测试是否存在获胜者。我实际上会像这样完全丢弃它。

    to-report local-winner [#candidates]
      ask #candidates [calculate-score]
      let %pick random-float sum [score] of #candidates
      let %winner nobody
      ask #candidates [
        ifelse score > %pick [ 
           set %winner self stop
        ] [ 
           set %pick (%pick - score)
        ] 
      ]
      report %winner
    end
    
    ask myturtle [move-to local-winner neighbors4]
    

    请注意,这假设(如在您的示例代码中)补丁可以单独计算其分数。如果没有,您将需要进行适当的更改。另请注意,您不能简单地从 ask 内部报告,可能会尝试尝试。

    【讨论】:

      【解决方案2】:

      这也可以通过Rnd extensionrnd:weighted-one-of 原语来实现:

      let winner rnd:weighted-one-of neighbors4 [ [score] of ? ]
      

      【讨论】:

      • 太棒了!不知道那件事。非常感谢!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多