在图的应用中,最短路径问题是最常见的,这里介绍并使用java实现两种解决最短路径的算法,分别是Dijkstra算法和Bellman-ford算法。
1、单源最短路径
一个顶点序列i1,i2........ik是图的一条路径,当且仅当边(i1,i2)(i2,i3).........(ik-1,ik)都在图中。如果除了第一个顶点和最后一个顶点之外,其余的顶点均不相同,那么这条路径称为简单路径。以一个源节点s为起始节点到图G中可到达节点的简单路径构成的一棵以s的树就是单源最短路径,树中的任一个节点v,s到v就是图G中s到v的一条最短路径。
为了解决单源最短路径问题,引入松弛技术。对于每个节点v来说,维持一个属性