One thing that makes it interesting is that moving one object might make things worse, but moving a group of objects that include that one object will make things better. How does the algorithm figure that out?
Most optimization algorithms rely on the fact that a small move in the right direction yields a small improvement. But here that might not be true - only a large move in the right direction will yield any benefit