【图论】Graphs.jl 最小生成树算法文档

文章目录

  • Boruvka 算法
  • Kruskal 算法
  • Prim 算法

最小生成树是图论常见的问题之一,要求输入图为连通无向图,即任意两个顶点存在一个链路相连,而树结构是简单图,且无圈结构。

Boruvka 算法

julia 复制代码
boruvka_mst(g, distmx = weights(g); minimize = true)

返回一个元组 (mst, weights),其中 mst 是表示连通无向图 g 的最优(默认最小)生成树的边向量,distmx 为可选的权重矩阵用于提供不同的边权重,weights 则是通过 Boruvka 算法求解得到的生成树所有边的权重总和。该算法要求所有边必须具有不同的权重,以确保能正确生成最小/最大生成树。

可选参数

minimize=true:若设置为 false,则计算最大生成树。

julia 复制代码
using Graphs
a=complete_graph(4)
distmx=sparse([0 0.5 0.8 0.3;
               0.5 0 0.7 0.4; 
               0.8 0.7 0 0.6; 
               0.3 0.4 0.6 0])
results=boruvka_mst(a,  distmx,minimize=true)
println(results[1])
println(results[2])

Kruskal 算法

julia 复制代码
Kruskal_mst(g, distmx = weights(g); minimize = true)

返回一个树结构mst, 其中 mst 是表示连通无向图 g 的最优(默认最小)生成树的边向量,distmx 为可选的权重矩阵用于提供不同的边权重。该算法要求所有边必须具有不同的权重,以确保能正确生成最小/最大生成树。

可选参数

minimize=true:若设置为 false,则计算最大生成树。

julia 复制代码
using Graphs
a=complete_graph(4)
distmx=sparse([0 0.5 0.8 0.3;
               0.5 0 0.7 0.4; 
               0.8 0.7 0 0.6; 
               0.3 0.4 0.6 0])
result=kruskal_mst(a,  distmx, minimize=true)
println(result)

Prim 算法

julia 复制代码
prim_mst(g, distmx = weights(g))

返回一个树结构mst, 其中 mst 是表示连通无向图 g 的最优(默认最小)生成树的边向量,distmx 为可选的权重矩阵用于提供不同的边权重。该算法要求所有边必须具有不同的权重,以确保能正确生成最小/最大生成树。

可选参数

minimize=true:若设置为 false,则计算最大生成树。

julia 复制代码
using Graphs
a=complete_graph(4)
distmx=sparse([0 0.5 0.8 0.3;
               0.5 0 0.7 0.4; 
               0.8 0.7 0 0.6; 
               0.3 0.4 0.6 0])
result=prim_mst(a,distmx)
println(result)
相关推荐
过期的秋刀鱼!11 分钟前
使用都热编码的分类特征
人工智能·算法·决策树·机器学习·分类·数据挖掘
wabs66620 分钟前
关于哈希表【力扣383.赎金信的思考】
算法·leetcode·散列表
love_muming31 分钟前
二叉树操作全解析:从递归到层序遍历
java·数据结构·算法·二叉树
.道阻且长.9 小时前
2.LeetCode算法习题讲解--双指针--复写零
算法·leetcode·职场和发展
To_OC11 小时前
LC 438 找到所有字母异位词:暴力超时后,我靠滑动窗口一招搞定
javascript·算法·leetcode
Forever Nore14 小时前
学完C语言力扣第一题做不来正常吗
数据结构·算法
hansang_IR14 小时前
【题解】LC:倍增 / 区间并查集(Range Parallel Unionfind)
c++·算法·并查集
Tisfy16 小时前
LeetCode 3731.找出缺失的元素:哈希 / 排序
算法·leetcode·哈希算法·排序·哈希表
lucas_AI16 小时前
Q-CueGraph:你的多模态大模型会 zoom,但真的知道该看哪儿吗?
人工智能·算法