我正在使用boost :: graph及其Dijkstra实现.
我想计算从一组顶点到另一组顶点的最短路径.
我不想计算这些集之间的所有可能路径.
这个想法如下:我在一个有各种街道入口的建筑物里.所以我可以在任何一条街道上开始我的旅程.但我只对最短的一个感兴趣.
如果我使用了自己的Dijkstra算法实现,我会做到以下几点:
>对于每个起始节点,距离映射为0
>将起始节点添加到优先级队列.
虽然使用boost :: dijkstra_shortest_paths_no_init很容易将距离图设置为0,但我无法弄清楚如何将节点添加到优先级队列.
我查看了源代码,看起来几乎不可能.
所以我正在考虑定义我自己的Combine仿函数,如果我到达其中一个起始节点,它将返回0距离,但它看起来相当丑陋.
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。