数学建模--图论最短路径问题

一、图论的基本概念以及如何做出图论中的图形

1.图的基本概念

数学建模--图论最短路径问题_第1张图片

2.画 图(Graph)

作图更推荐在线作图,数据多的时候再考虑使用matlab作图.
https://csacademy.com/app/graph_editor/数学建模--图论最短路径问题_第2张图片

2.1.matlab作无向图

不带权重数学建模--图论最短路径问题_第3张图片
s1和t1对应位置相连.
使用字符串元胞数组–>使用大括号

带权重
数学建模--图论最短路径问题_第4张图片
数学建模--图论最短路径问题_第5张图片

2.2.matlab作有向图

不带权重
数学建模--图论最短路径问题_第6张图片
数学建模--图论最短路径问题_第7张图片

双向时
数学建模--图论最短路径问题_第8张图片

带权重
数学建模--图论最短路径问题_第9张图片
数学建模--图论最短路径问题_第10张图片

3.邻接矩阵

3.1.无向图的权重邻接矩阵

数学建模--图论最短路径问题_第11张图片

3.2.有向图的权重邻接矩阵

数学建模--图论最短路径问题_第12张图片

二、图论最短路径求解

1.迪杰斯特拉算法

1.1 步骤演示

数学建模--图论最短路径问题_第13张图片
数学建模--图论最短路径问题_第14张图片

1.2 迪杰斯特拉算法的缺点

>不能处理福权重.有可能出现错误的结果.

数学建模--图论最短路径问题_第15张图片

2.贝尔曼福特算法(可处理负权重)

2.1 缺点

不支持含有负权回路的图.

2.2 解决地杰斯特拉算法的缺点

数学建模--图论最短路径问题_第16张图片

2.3 负权回路

在负权回路上兜圈,可以使最短路长度无线小,所以贝尔曼福特算法也不能解决.
但是在建模上,这种情况很少,所以不用担心,正常使用即可.
数学建模--图论最短路径问题_第17张图片

3.matlab实现 (详细见代码)

3.1matlab计算最短路径

数学建模--图论最短路径问题_第18张图片

可选参数
数学建模--图论最短路径问题_第19张图片

返回任意两点的距离矩阵
数学建模--图论最短路径问题_第20张图片

找给定范围内所有的点
G:图G
s:节点s
d:距离
nodelDs : 符合条件的结点
Dist : 这些节点和节点s的距离
数学建模--图论最短路径问题_第21张图片

3.2课后作业

数学建模--图论最短路径问题_第22张图片
数学建模--图论最短路径问题_第23张图片

三、Floyd算法(弗洛伊德算法)

1 与其他两种算法的区别

数学建模--图论最短路径问题_第24张图片
一次性求出最短路径和给定起点,终点求出最短路径的区别

2 最短路径应满足的结论

数学建模--图论最短路径问题_第25张图片

3 Floyd算法 伪代码

数学建模--图论最短路径问题_第26张图片

4 Floyd算法 代码

详见代码文件和pdf文件说明
还有打印路径等等算法.

你可能感兴趣的:(数学建模)