6

The authors of "Numerical Recipes" give in Ch. 10 an implementation of the simulated annealing algorithm that combines the "classical" simulated annealing with the Nelder-Mead downhill simplex method.

What I really like about this algorithm is the way it converges to a classic downhill search as the annealing temperatures reaches 0. However, I have never found any other reference to this algorithm; is it a safe, mature variant of the simulated annealing algorithm (i.e. production-ready) or should it be considered as an experimental idea thrown into the book?

lindelof
  • 34,556
  • 31
  • 99
  • 140

1 Answers1

3

Nope, not safe, guaranteed to give you herpes.

As someone who works professionally with AI and intelligent systems I can tell you that very few such algorithms are considered mature. By their nature advanced algorithms all tend to have an experimental aspect to them. For example, in simulated annealing you need to formulate a cooling schedule. How you do this is very problem-specific and will require you to experiment with and tune the algorithm. The NR code is a reasonable starting point for doing this.

Tyler Durden
  • 11,156
  • 9
  • 64
  • 126
  • With problem specific: do you mean use case specific or dataset specific? I 've had success with fine tuning SA's starting temperature for 1 use case that worked well across other datasets I throw at it. I do auto-tune the cooling scheduling based on the solver time. – Geoffrey De Smet Feb 08 '13 at 09:42
  • 1
    There are several different parameters in an SA implementation, including the energy function, number of states, and so on. The best cooling schedule will differ based on all these parameters, and there is no way to know what the best cooling schedule is for a particular problem configuration. This leaves you with the need to do experimentation. – Tyler Durden Feb 08 '13 at 15:48
  • ... which is where you'd be attempting something new in your chemistry lab: heating, cooling, not quite, try again, ... – Assad Ebrahim Mar 06 '13 at 19:02