📅  最后修改于: 2020-12-10 06:57:42             🧑  作者: Mango
给定一个图G =(V,E),我们为每个顶点v∈V维持一个前驱体π[v],它可以是另一个顶点或NIL。但是,在执行最短路径算法期间,π值不必表示最短路径。像在广度优先搜索中一样,我们将对值π引起的前一子图G n =(V n ,E n)感兴趣。再一次,我们将顶点集Vπ定义为具有非NIL前身的G顶点集,再加上源s:
的有向边集EΠ是该组由以VΠ顶点Π值引起的边缘的:
根于s的最短路径树是有向子图G =(V'E'),其中V'∈V和E'∈E,使得
最短路径不是天生唯一的,也不是最短路径树。
1.最佳子结构属性:最短路径的所有子路径都是最短路径。
令P 1为最短s-v路径的x-y子路径。令P 2为任何x-y路径。则P 1的成本≤P 2的成本,否则P不是最短的s-v路径。
2.三角不等式:令d(v,w)为从v到w的最短路径的长度。然后,
d(v,w)≤d(v,x)+ d(x,w)
3.上限属性:对于所有顶点v∈V,我们始终具有d [v]≥δ(s,v),并且一旦d [v]得出值δ(s,v),它就不会改变。
4.无路径性质:如果没有从s到v的路径,则我们通常有d [v] =δ(s,v)=∞。
5.收敛性:如果s-> u-> v是G在某些u上的最短路径,则v∈V,并且如果d [u] =δ(s,u)在松弛边(u, v),则之后的所有时间d [v] =δ(s,v)。