
Desde principios de los años 90 se han aplicado algoritmos genéticos en el área de la programación automática. Se transforma, de esta manera, el problema de la generación automática de programas para la solución de problemas concretos en un problema de búsqueda en el espacio de los posibles programas escritos con un lenguaje de programación. En la actualidad se conoce esta aproximación con el nombre de "Programación con Algoritmos Evolutivos". Pueden identificarse dos familias de algoritmos en función de la representación utilizada para los individuos de la población: los que se basan en una representación en forma de cadena de símbolos y los que utilizan una representación en forma de árbol. En los primeros años se impuso esta última tendencia. El ejemplo más representativo es la "Programación Genética" de Koza. Desde finales de los 90 y principios de la última década se ha retomado el primero de los enfoques. La Evolución Gramatical es la técnica más representativa de esta última época. Su éxito se ha basado en la incorporación de la gramática independiente del contexto de los fenotipos buscados para eliminar la posibilidad de generar individuos sintácticamente incorrectos, que es uno de los principales problemas de la programación con algoritmos evolutivos.
Nuestro grupo de investigación ha propuesto diferentes extensiones a la
Evolución Gramatical para incorporar la descripción completa de los fenotipos
buscados mediante lo que se suele conocer como "semántica" de sus
lenguajes. Una de ellas incorpora Gramáticas de Christiansen en lugar de
gramáticas independientes de contexto para este propósito. La descripción de
la técnica resultante (Evolución con Gramáticas de Christiansen) es el
objetivo de este seminario.