400 likes | 554 Views
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. Fundamento Teórico.
E N D
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.
Fundamento Teórico • Definir vecindad. • Estrategia de exploración en la vecindad. • Estrategia de enfriado. • Condición de parada.
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.
Fundamento Teórico • Estrategia de exploración en la vecindad. Para cierto t Seleccionar 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 • Sino generar aleatoriamente q U(0,1) • Si q < exp(Δ/t) entonces i = j
Fundamento Teórico P = exp(x/t)
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.
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.
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
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.
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).
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.
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
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 :
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.
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)
Dial-A-Ride i = mejor solucion para el cliente (k-1) i = 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 equilibrio Actualizo la temperatura (t = g(t)). Hasta condición de parada. =TRUE ; l=i; For h = 1 to 10 j = Cambio pareja de nodos de i Si f(j) < f(l) entonces l=j Si Δ < 0 entonces i = j; =FALSE Si q < exp(-Δ/t) entonces i = j ; =FALSE endfor t = 0.95*t Hasta
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.
Variantes de Simulated Annealing • Variantes de S.A. • TA (Threshold accepting) • GDA (Great deluge algorithm) • RRT (Record-to-Record Travel)
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
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.
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
Variantes de Simulated Annealing • Variantes de S.A. • TA (Threshold accepting) • GDA (Great deluge algorithm) • RRT (Record-to-Record Travel)
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
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.
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 = j • nivel_de_agua := nivel_de_agua +v_l
Variantes de Simulated Annealing • Variantes de S.A. • TA (Threshold accepting) • GDA (Great deluge algorithm) • RRT (Record-to-Record Travel)
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 = j Si f(j) > record entonces record = f(j)
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).
Record-to-Record Travel (RRT) Elijo solución inicial (i), elijo desviación > 0. Seteo la mejor solución (record = i). Repetir Repetir 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 = j • Si f(j) > record entonces • record = f(j)
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.
Aplicaciones • ¿Como modelar el problema? 5 4 2 1 3 (1, 5, 4, 3, 2)
Aplicaciones • ¿Como defino una vecindad? 5 4 2 1 3 LIN-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)
Ejemplo (aplicado a TA) Seleccionar un conjunto de nb ciudades cercanas para cada ciudad 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 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
Resultados para 442 ciudades con largo del recorrido inferior a 52.00 El largo de lasolución optima es: 50.80
Resultados para 532 ciudades con largo del recorrido inferior a 28.500 El largo de lasolución optima es: 27.686
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.