基于最小生成树的图像结构描述
写出最小生成树的构造过程

写出最小生成树的构造过程最小生成树(Minimum Spanning Tree,简称MST)是一个连通图上的生成树,它的边权重之和是所有可能生成树中最小的。
最小生成树在许多实际问题中有着广泛的应用,比如网络设计、电力输送、通信等领域。
下面我将为大家介绍最小生成树的构造过程。
一、Prim算法:Prim算法是一种贪心算法,它的基本思想是从一个顶点开始,逐渐扩展生成树,每一步选择一个与树相邻的权重最小的边,并将该边所指向的顶点加入树中。
具体的步骤如下:1.随机选择一个顶点作为起始点,将该顶点加入生成树。
2.在生成树中选择一个顶点v,寻找与v相邻的顶点中权重最小的边(u, v (u∈生成树,v∉生成树)),将该边加入生成树。
3.将顶点v加入生成树。
4.重复执行第2、3步,直到生成树中包含了所有的顶点。
在Prim算法中,我们需要用一个数组distance来记录各个顶点到生成树的最小距离(weight)。
在每一步中,通过更新distance数组的值,选择其中的最小值并将对应的顶点加入生成树。
二、Kruskal算法:Kruskal算法是一种基于边贪心策略的算法,其基本思想是将图中的所有边按照权重的非递减顺序排序,然后逐步加入生成树,直到生成树包含了所有的顶点。
具体的步骤如下:1.将图中的所有边按照权重的非递减顺序排序。
2.初始化一个空的生成树。
3.依次选择排好序的边,如果该边所连接的两个顶点不属于同一个连通分量,就将该边加入生成树。
如果加入该边之后,生成树中的边数等于顶点数减一,则结束算法。
4.重复执行第3步,直到生成树中的边数等于顶点数减一。
在Kruskal算法中,我们需要用一个数组parent来记录每个顶点所属的连通分量。
在每一步中,通过查找顶点的连通分量是否相同,判断是否可以加入生成树。
三、比较:Prim算法的时间复杂度为O(V^2),其中V为顶点数。
由于Prim算法需要维护一个数组distance,因此适用于稠密图,即顶点数较多的情况。
数据结构 第7章 图3-最小生成树

3
5
4
2
6
lowcost[i] 0 0 0 0
(g) u={1,3,6,4,2,5} w={ }
prim方 法构造 最小生 成树的 过程
克鲁斯卡尔(kruskal)算法 克鲁斯卡尔(kruskal)算法
1. 克鲁斯卡尔算法基本思想 . 克鲁斯卡尔算法的基本思想是:将图中所有边按权值递 增顺序排列,依次选定取权值较小的边,但要求后面选 取的边不能与前面选取的边构成回路,若构成回路,则 放弃该条边,再去选后面权值较大的边,n个顶点的图中, 选够n-1条边即可。 例如,对上图中无向网,用克鲁斯卡尔算法求最小生 成树的过程见下图。 4
1 13 17 3 9 5 7
7 5 6 12 18 10
2 24 4
1 13 9 5
2 7 6 5 10 4
3
普里姆算法
下面仅讨论无向网的最小生成树问题。 普里姆方法的思想是:在图中任取一个顶点K 作为开始点,令U={k},W=V-U,其中V为图 中所有顶点集,然后找一个顶点在U中,另一 个顶点在W中的边中最短的一条,找到后,将 该边作为最小生成树的树边保存起来,并将 该边顶点全部加入U集合中,并从W中删去这 些顶点,然后重新调整U中顶点到W中顶点的 距离, 使之保持最小,再重复此过程,直到W 为空集止。求解过程参见下页图。
注:亦可由邻接矩阵或邻接表直接画出生成森林
下面选用邻接表方式来求深度优先搜索生成森林
先写出邻接表(或邻接矩阵): 先写出邻接表(或邻接矩阵): 0 A 1 2 1 2 3 4 5 6 7 8 9 10 11 12 B C D E F G H I J K L M 0 0 ^ 4 ^ 3 ^ 0 ^ 7 6 6 ^ 11 6 0 1 12 7 9 9 ^ ^ 8 10 ^ 12 ^
第六讲-2-最小生成树问题

贪心算法
什么是“贪”:每一步都要最好的 什么是“好”:权重最小的边 需要约束:
只能用图里有的边 只能正好用掉|V|-1条边 不能有回路
Prim算法 — 让一棵小树长大
4 v3 5 v1 2 8 v6 1 2 1 v4 3 v2 7 4 v7 6 10 v5
是不是有点像Dijkstra算法……
T = O( |E| log |E| )
Prim算法 — 让一棵小树长大
void Dijkstra( Vertex s ) { while (1) { V = 未收录顶点中dist最小者; if ( 这样的V不存在 ) break; collected[V] = true; for ( V 的每个邻接点 W ) if ( collected[W] == false ) if ( dist[V]+E<V,W> < dist[W] ){ dist[W] = dist[V] + E<V,W> ; path[W] = V; } } } void Prim() { MST = {s}; while (1) { V = 未收录顶点中dist最小者; if ( 这样的V不存在 ) break; 将V收录进MST: dist[V] = 0; for ( V 的每个邻接点 W ) if ( dist[W]!= W未被收录 0 ) if ( E(V,W) < dist[W] ){ dist[W] = E(V,W) ; parent[W] = V; } } if ( MST中收的顶点不到|V|个 ) Error ( “生成树不存在” ); }
第六讲 图(下)
浙江大学 陈 越
6.2 最小生成树问题
什么是最小生成树(Minimum Spanning Tree)
数据结构15--最小生成树PPT课件

proc Union(i,j,c:longint); /*合并i和j所在集合 */
Var x,y:longint;
{ x←top(i); y←top(j); 点j所在子树的根*/
/*分别取出顶点i和顶
if x<>y Then { inc(ans,c);f[y]←x;}; /*若i 和j分属于两棵子树,则该边权计入最小生成树的权和, 两棵子树合并*/
Writeln(ans);
显然, Kruskal算法的效率取决于边数m,因此适用与
稀疏图。
.
②、Prim算法
集合A中的边总是只形成单棵树,每次添加到 树中的边都是使树的权尽可能小的边。
.
设 d[i]—顶点i与生成树相连的最短边长; ba[i]—顶点i在生成树的标志; w[i,j]—(i,j)的边长。若图中不存在边 (i,j),则w[i,j]=∞ min—所有未在生成树的顶点的最小距离 值
top←f[i]; /*返回顶点i所在并查集的代表 顶点*/ };/*top*/
.
通过过程Union(i,j,c)合并顶点i和顶点j所 在的两棵树
现有边权为c的边(i,j)。若该边的两个端点 分属于两棵树,顶点i和顶点j所在子树的根分别 为x和v,则(i,j) 加入最小生成树,合并两棵树 (即顶点i和顶点j所在的并查集)。
for j←1 to n do
if not ba[j]and(d[j]<min) then { k←j;min←d[j] }; /*then*/
if min= maxint then { ans←-1;break;};/*若这样的顶点不存 在,则无解退出*/
ans←ans+min;ba[k]←true;/*最小距离值min计入生成树的权和, 顶点k进入生成树*/
02最小生成树

范例:制造系统的分组技术
建模
设用Mi表示需由机器i加工的零件集,对任 意两台机器i,j, 定义相异度:
(i, j) | Mi M j | | Mi M j |
建模
(i, j) | Mi M j | | Mi M j |
“”:对称差, 分子:在机器i但不在机器j上加工,或在机 器j但不在机器i上加工的零件数。 分母:或在机器i,或在机器j上加工的零件数。 显然 01
最小生成树
一些常见的树形结构
无向树的定义
无向树: 连通无回路的无向图 平凡树: 平凡图 森林: 每个连通分支都是树的非连通的无向图 树叶: 树中度数为1的顶点 分支点: 树中度数2的顶点 例如
(a)
(b)
子图
定义设G=<V,E>, G=<V,E>是2个图(同为无向图,或同 为有向图) 若VV且EE, 则称G为G的子图, G为G的母图, 记作 GG 若GG 且V=V, 则称G为G的生成子图 设VV且V, 以V为顶点集, 以两端点都在V中的所有 边为边集的G的子图称作V的导出子图, 记作G[V] 设EE且E, 以E为边集, 以E中边关联的所有顶点为 顶点集的G的子图称作E的导出子图, 记作G[E]
范例:制造系统的分组技术
分组技术是设计制造系统的一种方法,它把生 产零件的机器分组,相应地把需生产的零件分类,使 零件跨组加工的情形尽量少,最理想的情况是使每个 零件的加工,都在组内完成。 假设有13种零件,需在9台机器上加工。在各台 机器上加工的零件号在下表中给出。
范例:制造系统的分组技术
机器 加工 的零 件 1 2,3, 7,8, 9,12 ,13 2 2,7, 8,11 ,12, 3 1,6 表 4 5 3,5, 3,7, 10 8,9, 12, 13 6 5 7 4,10 8 4,10 9 6
图的常用算法——最小生成树

TE= {(V1,V4)5,(V4,V2)3 ,(V4,V6)7,
(V6,V3)2 ,(V3,V5)6 } LW= {(V4,V7)15
9
第六次 U={ V1,V4,V2 ,V6,V3 ,V5,V7 } TE= {(V1,V4)5,(V4,V2)3 ,(V4,V6)7, (V6,V3)2 ,(V3,V5)6},(V4,V7)15 } LW= { }
3
5
7
20
所以最小生成树由GE数组中的1,2,3,5,7 边组成。 2012-1-10
2012-1-10
10
2012-1-10
11
(4)算法如下: Procedure Prim(GA,CT); begin for I:=1 to n-1 do { 给CT赋初值,对应第0次的LW值 } [ CT[I].from :=1 ; ct[I].end: =I+1 ; ct[I].w:=GA[1, i+1 ]; for k:=1 to n-1 do { 进行n-1次循环,求出最小生成树的第K条边 } ①[ min:=maxint ; m:=k ; for j:=k to n-1 do if ct[j].w < min then min:=ct[j].w ; m:=j; ] ② if m<> k then ct[k] 与ct[m] 的交换 { 将最短边调到第K单元 }
1. 从图“G”的选取一个顶点放到“G’” 中,因只有一个顶点,因此该图是连通 的; 2. 以后每加入一个顶点,都要加入以该点 为顶点与已连通的顶点之中的一个顶点 为端点的一条边,使其既连通而不产生 回路,进行n-1次后,就产生G’,在G’ 中有n个顶点,n-1条边且不产生回路。
二、图的最小生成树
《图论最小生成树》课件

在计算机科学中,图论最小生成树是一种常见的算法,用于在给定的加权图 中找到一棵包含所有顶点的最小权重树。
什么是图论最小生成树
1 定义
图论最小生成树是指在一个图中,找到一棵 包含所有顶点的且边的权重之和最小的树。
2 应用
最小生成树常用于网络设计、链路优Байду номын сангаас、行 程规划等问题。
如何生成最小生成树
1
Kruskal算法
2
按照边权重递增的顺序选择边,直到最
小生成树中包含所有顶点。
3
Prim算法
从一个顶点开始,逐步扩展最小生成树, 直到包含所有顶点。
其他算法
除了Prim和Kruskal算法,还有其他一些 生成最小生成树的算法,如Boruvka算法 和BFS算法。
最小生成树与带权图
最小生成树算法通常用于带权图,这种图中的边带有权重,代表顶点之间的 关系强度或代价。
应用实例
网络设计
在计算机网络中,最小生成树可用于确定网络拓扑,优化链路和路由。
城市规划
通过最小生成树算法,可以确定城市道路的规划和建设顺序。
行程规划
最小生成树可在旅行规划中,帮助确定最短路径和最优路线。
总结和提高建议
1 重要性
最小生成树在图论和算法设计中扮演着重要的角色。
2 优化算法
不同的最小生成树算法在效率和应用场景上有所不同,需要根据具体情况选择合适的算 法。
最小生成树

Kruskal算法
– 每个步骤选择一条边加入生成树 – 贪心准则:不会产生环路,且耗费最小 – 可按耗费递增顺序考察每条边 • 若产生环路,丢弃 • 否则,加入
Kruskal 算法过程
8 4 a 8 h 1 构成环路 构成环路 构成环路 g 2 f b 2 i 7 6 10 c
7
d
9 e
11
4
14
相关题目:
NKOJ:
1201: Arctic Network
1755: QS Network 1676: Networking
POБайду номын сангаас:
2421: Constructing Roads 1258: Agri-Net
谢谢大家
后面的幻灯片作为补充,给出了并查集 ,最小堆的简单介绍,以及相关程序。 有精力的同学可以进一步学习研究。
最小生成树 MST (minimum spanning tree)
by nkzgm
最小生成树定义
对于一个无向连通图G=(V,E),其中V是顶点集合,E是边的集合,对 于E中每一条边(u,v),都有一个权值w(u,v)表示连接u和v的代价。我们希 望找出一个无回路的子集T(属于E),它连接了所有的顶点,且其权值之和
全部节点都被覆 盖,算法结束
Kruskal算法的性能
• Kruskal也需要进行V-1次选取操作,它的 选取范围是整个图,因而可以用O(ElgE) 的时间对所有的边进行排序。从这个有序 的排列依次选取,若选取的边的加入不能 构成回路,则加入。否则对排列的下一个 边进行相同操作。直到选取了V-1个边为 止。 • 在判断是否构成回路时需要用并查集。 Kruskal的运行时间为O(ElgE)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
DD =
式中 α =
Lγ ( zi ) nα
(7)
(d − γ )
d ,其取值随着描述符的维数 d 的变化而不同。这一指标反映了结构基元描述符向量在
其高维空间的分布情况。 定义 3:支撑度(Spanning Degree, SD)。定义包围最小生成树的最小凸多边形的面积 S MST 与图像面积 之比为结构基元对整幅图像的支撑度:
Rényi 熵是 Shannon 熵的广义形式,也称 α 熵,其定义如下[10]:
Hα =
式中, f 是概率密度函数, α ∈ ( 0,1) 。
1 log ∫ f α ( z ) dz 1−α
(3)
结合式(2)和式(3),可以得到最小生成树的边加权总和与 Rényi 熵的关系:
ˆ (f) = H α Lγ ( Z i ) 1 log nα −c 1−α Lγ ( Z i ) 1 log α 1−α n
n
DU =
式中, α =
Lγ ( zi ) nα
(6)
(d − γ )
d ,此时 d = 2 ,若边加权指数取为 γ = 1 ,则 α = 1 2 。这一指标反映了结构基元在图
像平面上的分布情况。 定义 2:描述符独特性(Descriptor Distinctiveness)。当结构基元 Z i 采用描述符向量 zid 表示时,在描述 符空间构造最小生成树,定义为结构基元描述符的独特性:
th th th
Abstract
The MST (Minimum Spanning Tree) is an effective structure for representing images in applications such as image matching and image retrieval. However, previous methods only use MST to connect the structural elements in images and are unable to quantitatively analyze the capability of the elements in describing the image. A method for structural description of images based on MST is proposed in this paper. The MST constructed from the structural elements extract from the image supports the image like the skeleton of the image, which reflects the structure of image. Three indexes for evaluating the distribution uniformity, the distinctiveness and the spanning degree of a set of image structural elements are defined based on the MST. The evaluating indexes can be used to analyze the structural information of an image and can also be used to evaluate the capability of a set of structural elements to describe the structure of an image. Experiments on simulated points and real images validate the proposed indexes. The indexes can be used to classify the structures of image scene and to evaluate the difficulty of image matching.
ij
d
i
j
1,
, n, i ≠ j 是连接 V 中所
}
有顶点的边集,且不构成回路,两个顶点之间的边长为 = eij 总和为:
γ
∑ Zik − jk
k =1
。最小生成树(MST)的加权长度
Lγ ( Z i ) =
eij ∈MST
∑
eij
(1)
式中, γ 称作边的加权指数, 0 < γ < d [9], d 为点集的维数。 如果 {Z i }i =1 是 d-维独立同分布随机向量,服从 Lebesgue 多元密度函数 f ( z ) ,图的边长函数 Lγ 连续
Image Structure Description Based on MST
Zhiguo Qu, Xiansi Tan, Wei Zhang, Hong Wang, Qiang Lin
Department No. 2, Air Force Early Warning Academy, Wuhan Hubei Received: Apr. 8 , 2017; accepted: Apr. 27 , 2017; published: Apr. 30 , 2017
Open Access
1. 引言
图像描述是图像处理、分析和理解中的关键问题,是指根据应用任务不同而对图像采取的不同表示 方式,最直观的描述方式就是灰度表示(灰度图像)或 RGB 三色表示(彩色图像)。为了降低运算量,简化 描述方式,在一些典型应用中,如图像匹配、目标识别、图像检索等,通常提取点、线、区域等特征来 描述图像结构,即基于特征的描述方式。 在基于特征的图像结构描述方式中,结构基元(点、线、区域等特征)反映了图像的内容信息,单个结 构基元表示了图像的局部灰度变化,而结构基元之间的相对位置关系则隐式地反映了图像的结构。进一 步, 为了显式地描述图像的结构, 学者们采用图的方式来表示图像中提取的结构基元, 如赋权完全图[1]、 DT 图[2]、近邻图[3]、最小生成树(MST) [4]等,从而形成图像的结构化描述。但是,这些方法只是采用 图的结构来表示图像中提取的基元,即将图像结构基元用不同形式的图连接起来,侧重点在后续的处理 任务中,如匹配、识别等,而没有分析图像中所提取的一组结构基元对于图像结构的描述能力,缺乏图 像结构化描述的量化指标。 对于图像中提取的结构基元,这些基元在图像中分布情况是否均匀、相互之间的独特性如何、对整 幅图像的覆盖程度,目前都是定性的描述,缺乏量化的指标,而这些因素对图像匹配和检索等任务都具 有重要的影响[5] [6] [7]。例如,从有利于图像匹配的角度,常常要求图像结构基元要稳定存在、尽量分 布均匀且相互之间要有区分度。 为了量化分析图像结构基元对图像结构的描述能力,本文利用最小生成树来表示图像中的结构基元, 提出了基于最小生成树(MST)的图像结构描述评价指标。直观上看,最小生成树如同图像的“骨架”结构 支撑着整幅图像,如图 1 所示,其支撑范围越大、边的总长度越长,则结构基元的分布越均匀,对图像的 描述越充分。 从理论上讲, 文献[8] [9]证明最小生成树所有边的加权和与 Rényi 熵之间存在着正比的关系, 最小生成树边的加权和越长,其熵值越大,则结构基元在图像中分布越均匀,对图像结构的描述越充分。 根据这一理论,本文分别在图像空间和结构基元的描述符空间构造最小生成树,基于最小生成树边的加权 和定义了分布均匀度、独特性和支撑度三个指标,来量化衡量结构基元的描述能力。
摘
要
最小生成树是表示图像的常用结构,在图像匹配和图像检索等任务中应用广泛。但是,现有方法只是利 用最小生成树来表示图像,缺乏分析和描述图像结构的量化指标。本文提出了基于最小生成树的图像结
文章引用 : 曲智国 , 谭贤四, 张伟 , 王红 , 林强 . 基于最小生成树的图像结构描述 [J]. 图像与信号处理 , 2017, 6(2): 106-113. https:///10.12677/jisp.2017.62013
Journal of Image and Signal Processing 图像与信号处理, 2017, 6(2), 106-113 Published Online April 2017 in Hans. /journal/jisp https:///10.12677/jisp.2017.62013
构基元的个数,对结构基元的描述可以用随机向量 zid 表示, d 表示向量的维数。一般地,对结构基元的 描述由其坐标和特征描述符两部分组成,坐标决定了其在图像平面上的空间位置,特征描述符反映了结 构基元的属性信息。
E 在点集 V = {Z i }i =1 形成的无向完全图上求解 MST,=
n
e ( Z , Z ) i= ,j {=
n
(4)
式中, c =
(1 − α )
−1
log β d ,γ 为可移除的偏置量,忽略该常数,可得:
Hα ( f ) ∝
(5)
由式(5)可以看出,最小生成树的边长加权总和 Lγ ( Z i ) 与 Rényi 熵之间存在着正比的关系, Lγ ( Z i ) 值 越大,则其 Rényi 熵值也越大,说明该组变量 {Z i }i =1 的随机性越大,因此我们也可以利用 Lγ ( Z i ) 来衡量
108
曲智国 等
点集的随机性[11]。
2.2. 图像结构描述评价指标
总和 Lγ ( Z i ) 来衡量点集的随机性。因此,基于最小生成树定义以下指标来评价结构基元对图像结构的描 述能力。 定义 1:分布均匀度(Distribution Uniformity, DU)。当结构基元 Z i 用其图像坐标 zi2 表示时,定义分布 均匀度如下: 对于大小为 M × N 的图像 I,从中提取的一组结构基元 {Z i }i =1 ,可以构造最小生成树,利用边长加权