Tcl 如何使用struct::graph(::op)查找两个节点之间的最短路径?

Tcl 如何使用struct::graph(::op)查找两个节点之间的最短路径?,tcl,path-finding,Tcl,Path Finding,我有一个带有障碍物的网格,需要在两个节点之间找到最吸引人的多边形。该操作很可能是一个瓶颈,因此我希望尽早实现一个性能合理的实现,并且仍然有一个可移植的解决方案(即,还没有C)。我很想在游戏后期做一个OpenCL解决方案,但必须先到那里 我已经用struct::graph解决了很多问题,我想我可以用它来解决这个问题。阅读有关的文档,问题似乎已经解决了,但我无法真正使用API 通过设计简化了问题。有一个有限的矩形网格(30x30顶部),其中每个单元都是图形中的一个节点。只要沿途没有障碍物(通常是现有

我有一个带有障碍物的网格,需要在两个节点之间找到最吸引人的多边形。该操作很可能是一个瓶颈,因此我希望尽早实现一个性能合理的实现,并且仍然有一个可移植的解决方案(即,还没有C)。我很想在游戏后期做一个OpenCL解决方案,但必须先到那里

我已经用
struct::graph
解决了很多问题,我想我可以用它来解决这个问题。阅读有关的文档,问题似乎已经解决了,但我无法真正使用API

通过设计简化了问题。有一个有限的矩形网格(30x30顶部),其中每个单元都是图形中的一个节点。只要沿途没有障碍物(通常是现有多边形的端点),每个节点都具有与网格中其他节点对齐的轴边。对于较长的边,边成本较低,使得许多转弯(楼梯)对路径查找算法的吸引力较低。(还有其他影响边缘成本的启发式方法。)

假设我已经用上面的内容填充了
struct::graph
,我如何找到从节点A到任意一组节点B的最短路径(如果连接到hypergraph,则多个节点)


到目前为止的进展:许多op API似乎返回到图中所有节点的最短路径,这不是我想要的,尽管在找到更好的方法之前我可以使用它。假设我可以在
walk
cmd中修改图形,我可以做一些更简单的动态修剪,但文档没有指出这是一种可能性


如果结果表明struct::graph天生(太)慢,我很乐意将它修补成形状。只需要知道我将首先使用什么…

您可能会在这里找到一些灵感:特别是在这里,有一个使用struct::graph::op的示例--