AI::EA (OPEAL) Version 0.3


Copyright (c) 2001 J.J. Merelo and J.G. Castellano
Todos los derechos reservados.
Este programa es software libre; puede redistribuirlo y/o modificarlo bajo los términos de la licencia GPL.

INTRODUCCIÓN


¿Qué son los Algoritmos Evolutivos (Evolutionary Algorythm -EA-)?

Durante la última década los métodos de optimización han cobrado más importancia debido, sobre todo, a que con ellos se pueden resolver ciertos problemas de ingeniería que sólo pueden abordarse mediante aproximación en los computadores actuales.

Los paradigmas evolutivos actuales están inspirados en la teoría de la evolución de Darwin e intentan emular en lo posible a la Naturaleza. De esta forma, los cromosomas y los genes se suelen asociar de alguna forma a cadenas de bits o a vectores de números reales. Por otra parte, diversas estrategias de selección imitan la selección natural.

A pesar de que la mayoría de los investigadores afirman que los distintos paradigmas de computación evolutiva sólo difieren en cuanto a la representación y a los operadores de individuo y de población, no existe una visión unificada para todos ellos, y mucho menos una herramienta que lo unifique.

¿Qué es y para qué sirve OPEAL?

Es una biblioteca escrita en Perl para hacer computación evolutiva. OPEAL deriva de Obvious Pearl Evolutionary Algorithm Library (Biblioteca de Evolución Evolutiva en Perl); su alias es AI::EA.

Los principios del diseño de OPEAL son:

En OPEAL tanto los individuos, como los operadores o los algoritmos son objetos, los cuales, se pueden combinar para crear algoritmos evolutivos a medida.

¿Cómo lo hago?: Cómo usar OPEAL

Para construir un Algoritmo Evolutivo utilizando OPEAL, tendremos que programar nuestra función de fitness (función de adecuamiento) en Perl y elegir los tipos de datos (individuos), operadores y algoritmo evolutivo a aplicar. Una vez realizado esta fase de diseño previo tenemos que elegir entre programar con Perl el algoritmo completo o describir mediante XML (usando EvoSpec) el algoritmo para que OPEAL lo genere automaticamente.

En el apartado siguiente podemos aprender a programar con OPEAL, utilizando sencillos ejemplos. Cabe la posibilidad de que lso operadores, algoritmos y/o individuos existentes en OPEAL no se adaptasen a nuestros requirimientos,para estos caso, se puede optar a añadir elementos a OPEAL y asi contribuir a su mejora, el como hacerlo lo veremos en el apartado X.

Definir y generar algoritmos evolutivos con XML, usando EvoSpec, podremos aprender a hacerlo en el apartado X.