Introducción
El dominio de la optimización y la inteligencia computacional es una de las partes inherentes y esenciales de la mayoría de las disciplinas asociadas con la utilización de los recursos al máximo. Es la necesidad de hoy y del futuro. En el corazón del dominio de optimización se encuentran el modelado matemático del problema y las metodologías de solución. Hoy en día, los problemas son cada vez más grandes con una complejidad creciente. Dichos problemas se están volviendo engorrosos para ser manejados por métodos de optimización tradicionales. Esto motivó a los investigadores a recurrir a metodologías o algoritmos de solución inspirados en la naturaleza y basados en inteligencia artificial. Se les conoce comúnmente como metaheurísticas. Se prefieren estos algoritmos ya que se basan en reglas simples y pueden manejar grandes problemas complejos del mundo real en una cantidad de tiempo razonable. Se clasifican en algoritmos bioinspirados, basados en la física y socioinspirados y algoritmos basados en enjambres. (Kulkarni y Siarry, 2021)
Las heurísticas son técnicas diseñadas específicamente para resolver un problema en particular. Por el contrario, las metaheurísticas se definen como metodologías generales de nivel superior, que pueden utilizarse como estrategias orientadoras para el diseño de heurísticas subyacentes para la resolución de un problema.(Crawford et al., 2021)
Una Metaheurística, en tanto método de resolución para problemas complejos, puede ser entendida como una estrategia que combina diferentes Heurísticas, las cuales, individualmente, exhiben menor eficiencia o capacidad de solución para el problema abordado, tomando ventaja de sus habilidades parciales, así como de la estructura del propio problema a resolver, fundamentalmente de los aspectos que caracterizan el Espacio de Soluciones inherente al mismo (Schweickardt, 2018).
Entre los problemas que pueden ser estudiados en la optimización es la teoría de grafos ya que ofrece un marco de referencia acertado para iniciar la construcción de un algoritmo conveniente a la situación específica que se va a abordar. Entre ellos se encuentra el Problema del Viajero Vendedor (TSP) y Problema de Ruteo de Vehículos (VRP).
En general, las metaheurísticas toman inicialmente una solución factible, la cual es luego mejorada usando heurísticas de mejoramiento embebidas en una estructura más general. La característica común de estos enfoques es el uso de mecanismos para encontrar en lo posible soluciones óptimas evadiendo óptimos locales. (Tetzlaff et al., 2021)
Uno de los algoritmos metaheurísticos que se utilizan para este tipo de problemas es la Búsqueda Tabú (TS, Tabu Search). A pesar de que muchos de los softwares que son empleados por estas metaheurísticas generan buenas soluciones, no presentan una abundante interacción visual con el usuario.
El objetivo general fue la implementación de una herramienta para darle solución al Problema del Viajero Vendedor y al Problema de Ruteo de Vehículos usando la metaheurística Búsqueda Tabú mediante el manejo de interacciones visuales.
Métodos o Metodología Computacional
El campo de la investigación metaheurística se vuelve cada vez menos transparente en términos de nuevos enfoques y extensiones de los algoritmos o marcos existentes. Esto hace que sea cada vez más difícil evaluar las características y capacidades de los algoritmos respectivos y, por lo tanto, la selección de un enfoque adecuado. Si bien este problema podría aliviarse mediante un análisis teórico extenso de las metaheurísticas, nuevamente se trata de una tarea difícil que requiere tiempo y experiencia. (Stegherr y Hähner, 2021)
La optimización viene dada por la reducción al mínimo de costo, tiempo, distancia y riesgo o la maximización de calidad, satisfacción y beneficios. Encontrar la mejor solución para determinados problemas de optimización con importancia científica o industrial deriva muchas veces en presentaciones computacionales que son de complejidad intratables. Sin embargo, el uso de algoritmos de aproximación es la principal alternativa para resolver esta clase de problemas ya que permite obtener una solución óptima o “casi” óptima en un tiempo razonable. (Alancay, Villagra y Villagra, 2016)
Debido a esta causa, en este tipo de escenario de complejidad, se muestran como una opción factible la usanza de metaheurísticas surtiendo un resultado posible que satisface todas las condiciones del problema.
La mayoría de los problemas de optimización combinatoria son, en general, difíciles de resolver en la práctica. Estos problemas están incluidos en la clase de problemas NP-hard (Garey y Johnson, 1979), ya que no se conocen algoritmos exactos con complejidad polinómica que permitan resolverlos. (Alancay, Villagra y Villagra, 2016)
Problema del Viajero Vendedor
El Problema del Viajero Vendedor es un problema popular y bien estudiado en el campo de la optimización combinatoria que llama la atención de científicos informáticos, matemáticos y otros expertos. Su enunciado parece sencillo, pero es uno de los problemas prácticos suficientemente difíciles de la investigación operativa. También es un problema de optimización en términos de determinar el recorrido cerrado más corto que visita todas las ciudades dadas.(Rufai et al., 2021)
El TSP se puede formular de la siguiente manera: “Dado un conjunto de ciudades, de las cuales se conoce para cada par de ellas, la distancia que las separa, un agente viajero ha de partir de una ciudad de origen y debe visitar exactamente una vez cada ciudad del conjunto, y retornar al punto de partida”. Un recorrido con estas características, es conocido dentro de este contexto, como un tour o ciclo hamiltoniano. El problema consiste en encontrar el tour para el cual la distancia total recorrida sea mínima.(Mendoza Casanova, 2017)
Según (Mendoza Casanova, 2017) el problema fue definido en el siglo XIX por el matemático irlandés W. R. Hamilton y por el matemático británico Thomas Kirkman y formulado por primera vez en 1930.
Se han utilizado muchas técnicas heurísticas para encontrar la solución eficiente al problema, como el método greedy, los algoritmos de hormigas, el recocido simulado, la búsqueda tabú y los algoritmos genéticos. Pero a medida que aumenta el número de ciudades, el cálculo para encontrar la solución se vuelve más difícil. A pesar de la dificultad computacional, podemos usar métodos como algoritmos genéticos y búsqueda tabú que pueden brindar una solución cercana a la óptima para miles de ciudades. (Dahiya y Sangwan, 2018)
Problema de Ruteo de Vehículos
El Problema de Ruteo de Vehículos según (González La Rotta, González Yazo y Becerra Fernández, 2018) es problema de diseñar rutas para distribuir productos o servicios desde uno o varios depósitos a diferentes usuarios finales es uno de los más tratados dentro del campo de la investigación de operaciones. De manera unánime, los autores revisados plantean que la primera referencia del problema de ruteo de vehículos fue hecha por Dantzing y Ramser en 1959.
Capacitated Vehicle Routing Problem
El CVRP es un problema NP-hard ampliamente discutido y, por lo tanto, métodos de optimización que incluyen métodos exactos (programación dinámica, ramificación y enlace); heurística (el algoritmo de Fisher-Jaikumar y el algoritmo de ahorro de Clarke-Wright); algoritmos de enjambre y evolutivos (algoritmos GA, ACO y luciérnaga); Los operadores de búsqueda locales (intercambio, inversión, codificación) y los enfoques híbridos se han empleado ampliamente para resolver el problema del CVRP. (Sajid et al., 2021)
Los clientes son atendidos por una flota de vehículos, cada uno de los cuales tiene una capacidad C. El principal objetivo en CVRP es encontrar el conjunto de rutas que minimizan el tiempo total de viaje de forma que: (Caballero Arnaldos, 2017):
Un cliente es servido una sola vez por un único vehículo
La ruta seguida por cada uno de los vehículos empieza y termina en el depot.
El total de demandas cubiertas por cada vehículo no puede exceder su capacidad C.
En la práctica, resolver el problema VRP es más difícil, ya que implica resolver dos problemas anidados. El primero es un problema de bin-packing, donde se busca asignar cada uno de los clientes a un número de rutas a priori indeterminado. A continuación, para cada ruta se busca el recorrido más corto, recorriendo cada uno de los clientes asignados a la ruta, lo que implica resolver el problema TSP.(Caballero Arnaldos, 2017)
Algoritmo Greedy
Este nombre engloba a un conjunto de algoritmos con unas características específicas, el cual, sí que es reutilizable para algún otro problema distinto al TSP, aunque es en éste donde encuentra una solución más cercana a la óptima. La aplicación del algoritmo parte de la ordenación de los distintos nodos o ciudades a visitar, por pares de nodos a menor distancia. Siguiendo esta dinámica, el greedy algorithm siempre elige la mejor solución en cada iteración. Continuaríamos uniendo las ciudades, siempre buscando la menor distancia entre ellas, hasta que lleguemos a un ciclo cerrado en el que se incluyan todas las ciudades del problema.(Gómez Lozano, 2021)
Algoritmo Búsqueda Tabú
La Búsqueda Tabú (TS, Tabu Search) es un procedimiento heurístico de memorias adaptativa para la exploración de óptimos globales en problemas de optimización mono-objetivos. El método se basa en el principio que es mejor realizar un mal movimiento, cuando este es realizado de forma informada, que un buen movimiento ejecutado de forma aleatoria. Está siendo aplicado exitosamente en las últimas décadas en multitud de problemas complejos (continuos y discretos, lineales y no lineales convexos y no convexos, etc.)(Sicilia et al., 2016)
Búsqueda Tabú explora el espacio de soluciones a través de repetidos movimientos desde una solución a la mejor de sus vecinas tratando de evitar los óptimos locales. Para un problema mono-objetivo, TS realiza una búsqueda por entornos en la cual se desplaza en cada iteración a la mejor solución no tabú del vecindario de la solución actual. Los principales atributos de cada solución visitada son almacenados en una lista tabú por un determinado número de iteraciones para evitar que estas soluciones sean revisitadas, es decir, para evitar ciclos en la búsqueda por entornos. Así, un elemento del vecindario de la solución actual es declarado tabú (es decir, es prohibido) si alguno de sus atributos está en la lista tabú. En general, un método basado en Búsqueda Tabú requiere de los siguientes elementos: (Alancay, Villagra y Villagra, 2016):
Visualización de Grafos
Uno de los campos de la Visualización de Información es la Visualización de Grafos que direcciona el problema de visualizar información estructural o relacional construyendo representaciones visuales geométricas de grafos o redes. Los grafos son el modelo subyacente de distintas aplicaciones tales como la Ingeniería de Software, el diseño de Interfaces Visuales, la Representación del conocimiento, las Telecomunicaciones y los Sistemas Distribuidos entre otros dominios.(Curino, Martig y Castro, 2014)
Un grafo G es un par de conjuntos G = (V, E), tal que V es el conjunto de vértices, y E ⊆ V × V, el de aristas. Cada arista, denotada (u, v) ∈ E se representa por medio de su par de vértices.(González Domínguez, 2021)
Entre las bondades de la visualización podemos mencionar que permite describir el comportamiento de los algoritmos en cada momento de su ejecución, el estado de cada variable, el espacio de búsqueda, con el fin de darle un tratamiento más directo al algoritmo y ser capaz de buscar comportamientos deseados o de localizar regiones de interés, e interactuar con la información proporcionada para encontrar soluciones más cercanas a las mejores y más rápidas. Todo esto basado en la capacidad del cerebro humano para analizar fácilmente imágenes visuales con mucha información.(Morfa Hernández et al., 2018)
Interacciones Visuales Implementadas
Representar los nodos (ciudades/clientes) según las coordenadas extraídas del fichero del problema seleccionado.
Modificar los parámetros de ejecución del algoritmo Búsqueda Tabú antes de comenzar o luego de ser detenido por el usuario y permitiéndole al mismo probar las combinaciones de parámetros con los que se alcanzan mejores soluciones.
Encontrar una solución inicial eficiente por el Greedy Algorithm para el inicio del algoritmo Búsqueda Tabú.
Visualizar las rutas que se obtienen durante la ejecución del Búsqueda Tabú sobre el problema importado.
Detener el algoritmo Búsqueda Tabú en un instante determinado para hacer variaciones en los parámetros o en el área de representación.
Visualizar los resultados numéricos de las soluciones encontradas durante y finalizado la Búsqueda Tabú.
Añadir arista en determinadas situaciones, ya sea cuando se detiene el algoritmo o cuando genera una solución final.
Eliminar arista en determinadas situaciones, ya sea cuando se detiene el algoritmo o cuando genera una solución final.
Contabilizar el tiempo de la corrida del algoritmo Búsqueda Tabú para tener un balance del tiempo que se utilizó en encontrar una determinada solución.
Exportar imagen de la solución final encontrada.
Exportar fichero con los resultados de todas las ejecuciones que se hagan del algoritmo.
Hacer zoom sobre el área de representación para tener conocimiento de las cercanías de los nodos, a través de los botones que propone la interfaz o por la rueda del mouse para acercar y de la combinación de teclas Shift + Rueda del mouse para alejar.
Limpiar el área de representación para poder cargar otros ficheros.
Resultados y discusión
El objetivo fundamental que presenta la realización del estudio es poder establecer una comparación entre los resultados oficiales registrados, disponibles en TSPLIBi y CVRPLIBii y los alcanzados por TSVis, ejecutando el software desarrollado sin asistencia del usuario y con asistencia del mismo, a través de las interacciones implementadas, para valorar la efectividad y eficacia del sistema.
El sistema se ejecutó en un ordenador con las siguientes propiedades:
Procesador: Intel(R) Core (TM) i5-2520M CPU @ 2.50GHz.
Memoria: 4GB RAM.
Sistema Operativo: Windows 10 Pro 64 bits (10.0, compilación 18362.239)
Los parámetros necesarios para la ejecución de la Búsqueda Tabú son los siguientes:
Criterio de Diversificación (ficheros TSP): es el componente con el que dispone el algoritmo para salir de los mínimos locales porque alcanzado éste se demorará un tiempo en salir del mismo, realiza una solución aleatoria alejada de la solución actual. El criterio se establece en segundos.
Vecindario (ficheros TSP): contiene los tres movimientos principales para la ejecución del algoritmo.
Tamaño de la Lista Tabú: esta lista contiene los movimientos que se han hecho durante la ejecución del algoritmo. Estos movimientos están marcados como tabú y el tamaño de esta lista va a determinar significativamente el rendimiento del algoritmo para que pueda salir de los mínimos locales.
Para la ejecución sin asistencia del usuario del Problema del Viajero Vendedor, se tomaron 200 000 iteraciones sin pausa, con un criterio de diversificación de 1 segundo, el tamaño de la Lista Tabú de 5 y se seleccionó el Vecindario InvertMove, siempre partiendo de una solución inicial generada por el algoritmo Greedy. Además, se realizaron 10 ejecuciones con cada fichero para escoger el mejor resultado.
Para la corrida con asistencia del usuario se utilizaron 150 000 iteraciones en conjunto con la variación de los parámetros del criterio de diversificación, el tamaño de la Lista Tabú y la selección del Vecindario y se pudo pausar y continuar según las decisiones del usuario. Se realizaron 10 ejecuciones con cada fichero para escoger el mejor resultado.
eil51 | 426.0 | 429.0 | 50.71 | 426.0 | 85.63 |
berlin52 | 7542.0 | 7734.0 | 51.451 | 7542.0 | 92.24 |
st70 | 675.0 | 680.0 | 93.09 | 675.0 | 134.45 |
eil76 | 538.0 | 549.0 | 116.68 | 541.0 | 231.14 |
kroA100 | 21282.0 | 21320.0 | 250.63 | 21282.0 | 349.81 |
ch150 | 6528.0 | 6727.0 | 779.76 | 6579.0 | 958.36 |
a280 | 2579.0 | 3877.0 | 4012.68 | 2654.0 | 5147.54 |
Para la ejecución sin asistencia del usuario del Problema de Ruteo de Vehículos, se tomaron 200 000 iteraciones sin pausa, con tamaño de la Lista Tabú de 3, siempre partiendo de una solución inicial generada por el algoritmo Greedy. Además, se realizaron 10 ejecuciones con cada fichero para escoger el mejor resultado.
Para la corrida con asistencia del usuario se utilizaron 150 000 iteraciones en conjunto con la variación de los parámetros del tamaño de la Lista Tabú y se pudo pausar y continuar según las decisiones del usuario. Se realizaron 10 ejecuciones con cada fichero para escoger el mejor resultado.
P-n45-k5 | 510 | 586.48 | 23.516 | 523.51 | 45.14 |
A-n53-k7 | 1010 | 1232.93 | 35.581 | 1080.15 | 54.68 |
A-n69-k9 | 1159 | 1288.19 | 45.865 | 1194.88 | 68.24 |
B-n78-k10 | 1221 | 1425.73 | 64.077 | 1399.21 | 86.19 |
E-n101-k8 | 815 | 932.94 | 96.614 | 887.00 | 124.80 |
M-n121-k7 | 1034 | 1214.24 | 132.684 | 1164.81 | 164.29 |
Para la realización del análisis comparativo se utilizó la prueba de los rangos con signo de Wilcoxon. Según (López Jiménez, Barrera Garrido y Bécquer Rodríguez, 2018) es una prueba no paramétrica para comparar la mediana de dos muestras relacionadas y determinar si existen diferencias entre ellas.
Se usa para verificar la H0 de igualdad entre 2 medianas poblacionales, la variable debe ser continua y observaciones emparejadas; es decir, datos de la misma muestra con medición de pre y post prueba (Ramírez Ríos y Polack Peña, 2019).
Según (Demsar, 2006) los problemas con las pruebas de conjuntos de datos múltiples son bastante diferentes, incluso en un sentido complementario: las mediciones de diferentes conjuntos de datos suelen ser inconmensurables, y la normalidad de sus distribuciones y la homogeneidad de la varianza es cuestionable en el mejor de los casos. A través del software IBM SPSS Statistics Visor se llevó a cabo este análisis.
Hipótesis definidas para la realización de la prueba:
H0 (hipótesis nula): La asistencia del usuario no influye en el resultado del algoritmo.
H1 (hipótesis alterna): La asistencia del usuario influye en el resultado del algoritmo.
Los resultados obtenidos se ven reflejados en las siguientes tablas:
Luego de la realización de la prueba en ambos resultados se obtuvo como Significación asintótica bilateral los valores 0,018 y 0,028 respectivamente. Por tanto, como el valor de la Significación asintótica bilateral es menor que 0,05, podemos afirmar que se rechaza la hipótesis nula (H0) y se acepta la hipótesis alterna (H1): la asistencia del usuario influye en el resultado del algoritmo.
Conclusiones
En el transcurso de la presente investigación se realizó un análisis través del uso de la metaheurística Búsqueda Tabú a los problemas de optimización combinatoria de TSP y VRP. Se logró la implementación de un programa de cómputo en la cual se integraron diferentes interacciones y visualizaciones que ayudan al usuario a lograr una mejor experiencia en la obtención de los resultados.
La realización del estudio experimental demostró que cuando el usuario interactúa con el algoritmo en tiempo de ejecución se logran mejores soluciones y en varias ocasiones se acercan a las registradas como óptimas en periodos de tiempo aceptables. Estos resultados pueden variar en dependencia de la habilidad y el conocimiento que posea el usuario. Se recomienda la continuación de su estudio debido a la importancia del uso de la integración de las técnicas de visualización en la solución de problemas combinatorios.