Sobre computación evolutiva

Os paso un artículo de laflecha.net. A ver que os parece… pero antes leedlo. Ok?

Computación evolutiva

La naturaleza encuentra brillantes soluciones a los problemas mediante la evolución continuada de las especies. Ligeras variaciones aleatorias en los genes de los descendientes, dan lugar a individuos con diferente capacidad de adaptación a su entorno. Primando la reproducción de los mejor adaptados, la especie evoluciona a formas cada vez más eficientes para sobrevivir en su entorno.10:30 – 22/05/2006 | Autor: José Manuel Gimeno 

Hacia 1960 John Holland utilizó por primera vez este principio para el desarrollo de programas informáticos capaces de automodificarse, de modo que simulasen la evolución natural. En esquema, comenzaba por un algoritmo con muchos parámetros, que modificaba ligeramente uno de ellos de forma aleatoria. Este ciclo se repetía innumerables veces eligiendo en cada caso el algoritmo padre o hijo, para modificar aquel de los dos hubiera dado mejor solución al problema planteado, de forma que poco a poco se consiguen algoritmos mas eficaces para resolver dichos problemas.

Simulación darviniana

En esencia, los programas genéticos consisten en introducir una población inicial de algoritmos que puedan ser una solución aproximada a un problema, (puede ser un solo algoritmo). Cada individuos de la población es representado por una secuencia de parámetros que a modo de ADN definen y diferencian a cada individuo. Se modifica un parámetro de forma aleatoria de cada elemento de la población y se selecciona entre los iniciales y los modificados los más aptos, que pasan a ser la población de partida del siguiente ciclo. Imprescindible es tener un criterio de aptitud mensurable que permita seleccionar a los algoritmos más aptos.Inicialmente se intentó conseguir modelos matemáticos que simularan la evolución genética, pero pronto se descubrió que esta simulación permitía en algunos casos utilizarla como una técnica de exploración y optimización de procesos de mucha utilidad en las áreas como la inteligencia artificial.

Mutación o herencia

A partir de este esquema general, caben varias técnicas a aplicar para conseguir la evolución de la especie. La primera mas sencilla es la indicada anteriormente consistente en modificar ligeramente uno o varios parámetros de la serie, simulamos con ello una mutación natural. Otra solución es sustituir uno o varios de los parámetros por los correspondientes de otro individuo, obteniendo de esta forma un híbrido de ambos, que se aproxima más a la forma de evolución de las especies de reproducción sexuada.

Reproducción de los más aptos

Otro punto a definir es el número de hijos a obtener de cada individuo inicial, este puede ser fijo o variable y si es variable lo puede serlo de forma aleatoria o ligado a algún al criterio de en función de algún criterio de aptitud de los padres, de modo que los mas aptos tengan mayor probabilidad de reproducirse.

Los más aptos o los más adaptados

 Sea cual sea el proceso utilizado, tanto los individuos paternos como sus descendientes han de pasar la función de evaluación que establezca cuales de los individuos existentes son los más aptos. Aquí hay dos posibilidades, elegir una función constante de evaluación que seleccione el más apto en unas condiciones dadas, o elegir una función de evaluación que recoja los cambios habidos en el entorno de forma que los individuos elegidos sea los que mejor se adaptan a un entorno cambiante. En función de los propósitos que nos pongamos resolver se elegirá una técnica u otra.

Evaluación del equipo

Hasta aquí, lo que hemos buscado es conseguir el individuo mejor adaptado, pero no siempre este es el tipo de soluciones buscado, con frecuencia la mejor solución a un problema no está en un individuo sino en la colaboración de un equipo formado por individuos diferentes entre sí. Por ejemplo un panal tiene una reina, obreras, nurses y zánganos, el panal más eficiente es el que tenga un conjunto más armonioso de cada elemento, no el que tenga la mejor abeja. Hoy se están investigando funciones de evaluación de colectivos y no solo de individuos por separado.

Crear razas o selección natural

A la hora de seleccionar individuos debemos decidir que criterio se utilizará para elegir la población del siguiente ciclo o generación. Si elegimos los más aptos, elegimos el método que inveteradamente practican los ganaderos. Con ello se converge más rápidamente hacia el objetivo, la obtención de puras razas, pero se eliminan muchas ramas que si bien en determinados estadios no dan las mejores respuestas, pudiera ser que a la larga produjeran las
mejores soluciones. Este segundo proceso es el que siguen las especies en libertad, se consigue con ello una mayor variedad genética, la evolución es mucho más lenta, pero la variedad genética permite adaptarse mucho mejor a las características ambientales. Si buscamos soluciones que se adapten a los cambios del entorno, seleccionar solo los mejores individuos entraña el riesgo típico de las razas puras que siendo la solución ideal en determinado instante, resulta catastrófica si se producen cambios en su entorno,.mientras que si disponemos de diversidad genética, otra rama tomará la iniciatriva de encontrar una solución adecuada al nuevo entorno.

Autoaprendizaje

Los sistemas evolutivos son muy adecuados para conseguir auto aprendizaje. Para tener la capacidad de aprender, se necesita un sistema capaz de realimentarse con información recibida del exterior, y de evaluar si las decisiones que se tomaron de aplicar reglas existentes fueron acertadas o no, para premiar las acertadas aumentando su peso y penalizar las erróneas reduciéndolo. Por otra parte el sistema ha de ser capaz de crear nuevas reglas nacidas de la evolución de las mas acertadas.Con ello el sistema resulta capaz de aprender nuevas reglas, y de variar las preferencias de uso entre ellas, por tanto de adaptar su comportamiento en función de la experiencia. Por ejemplo, un brazo robot, aprenderá de esa forma a rotar cada una de sus articulaciones de modo que el movimiento del brazo sea el más eficaz y rápido entre todos los posibles recorridos del brazo para desplazarse entre dos puntos.