En el último post sobre búsqueda definimos las dimensiones del problema del viajante de comercio, y definimos una función de energía que nos sirve de medida para saber si la solución es óptima.
Ya conocemos la función de coste:

Nos damos cuenta de que la función de coste E(C) ≥ 0 para todo C perteneciente a Ω. Para poder aplicar nuestro algoritmo de búsqueda, en este caso el algoritmo Simulated Annealing (Templado Simulado), asumimos que la probabilidad de una determinada configuración C decae exponencialmente con su coste siguiendo la distribución de Gibbs:

Distribución de Gibbs
Z es un factor de normalización denominado función de partición, y T un parámetro de control denominado temperatura. Cuando T tiende a infinito, resulta que la probabilidad de una determinada configuración C es uniforme, de tal manera que todas las configuraciones tienden a ser equiprobables independientemente de su coste. Sin embargo, si T tiende a 0, P(C) se concentra en los picos de la distribución de Gibbs, de tal manera que sólo las configuraciones de mínimo coste tienen configuración no nula. En conclusión, para una misma temperatura, la probabilidad de una determinada configuración decae exponencialmente con su coste, y dicho decaimiento es atenuado por la temperatura; es decir, la configuraciones que tienen mínimo coste son más probables que el resto.
¿Y qué tendrá que ver todo esto con el viajante de comercio? estamos hablando de probabilidades, de funciones de coste, pero no sabemos qué vamos a hacer con todo ello. Calma, os dije que esta parte no iba ser fácil.

Analogía del Algoritmo de Templado Simulado con una pista de esquí.
Todo este modelo probabilístico que he propuesto se relaciona con la búsqueda de la configuración de mínimo coste, mediante una analogía entre la resolución de un problema de optimización y la solución de un proceso de templado del metal. Para templar un metal, lo primero que hacemos es exponerlo a temperaturas muy elevadas, y despues descender esta temperatura hasta encontrar la configuración de mínima energía, que es cuando el metal alcana estructuras reticulares, extrema su resistencia y su dureza. Pero al realizar el templado, tenemos que tener en cuenta el ritmo con el que enfriamos el metal. Un ritmo demasiado rápido alcanzara configuraciones de baja energía, que no se corresponderán a estructura reticulares, sino a estructuras amorfas que harán que el metal pierda su resistencia y su dureza. Esto es debido a que no se alcanzado un mínimo de energía global, sino uno local que no es el óptimo, y que puede estar muy alejado de la solución del problema. Pero si se elige una buena velocidad de descenso de temperatura que permita saltarse esos mínimos locales, se garantiza la convergencia al estado óptimo global. El algoritmo Simulated Annealing garantiza esta convergencia y se aplica para problema combinatoriales, como es el caso del viajante de comercio.
En el próximo post, describiremos el proceso de Muestreo a través del algoritmo Metrópolis. Este algoritmo genera una secuencia de configuraciones que utilizará el algoritmo Simulated Annealing para alcanzar la configuración óptima. Empieza lo interesante.