You are on page 1of 2

COMPUTACIÓN EVOLUTIVA

¿Qué es la Computación Evolutiva?
La Computación Evolutiva hay que decir que la CE es una rama de la inteligencia artificial muy
interesante (sobre todo a los que nos gusta la inteligencia artificial) pero también se ha de dejar
muy claro que no es “la panacea” y que no se ha de aplicar la CE para resolver cualquier
problema ya que la CE no da los mejores resultados posibles a un problema aunque si puede dar
un resultado bueno o “decente” a determinados problemas de los que no tenemos ni idea. Con
esto quiero decir que a la hora de resolver un problema hay que analizarlo bien y ver cómo se
pueden alcanzar las mejores soluciones. Existen algoritmos como el Backtracking (que mucho
hemos sufrido que nos da la mejor solución para un problema de optimización combinatoria
siempre que este problema tenga un espacio de búsqueda “tratable y finito” y para esos casos
es mejor utilizar este algoritmo que no un algoritmo evolutivo. Si el problema tuviese una gran
cantidad de datos que el Backtracking no pudiese darnos los resultados en un tiempo
“prudencial” sí que se podría utilizar los algoritmos evolutivos.
Otra de las aplicaciones erróneas que me he encontrado es la de utilizar algoritmos genéticos
para encontrar el mínimo de una determinada función. Para resolver este problema es tan
sencillo como derivar la función e igualarla a cero para obtener su mínimo. Este ejemplo lo digo
porque en mucho sitios se ponen “ejemplos didácticos” de cómo obtener el mínimo de una
función con algoritmos evolutivos, y precisamente la mejor forma de entender un algoritmo
evolutivo es solucionando este tipo de problemas, que por algo son “ejemplos didácticos” pero
no son ejemplo eficientes, así que cuidado con la utilización de estos algoritmos.
La computación evolutiva, engloban diferentes estrategias para la resolución de problemas de
optimización.

Estas estrategias son las siguientes:
1. Procesos de Búsqueda Evolutiva: Fue propuesta por Alan Turing en el año 1948.
2. Estrategias Evolutivas (EE): Propuesto por Rechenberg en 1964. Representan a los
individuos con Vectores reales.
3. Programación Evolutiva (PE): Propuesto por Fogel en 1965. Utilizan máquinas de estado
finito.
4. Algoritmos Genéticos (AG): Propuesto por Holland en 1975. Representan a los
individuos como cadenas binarias.
5. Programación Genética (PG): Propuesto por Koza en 1992. Utilizan Arboles LISP.

podemos decir que el proceso de reproducción no es más que crear un nuevo individuo a partir de dos individuos dados. Este ADN los forman 4 tipos de “elementos” que son la “Adenina” (A). es decir. Como se ve no se tiene porque heredar en partes iguales las características de los dos progenitores. Por último en lo referente a la generación de nuevo individuos. por ejemplo al valor complementario: ¿Qué es eso de que un “individuo es suficientemente bueno”? Como se ha comentado los Algoritmos Evolutivos sirven para resolver problemas de optimización combinatoria. función de aptitud o función objetivo.¿Cómo representamos a los individuos? Basándonos en el conocimiento humano y haciendo una simplificación. con lo que haciendo una gran simplificación podemos decir que las personas estamos representados por un “ARRAY” compuesto por alguno de estos 4 “elementos” con lo cual ya tenemos aquí una forma (o estructura de datos) para representar a los individuos. se le denomina Cromosoma. pero también se ha de decir que no siempre alcanzan la mejor solución. . pasado a un problema de optimización combinatoria. Esto. Este umbral se ha de obtener a partir de una “función de evaluación” que se ha de definir siempre que se utilicen algoritmos evolutivos. diremos que cada persona tiene una información genética única que se puede ver en el ADN de cada un@. Esta función de evaluación es conocida como “Función de Fitness” aunque también se le suele denominar función de calidad. “Citosina” (C) y “Guanina” (G). ¿Cómo se reproducen y mutan los individuos? Siguiendo con las simplificaciones. significa que un posible resultado al problema lo podemos pasar a un array (por ejemplo un array binario de ceros y unos). A este array que representa a un individuo del problema o una posible solución. al que le daremos un cierto significado. que sin ninguna “lógica” (aunque supongo que biológicamente la tendrá) un determinado elemento del cromosoma cambie de valor. existe la posibilidad de que “Mute” algún gen. ya que uno al nacer hereda unas características de la madre y otras del padre. por lo tanto hay que definir un umbral a partir del cual consideramos que la solución que buscamos es lo suficientemente buena. es decir combinando los dos arrays que representan a dos individuos. A continuación ponemos un ejemplo que como obtenemos un nuevo individuo a partir de dos: A grandes rasgos es así como funciona la reproducción humana. “Timina” (T).