【问题标题】:minimize euclidean distance from sets of points in n-dimensions最小化与 n 维点集的欧几里得距离
【发布时间】:2018-09-02 06:37:42
【问题描述】:

我们看n-d空间中的m个点-(3-d空间中4个点的解在这里:minimize distance from sets of points

a= (x1, y1, z1, ..)

b= (x2, y2 ,z2, ..)

c= (x3, y3, z3, ..)
.
.

p= (x , y , z, ..)

Find point q = c1* a + c2* b + c3* c + ..

where c1 + c2 + c3 + .. = 1
and  c1, c2, c3, .. >= 0
s.t.
euclidean distance pq is minimized.

可以使用哪些算法?想法或伪代码就足够了。 (在这里优化性能是一个大问题。所有顶点和变化系数的蒙特卡罗方法也可以提供解决方案。)

【问题讨论】:

标签: python geometry projection algebra


【解决方案1】:

我们可以通过从所有其他点中减去 p 来假设 p = 0。那么问题是最小化有限点集(即多面体)的凸包上的范数。

关于这个问题有几篇论文。看起来像 Kazuyuki Sekitani 和 Yoshitsugu Yamamoto 的“一种用于在多面体中找到最小范数点和两个多面体中的一对最近点的递归算法”是一个很好的算法,并对问题的先前解决方案进行了简短的调查。它位于付费墙后面,但如果您可以访问大学图书馆,则可以下载副本。

他们给出的算法相当简单,一旦你通过了符号。 P 是点的有限集。 C(P) 是它的凸包。 Nr(C(P)) 是最小范数的唯一点,这就是你要找到的。

步骤 0:从有限点 P 的凸包 C(P) 中选择一个点 x_0。他们建议选择 x_0 作为 P 中具有最小范数的点。让 k=1。

现在循环:

第 1 步:设 a_k = min {x^t_{k-1} p | p 在 P} 中。这里 x^t_{k-1} 是 x_{k-1} 的转置(所以被最小化的函数只是一个点积,因为 p 范围在你的有限集 P 上)。如果|x_{k-1}|^2

第 2 步:P_k = {p | p 中的 p 和 x^t_{k-1} = a_k}。 P_k 是 P 在步骤 1 中最小化表达式的子集。在这个集合 P_k 上递归调用算法,让结果为 y_k = Nr(C(P_k))。

第 3 步:b_k = min{y^t_k p | p in P\P_k},y_k 与补集 P\P_k 中的点的点积的最小值。如果 |y_k|^2

第四步:s_k = max{s| [(1-s)x_{k-1} + sy_k]^t y_k

第 4 步中有一个明确的 s_k 公式:

s_k = min{ [x^t_{k-1} (p-y_k)]/[(y_k-x_{k-1})^t (y_k-p)] | p 在 P\P_k 和 (y_k - x_{k-1})^t (y_k-p) > 0 }

论文中有一个证明,s_k 具有必要的性质,算法在有限次数的操作后终止,结果确实是最优的。

请注意,您应该在比较中添加一些容差,否则舍入错误可能会导致算法失败。关于数值稳定性有很多讨论,详情见论文。

他们没有对算法的计算复杂度给出完整的分析,但他们确实证明了在二维情况下最多为O(m^2)(m是P中的点数),并且他们进行了数值实验,给人的印象是它在时间上是次线性的,是 m 的函数,尺寸固定。我对这种说法持怀疑态度。在没有详细分析的情况下,我建议您尝试使用典型数据进行一些实验,看看该算法对您的表现如何。

【讨论】:

  • 谢谢。我将需要更多背景来遵循这一点。我在等着拿到你提到的那篇论文。
【解决方案2】:

用一种更简单的方式表示,您有一组点 {a}i,并且您正在考虑所有点的加权平均值。这组点正是那些点的convex hull;它是一个恰好是凸面的多面体(多边形、多面体等),其中的角是 {a}i 点的子集。

您只是在询问多面体(~hedron)上的哪个点最接近某个点。(您的查询点 p

最近的点必须在多面体的外部。一种算法是蛮力搜索所有 N-1 维表面。以通常的方式执行此操作,您会在一条直线或曲面或 N 维曲面上找到离查询点最近的点。

(如果这些点并非都是线性独立的,那么您将有多种方式(多个权重向量)可以为您提供相同的加权平均点q。您可以担心重建答案q 在几何上找到基础向量。)

【讨论】:

  • 优化性能是这里的一个大问题。具有所有顶点和变化系数的蒙特卡罗方法也可以提供解决方案。缩小这些选项的捷径/技巧(例如,我认为可能按距离对顶点 {a}i 进行排序并假设较近的顶点更有可能位于最终的子多面体中是行不通的——想想p 位于底部下方的短蹲金字塔...)。
猜你喜欢
  • 2019-02-07
  • 2021-10-01
  • 1970-01-01
  • 2021-05-14
  • 2011-07-04
  • 1970-01-01
  • 2019-01-02
  • 2021-10-11
  • 2013-03-02
相关资源
最近更新 更多