增加回溯的最短路径算法的matlab实现

本文介绍了如何使用Matlab实现Dijkstra最短路径算法,并探讨了记录历史轨迹的方法。通过邻接矩阵表示网络,利用dis数组存储最短距离,book数组标记已访问节点。算法通过不断选择集合Q中最接近源点的节点进行松弛操作,直至Q为空。回溯轨迹的关键在于通过每个点记录最短路径中的首个点,从而节省存储空间。
摘要由CSDN通过智能技术生成

1 引言-两件事情

一是之前在2016年华为软件精英赛所发布的路由计算问题,当时考虑到使用最短路径算法进行计算,但是由于当时能力不足,并且信心缺乏,困在了如何记录历史节点的问题上,没有继续下去。

近来,参加了研究生的数学建模比赛,在第五次模拟考试中,需要用到了最短路径算法来解决问题,此时,何去何从的问题又一次萦绕在心头。后来能够解决这个问题,我认为有以下三个因素对我的影响比较大,第一是之前虽然没有把路由的问题解决,但是对Dijkstra算法有了一定的了解,心中没有那么怵;第二是经过一年研究生学习,明白了一件事情,想等到万事俱备的时候再行动是干不成事情的,永远在准备中,一直在找理由说自己不会,没学过,没人教等等,其实都是借口,真正用心做,没有做不到的事情;第三点也是最重要的一点,我们建模比赛是三个小伙伴一起组队参加,然后李和杨对团队的全心投入影响着自己,一起思考,一起讨论争辩,怎能不进步?就是那句话“没有神一样的对手,只有猪一样的队友”,我们尽心去做,还怕甚!

2 算法思想

2.1 忍不住提前感谢

在这里首先要感谢两位作者和matlab软件,一是《啊哈!算法》的啊哈磊,本书用浅显易懂的语言描述了一些基础的算法,另一个是在数模搜集资料中,一篇范文中的一句关于回溯的话,此外,还有matlab在数据结构方面的特点,一切都以向量矩阵来表示,虽然略显死板,但对于我这样的初学者来说,很容易上手。哈哈,有些啰嗦

2.2 关键词(数据类型)

在编程入门的过程中,有一点给我很大帮助,就是符号表示很重要。

1 e[n][n]表示整个网络使用邻接矩阵

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值