Othimi-Algorithm: interfaz para modelado de metaheurísticas compatibles con jmetal
Fecha
2023Resumen
Actualmente, existe una gran cantidad de investigaciones respecto a los algoritmos de optimización bioinspirados, sin embargo, estos algoritmos son conocidos por ser de implementar y de adaptar al problema en cuestión, lo que limita su uso fuera del ámbito académico. Por esto nació originalmente Prodef, una solución web con el objetivo de que su interfaz, permita a cualquier usuario modelar algoritmos y problemas de optimización de manera sencilla y agradable visualmente, sin programar o realizar configuraciones complejas. Esta interfaz ha sido desarrollada a partir de la biblioteca Blockly, que implementa una interfaz gráfica basada en bloques para la creación de problemas y algoritmos, pudiendo mover y unir los bloques como si fuera un puzzle. Prodef presentaba varios problemas en la propia herramienta e interfaz, lo que ocasionaba que no cumpliese con los estándares de calidad esperados. Con el fin de tener una herramienta con mejor usabilidad, se creó Othimi, una nueva solución web creada desde cero para solucionar los problemas existentes en Prodef. Othimi actualmente tiene implementado el modelado de problemas, sin embargo, carece de la sección de modelado de algoritmos.
En este trabajo, se ha implementado en Othimi la capacidad para que los usuarios definan sus propios algoritmos, utilizando bloques basados en componentes de jMetal. Esto se realiza basándose en la idea del diseño de algoritmos planteada en Prodef, en la que los algoritmos están compuestos por componentes que tienen dependencias llamadas parámetros. Se quiere aprovechar las funcionalidades del paquete jMetal-auto, que permite el desarrollo de algoritmos a partir de componentes y la configuración automática mediante una cadena de caracteres. Para ello se ha realizado un estudio exhaustivo de los componentes y parámetros de jMetal, que son necesarios en los algoritmos de jMetal-auto. Posteriormente, se crearon los bloques, los cuales están basados en componentes de jMetal. Estos bloques permiten al usuario especificar los parámetros y componentes de los algoritmos, siguiendo plantillas predefinidas con la misma estructura de los algoritmos implementados en jMetal-auto. Sin embargo, el uso de la plantilla solo es necesario si se quiere configurar un algoritmo y obtener un archivo para jMetal-auto, ya que Othimi permite a los usuarios poder crear sus propios algoritmos de manera manual con los nuevos bloques, sin la necesidad de utilizar una estructura estricta como la de los algoritmos de jMetal, debido al carácter general de la mayoría de bloques. Para las plantillas, la interfaz de Othimi ofrece la opción de exportar un archivo ejecutable para jMetal-auto, que contiene la configuración del algoritmo especificada por el usuario. A diferencia de Prodef, en Othimi la especificación de parámetros se realiza al mismo tiempo que el modelado del algoritmo, añadiendo a los distintos bloques, campos con sus parámetros necesarios.
Con los cambios e implementaciones realizadas en Othimi, se ofrece al usuario la posibilidad de modelar sus propios algoritmos de manera manual o usando plantillas predefinidas, las cuales es posible exportar para su ejecución con jMetal-auto, ofreciendo un mayor abanico de posibilidades para trabajar con la optimización combinatoria. Todo esto acerca a Othimi a su objetivo de poder facilitar al público general y a las empresas el uso de algoritmos de optimización bioinspirados, llevándolos fuera del ámbito académico. Currently, there is a considerable amount of research on bioinspired optimization algorithms, however, these algorithms are known for their complexity and difficulty in implementation and adaptation to specific problems, which limits their usage outside the academic field. This is why Prodef was originally created as a web solution with the objective of providing users with an interface that allows for easy and visually appealing modeling of optimization problems and algorithms without the need for programming or complex configurations. The interface is developed using the Blockly library, which implements a block-based graphical interface for the creation of problems and algorithms, enabling users to move and connect blocks as if solving a puzzle. Prodef had several issues with its tool and interface, which prevented it from meeting the expected quality standards. In order to improve usability, Othimi was created as a completely new web solution to address the problems encountered in Prodef. Currently, Othimi includes the functionality for problem modeling but lacks the algorithm modeling section.
In this work, the capability for users to define their own algorithms has been implemented in Othimi using blocks based on jMetal components. This implementation builds upon the algorithm design concept introduced in Prodef, where algorithms are composed of components that have dependencies known as parameters. The aim is to use the functionalities provided by the jMetal-auto package, which enables algorithm development using components and automatic configuration through character strings. To achieve this, an extensive study of jMetal components and parameters required for jMetal-auto algorithms was made. Then, blocks were created based on jMetal components, allowing users to specify the parameters and components of their algorithms using predefined templates that follow the structure of jMetal-auto algorithms.However, the use of templates is only necessary if users want to configure an algorithm and obtain a file for jMetal-auto, as Othimi allows users to manually create their own algorithms using the new blocks without adhering to the strict structure of jMetal algorithms. This flexibility is made possible due to the general nature of most blocks. For templates, the Othimi interface offers the option to export an executable file for jMetal-auto, containing the user-specified algorithm configuration. Unlike Prodef, in Othimi, parameter specification is done simultaneously with algorithm modeling by adding fields for the necessary parameters to the respective blocks.
With the changes and implementations made in Othimi, users now have the option to model their own algorithms manually or use predefined templates that can be exported for execution with jMetal-auto, thereby providing a wider range of possibilities for working with combinatorial optimization. All of these advancements bring Othimi closer to its objective of facilitating the use of bioinspired optimization algorithms by the general public and businesses, extending their application beyond the academic field.