Simulado
(Simulated Annealing SA)
Recocido Simulado
• En una iteración del proceso de “Enfriamiento” una solución actual x
es “perturbada” para producir una nueva alternativa que puede
reemplazarla o no .
• El reemplazo será aceptado o no, en función de una regla de
aceptación.
• El proceso se repite iterativamente hasta que se considere que se
llegó al óptimo (la solución converge)
• Perturbar = obtener una nueva solución x’ a partir de x (es decir,
generar un elemento de N(x))
• Enfriamiento: En el transcurso del proceso usar un parámetro
dinámico T que toma valores cada vez menores
Recocido Simulado
Regla de Aceptación
(Algoritmo de Metrópolis)
Si la nueva solución x’ tiene mejor valor Z que la anterior, la reemplaza. x= x’
Si no, se acepta bajo la siguiente condición: la probabilidad de que x’ se acepte es:
Donde:
• DZ = (Z(x’) – Z(x))
• C: cte (1.38054x10-3)
• T es la temperatura.
P(DZ) es la distribución de la probabilidad de que el sólido esté en el estado i con energía Ei a temperatura T.
Esta distribución se denomina Probabilidad de Boltzman.
Recocido Simulado
¿Cómo funciona en optimización?
Se escoge un número aleatorio n uniformemente distribuido en el
intervalo (0,1).
Ese número es comparado con P(DZ).
Si n < P(DZ) , x’ reemplaza a x como solución actual
Si n >= P(DZ), x se usa de nuevo como paso inicial de una próxima
iteración.
Al principio T es un valor alto (fundición), y luego va disminuyendo
(enfriamiento), es decir, cada vez es menor la probabilidad de que la
nueva alternativa reemplace a la anterior.
Recocido Simulado
Recocido Simulado
Generación aleatoria de x inicial
Generación de x’ ϵ N(x)
Sí
x=x’ ¿Es Z(x’)>Z(x)? “Maximizar”
No
Calculo P(ΔZ) Depende del actual T
Sí
¿Es n<P(ΔZ)? x=x’
No
Recocido Simulado
Enfriamiento:
Defina
Sk=Secuencia de tareas utilizada en el iteración k
N(sk)=Secuencias de vecindades de sk
Ti=Programa de temperatura, i =1,2,…,
Ck=Costo total (retención + penalización) de la secuencia sk
Ejemplo
Las tareas se secuencian en una sola máquina. Cada tarea j tiene un tiempo de
procesamiento tj y una fecha límite dj. Si se completa j antes de la fecha límite, se
incurre en costo de retención hj por unidad de tiempo. Una tarea retrasada j da por
resultado un costo de penalización pj por unidad de tiempo. La tabla proporciona los
datos para un problema de secuenciación de 4 tareas.
Ejemplo
Resumen del algoritmo de recocido simulado
Solución:
• Mecanismo de búsqueda
• Intercambiar dos enteros cualquiera (exceptuando el primero)
• (A,D, B, C,E) (A,D,C,B,E)
• Función de costo
• Suma de los costos de viajar entre las ciudades vecinas de la
trayectoria
Ejemplo Agente viajero
Inicia en el nodo: B
GRACIA
S