【问题标题】:Netlogo: How to get the weight of the linkNetlogo:如何获取链接的权重
【发布时间】:2018-05-17 07:11:10
【问题描述】:

我得到了一组相互连接的海龟。我想检索两个节点之间链接的权重,我尝试过搜索,但找不到任何有关如何执行此操作的信息。我没有使用 nw 因为我不想要最短路径。有任何想法吗?这是我的代码的一部分:

to calculate-oldpath
let oldList [ 25 0 1 2 3 4 9 8 7 6 5 10 11 12 13 14 19 18 17 16 15 20 21 22 23 24]
let weighted-dist 0
( foreach ( but-last oldList ) ( but-first oldList ) [
[ a b ] ->
ask turtle a [
  let node-link link-with turtle b 
  ;Then retrieve weight link to do adding
]
] )
print weighted-dist
end

enter image description here

S 是我的起点(列表中的 25),E 是终点(列表中的 24)我想计算这条“橙色路径”的权重

【问题讨论】:

    标签: netlogo


    【解决方案1】:

    Jen 关于如何获取链接权重的回答是正确的,但我建议使用另一种方法来计算这些权重的总和:使用 sum 原语!

    这需要将您的 foreach 转换为 map,但除此之外,它非常简单:

    let weighted-dist sum (map [ [a b] ->
      [ [ weight ] of link-with turtle b ] of turtle a
    ] (but-last oldList) (but-first oldList))
    

    另一个小评论:使用who 数字列表可能不是处理问题的最佳方法,但我对您的问题了解得不够多,无法提出替代方案...

    【讨论】:

    • 好点。我曾认为这是一个最低限度的工作示例,但在重新阅读时,它显然是真实代码的一部分。在这种情况下,我也会切换到带有传递链接集的to-report
    • 抱歉回复晚了,这个数字列表是我程序中的一个路径,我想找到这个路径的总重量。也谢谢你的建议
    • 一个更准确的问题是:您首先如何构建该列表?除非它像上面的代码示例那样在模型中硬编码,否则存储对海龟的直接引用而不是存储它们的 who 数字可能是个好主意。这将使您的代码更短,更具表现力。如果可以的话,通常最好避免使用who 数字:99.9% 的情况下,它们是解决问题的错误方法,使用它们可能会导致你走上不受欢迎的概念路径……
    • 在此之前我尝试过而不是硬编码列表,我使用'one-of'返回路径列表,但这不是我想要的路径,所以我求助于创建我的自己的清单。我将编辑帖子以插入另一张图片以显示列表的原因。
    【解决方案2】:

    假设您将权重称为 weight(在您尚未显示的 links-own 语句中),那么这样的事情应该可以工作:

    to calculate-oldpath
      let oldList [ 25 0 1 2 3 4 9 8 7 6 5 10 11 12 13 14 19 18 17 16 15 20 21 22 23 24]
      let weighted-dist 0
      ( foreach ( but-last oldList ) ( but-first oldList ) [
          [ a b ] ->
          ask turtle a [
            let node-link link-with turtle b 
            set weighted-dist weighted-dist + [weight] of node-link
          ]
      ] )
      print weighted-dist
    end
    

    获取链接的属性值与获取乌龟或补丁的属性值完全相同,您使用of

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-20
      • 2021-09-09
      • 2016-09-23
      • 1970-01-01
      • 2018-10-19
      相关资源
      最近更新 更多