写在前面
最短路径问题是图论研究中的一个经典算法问题。
它旨在寻找图(由结点和路径组成的)中两结点之间的最短路径。
这次主要是提供一个解决最短路径问题的matlab app。
本次分享的最短路径问题app仅针对无向图,实际上由于单行道存在,很多时候实际问题是一个有向图,有向图内容我们将在后期介绍。
两种表示方法
邻接矩阵法和邻接表法。
邻接矩阵(Adjacency Matrix)是表示顶点之间相邻关系的矩阵。
邻接矩阵又分为有向图邻接矩阵和无向图邻接矩阵。无向图的邻接矩阵一定是对称的,而有向图的邻接矩阵不一定对称。
这里我们用的是无向图的邻接矩阵表示图1中的地点和道路关系。例如地点1和地点2之间距离为6,则表1中矩阵1行2列和2行1列的值均为6,地点1和4之间没有道路,其矩阵表示为无穷大Inf。地点1与其自身距离为0。
邻接表只存储图中存在的边以及边的长度,例如点1和点2之间存在长度为6的边,那么邻接表中存在一行1,2,6。
minpath的安装
在matlab当前路径下,双击minpath.mlappinstall即可完成安装。
安装后的程序可以APP下面找到——
minpath的使用
minpath支持邻接矩阵以及邻接表两种表示无向图的方式,支持读取存储在.mat文件、文本文件以及excel文件的数据,也支持手动输入数据。文本文件和excel文件可以选择添加一行表头。
以下动图为minpath使用的操作实例。我们在testdata文件夹中提供了各种格式的测试数据。
获取源代码或想要了解更多,欢迎关注公众号:数学建模公会