La Singularidad Desnuda

Un universo impredecible de pensamientos y cavilaciones sobre ciencia, tecnología y otros conundros

Guía de Campo de la Programación Genética

Posted by Carlos en abril 9, 2008

La programación genética es uno de los cuatro paradigmas principales de la computación evolutiva. Básicamente consiste en el empleo de un enfoque evolutivo para la generación de programas que resuelven una cierta tarea. Tradicionalmente, estos programas se representan mediante árboles sintácticos a través de los que es posible expresar funciones complejas e incluso programas, dependiendo del conjunto de símbolos disponible (no es extraño en cualquier caso encontrar también representaciones lineales de programas, o representaciones basadas en grafos). Para construir dichos árboles es preciso especificar el conjunto de símbolos terminales que se emplearán como hojas de los árboles (variables, constantes, etc.), así como los símbolos no terminales (funciones básicas) que se emplearán en los nodos internos, y si es preciso las reglas sintácticas y semánticas de indican qué árboles son correctos.

Genetic Programming Tree

A partir de ahí, se emplean los mecanismos de selección, reproducción y reemplazo para hacer evolucionar una población de programas en pos de la solución de un cierto problema (ya sea de tipo supervisado, en el que se desea producir una cierta salida conocida ante ciertas entradas, o no supervisado, en el que típicamente se desea un cierto comportamiento de un sistema controlado por el programa, pero no se dispone explícitamente de las salidas precisas que hay que producir para ello). Lo mejor de todo es que este enfoque funciona, y es posible resolver satisfactoriamente problemas de diferente índole (clasificación, síntesis de circuitos, control de sistemas, etc.). A modo de muestra, pinchando en la imagen inferior se puede acceder a un applet de java que emplea programación genética para realizar regresión simbólica, esto es, encontrar la curva que mejor se ajusta a unos datos sin conocer no ya los parámetros de la misma (eso sería simple regresión numérica), sino la propia forma funcional de ésta (que puede ser sumamente compleja).

Symbolic Regression with Genetic Programming

Hay disponibles diferentes libros de texto o colecciones de artículos más o menos avanzados sobre el tema, y desde hace unas semanas una guía de campo introductoria. Los autores de esa guía son Riccardo Poli, William B. Langdon (ganador por cierto este año de la tercera edición del premio a la contribución sobresaliente a la computación evolutiva, ex aequo con Marc Schoenauer; Poli y Wolfgang Banzhaf lo ganaron el año pasado, y Jennifer Willies antes que ellos), y Nicholas McPhee, y durante la conferencia de hace dos semanas acudieron con una caja de ejemplares que fueron regalando a cambio de la voluntá (y que firmaron a quien quiso). Quien esté interesado en el área puede encontrar interesante que el libro está bajo una licencia CC y puede bajarse gratuitamente de aquí.

Una respuesta to “Guía de Campo de la Programación Genética”

  1. faraox said

    Muy interesante, la verdad estaba buscando documentación sobre programación genética. Una pena que no existan más profesionales como estos… Muchos profesores de mi universidad no son capaces de dar las fuentes de sus propios libros para los alumnos.

    Saludos,
    Carlos

Sorry, the comment form is closed at this time.

 
A %d blogueros les gusta esto: