如何优化解决图论理论问题,其中边缘权重会在每个其他甚至第三跳上发生变化?我还能使用某种改进的Dijkstra算法吗?
答案 0 :(得分:1)
您可以构建一个新图表来编码不断变化的成本(尽管实际上,最好不要明确构建新图表。)
给出类似
的图表 1
A --> B
| / |
2 | /5 | 4
v < v
C <-- D
3
每个顶点产生两个顶点,每个弧形产生两个弧。弧线以原始重量从原件复制到复印件,并以双倍重量从原件复制到原件。
1 5 3
A ---> B' B ---> C' D ---> C'
2 10 6
A' ---> B B' ---> C D' ---> C
2 4
A ---> C' B ---> D'
4 8
A' ---> C B' ---> D
现在从源或其副本中搜索,具体取决于第一跳是否加倍,寻找到目的地或其副本的最便宜路径。