Está en la página 1de 22

Trabajo de Investigación de Operaciones 2

Recocido Simulado

Por

Jorge E. Burguera H.

José A. Romero M.

José T. Montilla H.

Profesora: Liliberth Rivas

2018

©2018 Universidad de Los Andes, Mérida, Venezuela


ÍNDICE

INTRODUCCIÓN .............................................................................................. 5

CONTENIDO ...................................................................................................... 7

1) METAHEURÍSTICA ................................................................................................................................... 7

1.1) RECOCIDO SIMULADO................................................................................................................................. 8

1.1.1) Algoritmo general de recocido simulado ...................................................................................... 9

1.1.2) Mejoras del algoritmo de recocido simulado ............................................................................. 12

1.2) PROBLEMA RESUELTO APLICANDO RECOCIDO SIMULADO ................................................................................. 14

1.2.1) Definición y restricciones del problema ...................................................................................... 14

1.2.2) Procedimiento para resolver el problema .................................................................................. 14

1.2.3) Conclusiones de los diferentes casos propuestos ....................................................................... 18

CONCLUSIONES............................................................................................. 21
ÍNDICE DE TABLAS

TABLA 1 POSIBLES VALORES QUE PUEDE TOMAR LA ECUACIÓN Y EL ÓPTIMO GLOBAL. ...................................................................... 15

TABLA 2 VALORES OBTENIDOS PARA EL CASO DE ESTUDIO 1 ....................................................................................................... 19

TABLA 3 VALORES OBTENIDOS PARA EL CASO DE ESTUDIO 2 ....................................................................................................... 19

TABLA 4 VALORES OBTENIDOS PARA EL CASO DE ESTUDIO 3 ....................................................................................................... 20

TABLA 5 VALORES OBTENIDOS PARA EL CASO DE ESTUDIO 5 ....................................................................................................... 20

TABLA 6 VALORES OBTENIDOS PARA EL CASO DE ESTUDIO 4 ....................................................................................................... 20


ÍNDICE DE FIGURAS

FIGURA 1 ANALOGÍA USADA PARA EL RECOCIDO SIMULADO (CONANT, 2010). ............................................................................... 9

FIGURA 2 PSEUDO CÓDIGO DEL ALGORITMO DE RECOCIDO SIMULADO (PERALTA, JUAREZ, & MARTINEZ, 2015) ................................. 12
Introducción

Con el pasar del tiempo, el mayor uso de la ciencia y con el aumento de competitividad en

los diferentes mercados, se ha hecho notoria la necesidad de satisfacer los estándares sociales y

científicos, además de superar los estándares y actuales, así como facilitar las tareas del día a día

para garantizar un desarrollo en las ciencias.

Algunos de estos problemas son relativamente sencillos, pero otros son mucho más

complejos de resolver, problemas tales como asignación óptima de trabajadores, creación de

planes de mínimo costo para hacer entregas a clientes, correcta configuración de una cadena de

producción para aprovechar al máximo los recursos, encontrar el arreglo correcto para garantizar

una óptima red de telecomunicaciones, hidráulicas, eléctricas, así como diseñar horarios de clases

de diversas materias para evitar la colisiones y aprovechar al máximo las horas disponibles,

problemas como estos tienen una complejidad enorme y pueden tener una diversidad de soluciones

dependiendo de sus características, variables y por ende: su complejidad.

Según Cruz, Moreno, & Peralta (2014), la complejidad de gran cantidad de problemas que

se presentan en ingeniería se encuentran dentro de la clasificación NP, estos problemas son

aquellos cuya solución (hasta el momento) no se puede hallar de manera determinista y necesitan

métodos aproximados para resolverlos, estos métodos son denominados métodos heurísticos.

Estos métodos permiten hallar soluciones de buena calidad para problemas de gran

complejidad, pero no garantizan que estos resultados encontrados sean los mejores entre todo el

abanico de posibilidades, es por esto que se desarrollaron y han tomado auge los métodos

metaheurísticos.

5
Las metaheurísticas son diseñadas para mejorar a los métodos heurísticos mediante

búsquedas inteligentes que, a pesar de tampoco garantizar encontrar el o los mejores resultados

posibles, si garantiza salir de los óptimos locales en los que comúnmente se quedan atrapadas las

técnicas heurísticas. (Peralta, Juarez, & Martinez, 2015)

En el presente trabajo se profundizará sobre uno de los principales métodos metaheurísticos

que existen actualmente como lo es el recocido simulado, se ahondará en su funcionamiento, sus

criterios para resolver problemas además de posibles mejoras que se pueden usar para abordar

ciertos problemas y mejorar los resultados obtenidos, además, se desarrollará un ejercicio sencillo

con variaciones para demostrar la eficacia de dicho algoritmo.

6
Contenido

1) Metaheurística

Tal como expresaron Hillier & Lieberman (2010, pág. 563), la metaheurística son

procedimientos que buscan descubrir soluciones factibles que sean consideradas muy buenas pero

que no son necesariamente el óptimo global. Los métodos metaheurísticos funcionan con

algoritmos iterativos, en el que cada iteración busca una nueva solución que puede ser mejor a la

seleccionada anteriormente, al terminar el algoritmo, se puede saber cuál es la mejor solución entre

todas las iteraciones realizadas, es decir, si el algoritmo está bien diseñado, muestra una solución

que por lo menos se considera cerca del óptimo, además que debería servir para resolver problemas

muy grandes.

En general estos métodos se basan en ideas sencillas de formas en como se deben

desarrollar ciertos problemas y estas técnicas deben adaptarse a cada problema en específico, allí

radicaba un gran problema debido a que los investigadores para abordar cada problema en el que

no existía un algoritmo disponible debían desarrollar uno nuevo desde cero, esto significaba

entonces un uso mayor de los recursos disponibles. Esto ha cambiado con el desarrollo de algunas

técnicas de metaheurística que brindan una estructura general que permite adaptarse a diversos

problemas, algunas de estos métodos son: La búsqueda tabú, algoritmo genético y recocido

simulado. Para efectos de esta investigación se profundizará en esta última.

7
1.1) Recocido simulado

Fue propuesto por Kirkpatrick, Gelatt y Vecchi (1983), está inspirado en el templado de

materiales en la industria para obtener materiales más cristalinos, más resistentes o en términos

generales, para mejorar las cualidades de dicho material.

El proceso consiste en tres etapas: la primera es una fase de calentamiento a una

temperatura específica, en la segunda etapa se sostiene esta temperatura para que los átomos

puedan acomodarse en un estado de mínima energía y por último se hace descender la temperatura

muy lentamente y por etapas para que en cada una de estas los átomos queden en equilibrio

(configuración optima), el material alcanza su máxima resistencia y su menor coste de energía,

cabe destacar que a medida que la temperatura disminuye, la probabilidad de re-arreglar los átomos

y su estructura disminuye.

Este método permite encontrar óptimos locales, pero no atorarse en estos buscando vecinos

“malos” pero que pueden conducir a localizar mejores resultados.

Algunas aplicaciones del algoritmo del recocido simulado son: materiales para la industria

aeroespacial y las industrias que necesiten materiales con ciertas cualidades muy específicas,

diseño de redes hidráulicas, eléctricas, de comunicaciones, entre otras, en el área de logística para

optimización de rutas, problemas en cadenas de producción en plantas con recursos limitados.

La analogía del recocido simulado es la siguiente:

8
Figura 1 Analogía usada para el recocido simulado (Conant, 2010).

1.1.1) Algoritmo general de recocido simulado

El recocido simulado es un algoritmo que permite variaciones dependiendo del caso de

estudio, no es un método que especifique los pasos a seguir sin variación, sino que permite la

variabilidad. Dependiendo de los criterios asumidos, el algoritmo permite la obtención de mejores

o peores resultados.

Se deben definir ciertos parámetros y criterios antes de comenzar con el algoritmo, estos

son los siguientes:

a) Temperatura inicial:

Debe ser suficientemente alta para que permita prácticamente cualquier movimiento, es

decir, la probabilidad de pasar de un estado a otro sea suficientemente alta.

b) Selección de prueba inicial:

9
Se puede introducir cualquier solución factible (que se encuentre en el rango de aceptación)

pero lo ideal es iniciar con una solución que en primera instancia a partir de las pistas obtenidas

parezca buena, en caso de no tener indicios de un inicio se puede asumir el punto medio entre el

valor superior e inferior de la región factible.

c) Criterio de cambio de temperatura:

Se deben definir cuantas iteraciones se pueden hacer en cada etapa que se relaciona con el

tiempo de espera para disminuir la temperatura y además se puede determinar la cantidad de

aceptaciones que se permite en cada etapa.

d) Regla de iteración:

Para escapar de los óptimos locales se debe tener la capacidad de pasar de un valor a otro

para evaluarlo, este valor que toma puede obtenerse de distintas maneras tales como el aumento

constante de los valores comenzando por el número menor, utilizando funciones estadísticas.

e) Criterio de parada:

Se puede establecer cuando se alcancen cierto número de iteraciones, cuando la

temperatura sea menor a cierto valor determinado dado que no acepta nuevas configuraciones.

Entonces, según Hillier & Lieberman (2010, pág. 583) el algoritmo en su forma más

general queda de la siguiente forma:

10
1. Paso inicial: Comience con una solución de prueba inicial.

2. Iteración: Utilice la regla de selección del movimiento para elegir la próxima


solución de prueba. (Si ninguno de los vecinos inmediatos de la solución de
prueba actual se acepta, el algoritmo termina).

3. Verificación del programa de temperatura: Después de realizar el número


deseado de iteraciones en el valor actual de T, disminuya T hasta el siguiente
valor en el programa de temperatura y reinicie las iteraciones en dicho valor.

4. Regla de detención: Cuando ya se ha realizado el número de iteraciones deseado


en el valor más pequeño de T en el programa de temperatura (o cuando no se
acepta ninguno de los vecinos inmediatos de la solución de prueba actual), se
detiene el algoritmo. Acepte la mejor solución de prueba que encontró en
cualquier iteración (incluso de los valores altos de T) como la solución final.

Cabe destacar que en cada iteración hay un conjunto de valores vecinos que se aceptan solo

si consiguen reducir o aumentar la función de costo dependiendo de si se busca minimizar o

maximizar. Nicholas Metropolis demostró que los átomos en un proceso de recocido se comportan

según el factor de probabilidad de Boltzmann, debido a esto se usa el algoritmo de Metrópolis para

iterar y aceptar los vecinos y en caso de rechazar algún vecino se procede a aplicar el algoritmo de

Boltzmann y así tener más probabilidades de aceptar nuevos vecinos.

En la figura 2 se puede observar lo antes descrito con un poco más de detalle:

11
Figura 2 Pseudo código del algoritmo de recocido simulado (Peralta, Juarez, & Martinez, 2015)

1.1.2) Mejoras del algoritmo de recocido simulado

Dependiendo de la complejidad del problema a usar se pueden hacer ciertas mejoras en el

algoritmo para mejorar la precisión y encontrar mejores resultados, se pueden destacar las

siguientes mejoras:

12
- En los casos que al disminuir la temperatura no acepta ningún valor se puede aumentar

la misma gracias a un factor de aumento, esto aumenta la probabilidad de aceptar

nuevos vecinos y hallar mejores resultados.

- Una modificación a la mejora anterior supone un programa de enfriamiento

ondulatorio, esto significa que cada vez que se acepte un movimiento se enfría y cuando

se rechace algún otro se recalienta a un ritmo cada vez menor.

- Dado que para lograr los objetivos muchas veces este algoritmo necesita mucho tiempo

para el cálculo de los problemas, muchas veces se recomienda intentar reducir el

espacio de soluciones mediante un conjunto de reglas de reducción.

- Otra solución resulta es disminuir la complejidad de los cálculos necesarios para hallar

áreas prometedoras, estas áreas no proporcionan resultados tan buenos, pero

posteriormente se le aplica un calculo mucho más complejo para hallar los mejores

resultados posibles.

- También se puede reducir el número de posibilidades las cuales pueden ser exploradas,

en casos donde se sabe que solo ciertas soluciones pueden tener resultados esperados

es recomendable estudiar solamente estas y no desperdiciar tiempo con otras.

- Disminución exponencial de la temperatura.

- Diferentes funciones para aceptar malos vecinos.

- Puede usarse una función de costo aproximada para reducir los tiempos.

La versatilidad que permite este método es relevante y se puede adaptar a cada problema,

además, en muchos se opta por desarrollar este algoritmo juntamente con otras técnicas

metaheurísticas tales como búsqueda tabú o algoritmos genéticos.

13
1.2) Problema resuelto aplicando recocido simulado

1.2.1) Definición y restricciones del problema

En la presente investigación se tomará como ejemplo la maximización de la ecuación no

lineal:

𝑀á𝑥𝑖𝑚𝑖𝑧𝑎𝑟: 𝑓(𝑥) = 𝑥 3 − 60𝑥 2 + 900𝑥 + 100

Con las siguientes condiciones:

- x toma valores enteros entre [0,31].

- La temperatura irá disminuyendo en 10% por cada iteración.

1.2.2) Procedimiento para resolver el problema

Para el problema propuesto se seguirán los pasos presentados anteriormente, además, se

asumirán algunas de las recomendaciones para mejorar el algoritmo.

Lo primero que se debe hacer es establecer un valor de temperatura arbitrario para

comenzar el estudio, para observar mejor los efectos se deciden tomar 3 valores diferentes y

suficientemente distantes: 10, 100 y 5000 grados para observar si existe diferencia en la selección

de esta al obtener una respuesta en este ejercicio en específico.

Posteriormente hacemos una tabla con los posibles valores enteros que puede tomar la

ecuación y cual sería el resultado óptimo, esto es simplemente para para verificar si el algoritmo

conduce al resultado esperado y se hará en el presente trabajo dada la facilidad de la ecuación dada,

y el resultado se puede apreciar en la siguiente tabla:

14
VALORES DE LA FUNCIÓN
x f(x) x f(x)
0 100 16 3236
1 941 17 2973
2 1668 18 2692
3 2287 19 2399
4 2804 20 2100
5 3225 21 1801
6 3556 22 1508
7 3803 23 1227
8 3972 24 964
9 4069 25 725
10 4100 26 516
11 4071 27 343
12 3988 28 212
13 3857 29 129
14 3684 30 100
15 3475 31 131

Tabla 1 Posibles valores que puede tomar la ecuación y el óptimo global.

Se puede observar en la tabla 1 que el valor óptimo es 100 teniendo un coste de 4100, este

valor es el que debería obtenerse como resultado óptimo global.

Posterior se debe establecer un punto de inicio, en este estudio se tomarán dos casos de

estudio, el primero es tomar como inicio el número menor que es cero (0) y el segundo es tomar

el punto medio de los valores aceptados que es dieciséis (16) (el promedio real es 15,5 pero por

aproximación se elige el 16).

Como siguiente paso, es necesario asumir un método de iteración, para los casos en el que

el valor inicial es cero, se toma como criterio de iteración el aumento constante de 1 en 1 hasta

haber seleccionado todos los posibles valores enteros. Para los 3 últimos casos, en los que los

valores iniciales son 16, se tomará como criterio de iteración una formula estadística la cual

15
recorrer vecindades dado un factor de desplazamiento que será 1.5 y multiplicado por un valor

aleatorio, a su vez, este será el que determine si se aumentará o disminuirá el valor actual.

Por último, se define la condición de parada, el criterio que se asume en este ejercicio

propuesto para los 3 primeros caos es la prueba de todos los valores factibles y para los 3 casos

posteriores cuando se hayan realizado 100 iteraciones.

En definitiva, se cuenta con 6 casos de estudio para el mismo problema quedando definidos

de la siguiente manera:

- Caso 1:

• Temperatura inicial: 100° con disminución del 10% por cada iteración.

• Valor inicial: 0 (cero).

• Método de iteración: Aumento constante de 1 en 1.

• Condición de parada: Recorrer todos los valores enteros factibles, asumiendo

valor inicial cero (0) y valor final treinta y uno (31).

- Caso 2:

• Temperatura inicial: 5000° con disminución del 10% por cada iteración.

• Valor inicial: 0 (cero).

• Método de iteración: Aumento constante de 1 en 1.

• Condición de parada: Recorrer todos los valores enteros factibles, asumiendo

valor inicial cero (0) y valor final treinta y uno (31).

- Caso 3:

• Temperatura inicial: 10° con disminución del 10% por cada iteración.

• Valor inicial: 0 (cero).

16
• Método de iteración: Aumento constante de 1 en 1.

• Condición de parada: Recorrer todos los valores enteros factibles, asumiendo

valor inicial cero (0) y valor final treinta y uno (31).

- Caso 4:

• Temperatura inicial: 100° con disminución del 10% por cada iteración.

• Valor inicial: 16 (dieciséis).

• Método de iteración: Ecuación probabilística en la que se determina al azar el

aumento o disminución del valor actual, para aceptar las nuevas vecindades se

tomará en cuenta el Algoritmo Metropolis.

• Condición de parada: Realizar 100 iteraciones.

- Caso 5:

• Temperatura inicial: 5000° con disminución del 10% por cada iteración.

• Valor inicial: 16 (dieciséis).

• Método de iteración: Ecuación probabilística en la que se determina al azar el

aumento o disminución del valor actual, para aceptar las nuevas vecindades se

tomará en cuenta el Algoritmo Metropolis.

• Condición de parada: Realizar 100 iteraciones.

- Caso 6:

• Temperatura inicial: 10° con disminución del 10% por cada iteración.

• Valor inicial: 16 (dieciséis).

• Método de iteración: Ecuación probabilística en la que se determina al azar el

aumento o disminución del valor actual, para aceptar las nuevas vecindades se

tomará en cuenta el Algoritmo Metropolis.

17
• Condición de parada: Realizar 100 iteraciones.

1.2.3) Conclusiones de los diferentes casos propuestos

En los casos 1, 2 y 3 se obtiene el mismo valor que optimiza la función y por ende el mismo

costo, esto quiere decir que a pesar de que existe diferencias notables en la temperatura, esta no

afecta el resultado debido a que el criterio tomado para la selección de vecinos e iteración no

depende de la temperatura, en las tablas 2, 3 y 4 se pueden observar los resultados.

En estos casos específicos, el algoritmo funciona muy bien debido a que se limitaron los

valores factibles y se estableció que solo se tomarían en cuenta valores enteros, además de que el

criterio de iteración es constante. En el caso de que los valores factibles incluyeran decimales, la

complejidad y el uso de recursos para resolver el problema se incrementarían.

Los casos 4, 5 y 6 se comportan tal como se espera para problemas usando recocido

simulado, los valores para las próximas iteraciones se seleccionan de manera aleatoria y

cumpliendo las condiciones del Algoritmo de Metropolis, además, se observa una correlación de

la temperatura inicial con el valor obtenido (valor subóptimo), esta cantidad varía entre los 3 casos,

tal como se observa en la tabla 5 y 7, los resultados obtenidos en el caso 4 y 6 rondan un error

porcentual de entre el 12% al 21%, mientras que en el caso 5 en algunas ocasiones, los resultados

se aproximan bastante bien al óptimo global alcanzando un error porcentual del 0,00001%.

Esta variabilidad de resultados es causada por varios factores, primero: el valor inicial

tomado para la temperatura es muy bajo, lo que no permite la correcta reorganización de la

estructura estudiada y las probabilidades de estudiar a las vecindades son cada vez menores,

generando pocas posibilidades de salir de óptimos locales.

18
CASO 1
Temperatura x f(x) Diferencia ¿Se acepta? Aleatorio Boltzmann Boltzman ¿Se acepta? f(x)*
0 100 100
100,0000 1 941 -841 Si 0,852462 4491,760512 941
90,0000 2 1668 -727 Si 0,424358 3222,065130 1668
81,0000 3 2287 -619 Si 0,377277 2083,856013 2287
72,9000 4 2804 -517 Si 0,279898 1202,197873 2804
65,6100 5 3225 -421 Si 0,485805 611,983163 3225
59,0490 6 3556 -331 Si 0,742455 271,921675 3556
53,1441 7 3803 -247 Si 0,518679 104,348970 3803
47,8297 8 3972 -169 Si 0,126380 34,239165 3972
43,0467 9 4069 -97 Si 0,895480 9,519721 4069
38,7420 10 4100 -31 Si 0,436826 2,225906 4100
34,8678 11 4071 29 No 0,945775 0,435303 No 4100
31,3811 12 3988 112 No 0,012266 0,028183 Si 4100
28,2430 13 3857 243 No 0,588954 0,000183 No 4100
25,4187 14 3684 416 No 0,289785 0,000000 No 4100
22,8768 15 3475 625 No 0,357930 0,000000 No 4100
20,5891 16 3236 864 No 0,827271 0,000000 No 4100
18,5302 17 2973 1127 No 0,717949 0,000000 No 4100
16,6772 18 2692 1408 No 0,543773 0,000000 No 4100
15,0095 19 2399 1701 No 0,639268 0,000000 No 4100
13,5085 20 2100 2000 No 0,985556 0,000000 No 4100
12,1577 21 1801 2299 No 0,256304 0,000000 No 4100
10,9419 22 1508 2592 No 0,299927 0,000000 No 4100
9,8477 23 1227 2873 No 0,461939 0,000000 No 4100
8,8629 24 964 3136 No 0,606767 0,000000 No 4100
7,9766 25 725 3375 No 0,200140 0,000000 No 4100
7,1790 26 516 3584 No 0,173191 0,000000 No 4100
6,4611 27 343 3757 No 0,285100 0,000000 No 4100
5,8150 28 212 3888 No 0,100516 0,000000 No 4100
5,2335 29 129 3971 No 0,872475 0,000000 No 4100
4,7101 30 100 4000 No 0,584644 0,000000 No 4100
4,2391 31 131 3969 No 0,676175 0,000000 No 4100
Valor 10
Función mayor: 4100
Tabla 2 Valores obtenidos para el caso de estudio 1
CASO 2
Temperatura x f(x) Diferencia ¿Se acepta? Aleatorio Boltzmann Boltzman ¿Se acepta? f(x)*
0 100 100
5000,0000 1 941 -841 Si 0,225993 1,183173 941
4500,0000 2 1668 -727 Si 0,159141 1,175338 1668
4050,0000 3 2287 -619 Si 0,423979 1,165138 2287
3645,0000 4 2804 -517 Si 0,046392 1,152390 2804
3280,5000 5 3225 -421 Si 0,599547 1,136933 3225
2952,4500 6 3556 -331 Si 0,025413 1,118636 3556
2657,2050 7 3803 -247 Si 0,341717 1,097412 3803
2391,4845 8 3972 -169 Si 0,615849 1,073224 3972
2152,3361 9 4069 -97 Si 0,568403 1,046098 4069
1937,1024 10 4100 -31 Si 0,046417 1,016132 4100
1743,3922 11 4071 29 No 0,410042 0,983503 Si 4100
1569,0530 12 3988 112 No 0,937392 0,931107 No 4100
1412,1477 13 3857 243 No 0,946133 0,841913 No 4100
1270,9329 14 3684 416 No 0,573613 0,720854 Si 4100
1143,8396 15 3475 625 No 0,975305 0,579028 No 4100
1029,4557 16 3236 864 No 0,722767 0,432022 No 4100
926,5101 17 2973 1127 No 0,108728 0,296297 Si 4100
833,8591 18 2692 1408 No 0,319871 0,184790 No 4100
750,4732 19 2399 1701 No 0,527435 0,103667 No 4100
675,4259 20 2100 2000 No 0,763668 0,051762 No 4100
607,8833 21 1801 2299 No 0,890065 0,022778 No 4100
547,0949 22 1508 2592 No 0,104079 0,008758 No 4100
492,3855 23 1227 2873 No 0,273569 0,002924 No 4100
443,1469 24 964 3136 No 0,590502 0,000845 No 4100
398,8322 25 725 3375 No 0,646738 0,000211 No 4100
358,9490 26 516 3584 No 0,066318 0,000046 No 4100
323,0541 27 343 3757 No 0,391016 0,000009 No 4100
290,7487 28 212 3888 No 0,487522 0,000002 No 4100
261,6738 29 129 3971 No 0,405336 0,000000 No 4100
235,5064 30 100 4000 No 0,613160 0,000000 No 4100
211,9558 31 131 3969 No 0,030025 0,000000 No 4100
Valor 10
Función mayor: 4100
Tabla 3 Valores obtenidos para el caso de estudio 2

19
CASO 3
Temperatura x f(x) Diferencia ¿Se acepta? Aleatorio Boltzmann Boltzman ¿Se acepta? f(x)*
0 100 100
10,0000 1 941 -841 Si 0,740981 ######################### 941
9,0000 2 1668 -727 Si 0,224954 ######################### 1668
8,1000 3 2287 -619 Si 0,554978 ######################### 2287
7,2900 4 2804 -517 Si 0,314042 ######################### 2804
6,5610 5 3225 -421 Si 0,955183 ######################### 3225
5,9049 6 3556 -331 Si 0,932039 ######################### 3556
5,3144 7 3803 -247 Si 0,708400 ######################### 3803
4,7830 8 3972 -169 Si 0,325440 2214275648124510,000000 3972
4,3047 9 4069 -97 Si 0,363907 6112831550,434140 4069
3,8742 10 4100 -31 Si 0,871454 2985,856306 4100
3,4868 11 4071 29 No 0,643354 0,000244 No 4100
3,1381 12 3988 112 No 0,521821 0,000000 No 4100
2,8243 13 3857 243 No 0,546510 0,000000 No 4100
2,5419 14 3684 416 No 0,315048 0,000000 No 4100
2,2877 15 3475 625 No 0,068772 0,000000 No 4100
2,0589 16 3236 864 No 0,056378 0,000000 No 4100
1,8530 17 2973 1127 No 0,783047 0,000000 No 4100
1,6677 18 2692 1408 No 0,711657 0,000000 No 4100
1,5009 19 2399 1701 No 0,881067 0,000000 No 4100
1,3509 20 2100 2000 No 0,438469 0,000000 No 4100
1,2158 21 1801 2299 No 0,648310 0,000000 No 4100
1,0942 22 1508 2592 No 0,092426 0,000000 No 4100
0,9848 23 1227 2873 No 0,166763 0,000000 No 4100
0,8863 24 964 3136 No 0,665961 0,000000 No 4100
0,7977 25 725 3375 No 0,298195 0,000000 No 4100
0,7179 26 516 3584 No 0,863614 0,000000 No 4100
0,6461 27 343 3757 No 0,299467 0,000000 No 4100
0,5815 28 212 3888 No 0,679089 0,000000 No 4100
0,5233 29 129 3971 No 0,946102 0,000000 No 4100
0,4710 30 100 4000 No 0,734072 0,000000 No 4100
0,4239 31 131 3969 No 0,754373 0,000000 No 4100
Valor 10
Función mayor: 4100
Tabla 4 Valores obtenidos para el caso de estudio 3

Además, la cantidad de iteraciones a las cuales se sometieron estos casos fue insuficiente

para encontrar el óptimo local, Galeano (2016), en su video recomienda que se realicen 1000

iteraciones para garantizar encontrar el óptimo global. Otro factor que incide en el resultado es la

velocidad de enfriamiento, siendo está muy rápida y no permitiendo la suficiente exploración del

algoritmo para garantizar encontrar el mejor valor.

Costo máximo: 4099,999521 Costo máximo: 3236,000000


Valor: 9,996006 Valor: 16,000000
Error porcentual 0,00001% Error porcentual 21,07317%
Caso 5 Caso 4
Tabla 5 Valores obtenidos para el caso de estudio 5 Tabla 6 Valores obtenidos para el caso de estudio 4

20
Conclusiones

En este trabajo se generó una descripción detallada del algoritmo de recocido simulado,

con lo cual se pretende mostrar los beneficios de esta estrategia cuando es aplicada a problemas

de optimización.

En particular se decidió maximizar una sola ecuación no lineal estudiando 6 casos

diferentes, logrando en los 3 primeros encontrar el óptimo global, el comportamiento del algoritmo

en estos casos difiere un poco del común denominador de recocido simulado que es la aleatoriedad

en la selección de iteraciones y aceptación de estos mediante el Algoritmo de Metropolis, pero se

decidió adoptar algunas de las mejoras listadas en la sección 1.1.3 para demostrar lo rápido y

efectivo del método. Asunto contrario ocurrió con los casos 4,5 y 6 que se desarrolló el problema

con el algoritmo básico, pero no se obtuvieron los mejores resultados, esto debido a la poca

cantidad de iteraciones realizadas (100) y a la alta velocidad de enfriamiento se registraron

resultados muy variados que van desde costos con un error porcentual menor al 0.00001% hasta

el 21% aproximadamente.

Resulta evidente la facilidad para aplicar este algoritmo y la versatilidad para adaptarse a

diferentes problemas y encontrar subóptimos, pero también es notoria la disminución de dificultad

y el aumento de efectividad que acarrea una selección correcta de los métodos de iteración, valores

de temperatura inicial y coeficiente de enfriamiento, estas mejoras pueden ser las listadas

anteriormente o alguna otra que logra adaptarse al problema estudiado.

21
REFERENCIAS

Centro de Escritura Javeriano. (2018). Normas APA. Cali.

Conant, S. (19 de Abril de 2010). Filminas Dr. Santiago Conant. Obtenido de Tecnológico de Monterrey:
http://cb.mty.itesm.mx/materias/tc3001/materiales/RecocidoSimulado.pdf

Cruz, M., Moreno, P., & Peralta, J. (Marzo- Junio de 2014). Aplicación de la teoría de la complejidad en
optimización combinatoria. (G. Ochoa, Ed.) Inventio(20), 35-43. Obtenido de
https://www.uaem.mx/sites/default/files/inventio/inventio_20.pdf

Galeano H., J. E. (24 de Agosto de 2016). RECOCIDO SIMULADO domingo, 8 de marzo de 2015 11 52 58 a
m. Obtenido de Youtube: https://www.youtube.com/watch?v=5QRTIsVKX4I&t=1142s

Hillier, F., & Lieberman, G. (2010). Introducción a la Investigación de Operaciones (Novena ed.). (P. Roig,
Ed., J. Murrieta, & C. Cordero, Trads.) México DF, México: McGraw Hill.

Kirkpatrick, S., Gelatt, C. D., & Vecchi, M. P. (13 de Mayo de 1983). Optimization by Simulated Annealing.
Science, 220(4598), 671-680. Obtenido de http://www.jstor.org/stable/1690046

Normas APA. (2017). ¿Cómo citar y referenciar vídeos de youtube (o en otra web) con normas APA?
Obtenido de Normas APA: http://normasapa.com/como-citar-referenciar-videos-de-youtube-o-
otra-web-con-normas-apa/

Pelaez, J. (2005). Implementación del algoritmo de selección de variables conocido con el nombre de
"Simulated Annealing" (Recocido Simulado).

Peralta, J., Juarez, J., & Martinez, B. (2015). Aplicación de recocido simulado en problemas de
optimización combinatoria. Inventio, 11(23), 23-28.

Universitat Politècnica de València - UPV. (21 de Septiembre de 2011). OPTIMIZACIÓN HEURÍSTICA


MEDIANTE CRISTALIZACIÓN SIMULADA | 4/8 | UPV. Obtenido de Youtube:
https://www.youtube.com/watch?v=wtw_B_3lrjE&t=71s

Wikipedia. (Mayo de 2018). Metropolis–Hastings algorithm. Obtenido de Wikipedia:


https://en.wikipedia.org/wiki/Metropolis%E2%80%93Hastings_algorithm

22

También podría gustarte