典型用途:交通问题。如:城市A到城市B有多条线路,但每条线路的交通费(或所需时间)不同,那么,如何选择一条
线路,使总费用(或总时间)最少?
问题抽象:在带权有向图中A点(源点)到达B点(终点)的多条路径中,寻找一条各边权值(可以代表时间或费用等)之和最小的路径,即最短路径。
两种常见的最短路径问题
一、单源最短路径---用Dijkstra(迪杰斯特拉)算法。
二、所有顶点间的最短路径-用Floyd(弗洛伊德)算法。
(1)单源最短路径 (Dijkstra算法)
目的:设一有向图G=(V, E),已知各边的权值,以某指定点v0为源点,求从v0到图的其余各点的最短路径。
限定各边上的权值大于或等于0。