Javadoc
The main round of the algorithm. Firstly, a permutation of nodes
is created and worked through in that random order. Then, for each node
a number of point of a circle of radius moveRadius
are
selected and the total energy of the system calculated if that node
were moved to that new position. If a lower energy position is found
this is accepted and the algorithm moves onto the next node. There
may be a slightly lower energy value yet to be found, but forcing
the loop to check all possible positions adds nearly the current
processing time again, and for little benefit. Another possible
strategy would be to take account of the fact that the energy values
around the circle decrease for half the loop and increase for the
other, as a general rule. If part of the decrease were seen, then
when the energy of a node increased, the previous node position was
almost always the lowest energy position. This adds about two loop
iterations to the inner loop and only makes sense with 16 tries or more.