Take the 2-minute tour ×

I'm trying to solve the Thomson Problem, i.e we have $N$ repelling point charges on a (hyper)sphere of dimension $m$ and we want to determine which configuration gives the lowest energy.

We thus want to minimize $E=\sum_{i<j} ||x_i-x_j||^{-s} $ where $s$ is an integer, (generally taken to be equal to 1), and $x_i$ is the $i$th point.

I want to apply gradient descent to it (as part of a local optimization routien in a genetic algorithm), so I need the gradient of $E$, however $E$ depends on $N$ points, and each point has $m-1$ (hyper)spherical components. How could I calculate $\nabla E$ ?

share|improve this question
Why $m-1$ components? The expression "a (hyper)sphere of dimension $m$" is slightly ambiguous; it might refer to $S^m\subset\mathbb R^{m+1}$ or to $S^{m-1}\subset\mathbb R^m$, but in neither case are there $m-1$ components. Or do you mean $m-1$ (hyper)spherical coordinates? –  joriki Dec 23 '12 at 14:57
Considering how messy the computation in hyperspherical coordinates is likely to be, I would do the following: at each step, move each $x_i$ by a small multiple of Euclidean gradient and then project them back onto the sphere. Should be about the same thing. –  user53153 Dec 23 '12 at 21:40
add comment


Your Answer



Browse other questions tagged or ask your own question.