Interfaz gráfica para el análisis de meta-heurísticas y para la visualización de soluciones a problemas de optimización combinatoria
Fecha
2023Resumen
Los problemas de optimización complejos podemos reconocer que suponen un reto en el momento de encontrar una solución óptima o una solución cercana a la óptima en un tiempo computacionalmente viable. Para ello se hacen uso de métodos de optimización mediante metaheurísticas que ofrecen soluciones factibles en un tiempo razonable para este tipo de problemas. Aunque es necesario tanto tener un conocimiento profundo del problema a tratar como de la técnica algorítmica que se va a utilizar. Las metaheurísticas bioinspiradas hacen uso de técnicas basadas en la naturaleza tales como la evolución biológica, la selección natural y la mutación, a lo largo de las diferentes evaluaciones. En cada evaluación se seleccionan aquellas soluciones que maximicen o minimicen la función objetivo para seguir evolucionando . A lo largo de los años han nacido herramientas que facilitan el uso de metaheurísticas separando la definición del problema de la implementación del resolutor en sí mismo.Permitiendo utilizarlas centrándose en realizar una buena definición del problema en lugar de en las técnicas algorítmicas a utilizar. Este proyecto nace de la necesidad de implementar una interfaz gráfica que mejore y facilite la observación de las soluciones generadas en los estudios de viabilidad de una o varias técnicas metaheurísticas aplicadas a problemas de optimización. Haciendo uso de librerías de python tales como Bokeh o Pandas se ha conseguido el desarrollo de una aplicativo web en el que se ofrece una serie de herramientas que permiten la evaluación de un conjunto de soluciones generadas por un algoritmo de optimización mediante un análisis estadístico y una visualización gráfica de las mismas. Empleando un fichero en formato JSON para la introducción de los datos del estudio haciendo que sea posible la automatización de la entrada de las soluciones para su posterior visualización y generación de estadísticas. El aplicativo también ofrece una funcionalidad para observar la evolución de la calidad de las soluciones a lo largo de las evaluaciones mediante una animación, brindando una perspectiva dinámica de cómo los algoritmos progresan y evolucionan a lo largo del tiempo. En conclusión, se ha implementado una herramienta poderosa para observar y mejorar la calidad de las soluciones a problemas de optimización complejos y que podría mejorarse en un futuro para la visualización de las soluciones en la dimensión de las variables. Bioinspired metaheuristics make use of nature-based techniques, such as biological evolution, natural selection, and mutation, throughout the different evaluations. In each evaluation, solutions that maximize or minimize the objective function are selected to continue evolving. Tools have emerged that facilitate the use of metaheuristics by separating the problem definition from the implementation of the solver itself. This allows users to focus on defining the problem effectively rather than on the specific algorithmic techniques to be used. This project arises from the need to implement a graphical user interface that enhances and simplifies the observation of solutions generated in feasibility studies of one or multiple metaheuristic techniques applied to optimization problems. By utilizing Python libraries such as Bokeh and Pandas, a web application has been developed that provides a set of tools for evaluating a set of solutions generated by an optimization algorithm through statistical analysis and graphical visualization. This is achieved by employing a JSON file format for inputting study data, enabling the automation of solution input for subsequent visualization and statistical generation. The application also includes functionality for observing the quality evolution of solutions throughout evaluations through animation, offering a dynamic perspective on how algorithms progress and evolve over time. With the aid of this application, users can gain insights into the performance and effectiveness of optimization algorithms by visually analyzing the generated solutions and their statistical characteristics In conclusion, a powerful tool has been implemented to observe and enhance the quality of solutions to complex optimization problems. This tool can be further improved in the future to enable visualization of solutions in the variable dimension. It provides users with the ability to analyze and evaluate the effectiveness of optimization algorithms through statistical analysis, graphical visualization, and dynamic animation.