紧接着来介绍一下图论模型的另一种算法——Floyd算法,然后介绍其在MATLAB中的实现方法:

Floyd算法:Floyd算法是一个经典的动态规划算法。用通俗的语言来描述的话,首先我们的目标是寻找从点i到点j的最短
路径。从动态规划的角度看问题,我们需要为这个目标重新做一个诠释(这个诠释正是动态规划最富创造力的精华所在)。

从任意节点i到任意节点j的最短路径不外乎2种可能,1是直接从i到j,2是从i经过若干个节点k到j。所以,我们假设Dis(i,j)为节点u到节点v的最短路径的距离,对于每一个节点k,我们检查Dis(i,k) + Dis(k,j) < Dis(i,j)是否成立,如果成立,证明从i到k再到j的路径比i直接到j的路径短,我们便设置Dis(i,j) = Dis(i,k) + Dis(k,j),这样一来,当我们遍历完所有节点k,Dis(i,j)中记录的便是i到j的最短路径的距离。

MATLAB中的实现方法:

1、打开MATLAB软件,在其主界面的编辑器中分别写入下列代码:

tulun2.m

a= [ 0,50,inf,40,25,10;
     50,0,15,20,inf,25;
     inf,15,0,10,20,inf;
     40,20,10,0,10,25;
     25,inf,20,10,0,55;
     10,25,inf,25,55,0];
[D, path]=floyd(a)

floyd.m
function [D,path,min1,path1]=floyd(a,start,terminal)
D=a;n=size(D,1);path=zeros(n,n);
for i=1:n
   for j=1:n
      if D(i,j)~=inf
         path(i,j)=j;
      end,
   end,
end
for k=1:n
   for i=1:n
      for j=1:n
         if D(i,k)+D(k,j)<D(i,j)
            D(i,j)=D(i,k)+D(k,j);
            path(i,j)=path(i,k);
         end,
      end,
   end,
end
if nargin==3
   min1=D(start,terminal);
   m(1)=start;
   i=1;
   path1=[ ];   
   while   path(m(i),terminal)~=terminal
      k=i+1;                                
      m(k)=path(m(i),terminal);
      i=i+1;
   end
   m(i+1)=terminal;
   path1=m;
end

2、一个保存为tulun2.m,一个保存为Floyd.m,然后在命令行窗口中输入tulun2,结果如下:

至此,关于 Floyd算法的介绍基本完毕了,请大家继续关注!!!

数学建模:图论模型-Floyd算法相关推荐

  1. 图论模型Floyd算法

    图论模型Floyd算法 一.简介 二.MATLAB执行代码 一.简介 二.MATLAB执行代码 tulun2.m a= [ 0,50,inf,40,25,10;50,0,15,20,inf,25;in ...

  2. 【数学建模】图论模型-Floyd算法(最优化)

    文章目录 一.算法介绍 二.适用问题 三.算法总结 1. 步骤 四.应用场景举例 五.MATLAB代码 六.实际案例 七.论文案例片段(待完善) Floyd算法主要针对数学建模问题中的一些小的子问题进 ...

  3. 数学建模图论算法学习总结

    数学建模图论算法学习总结 图论基本知识 B站视频: https://www.bilibili.com/video/av18374161/?p=35 https://www.bilibili.com/v ...

  4. 学数学建模算法对计算机的好处,数学建模中常见十种算法 (期末论文).doc

    数学建模中常见十种算法 (期末论文) 数 学 系 毕 业 论 文 论文 (设计)题目: 数学建模中常见的十种算法 姓 名 黄小芬______ 学 号 100501313 专 业 数学与应用数学 班 级 ...

  5. 数学建模:现代优化算法之遗传算法

    数学建模:现代优化算法之遗传算法 开始了开始了!!! 数学建模 数学建模:现代优化算法之遗传算法 前言 一.Genetic Algorithms(GA算法) 1.模型及算法 2.模型计算法 (1)编码 ...

  6. 数学建模常见模型总结

    数学建模常见模型总结 一.插值 当已有数据量不够,需要补充,且认定已有数据可信时,通常利用函数插值方法. 常用插值方法 拉格朗日插值 分段线性插值 Hermite 三次样条插值 克里金法 matlab ...

  7. 数学建模——支持向量机模型详解Python代码

    数学建模--支持向量机模型详解Python代码 from numpy import * import random import matplotlib.pyplot as plt import num ...

  8. 数学建模——线性规划模型详解Python代码

    数学建模--线性规划模型详解Python代码 标准形式为: min z=2X1+3X2+x s.t x1+4x2+2x3>=8 3x1+2x2>=6 x1,x2,x3>=0 上述线性 ...

  9. 数学建模传染病模型_数学建模| 时间序列模型

    1 数学建模 时间序列模型 1.与实践有关系的一组数据,叫做时间序列: 2.得到时间序列的数据后,要构建模型,其中平稳时间序列的模型,是本节课重点介绍的: 3.y=at+季节性+周期性 一.     ...

最新文章

  1. extjs关于jsonreader
  2. 设计模式16——Memento设计模式
  3. 开源自制6通道航模遥控器,Arduino Pro Mini NRF24L01模块
  4. OpenCV-图像几何变换:旋转,缩放,斜切 .
  5. C++ reinterpret_cast,const_cast等 显式类型转换总结
  6. 为什么会出现 java.util.ConcurrentModificationException 异常?
  7. mysql正则通配符全解_mysql正则表达式与通配符
  8. 克隆CentOS6虚拟机eth0被修改为eth1如何修改eth0
  9. 什么是WebSocket,以及如何在Python中使用它?
  10. oracle基础与应用
  11. phpstudy命令行中数据表插入中文显示不了的问题
  12. 10分钟10行代码开发APP(delphi 应用案例)
  13. visual studio 2013连接Oracle 11g并获取数据:(一:环境搭建)
  14. 美国工程管理计算机方向,理工科同学必看!美国工程管理研究生申请大揭秘~...
  15. 看京东和淘宝的地址薄设计----填写订单的场景下
  16. 算术,逻辑左移右移(转)
  17. MT7628路由器工作原理,MT7628处理器相关参数介绍
  18. 适合面向手机设备开发的库
  19. Selenium自动化测试工具的介绍与使用
  20. OBS (Open Broadcast Software) Studio - RTMP 推流与 ffplay/vlc 播放 .m3u8

热门文章

  1. Mybatis系列之——整合Mybatis-Plus
  2. 华为3com router基础命令
  3. 01.JVM内存区域
  4. 英伟达Jetson Nano安装
  5. “迷你本”市场的事实真相
  6. 免费空间freehostia申请
  7. 5款精选阿里云大数据课程,9.9元助你踏出大数据行业入门第一步
  8. 哈工大计算机学硕录取,哈工大计算机学院243人进复试241人录取,仅刷2人,杠杠的!...
  9. 感谢德福德矩阵研发团队成功研发
  10. python小学分数计算