当前位置:  开发笔记 > 人工智能 > 正文

找到最小的子树

如何解决《找到最小的子树》经验,为你挑选了1个好方法。

给定n个节点在坐标平面上互连的图形,找到包含m个节点的最小距离子树的最佳方法是什么?

我发现这个问题的唯一解决方案是生成连接的所有节点组合,并尝试通过Kruskal或Prim的算法连接这些节点,而忽略其余的,然后比较所有创建的树并找到最小的树,但这当涉及到更大的树木时,效率并不高.

有更快,更有效的算法/方法吗?



1> Todd Gamblin..:

您询问的是K-minimum生成树(k-MST)问题,该问题已知为NP-complete.因此,您不会比当前的算法做得更好.

但是,在注释中,您说您的图是从坐标平面生成的,因此我只能假设您有关于图中节点的一些几何信息.该WWW汇编项提到,您可以使用欧几里德K-MST多项式时间近似方案.本文描述了一个:

阿罗拉,桑杰夫.(1996),欧几里德TSP的多项式时间近似方案和其他几何问题,在 第37届Ann的会议录中.IEEE Symp.关于计算机科学基础,第2-11页.

他们直接在那里提到了k-MST,所以如果你真的想要更快的话,我想你可以尝试那种算法.

推荐阅读
重庆制造漫画社
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有