Ir a Inicio

Segunda parte de uso de algoritmos genéticos para la búsqueda de patrones

Introducción del segundo libro

El proceso de deducir la mejor curva o expresión se le conoce como “ajuste de curvas”.

Existen varios métodos de ajustes de curvas, se explican varios de estos en http://augusta.uao.edu.co/moodle/mod/resource/index.php?id=1874.

En el libro anterior titulado “Un uso de algoritmos genéticos para búsqueda de patrones” se aborda el tema de búsqueda de la mejor curva hacia una serie de datos históricos con el método llamado “Regresión Simbólica”, la cual es una aplicación de los algoritmos genéticos para la búsqueda de patrones. Esa curva es de la forma y=F(x), es decir, una expresión algebraica compuesta de paréntesis, operaciones básicas (suma, resta, multiplicación y división) y el uso de funciones como seno, coseno, tangente, valor absoluto, arcotangente, logaritmo natural y raíz cuadrada. Con esa funcionalidad, se hicieron algunas pruebas con datos históricos reales para poder observar como el algoritmo generaba las expresiones que más se acercaran al comportamiento de esos datos.

Sin embargo, ese acercamiento presenta el problema que el número de operaciones y funciones a la que se tiene acceso es muy limitado. Originalmente el algoritmo inicial del libro anterior tenía mucha mayor funcionalidad como el uso de operaciones como potencia o funciones como arcoseno, arcocoseno, seno hiperbólico, etc. El problema sucedió cuando se hicieron pruebas con muchos datos: el algoritmo era bastante ineficiente. La razón de esa lentitud era debido a que aquellas expresiones algebraicas que generaban un error matemático (por ejemplo un arcoseno de un número superior a 1 o inferior a -1), eran desechadas por el algoritmo genético y la cantidad de expresiones con este problema era alta por lo que se desperdiciaba muchos ciclos de CPU en expresiones algebraicas inútiles.

La solución fue retirar las operaciones matemáticas y las funciones que generaban con mayor frecuencia error matemático, por ejemplo, arcoseno, arcocoseno, potencia, seno hiperbólico, etc. De esa forma el número de expresiones rechazadas disminuyó fuertemente y el algoritmo mejoró dramáticamente su eficiencia y así fue presentado en el libro anterior. Sin embargo, se pagó el precio que las expresiones algebraicas generadas no tenían acceso a esas funciones y operaciones matemáticas.

En esta segunda parte, el libro aborda como se resolvió el problema de manejar una gran cantidad de diversas funciones y operaciones matemáticas sin perder la eficiencia. Una vez resuelto ese punto, el paso siguiente es probar si es cierto que el algoritmo genético al tener acceso a todas esas nuevas funciones matemáticas logra mejores curvas de aproximación.

El libro estará a disposición del público próximamente.