Dijstra算法与搜索算法

Dijistra其实就是一种搜索算法, 它是BFS的升级版。假设每条路径的值为1,那么两点之间的最短路径可以直接用BFS求解。

如果每条路径值不一样呢?和BFS相比,又有什么特殊之处?

BFS算法基于队列实现,扩展节点时,直接取队列第一个节点。而Dijstra算法基于优先队列实现,扩展节点时,直接取最短路径节点。 

如下图所示:其实,Dijstra和BFS都是属于uniform-cost search (UCS)算法的特殊情况。 UCS在每次扩展节点的时候, 都扩展代价最小的节点。

有趣的是:而UCS算法是属于A*算法的特殊情况, 对上述算法感兴趣的话,可以参考《人工智能 一种现代的方法》

搜索算法关系图
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1)这本书为什么值得看: Python语言描述,如果学的Python用这本书学数据结构更合适 2016年出版,内容...
    孙怀阔阅读 14,330评论 0 15
  • 下面是本人在看算法书籍时做的笔记。因为前面的比较基础,就从第五章才开始做的笔记 第五章:散列表 个人理解:概念类似...
    大树听雨阅读 3,138评论 0 0
  • 双11,你有个红包未领取!!! 每人每天抽3次红包,双11再抽大奖1111元,活动很简单复制¥ltuJbRkjNV...
    野超Ivan阅读 1,534评论 0 0
  • 是的,美好的事物总是能牵引我们的视线,甚至有时能震撼我们的心灵。这就是为什么一些好的摄影作品能获大家喜欢的直接原因...
    秀英阅读 7,648评论 46 93
  • 感恩感谢坏种子爆破的严重性,让我感觉自己缺点还是很大的,感恩感谢所有的安排,事情的发生,感恩感谢迂回曲折的转机,感...
    德胜阅读 793评论 0 0