问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

dijkstra算法是什么?88

发布网友 发布时间:2023-09-11 14:38

我来回答

2个回答

热心网友 时间:2024-12-05 11:17

迪杰斯特拉算法用于求解一个有向图(也可以是无向图,无向图是有向图的一种特例)的一个点(称之为原点)到其余各点(称之为周边点)的最短路径问题。算法构思很是巧妙(我这么认为),简直达到了“无心插柳柳成荫”的境界。算法本身并不是按照我们的思维习惯——求解从原点到第一个点的最短路径,再到第二个点的最短路径,直至最后求解完成到第n个点的最短路径,而是求解从原点出发的各有向路径的从小到大的排列(如果这个有向图中有环1-2-3-1算法岂不是永无终结之日了??!!),但是算法最终确实得到了从原点到图中其余各点的最短路径,可以说这是个副产品,对于算法的终结条件也应该以求得了原点到图中其余各点的最短路径为宜。清楚了算法的这种巧妙构思后,理解算法本身就不是难题了。

算法把一个图(G)中的点划分成了若干部分:

1):原点(v);

2):所有周边点(C);

另外有一个辅助集合S,从v到S中的点的最短路径已经求得。S的最初状态是空集。

这样就可以进一步划分图(G):

1):原点(v);

2):已求出v至其最短路径的周边点(S);

3):尚未求出v至其最短路径的周边点(Other=C-S);

算法的主体思想:

A、找到v——Other所有路径中的的最短路径vd=v——d(Other的一个元素);

B、找到v——S——Other所有路径中的的最短路径vi=v——i(Other的一个元素);

C、比较vd和vi如果vd<=vi则将d加入S且从Other中删除,否则将i加入S且从Other中删除。

重复以上步骤直至Other为空集。

我们求得的最短路径是升序排列的,那为什么下一条最短路径就存在于v——

热心网友 时间:2024-12-05 11:17

迪杰斯特拉算法用于求解一个有向图(也可以是无向图,无向图是有向图的一种特例)的一个点(称之为原点)到其余各点(称之为周边点)的最短路径问题。算法构思很是巧妙(我这么认为),简直达到了“无心插柳柳成荫”的境界。算法本身并不是按照我们的思维习惯——求解从原点到第一个点的最短路径,再到第二个点的最短路径,直至最后求解完成到第n个点的最短路径,而是求解从原点出发的各有向路径的从小到大的排列(如果这个有向图中有环1-2-3-1算法岂不是永无终结之日了??!!),但是算法最终确实得到了从原点到图中其余各点的最短路径,可以说这是个副产品,对于算法的终结条件也应该以求得了原点到图中其余各点的最短路径为宜。清楚了算法的这种巧妙构思后,理解算法本身就不是难题了。

算法把一个图(G)中的点划分成了若干部分:

1):原点(v);

2):所有周边点(C);

另外有一个辅助集合S,从v到S中的点的最短路径已经求得。S的最初状态是空集。

这样就可以进一步划分图(G):

1):原点(v);

2):已求出v至其最短路径的周边点(S);

3):尚未求出v至其最短路径的周边点(Other=C-S);

算法的主体思想:

A、找到v——Other所有路径中的的最短路径vd=v——d(Other的一个元素);

B、找到v——S——Other所有路径中的的最短路径vi=v——i(Other的一个元素);

C、比较vd和vi如果vd<=vi则将d加入S且从Other中删除,否则将i加入S且从Other中删除。

重复以上步骤直至Other为空集。

我们求得的最短路径是升序排列的,那为什么下一条最短路径就存在于v——Other或v——S——Other之中呢,难道不能存在于v——Other——Other之中吗??当然不能,因为假设是存在于v——Other——Other之中,那么肯定有一条比这条路径更短的路径v——Other我们没找到呢!

参考资料:http://it.13520.org/ArticleView/2005-9-6/Article_View_165789.Htm

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
招商银行的美元天添金怎么样? 天添美蒸馒头为什么开裂呢 上海食堂送菜 邮政跨地区取款手续费多? 谁能告诉我邮政储蓄卡跨省取钱要不要收费啊? 自贡市龙盛世纪仿真模型制造有限公司公司简介 学PS真的很难吗 红烧萝卜牛筋 微信怎么转发公众号部分内容 转发公众号部分内容方法 微信公众号内的视频如何下载?一个F12搞定 有没有女主重生后对亲人心灰意冷的小说,类似一世一花和重生之若...4 请问&quot;双面羊毛面料&quot;用日语得怎么说? 日语的羊毛是羊毛还是毛还是ウール2 请问羊毛、羊绒和毛呢用日文怎么翻译呀?30 我要加入嘉兴学院的学生会 通知说要在嘉兴学院学生会网站下载报...1 我刚被成于弄骗了,款汇过去就玩消失,我电话税务局举报他们公司... 我是嘉兴学院的,我已经把一卡通的密码都改了,为什么教务处上登... 求解行列式为什么两种算法算出来的结果不一样,算了好几遍都没发...3 谁能和我说下迪克斯特拉算法,求解最短路径问题52 数据结构上的很多都是算法,但是要写程序的时候,照着那些算法都... 可是为什么我第一种算法和第二种算法得出来的结果不一样呢? 这两个算法到底哪个是对的?为什么结果不一样? 内墙腻子粉用什么调最好能用901胶水调吗 901胶起什么作用?如果墙面不刷901胶,会怎样?32 901建筑胶水能直接喷在腻子粉墙面吗1 901胶水刷墙后多久批腻子 从阿里巴巴拿货到微信卖犯法吗?这个产品微商也在做。到时候会不...1 用滑石粉加901胶水熟胶粉调腻子时掺进去了一些腻子粉,会不会...3 一半水一半901胶水混合加少许滑石粉和白水泥,再加腻子粉搅成... 做微商自己在阿里巴巴进货然后再给别人做代理违法哪8 植物油吃多了会长胖不→_→?9 植物油吃多了会发胖吗?9 吃植物油会导致肥胖吗? 怎么把照片弄成小于200k呢?2 怎么把图片弄成小于2M的图片呢?3 在澳洲买苹果6能用中国移动的4G吗? 想让朋友从澳大利亚带无锁版iphone6回国,可以支持国内移... 买了新华保险尊贵人生年金保险(分红型),发现亏大了,现在要退...5 把文言文改成作文三百字1 用陋室铭写一篇三百字的文言文作文三百字1 围绕以子之道移之树人写一篇作文高中200字1 咏雪文言文改写一篇作文三百字68 家庭中发生的生活的滋味三百字作文3 300字文言文93 这个C++写的快速排序算法为什么会出错?3 蚁群算法的概念,最好能举例说明一些蚁群算法适用于哪些问题!16 曹操墓里发现了两块头盖骨,一块曹操的,一块曹操小时候的。这是...190 这一年,中国的考古学家们在曹操墓里发现了两块头盖骨,一块曹操...7 吃太多植物油会胖吗?34 两个曹操头骨11