Top Banner
Simulated Annealing Rafael Fernández Fernando García
39

Simulated Annealing Rafael Fernández Fernando García.

Jan 28, 2016

Download

Documents

Jacinto Largo
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Simulated Annealing Rafael Fernández Fernando García.

Simulated Annealing

Rafael FernándezFernando García

Page 2: Simulated Annealing Rafael Fernández Fernando García.

Simulated Annealing

• Fundamento teórico.– Aplicación (Dial-A-Ride)

• Variantes de SA.– TA (Threshold accepting)– GDA (Great deluge algorithm)– RRT (Record-to-Record Travel)– Aplicacion. (TSP)

• Concluciones.

Page 3: Simulated Annealing Rafael Fernández Fernando García.

Fundamento Teórico

• Definir vecindad.

• Estrategia de exploración en la vecindad.

• Estrategia de enfriado.

• Condición de parada.

Page 4: Simulated Annealing Rafael Fernández Fernando García.

Fundamento Teórico

• Definir vecindad: Una estructura de vecindad es una función :2, el cual define para cada S, un conjunto (S) de soluciones llamadas “vecinas” de S. El conjunto (S) se llama “vecindad” de S y cada elemento S´ (S) es una solución “vecina” de S.

Page 5: Simulated Annealing Rafael Fernández Fernando García.

Fundamento Teórico

• Estrategia de exploración en la vecindad.

Para cierto tSeleccionar aleatoriamente una sol. j en vecindad(i).Sea Δ = f(j) – f(i)Si Δ > 0 entonces i = jSino generar aleatoriamente q U(0,1)

Si q < exp(Δ/t) entonces i = j Sino generar aleatoriamente q U(0,1)

Si q < exp(Δ/t) entonces i = j

Page 6: Simulated Annealing Rafael Fernández Fernando García.

Fundamento Teórico

P = exp(x/t)

Page 7: Simulated Annealing Rafael Fernández Fernando García.

Fundamento Teórico

Estrategia de enfriado : – Se elije una temperatura inicial (To). – Función de enfriamiento g(t) (actualización: de t) – Función de equilibrio.

Page 8: Simulated Annealing Rafael Fernández Fernando García.

Fundamento Teórico

• Condiciones de parada.– Temperatura mínima del sistema.– Cantidad de iteraciones.– No se obtiene una solución mejor después de

varias iteraciones.

Page 9: Simulated Annealing Rafael Fernández Fernando García.

Fundamento Teórico

Repetir

Repetir (para cierto t)

Hasta llegar a equilibrio.

Actualizo la temperatura (t = g(t)).

Hasta condición de parada.

Selecciona aleatoriamente una sol. j en vecindad(i). Sea Δ = f(j) – f(i) Si Δ > 0 entonces i = j Sino generar aleatoriamente q U(0,1)

Si q < exp(Δ/t) entonces i = j

Page 10: Simulated Annealing Rafael Fernández Fernando García.

Simulated Annealing

• Fundamento teórico.– Aplicación (Dial-A-Ride)

• Variantes de SA.– TA (Threshold accepting)– GDA (Great deluge algorithm)– RRT (Record-to-Record Travel)– Aplicacion. (TSP)

• Concluciones.

Page 11: Simulated Annealing Rafael Fernández Fernando García.

Aplicación SADial-A-Ride

• Definición del probema DaR.– Conjunto de nodos r R con distancias dij entre los

nodos i,j = 1,...,r

– Conjunto de clientes n N tal para cada cliente k (k=1,...,n) definimos:

• El nodo ik “pick-up” y 1k el tiempo mas temprano de “pick-up”.

• El nodo jk de entrega y 2k el tiempo mas tardío de entrega.

• Opcionalmente k numero de pasajeros.

– Flota de servicio M de m vehículos con capacidad qL y nodo de deposito iL (L= 1,...,m).

Page 12: Simulated Annealing Rafael Fernández Fernando García.

Aplicación SADial-A-Ride

• Función objetivo:– F(a maximizar) = calidad de servicio medido

por el promedio de la calidad de servicio aceptado por los clientes.

• Que es la calidad de servicio:– Una medida razonable de calidad de servicio

para el cliente k es la relación entre la suma del tiempo de espera y viaje entre el tiempo de viaje teórico desde el nodo i hasta el j.

Page 13: Simulated Annealing Rafael Fernández Fernando García.

Aplicación SADial-A-Ride

• Ejemplo:

• Cliente K solicita pedido a las 8hs (1k =8)

• El vehículo m recoge la carga a las 13hs (ik=13) y la deja a las 16hs (jk=16).

• El tiempo teórico de ir del nodo i a j es de 2 hs (ik,jk=2)

• losk= ( jk - 1k ) / ik,jk = (16-8) / 2 = 4

Page 14: Simulated Annealing Rafael Fernández Fernando García.

Aplicación SADial-A-Ride

• Rango de los losk:

1 <= losk <= GLOS k = 1,...,n

• GLOS es un cota superior que representa un nivel de calidad mínima garantizada a los clientes.

• Finalmente podemos expresar nuestra función objetivo como :

h

kklosh

LOS1

1

Page 15: Simulated Annealing Rafael Fernández Fernando García.

Aplicación SADial-A-Ride

• Restricciones a cumplir en el modelo.– Nodo de “pick-up” ik debe preceder al de entrega jk para

cada cliente k.

– Cliente k es aceptado si hay un vehículo l que permite losk <= GLOS.

– Para un vehículo l los tiempos ik e jk cumplen:

• 1k <= ik <= jk - ik,jk <= 2k - ik,jk

– La capacidad de un vehículo l siempre es satisfecha

– Solo se considera el tiempo de servicio durante 1 día.

Page 16: Simulated Annealing Rafael Fernández Fernando García.

Aplicación SADial-A-Ride

Al llegar una nueva llamada k:A) Asigno la llamada al mejor vehículo (fase de

asignación)

B) la nueva ruta de ese vehículo es seleccionada (fase de ruteo)

Page 17: Simulated Annealing Rafael Fernández Fernando García.

Dial-A-Ridei = solucion aleatoria

Repetir

Repetir (para cierto t)Selecciona aleatoriamente una sol. j en vecindad(i).

Sea Δ = f(j) – f(i) Si Δ < 0 entonces i = j Sino generar aleatoriamente q U(0,1)

Si q < exp(Δ/t) entonces i = j

Hasta llegar a equilibrioActualizo la temperatura (t = g(t)).

Hasta condición de parada.

j = Cambio pareja de nodos de i

For h = 1 to 10

endfort = 0.95*t

=TRUE ; l=i;

Si f(j) < f(l) entonces l=j

Si Δ < 0 entonces i = j; =FALSE

Si q < exp(-Δ/t) entonces i = j ; =FALSE

Hasta

i = mejor solucion para el cliente (k-1)

h

kk

jh

jf los1

)(1

)(

h

kk

ih

if los1

)(1

)(

Page 18: Simulated Annealing Rafael Fernández Fernando García.

Simulated Annealing

• Fundamento teórico.– Aplicación (Dial-A-Ride)

• Variantes de SA.– TA (Threshold accepting)– GDA (Great deluge algorithm)– RRT (Record-to-Record Travel)– Aplicacion. (TSP)

• Concluciones.

Page 19: Simulated Annealing Rafael Fernández Fernando García.

Variantes de Simulated Annealing

• Variantes de S.A.

– TA (Threshold accepting)

– GDA (Great deluge algorithm)

– RRT (Record-to-Record Travel)

Page 20: Simulated Annealing Rafael Fernández Fernando García.

Threshold accepting

• Estrategia de exploración en la vecindad.

Para cierto threshold T

Seleccionar aleatoriamente una sol. j en vecindad(i).Sea Δ = f(j) – f(i)Si Δ > -T entonces i = j

Page 21: Simulated Annealing Rafael Fernández Fernando García.

Threshold accepting

• Acepta nuevas soluciones que no son mucho peores que la vieja solución.

• No se precisa temperatura inicial ni esquema de enfriamiento.

• Solo utiliza un parámetro inicial Threshold.

Page 22: Simulated Annealing Rafael Fernández Fernando García.

Threshold accepting

Elijo solución inicial (i) y threshold inicial (T).

Repetir

Repetir

Hasta “equilibrio”

disminuyo T

Hasta condicion de parada.

Seleccionar aleatoriamente una sol. j En vecindad(i). Sea Δ = f(j) – f(i) Si Δ > -T entonces i = j

Page 23: Simulated Annealing Rafael Fernández Fernando García.

Variantes de Simulated Annealing

• Variantes de S.A.

– TA (Threshold accepting)

– GDA (Great deluge algorithm)

– RRT (Record-to-Record Travel)

Page 24: Simulated Annealing Rafael Fernández Fernando García.

Great Delugue Algorithm

• Estrategia de exploración en la vecindad. Para cierto nivel_de_agua

Seleccionar aleatoriamente una sol. j en vecindad(i).Si f(j) > nivel_de_agua entonces

i = j nivel_de_agua := nivel_de_agua + velocidad_lluvia

Page 25: Simulated Annealing Rafael Fernández Fernando García.

Great Delugue Algorithm

• Solo se precisa determinar el parámetro de velocidad_lluvia.

• Fácil de implementar.

• Sólo acepta la nueva solución si se encuentra sobre el nivel_del_agua.

Page 26: Simulated Annealing Rafael Fernández Fernando García.

Great Delugue Algorithm

Elijo solución inicial (i)

Elijo velocidad_lluvia (v_l) > 0 y nivel_de_agua > 0

Repetir

Repetir (para cierto nivel_de_agua)

Hasta llegar a equilibrio

Hasta condición de parada.

Seleccionar aleatoriamente una sol. j en vecindad(i).Si f(j) > nivel_de_agua entonces

i = jnivel_de_agua := nivel_de_agua +v_l

Page 27: Simulated Annealing Rafael Fernández Fernando García.

Variantes de Simulated Annealing

• Variantes de S.A.

– TA (Threshold accepting)

– GDA (Great deluge algorithm)

– RRT (Record-to-Record Travel)

Page 28: Simulated Annealing Rafael Fernández Fernando García.

Record-to-Record Travel (RRT)

• Estrategia de exploración en la vecindad.

record = mejor solución

Seleccionar aleatoriamente una sol. j En vecindad(i).Si f(j) > (record – desviación) entonces

i = jSi f(j) > record entonces record = f(j)

Page 29: Simulated Annealing Rafael Fernández Fernando García.

Record-to-Record Travel (RRT)

• Solo se precisa determinar el parámetro de desviación.

• Fácil de implementar.

• Recuerda la mejor solución (record) en todo momento.

• Sólo acepta la nueva solución si está por encima de (record – desviación).

Page 30: Simulated Annealing Rafael Fernández Fernando García.

Record-to-Record Travel (RRT)

Elijo solución inicial (i), elijo desviación > 0.

Seteo la mejor solución (record = i).

RepetirRepetir

Hasta llegar a equilibrio.

Hasta condición de parada.

Seleccionar aleatoriamente una sol. j en vecindad(i).Si f(j) > (record - desviación) entonces

i = jSi f(j) > record entonces

record = f(j)

Page 31: Simulated Annealing Rafael Fernández Fernando García.

Aplicaciones

• Grotschel´s 442 ciudades (TSP Euclidiano)

• Problema: Dada las coordenadas de N ciudades, busco un recorrido que visite todas las ciudades minimizando el costo.

Page 32: Simulated Annealing Rafael Fernández Fernando García.

Aplicaciones

• ¿Como modelar el problema?

5 4

2

1 3

(1, 5, 4, 3, 2)

Page 33: Simulated Annealing Rafael Fernández Fernando García.

Aplicaciones

• ¿Como defino una vecindad?

5 4

2

1 3LIN-2-OPT

• Elijo i, j C, i < j

• Elimino las aristas { ((i),(i+1)), ((j), (j+1)) }

• Inserto las aristas { ((i), (j)), ((i+1), (j+1)) }

0 (1, 5, 4, 3, 2) Corrida: i = 1 j = 4 1 (1, 3, 4, 5, 2)

Page 34: Simulated Annealing Rafael Fernández Fernando García.

Ejemplo (aplicado a TA)

Elijo solución inicial (i)

Threshold inicial (T).

Repetir

Repetir

Seleccionar aleatoriamente una sol. j en vecindad(i).

Sea Δ = f(j) – f(i)

Si Δ < T entonces i = j Hasta “equilibrio”

disminuyo T

Hasta condicion de parada

Seleccionar un conjunto de nb ciudades cercanas para cada ciudad

Elijo un inicial

For T = 0.099 to 0 step -0.001

Para cada ciudad c1

Para cada ciudad c2 cercana a la ciudad c1

j = lin-2-op (i, c1, c2) )

= largo(j) – largo (i)

End para cada ciudad c1

End para cada Threshold

Page 35: Simulated Annealing Rafael Fernández Fernando García.

Resultados para 442 ciudades con largo del recorrido inferior a 52.00

TA Improved Form

0

50

100

4 6 8 10 12 14 16 18 20

nb

# r

ec

orr

ido

s

TA

0

50

100

4 6 8 10 12 14 16 18 20

nb

# r

ec

orr

ido

s

RRT

0

50

100

4 6 8 10 12 14 16 18 20

nb

# r

ec

orr

ido

s

El largo de lasolución optima es: 50.80

Page 36: Simulated Annealing Rafael Fernández Fernando García.

Resultados para 532 ciudades con largo del recorrido inferior a 28.500

TA Improved From

0

50

100

4 6 8 10 12 14 16 18 20

nb

# r

ec

orr

ido

s

GDA

0

50

100

4 6 8 10 12 14 16 18 20

nb

# r

ec

orr

ido

RRT

0

50

100

4 6 8 10 12 14 16 18 20

nb

# re

corr

idos

El largo de lasolución optima es: 27.686

Page 37: Simulated Annealing Rafael Fernández Fernando García.

Conclusiones

• Heurísticas fáciles de aplicar e implementar.

• Los resultados obtenidos con estas heurísticas son buenos.

• SA es muy sensible a la elección del esquema de enfriamiento.

• TA, GDA y RRT son “mejores” y sólo dependen de un único parámetro.

Page 38: Simulated Annealing Rafael Fernández Fernando García.

?

Page 39: Simulated Annealing Rafael Fernández Fernando García.