Discusión sobre el artículo "Las matemáticas de los algoritmos genéticos"

 

Artículo publicado Las matemáticas de los algoritmos genéticos:

Los algoritmos genéticos se aplican en tareas de optimización. Por ejemplo en el aprendizaje neuronet, esto es, para seleccionar los valores de peso que permiten obtener el mínimo error. El algoritmo genético se basa en el método de búsqueda aleatoria. El principal problema de la búsqueda aleatoria es que no podemos saber cuánto tiempo se tarda en resolver el problema. Para evitar perder un tiempo importante se aplican métodos desarrollados en biología, en concreto métodos relacionados con el origen de las especies y la evolución. Los animales que mejor se adaptan son los que sobreviven. Como resultado, la adecuación de la población aumenta, lo que permite adaptar el entorno dinámico.

John H. Holland, de la Universidad de Michigan, en Estados Unidos, propuso este algoritmo por primera vez en 1975. Este algoritmo se llama plan reproductivo de Holland y es la base de la inmensa mayoría de algoritmos genéticos. Sin embargo, antes de echar un vistazo detallado a este plan, vamos a discutir cómo puede codificarse la realidad y encapsularse en los algoritmos genéticos.

Operadores genéticos básicos

Como es sabido en la teoría de la evolución, es muy importante la forma en que los individuos transmiten sus características a sus descendientes. En los algoritmos genéticos, el cruce (crossover, en inglés) es un operador genético que permite variar la programación de un cromosoma o cromosomas de una generación a la siguiente. Este operador funciona de la siguiente manera:

  1. se seleccionan dos unidades padre/madre de una población;
  2. se determina el punto de ruptura (como norma, de forma aleatoria);
  3. la descendencia queda determinada por la concatenación de las partes del padre y de la madre.

Veamos cómo funciona este operador:

Cromosoma_1: 0000000000
Cromosoma_2: 1111111111

Suponemos que el punto de ruptura ocurre después del 3er bit del cromosoma, por lo que:

Cromosoma_1: 0000000000 >> 000 1111111   Cromosoma_resultante_1
Cromosoma_2: 1111111111 >> 111 0000000 Cromosoma_resultante_2

Autor: MetaQuotes Software Corp.