Algoritmos genéticos
En los años sesenta, de la mano de John Holland surgió una de las líneas más prometedoras de la inteligencia artificial, la de los algoritmos genéticos. Son llamados así porque
se inspiran en la evolución biológica y su base genético-molecular.
Estos algoritmos hacen evolucionar una población sometiéndola a acciones aleatorias semejantes a las que actúan en la
evolución biológica (mutaciones y recombinación genética), así como también a una selección de acuerdo con algún criterio, en función
del cual se decide cuáles son los individuos más adaptados, que sobreviven, y cuáles los menos aptos, que son descartados.
Los algoritmos genéticos forman parte de una familia denominada algoritmos evolutivos,
que incluye las Estrategias de evolución, la Programación
evolutiva y la Programación genética. Dentro de esta última se han logrado avances curiosos:
- En 1999, por primera vez en la historia,
se concedió una patente a un invento no realizado directamente por un ser humano: se trata de una antena de forma extraña, pero
que funciona perfectamente en las condiciones a las que estaba destinada.
- No hay, sin embargo, nada injusto en el hecho de que el autor del algoritmo genético del que salió la forma
de la antena se haya atribuido la autoría de la patente, pues él escribió el programa e ideó el criterio de selección que condujo
al diseño patentado.
Seudocódigo
- Inicializar aleatoriamente una población de soluciones a un problema, representadas por una estructura de datos
adecuada.
- Evaluar cada una de las soluciones, y asignarle una puntuación o fitness según lo bien que lo hayan hecho.
- Escoger de la población la parte que tenga una puntuación mayor
- Mutar (cambiar) y entrecruzar (combinar) las diferentes soluciones de esa parte escogida, para reconstruir la población.
- Repetir un número determinado de veces, o hasta que se haya encontrado la solución deseada y ya está :)).
Enlaces
- Tutorial de algoritmos genéticos

