无向图的最小生成森林的拟阵解法
前置知识
可以参见:拟阵的有关知识,图拟阵
问题描述
输入:无向图G=(V, E),边的权函数W: E→正整数集
输出:边子集合A是E的子集合, (V, A)是生成森林,W(A)最小
转换为加权拟阵上寻找优化子集问题
定义,该图G的图拟阵为M = (S,I)。
由于该问题所求的是W(A)最小,这与优化子集的定义恰好相反,所以需要重新定义以下W。
定义:W'(e) = W0 - W(e),其中W0 > max{W(e)}。那么,自然,W '(A) = = |V|W0 - W(A)
原问题转换为:
输入:拟阵 M=(S, I), M的加权函数 W '。
- S, I均为图拟阵中的S,I。
- W '参见上述定义。
输出:M的最优子集
算法
直接调用算法即可,对于I只需要增加判断条件就行,没必要求出I,只需要判断是不是森林就可以,具体参见:拟阵的最优子集问题的算法。