最近在轨迹规划模块需要用到一些聚类算法,于是了解到了最小生成树Kruskal算法+Prim算法,本次先给大家讲一下我对Kruskal算法的理解和Kruskal算法在聚类问题上的应用
1 前置基础
1.1 无向图
图论中的一种基本概念。它由顶点(Vertices)和边(Edges)组成,其中边没有方向性,即一条边连接两个顶点时,表示这两个顶点是相互连接的,彼此之间的连接没有方向。
- 顶点:图中的每个节点称为顶点(Vertex),用集合
V
表示,V = {v1, v2, v3, ..., vn}
,其中n
是顶点的数量。 - 边:顶点之间的连接称为边(Edge),用集合
E
表示。无向图的边没有方向性,即边(u, v)
和边(v, u)
表示的是同一条边。
1.2 无向图中的环
在无向图中,一个环(Cycle)是一条起点和终点相同的路径,并且在路径中除了起点和终点,其他所有的顶点和边都只能经过一次。
- 举例:设顶点集
V = {A, B, C, D}
,如果存在边集E = {(A, B), (B, C), (C, D), (D, A)}
,这就形成了一个环A-B-C-D-A
,因为从顶点A
开始,经过若干边后最终又回到了A
,并且没有重复经过任何边或中间顶点。
1.3 连通分量
在一个无向图中,如果两个顶点之间存在至少一条路径能够连接这两个顶点,则称这两个顶点是连通的。如果一组顶点是两两连通的,并且它们包含的所有边和顶点构成一个子图,这个子图就是图的一个连通分量。
- 无向图的连通分量:在无向图中,连通分量是指图中最大的连通子集,每个连通分量中的任意两个顶点是连通的,但这个连通分量与图中其他连通分量没有连接。
- 有向图的连通分量:在有向图中,连通性有更多复杂性。一个强连通分量是指在有向图中,对于一个连通子集中的任意两个顶点 uuu 和 vvv,都存在一条从 uuu 到 vvv 的路径以及从 vvv 到 uuu 的路径。
连通分量的性质:
- 不交性:不同的连通分量