第K短路
首先证明那个比较显然的推论
我们先证明一下一个小引理:搜索树边权(也是后继的代价减去前驱的代价)非负的优先队列BFS先出队的点一定比后出队的点的代价小或等于
用数学归纳法,假设前面已经出队的点满足以上性质,之前最后一个出队的点为
我们考虑一下
如果
如果
然后我们考虑反证,假设
如果这条路径不是第
与推论矛盾,所以蓝书推论得证
然后我们考虑用A*优化这一个优先队列BFS,估价函数就像蓝书这么设计
很巧的一件事情是,这么设计后,不会出现上一篇博客说的那种特殊情况,就是仍然满足P126说的这个推论
我们考虑一下什么BFS才满足我们上面证明的引理:搜索树上的边权非负且是优先队列BFS
这里的A*是基于优先队列的,没问题
那么这个A*的搜索树边权非负吗?是的,下面是证明
考虑搜索树上的一个点
由最短路定义可得
所以
而上式前者是
所以搜索树上的边权(即
但是注意,我们的引理说的“代价”二字指的是节点的状态代价,在这里的A*中,是第
对同一个点取出了
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构