数学建模---最小生成树问题的建模~~~~~Matlab代码

目录

1.相关概念

(1)什么是树

(2)生成树和最小生成树:

2.适用赛题

(1)赛题分类

(2)不同之处

3.两种算法

(1)prim算法

(2)Kruskal算法

4.典型赛题

(1)架设通信线路

(2)Matlab代码分析

(3)运行结果

(4)代码分享


1.相关概念

(1)什么是树

连通,无环路,无向图就是树;

(2)生成树和最小生成树:

生成树就是一个图的子图,而且是一个树,包括原来的图的所有的顶点,一个图可能会有多个生成树,可能会有多个最小生成树,但是最小生成树的长度是唯一的;

2.适用赛题

(1)赛题分类

通信建设问题,以及这个管道的铺设问题,都是这类最小生成树问题,求解的就是这个通信线路的最短情况和这个铺设管道最节省的情况;

(2)不同之处

这个不同之处指的就是这个最小生成树和最短路径的不同之处,这个最小生成树里面没有指定这个起点和终点,只要求能够把所有的顶点走一遍就可以了;

而最短路径是指明了起点和终点,在这个限制条件下要求这个路径最短,这个是否指定起点和终点是这两个问题的本质区别;

3.两种算法

因为这个无论是在数据结构里面,还是在离散数学里面,这个算法我们都已经学习了解过了,因此下面我不会进行详细的赘述;

(1)prim算法

(2)Kruskal算法

4.典型赛题

(1)架设通信线路

(2)Matlab代码分析

我们首先要生成一个邻接矩阵,然后再根据这个不同的顶点之间的长度去初始化这个不同位置的元素的数值;

我们现实生成了一个9*9的全是0的矩阵,然后就是根据不同顶点之间的权重去对于这个矩阵的相应的位置进行初始化;这个地方需要注意的是这个生成树是没有方向的,我们对于两个顶点之间的边,只需要初始化一次;

例如1,2这两个顶点之间,权重是2,我们在对于和1相关联的节点初始化之后,就已经把和1节点相关联的2节点给初始化了;当我们对于这个2节点及其相关联的边进行初始化的时候,这个就不需要重复的进行初始化操作;

upper是指使用的是这个矩阵的上三角,因为如果全部使用就会把每两个顶点之间出现两条边,这个最小生成树是无向图,我们只需要使用上三角即可;

这个里面使用到的相关函数的简单介绍我放到下面了:

接下来就是求解最小生成树,sparse表示使用的是地杰斯特算法,这个是我们自己设置的,不进行设置的话就会使用默认的prim算法,这两个都是可以进行求解的,只是这个效率上面可能会有区别,读者可以下去进行尝试;

L=sum就是对于这个权重求和,求解得到这个最小权重和,highlight是对于这个图形的优化;

(3)运行结果

最小权重和是47,这个最小生成树如图所示:

(4)代码分享

复制代码
clear,clc;

a=zeros(9);
a(1,[2:9])=[2 1 3 4 4 2 5 4];
a(2,[3 9])=[4 1];
a(3,4)=1;
a(4,5)=1;
a(5,6)=5;
a(6,7)=2;
a(7,8)=3;
a(8,9)=5;

s=cellstr(strcat('v',int2str([1:9]')));

G=graph(a,s,'upper');%使用上三角矩阵画出图形

p=plot(G,'EdgeLabel',G.Edges.Weight);



T=minspantree(G,'Method','sparse');%使用迪杰斯特算法

L=sum(G.Edges.Weight)

highlight(p,T,'EdgeColor','Red','LineWidth',2.5)
相关推荐
统计学小王子19 小时前
数模之路获奖总结——数据分析交流(R语言)
数学建模·数据挖掘·数据分析·r语言
MoRanzhi12032 天前
基于 SciPy 的矩阵运算与线性代数应用详解
人工智能·python·线性代数·算法·数学建模·矩阵·scipy
人大博士的交易之路3 天前
今日行情明日机会——20250926
数学建模·数据分析·缠论·缠中说禅·涨停回马枪
泰迪智能科技3 天前
分享“泰迪杯”数据挖掘挑战赛全新升级——赛题精准对标,搭建 “白名单” 赛事进阶通道
人工智能·数学建模·数据挖掘
贝塔实验室3 天前
ADMM 算法的基本概念
算法·数学建模·设计模式·矩阵·动态规划·软件构建·傅立叶分析
文火冰糖的硅基工坊5 天前
[硬件电路-320]:模拟电路与数字电路,两者均使用晶体管(如BJT、MOSFET),但模拟电路利用其线性区,数字电路利用其开关特性。
单片机·嵌入式硬件·数学建模·fpga开发·系统架构·信号处理
小陈爱建模5 天前
[已更新]2025华为杯E题数学建模研赛E题研究生数学建模思路代码文章成品:高速列车轴承智能故障诊断问题
数学建模
一碗白开水一5 天前
【第30话:路径规划】自动驾驶中Hybrid A星(A*)搜索算法的详细推导及代码示例
人工智能·算法·机器学习·计算机视觉·数学建模·自动驾驶
MATLAB代码顾问5 天前
Python实现海鸥优化算法(Seagull Optimization Algorithm, SOA)(附完整代码)
数学建模
CC数学建模5 天前
2025年中国研究生数学建模竞赛“华为杯”C题 围岩裂隙精准识别与三维模型重构完整高质量成品 思路 代码 结果分享!全网首发!
数学建模·重构