Anda di halaman 1dari 16

Recocido

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)


x=x’ ¿Es Z(x’)>Z(x)? “Maximizar”

No
Calculo P(ΔZ) Depende del actual T

Genera número aleatorio r


¿Es n<P(ΔZ)? x=x’

No
Recocido Simulado

Enfriamiento:

En cada iteración que requiere cambio


de T,
Ti+1= a*Ti
Donde 0 < a < 1
Recocido Simulado
Parámetros

1. To = temperatura Inicial (debe ser alta)


2. Velocidad de enfriamiento L(T), número de iteraciones en
que se usa la misma temperatura antes de disminuirla para
otras L(T) iteraciones
3. Enfriamiento a = grado de disminución de temperatura, se
recomienda a (0.8, 0.99)
4. Tf = Temperatura final (Tf 0)
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.

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

Paso 0. Seleccione una solución de inicio s0 e S. Establezca k=0, p=0, e


i=0.
Paso 1. Genere la cercanía N(sk) y establezca la temperatura T =Ti.
Paso 2. Determine la solución sk+1 al azar desde N(sk). Si sk+1 no es
peor que la solución última aceptada o si R < P {acepte sk+1}, luego
acepte sk+1, establezca p=p+1, y vaya al paso 3. De lo contrario, rechace
sk+1 y establezca N(sk+1)=N(sk). Establezca k=k+1, y vaya al paso 1.
Paso 3. Si se llega a una condición de terminación, deténgase. De lo
contrario, establezca k=k+1. Si p=t, entonces establezca i=i+1. Vaya al
paso 1.
Ejemplo
Ejemplo Agente viajero
Dadas 5 ciudades y el costo de viajar entre cada dos ciudades, un
vendedor viajero necesita iniciar desde la ciudad A y visitar todas las otras
ciudades regresando a la ciudad A. Objetivo: Minimizar el costo total de
viaje.

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

Anda mungkin juga menyukai