首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Netlogo,根据链接距离查找最近的代理

Netlogo,根据链接距离查找最近的代理
EN

Stack Overflow用户
提问于 2019-06-14 13:34:22
回答 2查看 337关注 0票数 0

大家好,所以我正在尝试解决一个netlogo模型,其中有相互链接的节点。这是一个基于搜索和救援的模型,其中有两种类型的智能体-群体智能体和救援智能体,它们被放置在一个节点上。类似于下图,橙色和紫色节点表示具有pop/resc代理的节点。救援智能体需要根据连接距离找到最近的种群智能体,并向它们行进。例如,链接距离是下图中显示的数字。(注意,这个想法不是使用min-one-of - in-radius命令,它会给出关于最近链接距离的最近距离)关于如何找到每个resc-agent最接近的群体agent有什么想法吗?

EN

回答 2

Stack Overflow用户

发布于 2019-06-14 15:54:17

这是网络扩展的任务,它包含用于计算链路上距离的原语nw:turtles-in-radiusnw:weighted-distance-to

票数 3
EN

Stack Overflow用户

发布于 2019-06-14 17:58:36

是的,成功地解决了这个问题。但它涉及到列出许多清单。如果有任何人得到了更好的解决方案或改进了以下代码。请一定要让我知道。谢谢:)

我设法通过创建3个列表来解决它,1.所有人口代理的列表(N-pop- list ) 2.人口代理所在的所有节点的列表(N-pop- node - list ) 3.以及距离列表,其中每个节点将计算从自身到pop-agents所在节点的距离。(N-pop-distance-list)

代码语言:javascript
运行
复制
globals [G-target-agent G-node-target-agent]
breed [pop-agents pop-agent]
breed [resc-agents resc-agent]
breed [nodes node]

pop-agents-own [node-pop (;node the pop agents on)]
resc-agents-own [node-resc (;node resc-agents on) target-agent (;agent they want to 
travel to) target-pop-agent-at (;node target-pop-agents on)]
nodes-own [N-pop-list N-pop-node-list N-pop-distance-list]
links-own [dist (pretty much length/distance of the link !)]

...
to setup-lists

ask nodes [
let temp-pop-list []
let temp-pop-node-list []
set N-pop-distance-list []

ask pop-agents[
  set temp-pop-list lput self temp-pop-list
  set temp-pop-node-list lput node-pop temp-pop-node-list
]
set N-pop-list temp-pop-list
set N-pop-node-list temp-pop-node-list

foreach N-pop-node-list
[[i] ->
  let dist-to-node nw:weighted-distance-to i dist
  set N-pop-distance-list lput dist-to-node N-pop-distance-list
]
]
end

to search-pop-agent
ask resc-agent[
ask node-resc[
let min-val min N-pop-distance-list
let min-val-pos position min-val N-pop-distance-list
set G-target-agent item min-val-pos N-pop-list 
set G-node-pop-agent-at item min-val-pos N-pop-node-list
]
set target-agent G-target-agent
set node-pop-agent-at G-node-pop-agent-at
]
end
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56591953

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档