我正在尝试解决下面的问题。它就像k-minimum-spanning-tree和steiner tree问题,但是它带有图形。
我是否认为k-MST或Steiner树近似解决方案都不起作用?如果是这样,这个问题叫什么?什么是解决方案?我可以使用启发式或近似来解决这个问题,并且不需要正式的证明。
答案 0 :(得分:1)
我不知道是否有更快的算法,但是琐碎的算法(如果我的解释是正确的)是:
如果有n个顶点,则会探索{{1}}这样的组合。
答案 1 :(得分:1)
KD MST或Steiner树不起作用是正确的 - 它们只产生树,而你需要一个具有特殊属性的图形,例如:如果我理解你的问题,那么U中的顶点之间的成本为0,所有其他边的成本最低。
虽然juancn's回答看起来是正确的,但我认为使用类似metaheuristic的内容,例如<{3}}或simulated annealing方法会更好。
对于metaheuristics:
对于约束满足:
sum(vertices == 1)= k
对于最后一种方法,约束满足,内存可能是一个问题 - 您需要大量内存来表示完全连接的图形和所有约束。不过,请检查constraint satisfaction,Minizinc和lpsolve项目。