多项式时间算法求解最小方差生成树问题

3
让我们将图的方差定义为边权的方差。我正在尝试设计一种算法,给定一个图G,构造一个具有最小方差的生成树T。
我很难开始解决这个问题。到目前为止,我注意到如果这样一个生成树中每条边的权重平均值是已知的,那么可以用每条边的权重与平均权重的偏差的平方代替权重,并将图输入到任何最小生成树查找算法中来解决问题。
显然,我不知道我要构建的树中每条边的平均权重,但我意识到平均值必须在G的两条边之间,并且也许可以利用这个信息。
我试图将问题化简为寻找修改后边权的G的最小生成树问题。我考虑了对G的每条边运行一个算法,每次假设初始边在T中最接近平均值并且给定权重0,而其他边的权重等于它们与初始边权重的偏差的平方。这种方法没有进展,因为如果平均值不等于任何一条边的权重,则取决于平均值在2个最接近的边权重之间的位置,基于它们的权重排序的顺序将是不同的,当输入MST查找算法时会产生不同的生成树。这是我不知道如何处理的问题(或者它是否能够被处理)。
因为这是作业,所以我更喜欢得到一些提示来引导我朝着正确的方向前进,而不是一个解决方案。
1个回答

2
想法1:当您构建最小权重生成树时,只需要能够逐对比较边缘。
想法2:
将权重差的平方与猜测g进行比较,仅在g =(x + y)/ 2时更改。
想法3:
如果有| E |条边,则平均权重最多有(| E |选择2)+1个基本不同的猜测g。为每个猜测计算最小权重生成树。比较这些树的方差。
可能会有更快的方法,但这是一个多项式时间算法。

1
这个想法又遇到了另一个障碍...假设我们测试平均权重的O(m^2)个猜测之一:我们为边分配新的权重,等于权重与平均权重的偏差的平方,并将图形输入MST查找算法中。我们无法保证所得到的树将具有与我们猜测相等的平均权重,因为算法可以(在极端情况下)总是选择位于我们猜测同侧的边,以便所得到的树将具有更大的平均权重... - A.F.K.
@A.F.K.:说得好。你能构造一个这个算法失败的例子吗,还是需要证明其他什么东西? - Douglas Zare
我需要证明以下引理:如果已知最优树Topt中的平均值,则在用所有输入图G的边权重的偏差平方替换后,MST查找算法(Kruskal似乎是最合适的)将选择与Topt相同的边集。今天我已经展示了我的解决方案,但在我证明这个引理之前课程就结束了。这很好,因为我的归纳证明非常薄弱,甚至连我自己都不信服。下周我必须证明它。但我想自己独立完成。 - A.F.K.
是的,在编程领域,将您自己的解决方案发布出去是一个好主意。如果您的答案(或别人的答案)比我的更完整,那么您应该接受那个答案。 - Douglas Zare
1
我可以使用一个小引理证明算法的正确性:对于任何一组实数A={a_1, a_2, ..., a_m},这些数字与点r之间偏差的平方和最小时,r等于A的算术平均值。我现在太累了,无法完成这个任务,但它似乎并不是很难,所以我会在明天上课前完成它:D - A.F.K.
显示剩余5条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接