我在D维度量空间中有一组N个点。我想以这样的方式选择它们中的K,使得子集中任意两点之间的最小距离最大。Maxmin距离感最好的子样本
例如,在3D欧几里德空间中N = 4且K = 3时,解是具有最长短边的四面体的面。
有没有经典的方法来实现这一目标?它能够在多项式时间内完全求解吗?
我已尽可能地使用Google搜索,但我还没有想出如何调用此问题。
在我的情况下,N = 50,K = 10,D = 300。
澄清:
蛮力的方法是尝试的N之中K个点每一个组合,并确定在每一个子集中的最接近的一对。解决方案由产生最长对的子集给出。
完成一个O(K^2)过程的简单方法,重复N!/K!(N-K)!倍。
哼,10^2 50!/10! 40! = 1027227817000
声音,你可以做,建立一个点与点之间的距离图,然后运行克鲁斯卡尔算法的修改版本来构建最大生成树 – higuaro 2012-07-20 20:38:16
最大生成树可以是V形,节点之间有很长的链接,但是两个节点没有通过非常靠近的链路连接。我能想到的一些明显的爬坡和贪心算法如此(通过扫描数据,并反复查看是否有交换迄今举行将改善的事情之一分新点),但他们不会放弃某些最优 – mcdowella 2012-07-21 05:14:17
假设我已经在N个点上构建了最大生成树。如何修剪树以获得我的K子样本?生成树以什么方式让我更接近解决方案? – 2012-07-21 10:15:31