Optimization problem (total distance from point on sphere to other points)?

610 Views Asked by At

Let $M_i(x_i, y_i, z_i)$ be a set of $n$ fixed points. Given their coordinates, find a point $M(x, y, z)$ which is on the sphere $x^2 + y^2 + z^2 = 1$ and has the minimal sum of distances between itself and the given $n$ points.

$$ \sum_{i = 1}^{n} \|M - M_i\| \rightarrow \min_{M} \\ x^2 + y^2 + z^2 = 1 $$

At first I mistakingly determined the problem to be convex and wanted to go the common way: "show convexity, show strong duality, use KKT to find extremum". However, Michael C. Grant was quick enough to point out the problem is not convex. I would be grateful for any hints on how to solve it then.

I tried moving to dual problem (which is always convex) but got stuck:

$$ L(M, \nu) = \sum_{i = 1}^{n} \|M - M_i\| + \nu (\|M\|^2 - 1) \\ \nabla_M L(M, \nu) = \sum_{i = 1}^{n} \frac{M - M_i}{\|M - M_i \|} + 2\nu M = 0 $$

Can't even get $M$ out of the last line$\dots$

1

There are 1 best solutions below

0
On

Although, this doesn't answers your question, I'm writing the solution for a slightly different problem.

As mentioned in the comments, your problem is not convex. But if you change your objective a little bit you can find a simple solution.

Let's solve the following problem instead:

$$ \sum_{i = 1}^{n} \|M - M_i\|^2_2 \rightarrow \min_{M} \\ x^2 + y^2 + z^2 = 1 $$

Here, the objective is sum of the squared differences, and the used norm is $L_2$ norm. Then you can write it as:

$$ \text{minimize}_M ~~\sum_{i = 1}^{n} (M - M_i)^T(M - M_i)\\ \text{subject to} \\ M^TM = 1 $$

Note that $\sum_{i = 1}^{n} (M - M_i)^T(M - M_i)=nM^TM-(2\sum_i M_i)^TM+\sum_i M_i^TM_i$.

So, you can equivalently solve:

$$ \text{minimize}_M ~~ nM^TM-(2\sum_i M_i)^TM\\ \text{subject to} \\ M^TM = 1 $$

Since $M^TM = 1$, you basically want the solution of the following problem:

$$ M^*=\arg\max~~ (\sum_i M_i)^TM\\ \text{subject to} \\ M^TM = 1 $$

If you fix the magntude of $M$, $(\sum_i M_i)^TM$ has the maximum value if the direction of $M$ is the same as $\sum_i M_i$. Therefore the solution is:

$$ M^*=\frac{\sum_i M_i}{\|\sum_i M_i\|_2} $$