La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Simulated Annealing Rafael Fernández Fernando García.

Presentaciones similares


Presentación del tema: "Simulated Annealing Rafael Fernández Fernando García."— Transcripción de la presentación:

1 Simulated Annealing Rafael Fernández Fernando García

2 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.

3 Fundamento Teórico Definir vecindad. Estrategia de exploración en la vecindad. Estrategia de enfriado. Condición de parada.

4 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.

5 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

6 Fundamento Teórico P = exp(x/t)

7 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.

8 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.

9 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

10 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.

11 Aplicación SA Dial-A-Ride Definición del probema DaR. –Conjunto de nodos r  R con distancias d ij entre los nodos i,j = 1,...,r –Conjunto de clientes n  N tal para cada cliente k (k=1,...,n) definimos: El nodo i k “pick-up” y  1 k el tiempo mas temprano de “pick- up”. El nodo j k de entrega y  2 k el tiempo mas tardío de entrega. Opcionalmente  k numero de pasajeros. –Flota de servicio M de m vehículos con capacidad q L y nodo de deposito i L (L= 1,...,m).

12 Aplicación SA Dial-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.

13 Aplicación SA Dial-A-Ride Ejemplo: Cliente K solicita pedido a las 8hs (  1 k =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) los k = (  jk -  1 k ) /  ik,jk = (16-8) / 2 = 4

14 Aplicación SA Dial-A-Ride Rango de los los k : 1 <= los k <= 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 :

15 Aplicación SA Dial-A-Ride Restricciones a cumplir en el modelo. –Nodo de “pick-up” i k debe preceder al de entrega j k para cada cliente k. –Cliente k es aceptado si hay un vehículo l que permite los k <= GLOS. –Para un vehículo l los tiempos  ik e  jk cumplen:  1 k <=  ik <=  jk -  ik,jk <=  2 k -  ik,jk –La capacidad de un vehículo l siempre es satisfecha –Solo se considera el tiempo de servicio durante 1 día.

16 Aplicación SA Dial-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)

17 Dial-A-Ride 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. j = Cambio pareja de nodos de i For h = 1 to 10 endfor t = 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)

18 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.

19 Variantes de Simulated Annealing Variantes de S.A. –TA (Threshold accepting) –GDA (Great deluge algorithm) –RRT (Record-to-Record Travel)

20 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

21 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.

22 Threshold accepting Elijo solución inicial (i) y threshold inicial (T). 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

23 Variantes de Simulated Annealing Variantes de S.A. –TA (Threshold accepting) –GDA (Great deluge algorithm) –RRT (Record-to-Record Travel)

24 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

25 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.

26 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

27 Variantes de Simulated Annealing Variantes de S.A. –TA (Threshold accepting) –GDA (Great deluge algorithm) –RRT (Record-to-Record Travel)

28 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)

29 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).

30 Record-to-Record Travel (RRT) Elijo solución inicial (i), elijo desviación > 0. Seteo la mejor solución (record = i). 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)

31 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.

32 Aplicaciones ¿Como modelar el problema? 5 4 2 1 3  (1, 5, 4, 3, 2)

33 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)

34 Ejemplo (aplicado a TA) Elijo solución inicial (i) Threshold inicial (T). 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

35 Resultados para 442 ciudades con largo del recorrido inferior a 52.00 El largo de la solución optima es: 50.80

36 Resultados para 532 ciudades con largo del recorrido inferior a 28.500 El largo de la solución optima es: 27.686

37 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.

38 ?

39


Descargar ppt "Simulated Annealing Rafael Fernández Fernando García."

Presentaciones similares


Anuncios Google