最小化 3-d 中点集的欧几里得距离

Minimize Euclidean distance from sets of points in 3-d

让我们看看 3-d 中的四个 (m) 点 space- 我想概括为 n-d,但 3 个应该足以解决问题(第 1 部分)。

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.

可以使用什么算法?想法或伪代码就够了。

第 2 部分:求解 n 维中的 m 个点:

我认为泛化到 n 维的 m 个点是微不足道的,但事实证明这并不简单。我在这里为一般问题创建了另一个问题:

我认为您的 3D 问题可以通过将点 P 投影到由三个点 A, B, C 或两个向量 ABAC(或 AB, AC, and BC 的其他组合)。

乍一看,3+1 点问题似乎可以推广到 N 维(3 个点总是定义一个三角形和一个平面)。
然而,目前尚不清楚这种方法是否适用于更多不共面的点。

1- 通过将 P 投影到由向量 ABAC 定义的平面上的点 P' 来减少到 2D。

2-理解P'的位置只由一个系数t in the Realss.t决定。 P'ABAC 的仿射组合:
P' = t * AB + (1-t) * AC

3- 从那里开始,P' 可以位于 3 个不同的位置:

  • (a) 在三角形 ABC 内:在这种情况下,Q = P'

  • (b) 在由正交向外投影划定的区域中 其中一个部分;在那种情况下 Q 是的正交投影 P' 在最近的路段上。

  • (c) 不在 (a) 或 (b) 中;在最后一个微不足道的情况下,Q 是最接近的 共 A, B, or C