【发布时间】:2014-04-02 19:52:32
【问题描述】:
我需要找到一种算法来在无向图 G1 中以随机方式找到从 v_s 到 v_t 的最短路径,并且我必须通过至少一个绿色边。
我的解决方案(不确定最好的解决方案):
- 将图形 G1 复制到 G2
- 在 G1 中断开所有边到 v_t
- 为同一节点添加连接到 G1 到 G2 中绿色边的所有节点的边。
例如,如果我们在 G1 中有一个带有节点 (v1,u1) 的绿色边缘
我们将一个节点从 v1 添加到 u2 - 我运行 BFS 来查找从 v_s 到 v_t 的最短路径(将在 G2 中)。
通过这样做,我迫使 BFS 通过绿色边缘到达 v_t
【问题讨论】:
-
这听起来是个不错的解决方案。您的具体问题是什么?
-
A* 搜索在最坏的情况下会演变为 BFS,但还有一个优点是您可以包含一个启发式算法来合并解决方案需要绿色边缘的约束。