使用迪杰斯特拉算法时,顶点存在多条自环该如何处理?
最短路径中多权重自环的处理方式
在计算最短路径时,所有自环都应该直接移除,和它们的权重大小无关。
原因很直白:最短路径的核心是找两点间(包括起点到自身)权重最小的路径。拿你说的顶点A举例,从A到A的最短路径就是原地不动,权重为0。而你提到的三条自环权重都是正数(4、5、1),走任何一条自环都会让路径权重增加,完全没有保留的意义。
哪怕遇到负权自环(虽然你例子里没有这种情况),这类图本身就不存在有效的最短路径——因为绕着负权自环走的次数越多,路径总权重会无限减小,这种场景下最短路径算法本身就不适用,自环同样没有保留价值。
所以你的问题答案很明确:顶点A的这三条自环全部移除即可,留着只会徒增计算量,对最短路径的计算没有任何帮助。
内容的提问来源于stack exchange,提问作者mainak mukherjee
相关产品推荐
相关产品推荐

