Algorithm 最小方差生成树的多项式时间算法

Algorithm 最小方差生成树的多项式时间算法,algorithm,graph,variance,spanning-tree,Algorithm,Graph,Variance,Spanning Tree,让我们将图形的方差定义为其边权重的方差。我试图解决的任务是设计一个算法,给定一个图G,它将构造一个方差最小的生成树T 我很难在这个问题上取得进展。到目前为止,我已经注意到,如果这样一个生成树中的平均边权重是已知的,那么这个问题可以通过将每条边的权重替换为其平均权重偏差的平方来解决,并将该图输入到任何MST查找算法中 显然,我不知道我试图构建的树中的平均边权重,但是我突然想到,平均值必须落在G的两条边之间,也许这个信息可以被利用 我试图把这个问题归结为用修改的边权重求G的MST。我考虑对G的每条边

让我们将图形的方差定义为其边权重的方差。我试图解决的任务是设计一个算法,给定一个图G,它将构造一个方差最小的生成树T

我很难在这个问题上取得进展。到目前为止,我已经注意到,如果这样一个生成树中的平均边权重是已知的,那么这个问题可以通过将每条边的权重替换为其平均权重偏差的平方来解决,并将该图输入到任何MST查找算法中

显然,我不知道我试图构建的树中的平均边权重,但是我突然想到,平均值必须落在G的两条边之间,也许这个信息可以被利用

我试图把这个问题归结为用修改的边权重求G的MST。我考虑对G的每条边运行一个算法,每次都假设初始边最接近T的平均值,并且给定权重0,而其他边的权重等于它们与初始边权重的偏差的平方。这种方法毫无用处,因为如果平均值不等于其中一条边的权重,那么根据它位于两条最近边的权重之间的位置,基于它们权重的边的顺序将不同,并且在输入MST查找算法时将生成不同的生成树。这是我不知道如何处理的事情(或者它是否可以处理)


这是家庭作业,所以我更喜欢一个小提示,告诉我正确的方向,而不是一个解决方案。

想法1:在构建最小权重生成树时,您只需要能够成对比较边

想法2:

权重边x和权重边y的两两比较,当将权重和猜测值g之间的差值平方时,仅在g=(x+y)/2处变化

想法3:

如果有| E |边,则对于平均重量,最多有(| E |选择2)+1个本质上不同的猜测g。计算每一个的最小权值生成树。比较这些树的方差


应该有更快的方法,但这是一个多项式时间算法。

hmmmmm,你是说所有边对之间都有O(n^2)个中点,对于任意两点b和c,如果b和c之间没有这样的中点,然后,围绕b和c计算的新权重作为对平均值的猜测,将在反馈给和MST查找算法时生成相同的生成树。如果我做对了,我会在周三之前发布解决方案——明天和周一我都有点忙。谢谢你的提示:)这个想法遇到了另一面墙。。。假设我们测试一个O(m^2)猜测的平均权重:我们为边指定新的权重,等于权重与平均权重的偏差的平方,然后将图形输入到和MST查找算法中。我们不能保证生成的树的平均权重等于我们的猜测,因为算法(在极端情况下)总是可以拾取位于我们猜测同一侧的边,因此生成的树将具有更大的平均值…@a.F.K.:好的观点。你能举一个例子说明这个算法失败了吗,或者这只是一个需要证明的问题吗?我需要证明以下引理:如果最优树中的平均值Topt是已知的,那么在将输入图的所有边的权重G替换为它们偏离平均值的平方后,这是一个MST查找算法(Kruskal在这里似乎是最合适的)将选择与Topt相同的边集。实际上,我今天已经给出了我的解决方案,在我给出这个引理的证明之前,课程就结束了。这很好,因为我的归纳证明非常弱,甚至无法说服我;)。下周我必须证明这一点。我可以用一个额外的引理来证明算法的正确性:对于任意一组实数a={a_1,a_2,…,a_m},当r等于a的算术平均值时,这些数与点r的偏差平方和是最小的。我现在太累了,不能这样做,但这似乎不太难,所以我明天上课前做:D