MATLAB图论合集(二)计算最小生成树

今天来介绍第二部分,图论中非常重要的知识点------最小生成树。作为数据结构的理论知识,Prim算法和克鲁斯卡尔算法的思想此处博主不详细介绍,建议在阅读本帖前熟练掌握。


对于无向带权图,在MATLAB中可以直接以邻接矩阵的方式创建出来,如下:

Matlab 复制代码
A=[0 20 0 0 15 0;
   20 0 20 60 25 0;
   0 20 0 30 18 0;
   0 60 30 0 35 10;
   15 25 18 35 0 15;
  0 0 0 10 15 0];
G=graph(A);

但是这种创建方式对于可视化并不是很友好------无法在图上显示每条边对应的权值,因此采用下面的方式创建:

Matlab 复制代码
s=[1 1 2 2 2 3 3 4 4 5];
t=[2 5 3 4 5 4 5 5 6 6];
weights=[20 15 20 60 25 30 18 35 10 15];
G=graph(s,t,weights);
plot(G,'EdgeLabel',weights);

创建出的带全无向图如下:

首先我们先用普利姆算法手写一遍,得出的答案如下:

然后用MATLAB计算并可视化,用到内置函数minspantree

Matlab 复制代码
T=minspantree(G);
plot(T);

计算结果如下:

如图,和博主手算的略微有区别:其实是因为1------2与2------3两条边的权值一致,所以最后找到的结点2无论和结点1还是结点3连接都正确~

相关推荐
黎雁·泠崖1 分钟前
【线性表系列入门篇】从顺序表到链表:解锁数据结构的进化密码
c语言·数据结构·链表
ghie90902 分钟前
基于LSB匹配的隐写术MATLAB实现
开发语言·计算机视觉·matlab
shizhenshide5 分钟前
极速响应:平均破解速度<3秒的验证码服务,为抢购爬虫而生
算法
AD钙奶-lalala6 分钟前
leetcode核心母题总结
算法·leetcode·职场和发展
努力学算法的蒟蒻21 分钟前
day53(1.4)——leetcode面试经典150
算法·leetcode·面试
leiming624 分钟前
c++ transform算法
开发语言·c++·算法
果粒蹬i34 分钟前
MATLAB全流程对比RNN/LSTM/GRU时间序列预测性能
rnn·matlab·lstm
裴云飞35 分钟前
Compose原理一之快照系统
算法·架构
橘颂TA36 分钟前
【剑斩OFFER】哈希表简介
数据结构·算法·散列表
小尧嵌入式37 分钟前
c++红黑树及B树B+树
开发语言·数据结构·c++·windows·b树·算法·排序算法