Boost dijkstra_shortest_path中的自定义图形距离
Custom graph distance in Boost dijkstra_shortest_paths
我知道其他人也问过类似的问题,但这次略有不同。
我需要将距离计算为距离根的权重和节点数的组合。
因此,如果图是A->20英尺B->10英尺-,那么通常情况下,您会将A->B-之间的距离计算为20英尺,将A->C-计算为30英尺,但我想放大跳过另一个节点的成本。
假设每次跳过另一个节点时,成本都会翻倍,因此A->B距离为20英尺,B->C的距离为10英尺,但A->C为20英尺+2*10英尺=40英尺
这可能与boost的Dijkstra的最短路径有关吗?
您可以通过自定义距离来实现这一点。
例如,您可以将每条边的成本增加一倍,但源自"源"的边除外。它可以通过一个具有operator[](edge_descriptor e) const
的简单内联类"动态"实现。然后将这个类作为距离图传递给Dijkstra或其他最短路径算法。
对于某些应用程序,您希望每个节点都有固定的成本(例如"停车灯处的预期加权时间")。在这里,再次将这些节点权重保留在某个位置。然后定义一个内联类,该类在其operator[](edge e) const
中添加边权重和该边源权重,除非边从Dijkstra"源"开始。最后,将此类对象作为Dijkstra距离图传递给您最喜欢的BGL例程。
相关文章:
- C++映射:具有自定义类的运算符[]不起作用(总是返回0)
- 如何将点击的信号和插槽添加到qt中的自定义按钮中
- C++自定义比较函数
- 如何比较自定义类的std::变体
- std::设置自定义比较器
- 如何正确实现和访问运算符的各种自定义枚举器
- 如何在涡轮C 图形中设置对象的自定义边框宽度
- 使用图形可视化绘制自定义 BGL 图
- 使用自定义图形层运行专有[Java]应用程序
- 自定义图形列表视图项目不更改文本颜色
- 包含相邻顶点列表的自定义顶点类型[图形]:不完整类型错误
- Boost dijkstra_shortest_path中的自定义图形距离
- 用 boost::graph 包装我的自定义图形并计算dijkstra_shortest_paths
- 在 qt 中绘制图形和自定义绘图库绘制曲线
- Qt - 拖放 - 自定义图形场景 - 事件错误
- QT - 拖放 - 在自定义场景上创建自定义图形对象的位置
- C++ 提升图形库:输出自定义顶点属性
- 在自定义图形类型上使用 boost::p ush_relabel 算法
- Q自定义-隐藏/显示所选图形
- Qt使用哪种图形技术来渲染其自定义UI