破圈法求最小支撑树matlab_Matlab中避圈法求解最小生成树

%编程工具Matlab;程序名称MST_k.m.%这是一个通过避圈法求解连通带权图的最小生成树的程序.n=input('请输入图的顶点数目:n= ')W=input('请输入图的加权邻接矩阵:[W(1,1),..,W(1,n);..;W(n,1),..,W(n,n)]=')%用W(i,i)="inf" 代替 "=0"%准备工作T=zeros(n); %最小生成树的加权邻接矩阵WW=W;for i=...
摘要由CSDN通过智能技术生成

%编程工具Matlab;程序名称MST_k.m.

%这是一个通过避圈法求解连通带权图的最小生成树的程序.

n=input('请输入图的顶点数目:n= ')

W=input('请输入图的加权邻接矩阵:[W(1,1),..,W(1,n);..;W(n,1),..,W(n,n)]=')

%用W(i,i)="inf" 代替 "=0"

%准备工作

T=zeros(n); %最小生成树的加权邻接矩阵

WW=W;

for i=1:n

for j=1:n

if W(i,j)==inf WW(i,j)=0;

end

end

end

m=((nnz(WW))/2); %图的边线的数目

j=0; %最小生成树的边线的数目

%主要步骤

for i=1:m %被选择边线的数目

if j&lt(n-1) %算法的终止条件是 |E|=|V|-1.

%步骤0: 挑选出权值最小的边 W(a,b)

min=inf; a=0; b=0;

for k=1:n

for l=(k+1):n

if W(k,l)&lt=min min=W(k,l); a=k; b=l; end

end

end

%步骤0 结束

%步骤1

%T=T+e(a,b)

T(a,b)=W(a,b); T(b,a)=W(a,b

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值