我有一个维度为d的n个点的S ,我可以根据需要计算所有成对距离.我需要在这个集合中选择k个点,以便它们成对距离的总和是最大的.在其他稍微更多的数学词中,我想要S中的p1,...,pk使得sum(i,j <k)dist(pi,pj)是最大的.
我知道这个问题是关系到这一个(这基本上是我的一样,但对于k = 2),也许到这一个(使用而不是"最近""最远的").
我对此并不太确定,但也许所有可能的解决方案都有其在凸包中的所有点?
任何合理的近似/启发式都可以.
虚拟奖励点#1用于解决方案,该解决方案适用于给出四个点中的分数的任何函数(其中一个可以是平方距离之和的平方根).
如果解决方案很容易在python + numpy/scipy中实现,那么虚拟奖励点#2.
我有一个由几个点的 x,y,z 坐标组成的矩阵。我想找到极值点,即相距最远的两点。
我可以在 matlab 中找到一种方法,但我需要在 Python 中使用它
这是matlab中的代码
A = randint(500,3,[-5 5]);
D=pdist(A);
D=squareform(D);
[N,I]=max(D(:));
[I_row, I_col] = ind2sub(size(D),I);
Run Code Online (Sandbox Code Playgroud)
pdist 给出点对(i,j)之间的距离。squareform 给出矩阵输出 在最后两个步骤中,我尝试找到矩阵 I_row、I_col 的索引。
点 I_row 和 I_col 具有最大距离..
任何人都可以建议我在 python 中使用一种有效的方法,因为我所有的其他代码都在 python 中。