数学建模:图论模型-Floyd算法
紧接着来介绍一下图论模型的另一种算法——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算法相关推荐
- 图论模型Floyd算法
图论模型Floyd算法 一.简介 二.MATLAB执行代码 一.简介 二.MATLAB执行代码 tulun2.m a= [ 0,50,inf,40,25,10;50,0,15,20,inf,25;in ...
- 【数学建模】图论模型-Floyd算法(最优化)
文章目录 一.算法介绍 二.适用问题 三.算法总结 1. 步骤 四.应用场景举例 五.MATLAB代码 六.实际案例 七.论文案例片段(待完善) Floyd算法主要针对数学建模问题中的一些小的子问题进 ...
- 数学建模图论算法学习总结
数学建模图论算法学习总结 图论基本知识 B站视频: https://www.bilibili.com/video/av18374161/?p=35 https://www.bilibili.com/v ...
- 学数学建模算法对计算机的好处,数学建模中常见十种算法 (期末论文).doc
数学建模中常见十种算法 (期末论文) 数 学 系 毕 业 论 文 论文 (设计)题目: 数学建模中常见的十种算法 姓 名 黄小芬______ 学 号 100501313 专 业 数学与应用数学 班 级 ...
- 数学建模:现代优化算法之遗传算法
数学建模:现代优化算法之遗传算法 开始了开始了!!! 数学建模 数学建模:现代优化算法之遗传算法 前言 一.Genetic Algorithms(GA算法) 1.模型及算法 2.模型计算法 (1)编码 ...
- 数学建模常见模型总结
数学建模常见模型总结 一.插值 当已有数据量不够,需要补充,且认定已有数据可信时,通常利用函数插值方法. 常用插值方法 拉格朗日插值 分段线性插值 Hermite 三次样条插值 克里金法 matlab ...
- 数学建模——支持向量机模型详解Python代码
数学建模--支持向量机模型详解Python代码 from numpy import * import random import matplotlib.pyplot as plt import num ...
- 数学建模——线性规划模型详解Python代码
数学建模--线性规划模型详解Python代码 标准形式为: min z=2X1+3X2+x s.t x1+4x2+2x3>=8 3x1+2x2>=6 x1,x2,x3>=0 上述线性 ...
- 数学建模传染病模型_数学建模| 时间序列模型
1 数学建模 时间序列模型 1.与实践有关系的一组数据,叫做时间序列: 2.得到时间序列的数据后,要构建模型,其中平稳时间序列的模型,是本节课重点介绍的: 3.y=at+季节性+周期性 一. ...
最新文章
- extjs关于jsonreader
- 设计模式16——Memento设计模式
- 开源自制6通道航模遥控器,Arduino Pro Mini NRF24L01模块
- OpenCV-图像几何变换:旋转,缩放,斜切 .
- C++ reinterpret_cast,const_cast等 显式类型转换总结
- 为什么会出现 java.util.ConcurrentModificationException 异常?
- mysql正则通配符全解_mysql正则表达式与通配符
- 克隆CentOS6虚拟机eth0被修改为eth1如何修改eth0
- 什么是WebSocket,以及如何在Python中使用它?
- oracle基础与应用
- phpstudy命令行中数据表插入中文显示不了的问题
- 10分钟10行代码开发APP(delphi 应用案例)
- visual studio 2013连接Oracle 11g并获取数据:(一:环境搭建)
- 美国工程管理计算机方向,理工科同学必看!美国工程管理研究生申请大揭秘~...
- 看京东和淘宝的地址薄设计----填写订单的场景下
- 算术,逻辑左移右移(转)
- MT7628路由器工作原理,MT7628处理器相关参数介绍
- 适合面向手机设备开发的库
- Selenium自动化测试工具的介绍与使用
- OBS (Open Broadcast Software) Studio - RTMP 推流与 ffplay/vlc 播放 .m3u8