2022.3.30学习日记

迪杰斯特拉算法:

 连接图是二维邻接矩阵

通过Dijkstra计算图G中的最短路径时,需要指定起点vs(即从顶点vs开始计算)。
此外,引进两个集合S和U。S的作用是记录已求出最短路径的顶点,而U则是记录还未求出最短路径的顶点(以及该顶点到起点vs的距离)。
初始时,S中只有起点vs;U中是除vs之外的顶点,并且U中顶点的路径是"起点vs到该顶点的路径"。然后,从U中找出路径最短的顶点,并将其加入到S中;接着,更新U中的顶点和顶点对应的路径。 然后,再从U中找出路径最短的顶点,并将其加入到S中;接着,更新U中的顶点和顶点对应的路径。 … 重复该操作,直到遍历完所有顶点。


 思路整理:

将地图整理成二维连接矩阵的形式,但把每个站点都当成一个矩阵行列,数据的大小十分庞大,这不是我一个人能应付过来的

所以我将图例简化——我发现图有很多个交叉点,交叉点的出现,导致如果路线出现变更,需要从交叉点换车,并且换乘的次数不固定,要想取得最快的路线,有两种情况:需要换乘和不需要换乘

不需要换乘很简单,从出发点遍历路线站表就可以获得路线

需要换乘的情况就相对复杂了,不仅需要从出发线离开,还需要找到终点站在哪条线中

我将图中交叉点留下,省略其他点,将交叉点之间的站间数作为权值,构造一个简单的无向图。出发点(或终点)如果是交叉点就直接借用交叉图来计算和记录;如果出发点(或终点)不在交叉点就将其向两头延申到交叉点再进行以上计算和记录。

思路清晰,开始构建

posted @   枫浔  阅读(89)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
点击右上角即可分享
微信分享提示