Recocido Simulado
Recocido Simulado
Recocido Simulado
MATERIA:
SISTEMAS DECISIONALES DE OPTIMIZACIÓN INTELIGENTE
PRESENTA:
LI. Cinthya Elizabeth Pedroza Mercado
II. Adrián Emilio Caldera Hermosillo
IC. Carlos Sandoval Medina
PROFESOR:
Dra. María Dolores Torres Soto
Contenido
Manual técnico ............................................................................................................................... 3
Algoritmo general implementado.................................................................................................. 5
Introducción ................................................................................................................................ 5
Recocido simulado ....................................................................................................................... 6
Requerimientos del sistema........................................................................................................... 9
Manual de Usuario ....................................................................................................................... 10
Conclusiones ................................................................................................................................. 10
Manual técnico
El siguiente manual nos presenta información técnica sobre la aplicación generada para la
metaheurística de recocido simulado para el problema de TSP instancia GR24, así como también las
instrucciones o manual de usuario para su ejecución.
Los parámetros de entrada que utiliza la solución para entregar una salida son:
● Instancia TSP, para este proyecto en particular se utilizó la instancia GR24, la instancia fue
declarada directamente en el código de la solución mediante una matriz, véase la ilustración
1.
● Temperatura inicial, es el valor de la temperatura máxima a disminuir gradualmente para
buscar/generar soluciones entre cada cambio de temperatura, declarada con la variable
temp.
● Temperatura final, valor de la temperatura mínima, donde termina el proceso de búsqueda
de soluciones, declara con la variable cong.
● Factor de enfriamiento, valor en que se va a ir disminuyendo la temperatura inicial (valor
entre 0 y 1), declarada con la variable enf.
● Cantidad de iteraciones por cambio de temperatura, las veces que se van a buscar/generar
soluciones por cada cambio de temperatura, declarada con la variable K.
● Cantidad de aceptaciones por cambio de temperatura, veces que se aceptan soluciones por
cada cambio de temperatura, declarada con la variable A.
Los salida que entrega el programa es una posible solución con el costo de dicha solución y
como información adicional el número de veces que se cumplió el paso de metrópolis, al final de la
generación de la posible solución el programa pregunta si desea volver a ejecutar el algoritmo o salir
del programa, en caso de que se seleccione la opción de volver ejecutar en varias ocasiones al final
cuando seleccionamos la opción de salir, el programa nos arroja la mejor solución generada de todas
las veces que se ejecutó el algoritmo.
Introducción
Recocido Simulado: es una técnica de búsqueda aleatoria dirigida para encontrar una solución
óptima o cercana a la óptima en problemas de optimización combinatoria o problemas que
contienen variables discretas. Fue propuesto por Kirkpatrick, Gelatt y Vecchi en 1983. El recocido es
un proceso térmico que sirve para obtener estados de baja energía para un sólido en un baño
caliente o en fundición. El proceso consta de dos pasos:
• Las soluciones del problema son equivalentes a los estados del sistema físico.
• El costo de una solución es equivalente a la energía de un estado.
• Un parámetro de control juega el papel de la temperatura
Algoritmo de Metrópolis
Regla de aceptación:
Se calcula la energía de j, Ej
T es la temperatura
Mecanismo de enfriamiento
Ilustración 3. Proceso de enfriamiento con iteraciones de 0 hasta la final para Recocido simulado.
1. i = 𝑖0
2. T = 𝑇0
3. K = 𝐾0
4. while (condición de STOP)
5. while (k < K && a < A)
6. generar j en N(i)
7. if (c(j) – c(i) < 0) (Minimizar)
8. i=j
9. a=a+1
10. else
11. generar un número r al azar
(pseudo-random number)
12. if (r < exp [(c(i) – c(j))/T])
13. i=j
14. a=a+1
15. k=k+1
16. T = αT
17 . K = pK
18. k=0
19. a=0
20. mostrar i, c(i)
1. i = 𝑖0
2. T = 𝑇0
3. K = 𝐾0
4. while (condición de STOP)
5. while (k < K && a < A)
6. generar j en N(i)
7. if (c(j) – c(i) < 0) (
8. i=j
9. a=a+1
10. else
11. generar un número r al azar
(pseudo-random number)
12. if (r < exp [(c(i) – c(j))/T])
13. i=j
14. a=a+1
15. k=k+1
16.if (a=A)
17. T = αT
18. else (k = K)
19. T=ηT
20. K = ρK
21. k=0
22. a=0
23. mostrar i, c(i)
Algoritmo recocido simulado implementado en la solución al problema TSP instancia gr24:
1. Inicio
2. Solicitar parámetros de entrada
3. Leer parámetros de entrada (temperatura inicial temp, temperatura final cong, factor de
enfriamiento enf, iteraciones por cambio de temperatura K y aceptaciones por cambio de
temperatura A)
4. Generar solución inicial aleatoria
5. Calcular costo solución inicial
6. a=0; k=0;
7. Hacer mientras temp > cong
8. Mientras a<A y k<K
9. Generar solución vecina aleatoria
10. Calcular costo solución vecina
11. Si costo solución vecina < costo solución inicial
12. solución inicial = solución vecina
13. costo solución inicial = costo solución vecina
14. a=a+1
15. Fin Si
16. Si costo solución vecina > costo solución inicial
17 . Ejecutar paso de Metrópolis (comparando el exponencial de la
diferencia de los costos divido entre la temperatura, con un
numero r generado al azar entre 0 y 1): r < exp [(costoi –
costop)/temp].
18. Si se cumple la condición del paso de Metrópolis
19. solución inicial = solución vecina
20. costo solución inicial = costo solución vecina
21. a=a+1
22. Fin Si
23. Fin Si
24. k++;
25. temp = temp * enf;
26. Mostrar solución y costo
27. Fin
Ilustración 4. Representación Gráfica del Recocido Simulado.
El archivo .exe está diseñado para ser ejecutado únicamente en un sistema operativo Windows.
Manual de Usuario
Documento Anexo
Conclusiones
Una heurística es un método que intenta esquivar la búsqueda exhaustiva del espacio, utilizando
herramientas que aseguren la exploración de las zonas más promisorias y obtener así soluciones
cercanas al óptimo.
De acuerdo con los resultados obtenidos, para el algoritmo implementado para este proyecto, los
mejores valores, que generaron soluciones más cercanas a la óptima, para los parámetros de
entrada están en los siguientes rangos:
Con base en lo anterior se concluye, primero, que el factor o parámetro más importante/influyente
en el resultado es el factor de enfriamiento, lo que demuestra que bajando suficientemente lento
el valor del parámetro de enfriamiento en conjunto con suficientes transiciones en cada cambio de
temperatura, llegando a una temperatura final adecuada, se puede alcanzar soluciones subóptimas,
así como la posibilidad de la solución óptima. Segundo, encontrar valores adecuados para los
parámetros requiere de estar jugando con distintos rangos de valores hasta encontrar los que
arrojan los mejores resultados. Tercero, el diseño y la implementación del algoritmo fue bueno,
puesto que se obtuvieron soluciones subóptimas muy cercanas a la óptima, como se muestra en el
siguiente ejemplo:
NAME : gr24.opt.tour
COMMENT : Optimal solution for gr24 (1272)
TYPE : TOUR
DIMENSION : 24
TOUR_SECTION
16 11 3 7 6 24 8 21 5 10 17 22 18 19 15 2 20 14 13 9 23 4 12 1
-1
EOF
Se puede observar en la parte superior resaltado en amarillo la solución optima a la instancia en
cuestión que atacó el algoritmo desarrollado y en la parte de abajo la imagen de una solución
subóptima muy cercana obtenida por el programa.