最近有人向我询问是否能找到一种算法来计算给定图的最小成本生成树,其中生成树的总成本是由边缘成本的乘积而不是它们的总和给出的。
有几种算法可以计算常规最小生成树,但我不确定如何为上述情况进行调整。您有什么想法吗?
谢谢。
最近有人向我询问是否能找到一种算法来计算给定图的最小成本生成树,其中生成树的总成本是由边缘成本的乘积而不是它们的总和给出的。
有几种算法可以计算常规最小生成树,但我不确定如何为上述情况进行调整。您有什么想法吗?
谢谢。
由于 log(边权值的乘积) = 边权值的对数之和,因此可将边权值进行对数转换,然后找到这些权值的最小生成树。
我最好的想法 - 通过暴力找到所有最小生成树(即无用边),挑选乘积最小的那个。
大多数(或全部)更有效的解决方案都不再适用 - 主要是因为最优解不再必然包含最优子问题。 (有哪些限制?非常重要 - 成本小于1的边实际上是负成本,长度为1的边是免费的。它们最好都是正的!)
我不确定这个问题是否真正有意义。首先,您必须给出自环成本(或假定为1),因为我们不能用零来相乘。分割路径的工作方式不同,两次经过同一路径的旅行成本为c ^ 2?此外,我认为这应该是一条具有不同名称的路径的不同质量。