最短路径 matlab 动态规划

这篇具有很好参考价值的文章主要介绍了最短路径 matlab 动态规划。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

数模培训,遇到了上个暑假没有解决的动态规划,唉,看来出来混迟早得还:

如图,给定一个线路网络,两点之间连线上的数字表示两点之间的距离(或费用),试求一条由A到F的铺管线路,使总距离为最短(或总费用最少)。

matlab最短路径算法代码,matlab,matlab,动态规划,开发语言

matlab代码模板如下:

clc,clear
now=[3,5,4,0,0,0,0,0,0
    9,5,0,4,3,5,0,1,7
    1,5,0,8,4,6,4,4,2
    4,2,0,6,9,0,7,5,0
    1,0,0,2,0,0,0,0,0
    0,0,0,0,0,0,0,0,0];  %路程矩阵,第i行表示第i个阶段(最后一个阶段默认全为0);n*m列,n个起点,m种不同走法,隔m个数开始下一个起点
h=6 ;        %阶段数
a=3   ;      %起点数
b=3;         %决策数(决策数一般等于起点数)
%%只需修改上面的代码,就可以嵌套进其他的最短路径求解%%


now(now==0)=inf;    %先把他写成全矩阵,没有路的用00补充,之后吧0转换成无穷大
road_sum=zeros(h,a*b);   %保存每个阶段的最短路程长

for i=h-1:-1:1      %不同阶段
    for n=1:a       %不同阶段下的几个不同起点
        for k=1:b   %不同起点下的几个不同决策
            road_sum(i,(n-1)*a+k)=now(i,(n-1)*a+k)+min(road_sum(i+1,(k-1)*a+1:k*a));   %当前路径加上上个阶段下的最短路径
        end
    end
end

road=[];                %用来保存选择的起点
for i=1:h-1
    if i==1
        start=find(road_sum(1,:)==min(road_sum(1,:)));       %找到起点之后的第一个点
    else
        start=find(road_sum(i,(start-1)*a+1:start*a)==min(road_sum(i,(start-1)*a+1:start*a))) ;      %找到起点之后的第一个点
    end
    if length(start)>0
        disp('注意该问题存在多条最优解,已自动帮您规划了一条路径')
        start=start(1);
    end
    road=[road,start] ;  %保存
end

disp(['最短路径和为:' num2str(min(road_sum(1,:)))])
disp('其中一条对应的路径选择为:从起点出发,')
for i=road
    disp(['选下一个阶段的起点' num2str(i) ','])
end
    

该模板可以适用于无约束的最短路径这一类问题文章来源地址https://www.toymoban.com/news/detail-523847.html

到了这里,关于最短路径 matlab 动态规划的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 简短通俗理解动态规划算法--最短路径问题

    问题:从某顶点出发,沿图的边到达另一顶点所经过的路径中,各边上权值之和最小的一条路径——最短路径。在博客动态规划算法中介绍了动态规划的基本思想已经建立动态规划模型的步骤,下面将其中的方法分析最短路径问题。 最短路径有一个重要特性: 如果由起点A经

    2024年02月08日
    浏览(47)
  • 算法:动态规划---斐波那契和最短路径

    从本篇开始总结的是动态规划的一些内容,动态规划是算法中非常重要的一个版块,因此也是学习算法中的一个重点,在学习动态规划前应当要把动态规划的基础知识学习一下 动态规划既然是一个新的算法,这个名字也是新名字,那么就要首先明确这个算法的名字代表什么含

    2024年01月25日
    浏览(55)
  • 动态规划算法解决背包问题,算法分析与C语言代码实现,时间效率解析

    🎊【数据结构与算法】专题正在持续更新中,各种数据结构的创建原理与运用✨,经典算法的解析✨都在这儿,欢迎大家前往订阅本专题,获取更多详细信息哦🎏🎏🎏 🪔本系列专栏 -  数据结构与算法_勾栏听曲_0 🍻欢迎大家  🏹  点赞👍  评论📨  收藏⭐️ 📌个人主

    2023年04月16日
    浏览(47)
  • 【路径规划】基于matlab帝企鹅算法栅格地图机器人最短路径规划【含Matlab源码 3630期】

    1 帝企鹅算法 帝企鹅优化(Emperor Penguin Optimizer,EPO)算法是Dhiman G和Kumar V于2018年提出的一种新型群智能算法,该算法具有参数少、收敛精度高等特点。帝企鹅从事各种活动,如狩猎、群体觅食,是群居性动物。每当恶劣的气候来临,它们会挤在一起防风御寒。帝企鹅在南极极端

    2024年02月03日
    浏览(47)
  • 【路径规划】基于matlab火鹰算法栅格地图机器人最短路径规划【含Matlab源码 3679期】

    ✅博主简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,Matlab项目合作可私信。 🍎个人主页:海神之光 🏆代码获取方式: 海神之光Matlab王者学习之路—代码获取方式 ⛳️座右铭:行百里者,半于九十。 更多Matlab仿真内容点击👇 Matlab图像处理(进阶版) 路径规划

    2024年02月02日
    浏览(51)
  • 【路径规划】鲸鱼算法栅格地图机器人最短路径规划【含Matlab源码 3613期】

    1 鲸鱼算法 一种元启发式优化算法,模拟座头鲸狩猎行为的元启发式优化算法。目前的工作与其他群优化算法相比的主要区别在于,采用随机或最佳搜索代理来模拟捕猎行为,并使用螺旋来模拟座头鲸的泡泡网攻击机制。该算法具有机制简单、参数少、寻优能力强等优点,在

    2024年02月04日
    浏览(55)
  • Matlab中基于松鼠算法的栅格地图机器人最短路径规划

    在本文中,我们将探讨如何使用Matlab编写基于松鼠算法的栅格地图机器人最短路径规划算法。松鼠算法是一种基于自然界松鼠觅食行为的优化算法,它能够用于解决各种优化问题,包括路径规划。 首先,我们需要创建一个栅格地图,用于模拟机器人的环境。在栅格地图中,每

    2024年02月06日
    浏览(45)
  • MATLAB轻松绘制地图路线——Dijkstra(迪杰斯特拉)算法最短路径规划

    利用MATLAB绘制地图需要三个基本数据: 节点 节点坐标 节点间相通的路线 以11B交通巡警平台调度问题中的A区数据为例: (数据及工程文件下载链接见文末) Demo1: 可通过已知节点的坐标,计算出各节点之间的距离,有Matlab基础的同学可以尝试Demo2, 也可通过Excel自行实现;

    2023年04月21日
    浏览(46)
  • 基于MATLAB的蚁群算法机器人栅格地图最短路径规划

    基于MATLAB的蚁群算法机器人栅格地图最短路径规划 蚁群算法(Ant Colony Optimization,ACO)是一种基于模拟蚂蚁觅食行为而发展起来的启发式优化算法。该算法通过模拟蚂蚁在寻找食物时的行为,来解决路径规划等优化问题。在本文中,我们将使用MATLAB来实现基于蚁群算法的机器

    2024年02月07日
    浏览(45)
  • 【路径规划】自适应遗传算法机器人栅格地图最短路径规划【含Matlab源码 3570期】

    1 遗传算法 遗传算法是一种基于生物进化论模型的优化算法,通过模拟生物进化的过程,通过复制、交叉、突变等操作产生下一代的解,并逐步淘汰掉适应度函数值低的解,增加适应度函数值高的解。遗传算法可以用于解决各种优化问题,如函数优化、组合优化、机器学习等

    2024年02月03日
    浏览(71)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包