当前位置: 首页 > news >正文

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

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


对于无向带权图,在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);

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

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: 

T=minspantree(G);
plot(T);

计算结果如下:

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

http://www.lryc.cn/news/139802.html

相关文章:

  • unity 模型显示在UI上 并交互(点击、旋转、缩放)
  • html实现页面切换、顶部标签栏(可删、可切换,点击左侧超链接出现标签栏)
  • n-皇后问题(DFS)
  • 漏洞利用和权限提升
  • 开源网安受邀参加软件供应链安全沙龙,推动企业提升安全治理能力
  • 回归分析扫盲:为什么非线性模型不能直接用最优子集选择法
  • 单例模式简介
  • WPF自定义命令及属性改变处理
  • macbook m1 docker中使用go
  • 【Hello Network】DNS协议 NAT技术 代理服务器
  • Android 使用模拟器模拟Linux操作系统
  • 机器学习基础之《分类算法(5)—朴素贝叶斯算法原理》
  • # Go学习-Day6
  • 分布式 - 服务器Nginx:一小时入门系列之 HTTPS协议配置
  • 探秘Linux系统性能监控神器!Linux和Python技术持续学习者必看!
  • 文心一言续写太监小说《名侦探世界的巫师》
  • Solidity 合约安全,常见漏洞(第三篇)
  • Linux安装Redis数据库,无需公网IP实现远程连接
  • 智慧政务,长远布局——AIGC引领,加速推进数字化政府建设
  • 中央处理器(CPU):组成、指令周期、数据通路、控制方式、控制器、指令流水线,补充(多处理器系统、硬件多线程)
  • 开源微服务如何选型?Spring Cloud、Dubbo、gRPC、Istio 详细对比
  • Nginx的HTTPS部署与安全性能优化
  • 5.8. Trusted Board Boot
  • 微信小程序——van-field中的left-icon属性自定义
  • 一文学会lua脚本
  • 学习JAVA打卡第四十二天
  • 2023-8-25食物链
  • 为什么要使用IP地址进行定位
  • CSS概念
  • 淘宝API技术解析,实现关键词搜索淘宝商品(商品详情接口等)