- 1、本文档共17页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
;当图中存在负权边时,迪杰斯特拉算法无法正确求解单源最短路径问题。;理查德·贝尔曼(RichardBellman)和莱斯特·福特共同提出了Bellman-Ford算法。
该算法可以求解有负权边的单源最短路径问题,也可以判断图中是否存在负环。;边(u,v)的松弛过程:
Relax(u,v,w)
{
if(d[v]d[u]+w(u,v)){
d[v]=d[u]+w(u,v);
pre[v]=u;
}
};Bellman-Ford算法过程:
1.对所有边进行(|V|-1)?轮松弛操作,得到源点到所有点的最短路径长度;
2.再进行1轮松弛操作,如果发现某些点的最短路径长度仍有更新,则说明图中存在负环。;;;;;/*贝尔曼?福特算法求解单源最短路径*/
voidBellman-Ford(G,w,s){/*G表示有向网,w表示邻接矩阵,s表示源点*/
/*1.初始化*/
d[s]=0;pre[s]=-1;
foreachv∈V-{s}{d[v]=+∞;pre[v]=-1;}?
/*2.松弛步骤*/
fori=1to|V|-1
foreachedge(u,v)∈E
if(d[v]d[u]+w(u,v)){
d[v]=d[u]+w(u,v);
pre[v]=u;
}?
/*3.检查是否存在负值环*/
foreachedge(u,v)∈E
if(d[v]d[u]+w(u,v))
printf(“存在负值环”);
};定理:如果图G=(V,E)不包含负环,执行Bellman-Ford算法后,d[v]即是源点s到点v的最短路径距离。;推论:如果在(|V|-1)轮遍历后,存在某个点的最短路径距离仍然有变化,那么G中存在负值环。
如下图所示,经过(|V|-1)轮遍历,可得从源点到v1、v2、…、vk的当前最短路径距离;
继续进行第|V|轮遍历时,假定从vk到v2存在一条边,此时d[v2]=min{d[v2],d[vk]+w(vk,v2)},若d[v2]有更新,说明从源点s(v0)-v1-v2-…-vk-v2是比s(v0)-v1-v2更短的一条路径,即v2-…-vk-v2构成一个负值环。因此,推论成立。;思考:什么情况发生松弛操作?
只有d[u]更新后,从u发出的点才可能进行松弛操作。;Bellman-Ford算法的优化;while(队列不为空)
{
取出队列中结点;
松弛它发出的边;
把最短路径长度有更新的点加入队列;
};SPFA算法的局限性:
1.无法判断负环,因为一个点可能被入队多次
2.最坏时间复杂度没有改进
3.实际运行效果可能不如Bellman-Ford算法;上述过程是不断发现问题、解决问题的过程!
发现问题比解决问题更重要!
您可能关注的文档
- 算法设计与分析 课件 0-算法导论.pptx
- 算法设计与分析 课件 1.0-算法评价-序.pptx
- 算法设计与分析 课件 1.1-算法基础.pptx
- 算法设计与分析 课件 1.2.0-算法分析准则.pptx
- 算法设计与分析 课件 1.2.1-算法分析准则 - 正确性.pptx
- 算法设计与分析 课件 1.2.2-算法分析准则 - 时间复杂度.pptx
- 算法设计与分析 课件 1.2.3-算法分析准则 - 时间复杂度 - 渐近分析及符号表示.pptx
- 算法设计与分析 课件 1.2.4-算法分析准则 - 时间复杂度 - 非递归.pptx
- 算法设计与分析 课件 1.2.5-算法分析准则 - 时间复杂度 - 递归 - 迭代.pptx
- 算法设计与分析 课件 1.2.6-算法分析准则 - 时间复杂度 - 递归 - 递归树.pptx
- 人教版九年级英语全一册单元速记•巧练Unit13【速记清单】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit9【速记清单】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit11【速记清单】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit14【单元测试·提升卷】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit8【速记清单】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit4【单元测试·提升卷】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit13【单元测试·基础卷】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit7【速记清单】(原卷版+解析).docx
- 苏教版五年级上册数学分层作业设计 2.2 三角形的面积(附答案).docx
- 人教版九年级英语全一册单元速记•巧练Unit12【单元测试·基础卷】(原卷版+解析).docx
最近下载
- 空调主机吊装方案.docx
- 基层儿科医务人员服务能力提升学习班答案-2024华医网继续教育答案.docx VIP
- 部编 人教版小学二年级上册语文教学课件 5.课文 14.我要的是葫芦 .pptx VIP
- 让“工具包”理念和方法落地.pdf VIP
- 国家开放大学《可编程控制器应用实训》形考任务2(实训二)参考答案.docx
- 4.2 实现中华民族伟大复兴的中国梦 课件(18张PPT)-2023-2024学年高中政治统编版必修一中国特色社会主义.pptx VIP
- 费森尤斯CRRT操作流程.doc VIP
- 五年级上册英语期中试卷人教精通版.pdf VIP
- 第17课昆明的雨(课件)(共27张PPT).pptx VIP
- 小学信息技术(信息科技)第六册泰山版(2018)合集.docx
文档评论(0)