最短路径问题与广度优先搜索

Posted songyuejie

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了最短路径问题与广度优先搜索相关的知识,希望对你有一定的参考价值。

解决最短路径问题的算法被称为广度优先(breadth-first search,BFS)搜索。

广度优先搜索是一种用于图的查找算法,可解决两类问题:

从节点A出发,有前往节点B的路径吗?

从节点A出发,前往节点B的哪条路径最短?

最短路径问题的解决步骤:

1.使用图建立问题模型;

2.使用广度优先搜索解决问题。

广度优先搜素算法从邻居节点及邻近节点的邻居节点中搜索,直到搜索到目标。

首先搜索一度 关系,再搜索二度关系 ,然后三度关系,......

因此,广度优先搜索不仅查到从A到B的路径,而且找到的是最短的路径。

只有按添加顺序查找时,才能实现这样的目的;可以使用队列(queue)来实现。

队列工作原理:先进先出(First In First Out,FIFO)。

队列操作:入队,出队。

图的实现:

图由一系列的节点和边组成;每个节点都与邻近节点相连,可以使用散列表来实现图。

散列表是无序的,添加键-值对的顺序是无关的。

 

以上是关于最短路径问题与广度优先搜索的主要内容,如果未能解决你的问题,请参考以下文章

算法——广度优先搜索

算法广度优先搜索

算法笔记-最短路径规划

图论:图的四种最短路径算法

图论:图的四种最短路径算法

动画演示广度优先算法寻找最短路径