simulated annealing rafael fernández fernando garcía

39
Simulated Annealing Rafael Fernández Fernando García

Upload: jacinto-largo

Post on 28-Jan-2016

238 views

Category:

Documents


0 download

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