tcl - 如何使用 struct::graph(::op) 找到两个节点之间的最短路径?
问题描述
我有一个带有障碍物的网格,需要在两个节点之间找到最有吸引力的多边形。该操作很可能是一个瓶颈,所以我希望尽早打包一个性能合理的实现,并且仍然有一个可移植的解决方案(即,还没有 C)。我很想在游戏后期做一个 OpenCL 解决方案,但必须先到达那里。
我已经使用struct::graph
了许多问题,并认为我可以再使用一次。阅读有关图形和操作的文档,似乎问题已经解决,但它使我无法实际使用 API。
问题是通过设计简化的。有一个有限的矩形网格(顶部 30x30),其中每个单元格都是图中的一个节点。只要沿途没有障碍物(通常是已经存在的多边形的末端),每个节点都与网格中的其他节点具有轴对齐的边缘。较长边的边成本较低,使得许多转弯(楼梯)对路径查找算法的吸引力降低。(还有其他影响边缘成本的启发式方法。)
假设我已经填写struct::graph
了上面的内容,我如何找到从节点 A 到任何一组节点 B的最短路径(如果连接到超图则很多)?
到目前为止的进展:许多操作 API 似乎返回到图中所有节点的最短路径,这不是我想要的,尽管我可以使用它直到找到更好的方法。假设我可以在 cmd 中修改图形,walk
我可以进行一些更简单的即时修剪,但文档并未表明这是一种可能性。
如果事实证明 struct::graph 本质上(太)慢,我很乐意将其修补成形状。只需要知道我将首先使用什么...
解决方案
推荐阅读
- c - 结构不返回第一行
- python - 根据 SQLAlchemy 中的其他列计算列的值?
- javascript - 未考虑“gapi.client.storage”的 TypeScript 定义
- c# - 使用 VS 2017 映像,无法在具有一个 .NET Core 3 项目的解决方案中构建其他项目
- javascript - 有没有办法将 PaperProps 中的样式对象移动到材质 UI 中的 makeStyles?
- .net - 与 Ionide 合作的 Suave 项目
- c# - 关于从 asp.net MVC 5.2.4 升级到 5.2.7 后更新 web.config 文件的问题
- java - 如何修复状态栏中的通知?
- ios - 在函数中具有相互递归关联类型约束的 Swift 协议
- scala - 如何检测 akka-http 的完整响应时间?