Capítulo 3. Fundamentos matemático-computacionales
3.5. Computación evolutiva
Esta sección discute los principales conceptos necesarios para la comprensión de aspectos centrales del cómputo evolutivo que serán posteriormente utilizados en el desarrollo experimental de nuestra investigación. La idea es introducir los conceptos
básicos y principios de optimización para desarrollar herramientas matemáticas útiles en el diseño y análisis de algoritmos evolutivos.
El cómputo evolutivo, tambien llamado computación evolutiva, es un área de inves- tigación multidisciplinaria que sigue una estrategia de búsqueda de objetivos basada en el proceso de prueba y error, que está fundado en el paradigma de la evolución artificial. Es un área de investigación dentro de las ciencias de la computación cuyos principales objetivos son proveer respuestas a varios desafíos en la disciplina de la inteligencia artificial, como son el aprendizaje, planeación, creatividad, movimiento robótico y percepción, por mencionar algunos. Esto se debe a que la inteligencia arti- ficial es la rama de las ciencias de la computación cuyo objetivo es crear inteligencia. Podríamos decir que el cómputo evolutivo, como campo de la inteligencia artificial, pretende proveer una metodología para la resolución automática de problemas. Esta idea se remonta a Alan Turing (1948), quien identificó tres maneras en las que la inte- ligencia de máquina se encuentra ampliamente asociada con el objetivo de programar computadoras para resolver problemas automáticamente. En particular, Turing dijo que la inteligencia de máquina podría ser lograda a través del proceso de selección natural y evolución (Olague, 2016).
Hoy, el cómputo evolutivo es un área prometedora que coincide con lo que Turing describió como el objetivo general de hacer que las computadoras resuelvan proble- mas automáticamente como lo hacemos los humanos. Esta noción, es diferente de los enfoques de inteligencia de máquina típicos que intentan resolver problemas con- fiando en la lógica y conocimiento (como también Turing propuso), así como también en métodos analíticos y matemáticos. De esta manera, Turing describió un proceso evolutivo como una estrategia adecuada para lograr la inteligencia de máquina.
Su funcionamiento básico está basado en la teoría de la evolución de Charles Dar- win, en la cual se establece el principio conocido como la supervivencia del más apto. Este principio indica que todos los organismos de una población están sujetos a un proceso de selección, el cual determina cuáles individuos son aptos para sobrevivir y heredar sus características a las siguientes generaciones. El proceso descrito anterior- mente se repite de manera cíclica, generación tras generación, dando como resultado individuos cada vez mejor adaptados a las condiciones cambiantes del medio.
En la computación evolutiva se crean modelos computacionales que imitan este principio para encontrar una solución o soluciones para un problema dado. En la ana- logía entre los procesos natural y artificial de la evolución, el problema corresponde al medio donde un conjunto de individuos competirán. Cada individuo corresponde a una solución propuesta para dicho problema. El proceso consta de las siguientes etapas: inicialización, evaluación, selección, cruce/mutación y criterio de paro.
Durante la inicialización se crea la primer población de individuos, los cuales se describen mediante dos conceptos: solución y aptitud. La solución se genera de ma- nera aleatoria a partir de un conjunto de bloques que son llamados genes, mientras que el conjunto completo de bloques es conocido como acervo genético. La solución es representada por un cromosoma, que a su vez está formado por un número determi- nado de genes. Dependiendo del problema que se pretende solucionar, el cromosoma puede representar elementos tan sencillos como valores lógicos o números, o algo tan complejo como funciones o programas. La aptitud es representada por una función que entrega un valor que indica la capacidad del individuo para solucionar el proble- ma. Esto es análogo a su aptitud para sobrevivir en el medio para el caso del proceso natural.
En la etapa de evaluación cada uno de los individuos de la población es evaluado mediante una función de aptitud, que determina la capacidad de cada individuo para resolver el problema y de esta manera se seleccionan las características que tienen la mayor posibilidad de ser heredadas a la siguiente generación. La función de aptitud resulta crítica en el ciclo evolutivo, ya que determina el camino que tomará el proceso de evolución.
La etapa de selección define, mediante el valor de aptitud, cuáles individuos pue- den generar descendencia. Los individuos con mayor aptitud tienen mayor posibilidad de participar en la siguiente etapa: cruce/mutación.
En la etapa de cruce/mutación se exploran nuevas soluciones. En el caso del cruce, los cromosomas de dos individuos son intercambiados a partir de un punto intermedio determinado de manera aleatoria, pero tomando en cuenta la congruencia de la solu- ción combinada. El objetivo del cruce es proponer soluciones que conserven algunas de las características de las soluciones existentes. Para la mutación, por otro lado, se
intercambia uno de los genes de la solución por alguno de los genes disponibles en el acervo genético. La finalidad del proceso de mutación es introducir cierta variabili- dad a las soluciones con la finalidad de explorar posibilidades que probablemente no estaban siendo consideradas en la población actual.
Existen diversas maneras de formar una nueva generación dependiendo de los pa- rámetros del algoritmo evolutivo. Las nuevas generaciones pueden componerse exclu- sivamente de individuos nuevos o de combinaciones entre individuos nuevos y exis- tentes, basándose en el valor de aptitud de los últimos. La nueva generación está sujeta una vez más a los procesos de selección, mutación y cruce, para formar así las próximas generaciones.
El ciclo finalizará una vez que el criterio de paro sea cumplido. Este criterio pue- de ser establecido como un umbral en el valor de aptitud para uno o más individuos, es decir, una vez que se encuentre una o varias soluciones suficientemente satisfac- torias. El criterio de paro también puede establecerse como una cantidad máxima de generaciones, o una combinación entre valores de aptitud y cantidad de generaciones.
La programación genética, que es considerada un método de aprendizaje de má- quina derivado de los algoritmos genéticos, aplica el proceso evolutivo para desarro- llar un conjunto de programas con la finalidad de resolver un problema determinado. Mientras que en los algoritmos genéticos los cromosomas representan variables, en la programación genética los cromosomas representan estructuras de árboles, mismos que a su vez representan programas. Para este caso, el proceso evolutivo es similar, con la diferencia de que la población inicial está compuesta por programas generados de manera aleatoria que posteriormente entran a un proceso de selección mediante el cálculo de su aptitud, y de igual manera, los individuos seleccionados se cruzan o se mutan para formar una nueva generación. El cruce se lleva a cabo intercambiando las ramas de dos árboles y la mutación intercambiando las ramas de un individuo por una de aquellas que fueron generadas de forma aleatoria y forman parte del acervo genético.