图论基本概念及如何作图

在这里插入图片描述

在这里插入图片描述


无向图的权重邻接矩阵


在这里插入图片描述


有向图的权重邻接矩阵


在这里插入图片描述



狄杰斯特拉算法和贝尔曼福特算法求解最短路径


狄杰斯特拉算法


模板:

在这里插入图片描述

visited:是否访问过;

distance:最短距离;

parent:上一节点;

主要思想:

确定起点后寻找下一联接点,不断更新最短路径,以未访问过点的最短路径为下一联接点,继续更新,循环直至到终点;

缺点:

不能处理负权重问题;

解决方法:贝尔曼福特算法


贝尔曼福特算法

在这里插入图片描述


负权回路:


在这里插入图片描述


matlab计算最短路径



[P,d] = shortestpath(G,start,end [,‘Method’,algorithm] )

在这里插入图片描述

可选的算法:

在这里插入图片描述

PS:

matlab中的图节点要从1开始编;

编号最好是从1开始连续编号,不要自己随便定义编号;


返回任意两点的距离矩阵


d = distances(G [,‘Method’,algorithm])


找给定范围内所有的点


[nodeIDs,dist] = nearest(G,s,d [,‘Method’,algorithm])

返回图形G中与节点s的距离在d之内的所有节点,nodeIDs是符合条件的节点,Dist是这些节点与s的距离。



版权声明:本文为ly521_原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/ly521_/article/details/107260209