matlab解决最短路径问题

最短路径问题

  • 写在前面
  • 两种表示方法
  • minpath的安装
  • minpath的使用

写在前面

最短路径问题是图论研究中的一个经典算法问题。
它旨在寻找图(由结点和路径组成的)中两结点之间的最短路径。

这次主要是提供一个解决最短路径问题的matlab app。

本次分享的最短路径问题app仅针对无向图,实际上由于单行道存在,很多时候实际问题是一个有向图,有向图内容我们将在后期介绍。
matlab解决最短路径问题_第1张图片

两种表示方法

邻接矩阵法和邻接表法。

邻接矩阵(Adjacency Matrix)是表示顶点之间相邻关系的矩阵。

邻接矩阵又分为有向图邻接矩阵和无向图邻接矩阵。无向图的邻接矩阵一定是对称的,而有向图的邻接矩阵不一定对称。

这里我们用的是无向图的邻接矩阵表示图1中的地点和道路关系。例如地点1和地点2之间距离为6,则表1中矩阵1行2列和2行1列的值均为6,地点1和4之间没有道路,其矩阵表示为无穷大Inf。地点1与其自身距离为0。

matlab解决最短路径问题_第2张图片
邻接表只存储图中存在的边以及边的长度,例如点1和点2之间存在长度为6的边,那么邻接表中存在一行1,2,6。
matlab解决最短路径问题_第3张图片

minpath的安装

在matlab当前路径下,双击minpath.mlappinstall即可完成安装。

安装后的程序可以APP下面找到——
matlab解决最短路径问题_第4张图片

minpath的使用

minpath支持邻接矩阵以及邻接表两种表示无向图的方式,支持读取存储在.mat文件、文本文件以及excel文件的数据,也支持手动输入数据。文本文件和excel文件可以选择添加一行表头。

以下动图为minpath使用的操作实例。我们在testdata文件夹中提供了各种格式的测试数据。

matlab解决最短路径问题_第5张图片
matlab解决最短路径问题_第6张图片

获取源代码或想要了解更多,欢迎关注公众号:数学建模公会

你可能感兴趣的:(matlab解决最短路径问题)