最小生成树

title: 相关性质.
title: 存在个数.
content: 最小生成树在一些情况下可能会有多个。例如,当图的每一条边的权值都相同时,该图的所有生成树都是最小生成树。  如果图的每一条边的权值都互不相同,那么最小生成树将只有一个。这一定理同样适用于最小生成森林。  证明(图的每一条边的权值皆不相同):
title: 边的权值之和最低的子图.
content: 如果图的边的权值都为正数,那么最小生成树就是该图的所有包含所有顶点的子图中权值最低的子图。
title: 环定理.
content: 对于连通图中的任意一个环formula_13:如果formula_13中有边formula_23的权值大于该环中任意一个其它的边的权值,那么这个边不会是最小生成树中的边  证明:<br> 假设formula_23属于最小生成树formula_25,那么将formula_23删去将会使得formula_25变为两个树。因为环formula_13必然还存在另一横切边f可以连接两个子树形成生成树formula_29,且由于formula_30<formula_23,生成树formula_29权值更小,与formula_25是最小生成树矛盾。
title: 切分定理.
content: 在一幅连通加权无向图中,给定任意的切分,如有一条横切边的权值严格小于所有其他横切边,则这条边必然属于图的最小生成树。  证明:<br> 令formula_23为权重最小的横切边,假设formula_35为图的最小生成树,且formula_35不包含formula_23。那么如果将formula_23加入formula_35,得到的图必然含有一条经过formula_23的环,且这个环也含有另一条横切边--设为formula_41,formula_41的权重必然大于formula_23,那么用formula_23替换formula_41可以形成一个权值小于formula_35的生成树,与formula_35为最小生成树矛盾。所以假设不成立。
title: 最小权值边.
content: 如果图的具有最小权值的边只有一条,那么这条边包含在任意一个最小生成树中。  证明:<br> 假设该边formula_23没有在最小生成树formula_35中,那么将formula_23加入formula_35中会形成环,用formula_23替换环中的任意一条权值更大的边,将会形成权值更小的生成树,与题设矛盾。
title: 相关算法.
title: 历史简介.
content: 计算稠密图的最小生成树最早是由罗伯特·普里姆在1957年发明的,即Prim算法。之后艾兹赫尔·戴克斯特拉也独自发明了它。但该算法的基本思想是由沃伊捷赫·亚尔尼克于1930年发明的。所以该算法有时候也被称为Jarník算法或者Prim-Jarník算法。20世纪70年代,优先队列发明之后很快被用在了寻找稀疏图中的最小生成树上。1984年,迈克尔·弗里德曼和罗伯特·塔扬发明了斐波那契堆,Prim算法所需要的运行时间在理论上由formula_53提升到了formula_54。约瑟夫·克鲁斯卡尔在1956年发表了他的算法,在他的论文中提到了Prim算法的一个变种,而奥塔卡尔·布卢瓦卡在20世纪20年代的论文中就已经提到了该变种。M.Sollin在1961年重新发现了该算法,该算法后成为实现较好渐进性能的最小生成树算法和并行最小生成树算法的基础。  以下各算法介绍中,formula_55表示图的边数,formula_56表示图的顶点数。
title: Borůvka算法.
content: 第一个用于寻找最小生成树的算法由捷克科学家奥塔卡尔·布卢瓦卡提出,即Borůvka算法。
title: Prim算法.
content: Prim算法的每一步都会为一棵生长中的树添加一条边,该树最开始只有一个顶点,然后会添加formula_57个边。每次总是添加生长中的树和树中除该生长的树以外的部分形成的切分的具有最小权值的横切边。  Prim算法的时间复杂度为formula_58。
title: Kruskal算法.
content: 按照边的权重顺序(从小到大)将边加入生成树中,但是若加入该边会与生成树形成环则不加入该边。直到树中含有formula_59条边为止。这些边组成的就是该图的最小生成树。  Kruskal算法的时间复杂度为formula_53。
title: 更快的算法.
content: 一些研究者希望可以找出更为高效的算法,在这方面也有了一定的成果。 针对边的权值可以成对比较的特殊模型提出了一个基于Borůvka算法和翻转删除算法的可以在线性时间内解决最小生成树的算法。  最快的非随机比较算法是由伯纳德·沙泽勒提出的。该算法依赖于soft heap这样一个类似于优先级队列的数据结构 。该算法的时间复杂度为formula_61。formula_62就是阿克曼函数反函数,formula_62的增长速度非常慢,对于一般的数值来说,其值很难超过5,所以该算法的复杂度可以近似看成是线性时间。
title: 线性时间的最小生成树算法.
content: 目前,既不能证明不存在能在线性时间内得到任意图的最小生成树的算法,也未能发明能够在线性时间内计算稀疏图的最小生成树的算法。
title: 相关问题.
content: k-最小生成树:图中包含k个顶点的所有子图的所有最小生成树中权值最小的生成树。  欧几里得最小生成树是一个用欧几里得距离来表示权值的连通加权图的最小生成树。  方格线最小生成树是一个用曼哈顿距离来表示权值的连通加权图的最小生成树。  容量最小生成树是一棵树且其每个节点的子树的容量都不大于formula_13。解决该问题是NP困难的。但是伊萨·威廉姆斯和夏尔马以及提出了可以在接近多项式时间内解决该问题的启发式。  度受限最小生成树是一棵树,其每一个顶点连接的顶点数都不超过d。对一些特定的d值,该问题类似于旅行推销员问题。该问题也是NP困难的。  对有向图来说,其与最小生成树类似的图处理问题叫做最小树形图问题。  最大生成树是一棵比其它所有生成树都要大或者相等的生成树。其解决方法类似于最小生成树算法。求解最大生成树的算法在自然语言处理以及条件随机场这些问题上起到很大的作用。  动态最小生成树是在已经计算完一个图的最小生成树后动态改变一些边的取值或删除/添加一些点或者边,求解新图的最小生成树。
title: 注释.
content: :用一条边链接树中的任意两个顶点都会产生一个新的环。  :设最小生成树formula_4的边的权值集合按从小到大顺序排列为formula_66, formula_5的为formula_68。因为formula_10为在formula_4但是不在formula_5的边中权值最小的边,所以formula_4中权值小于formula_10的边也在formula_5中。所以子图formula_75formula_76==formula_77formula_78。因为formula_75没有环,所以formula_77且formula_77的子图都没有环,那么组成环formula_13的边中必有边来自formula_83之中。

Summary: 最小生成树是一副连通加权无向图中一棵权值最小的生成树。

Arbre couvrant de poids minimal: En théorie des graphes, étant donné un graphe non orienté connexe dont les arêtes sont pondérées, un arbre couvrant de poids minimal (ACM) de ce graphe est un arbre couvrant (sous-ensemble qui est un arbre et qui connecte tous les sommets ensemble) dont la somme des poids des arêtes est minimale (c'est-à-dire de poids inférieur ou égal à celui de tous les autres arbres couvrants du graphe). L'arbre couvrant de poids minimal est aussi connu sous certains autres noms, tel qu’arbre couvrant minimum ou encore arbre sous-tendant minimum.