图与狄克斯特拉算法

使用广度优先搜索可以获得图中节点之间的最短路径,这里的最短术语只是用来描述节点之间的边数最小。当边具有某种意义时,需要考虑边的权重。

如边可以用来描述时间,距离,金额等,狄克斯特拉就是用来解决最"快"的路径,快只的就是权重最小,时间最短,金额最小等。

所以广度优先搜索用于在非加权图中查找最短路径,狄克斯特拉算法用于在加权图中查找最快路径。

狄克斯特拉包含的4个基本步骤:
1 找出当前最"快"的节点,从起点开始可以最"快"到达的节点
2 更新该节点的邻居节点的开销
3 重复上面的步骤,直到图中的节点均已被处理
4 得出最终的最优路径

如下图,节点之间的边表示所需要的时间(注意狄克斯特拉用于有向无环图且权重不为负数),使用程序模拟找到从公司到家的最快路径。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_43275277/article/details/108472683