首页 > 解决方案 > 停用节点的路径

问题描述

我正在开发一个伤亡救援模型。该模型背后的想法是让救援人员搜索和救援伤亡人员。救援人员在开始奔跑时选择离他们最近的伤员。接下来,网络扩展的nw:weighted-distance-to功能用于找到它们之间距离最小的路径。

我如何实现模型的一些背景知识,

我创建了一堆节点(品种)并在这些节点上放置了伤亡(品种)和救援(品种)。模型开始时的救援人员选择离他们最近的伤员并使用nw:weighted-distance-to

我遇到的问题是我想暂时禁用对某个路径的访问。因此,救援人员将不得不使用替代路径前往各自的伤员处。我在想的是有一个名为可访问的变量?(nodes-owned) 并将其设置为 false 以暂时禁用对该特定路由的访问。但我不确定如何实现这一点,因为网络扩展不包含任何我知道返回替代路径的函数。

有任何想法吗?

extensions [nw]
let dist_list []

foreach rescuer-nodes-list [
  rescue-node ->
  foreach casualties-nodes-list[
    casualty-node ->
    ask rescue-node[
      let dist-to-casualty-node nw:weighted-distance-to casualty-node netlogo-dist
      set dist-list lput dist-to-casualty-node dist-list
    ]
  ]
]

以下代码遍历包含救援代理和伤亡代理的所有节点,并计算每个代理对(救援-伤亡)之间的最小距离。

在此处输入图像描述

标签: netlogo

解决方案


推荐阅读