最短路径:迪杰斯克拉

在这里插入图片描述
第一次确定了(初始化):V0
所以放进S 这个确定集合里面,dis 是表示v0 到所有点的距离
在这里插入图片描述
S【7】:.0
遍历:v0 – v1, v0 – v2
dis【7】: 0 3 2 inf inf inf inf
然后知道 到 v2 距离最短:2
所以

第二次确定了(作为新起始点):V2
在这里插入图片描述
S【7】:0,2
遍历:v2 – v3,v2 – v5 //(接下不写了一个道理的,为了其他内容看些)
dis【7】: 0 3 2 5 inf 7 inf
因为从dis集合可以知道目前最短距离是:3 (为什么不是0或者2 呢,因为他们是已知的点了:v0 和v2,排除在外)

第三次确定(作为新起始点):V1
在这里插入图片描述
S【7】:0,2,1
dis【7】:0 3 2 4 8 7 inf

第四次确定(作为新起始点):V3
在这里插入图片描述
S【7】:0,2,1,3
dis【7】:0 3 2 4 6 7 inf

第五次确定(作为新起始点):V4
在这里插入图片描述
S【7】:0,2,1,3,4
dis【7】:0 3 2 4 6 7 13

第六次确认(作为新起始点):V5
在这里插入图片描述
S【7】:0,2,1,3,4,5
dis【7】:0 3 2 4 6 7 11

第七次确认(作为新起始点):v6
在这里插入图片描述
在这里插入图片描述
因为 S 集合此时 == 所有顶点,所以循环结束

总结:

  1. 每选一个起始点就意味着他的入度(即箭头指向的点)已经是最优化了,这也是贪心算法为什么每次选择最短距离边 (新起始点的入度边)的原因

  2. 每次选完一个起始点,遍历与之相连的下一个顶点且分别相加这些边,如果已经知道距离,例:v0到v4 距离18,经过遍历相加后发现新的路径同样可以到达距离只要:14
    ,则优化v0到v4距离为14

反正只要记住:每次选择的起始点已经被前个起始点优化到最优了。

c 和 MATLAB 代码待更

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
杰斯塔拉算法的最短路径在MATLAB中可以通过以下步骤实现: 首先,你需要创建一个图形对象,该对象表示你的网格场景。你可以使用MATLAB中的`graph`函数来创建这个对象。在创建图形对象时,你可以指定节点之间的距离。 然后,你需要定义源点`a`和目标点`b`,以及节点之间的距离矩阵。这个距离矩阵描述了节点之间的连接关系和距离。 接下来,你可以使用MATLAB中的`shortestpath`函数来计算从源点到目标点的最短路径。这个函数将返回最短路径的节点索引。 最后,你可以使用这些节点索引来可视化最短路径。你可以使用MATLAB中的绘图函数来绘制节点和边,并在图中突出显示最短路径。 你可以参考引用中的MATLAB Guide界面编程来实现上述步骤。同时,你也可以使用引用中提供的MATLAB程序下载来了解更多关于杰斯塔拉算法的实现细节。 需要注意的是,在栅格场景下,杰斯塔拉算法的运行效率可能不高,因为每个节点之间的距离是固定的。引用中提到了使用杰斯塔拉算法的贪心策略在这种情况下基本无效,因为它等效于广度优先搜索算法。你可以考虑使用其他更适合栅格场景的最短路径算法,比如A*算法。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [基于MATLAB的最短路径 贝尔曼-福特 Bellman-Ford算法](https://blog.csdn.net/BaiLuQingFeng/article/details/104654322)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [机器人路径规划之杰斯特拉算法(二)](https://blog.csdn.net/su_fei_ma_su/article/details/117535802)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值