I have a set of points (2D space), and for every point there's a label (like city names on a map). I want to find a real-time algorithm that allows labels to avoid overlapping, moving them from their original position if necessary.

I've heard about simulated annealing algorithm, but I can't find a good source to learn how to do this. Do you have some idea where I can find bibliography and practical examples?

Thanks in advance for your replies.

  • $\begingroup$ Googling "simulated annealing" gives me a load of good hits, including the wikipedia entry (which gives pseudocode) and an overview by Bertsimas. If you don't consider these to be good sources, you really need to be more specific about what you want to know. $\endgroup$ – Christian Clason Feb 6 '14 at 19:29
  • $\begingroup$ Thanks... I'm actually watching also this. I'm looking for performance because labels must be aligned in a real-time map environment (where user can zoom-pan and objects can be moved). $\endgroup$ – Jepessen Feb 8 '14 at 18:47