Está en la página 1de 5

Adrian Mendoza Caballero 1986761

GRASP es un algoritmo metaheurístico comúnmente aplicado a problemas de


optimización combinatoria. GRASP generalmente consiste en iteraciones
formadas por sucesivas construcciones de una solución aleatoria codiciosa y
posteriores mejoras iterativas a través de una búsqueda local. Las soluciones
aleatorias se generan agregando elementos al conjunto de soluciones del
problema a partir de una lista de elementos clasificados por una función codiciosa
de acuerdo con la calidad de la solución que obtienen. Para obtener variabilidad
en el conjunto candidato de soluciones codiciosas, los elementos candidatos bien
clasificados a menudo se colocan en una lista de candidatos restringidos.

Para realizar este trabajo se llevó a cabo el desarrollo del código en el software R,
el cual consiste en el problema del agente viajero y sobre el cual se realizaron tres
experimentaciones distintas cada una de ellas considerando distancias diferentes
entre cada uno de los puntos a visitar y sobre el cual se presentan los resultados a
continuación

Instancia 1

Instancia Reinicios LCR N-OPT Resultado


1 5 2 10 2.611771
1 10 2 10 2.308928
1 15 2 10 2.308928
1 20 2 10 2.308928

1
1 5 4 10 2.308928
1 10 4 10 2.308928
1 15 4 10 2.308928
1 20 4 10 2.308928
1 5 2 30 2.45973
1 5 4 30 2.308928
1 10 2 30 2.308928
1 15 2 30 2.308928
1 15 4 30 2.308928
1 20 2 30 2.308928
1 20 4 30 2.308928
1 5 2 50 2.47699
1 10 2 50 2.308928
1 5 4 50 2.308928
1 10 4 50 2.308928
1 15 2 50 2.308928
1 15 4 50 2.308928
1 20 2 50 2.308928
1 20 4 50 2.308928

Para la primera instancia se obtuvo el mejor resultado en el 87% de las


experimentaciones, mientras que el peor resultado se observó en el primer balón
con 5 Inicios, 2 LCR y 10 OPT. Al observar la tabla con los valores obtenidos es
muy fácil darse cuenta que el factor de reinicios es lo que más influye de manera
negativa dentro de esta experimentación.

Instancia 2

Instancia Reinicios LCR N-OPT Resultado


2 5 2 10 2.668893
2 10 2 10 2.58649
2 15 2 10 2.628968
2 20 2 10 2.610846
2
2 5 4 10 2.697725
2 10 4 10 2.621036
2 15 4 10 2.58649
2 20 4 10 2.58649
2 5 2 30 2.621036
2 5 4 30 2.58649
2 10 2 30 2.66883
2 10 4 30 2.58649
2 15 2 30 2.58649
2 15 4 30 2.58649
2 20 2 30 2.58649
2 20 4 30 2.58649
2 5 2 50 2.727196
2 10 2 50 2.58649
2 5 4 50 2.58649
2 10 4 50 2.58649
2 15 2 50 2.58649
2 15 4 50 2.58649
2 20 2 50 2.58649
2 20 4 50 2.58649

Para la segunda experimentación podemos observar que el mejor resultado se


presenta en el 66% de las ocasiones, y haciendo un análisis minucioso a los
datos obtenidos, podemos darnos cuenta que el factor que más influye en esta
segunda instancia Lista de candidatos restringidos equivale al número 2.

Instancia 3

Instancia Reinicios LCR N-OPT Resultado

3
3 5 2 10 3.107239
3 10 2 10 3.107239
3 15 2 10 3.107239
3 20 2 10 3.107239
3 5 4 10 3.298086
3 10 4 10 3.298086
3 15 4 10 3.298086
3 20 4 10 3.107239
3 5 2 30 3.107239
3 5 4 30 3.278046
3 10 2 30 3.339871
3 10 4 30 3.107239
3 15 2 30 3.107239
3 15 4 30 3.107239
3 20 2 30 3.107239
3 20 4 30 3.107239
3 5 2 50 3.107239
3 10 2 50 3.107239
3 5 4 50 3.298086
3 10 4 50 3.298086
3 15 2 50 3.107239
3 15 4 50 3.107239
3 20 2 50 3.107239
3 20 4 50 3.107239

Dentro de la tercera experimentación podemos observar que se obtuvo el mejor


resultado en el 70% de las ocasiones, y l los datos en los cuales se obtuvieron
malos resultados se debe a que el número de reinicios es de 10, mientras que la
lista de candidatos restringidos es de tamaño 4, con esta configuración del código
fue cuando tuvimos un tiempo mayor de procesamiento y en el cual nos alejamos
del óptimo local.

Conclusiones

Una de las cosas de las que si nos podemos percatar fue que la herramienta
heurística depende mucho de la distribución y el agrupamiento de las distancias
de los puntos a visitar, cuando ciertos puntos están agrupados en una zona
cercana es difícil identificar de manera rápida cuál sería la ruta.óptima local.

4
Con un mayor número de datos no sería posible identificar de manera más sencilla
en qué grado afecta el número de reinicios por ejemplo, o el tamaño de la lista de
candidatos restringidos.

A pesar de que puede ser complicado la programación de herramientas


heurísticas en un lenguaje de programación, estas ofrecen una muy buena
alternativa para obtener una buena solución cuando es complicado obtener una
solución exacta.

También podría gustarte