图论-分层图最短路

引言

——“分层图最短路”顾名思意,可以知道是在分层的图上跑最短路得算法。当我开始学习这个算法是,看到这个算法名,总有些雨里雾里的。什么是分层,为什么要分层,怎么分层?

概念

概念:分层图最短路的模型就是在最短路模型的基础上加上 k 个决策。这 k 个决策,并不会影响图得结构,只影响当前状态的代价。

最短路与分层图最短路

  • 最短路模型:给定n个点m个条路,求从s出发到t的最短距离

  • 分层图最短路模型:给定n个点m条路以及k个决策,再求出s到t的最短距离

方法

  1. 直接构建 k+1 层平行的图

  2. 多开一维记录决策信息

方法一 建立平行图

  1. 建图

  2. 处理 k 个决策:对于k 个决策,我们可以开 k层与初始图相同的图。不同图得跨越就是不同决策,我们根据题意建设不同平行层之间的联系。

  3. 跑最短路。

    例:给定一个图,有k次决策,可以使两点之间的边权变为0。 例子如图——

注意事项:因为有k层图,相当于初始图要存k遍,图的范围被扩大,时间和空间复杂度都要有所注意。

方法二 记录决策信息

还没学。

学习参考:

作者:wh1sky

出处:https://www.cnblogs.com/wh1sky/p/17819543.html

版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。

posted @   Wh1sky  阅读(47)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· NetPad:一个.NET开源、跨平台的C#编辑器
· PowerShell开发游戏 · 打蜜蜂
· 凌晨三点救火实录:Java内存泄漏的七个神坑,你至少踩过三个!
more_horiz
keyboard_arrow_up dark_mode palette
选择主题
点击右上角即可分享
微信分享提示