我正在寻找一种有效的算法来解决以下问题:
给定有向加权图 G =(V,E),源顶点 S ,目的地顶点 T ,和< strong> M , V 的子集,需要找到从 S 到 T 的最短路径。
M 中的一个特殊功能是 M 中的每个顶点,一旦“访问”,某个边缘的权重就会变为另一个值。对于 M 中的每个顶点,将给出边缘和新权重。
为帮助理解问题,I have drawn an example using mspaint。 (对不起质量)。
在此示例中,从 S 到 T 的“常规”最短路径 1000 。 但是,访问顶点 C 会将边缘权重从 1000 减少到 500 ,因此这种情况下的最短路径为 200 + 100 + 500 = 800