我有一个横向,每个补丁包含一个成本值。 我根据以下代码在每个补丁中放置了一只乌龟:
to create-turtles
ask neighbors [ sprout 1 [
set shape "dot"
set size 0.5 ] ]
end
然后,我根据以下代码在每只乌龟之间建立了一个链接:
to create-link-turtles
ask turtles [ create-links-with turtles-on neighbors ]
end
由于每个补丁包含一个成本值,我想为海龟之间的链接分配一个成本值。
例如, 如果链接与具有两个不同成本的两个补丁(补丁1和补丁2)相交,则链接将等于补丁1中的成本+补丁2中的成本。
如果链接与具有相同成本的两个补丁(补丁1和补丁2)相交,则链接将等于补丁1中的成本。
如何以这种方式为海龟之间的链接分配成本值?
在此之后,我想应用dijkstra的算法。
感谢您的帮助。 祝你有个美好的一天
答案 0 :(得分:1)
假设:
cost
变量link-cost
变量你可以简单地说:
ask links [ set link-cost sum [ cost ] of both-ends ]
这只会在链接两端的乌龟下添加两个补丁的成本。 (如果你有遍历两个以上补丁的链接,这种方法就行不通了,事情会变得复杂得多。)
为了计算之后的距离,我建议你看一下the NW extension。它的weighted-distance-to
primitive在内部使用了Dijktra的算法。