Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Conferencia IA-5 (AG)
Conferencia IA-5 (AG)
Introducción
Los métodos de búsqueda y optimización han sido objeto de estudio desde los primeros
años de la computación extendiéndose desde los métodos basados en el cálculo, pasando
por los métodos enumerativos, hasta llegar a los algoritmos de búsqueda aleatoria. Los
métodos de búsqueda y optimización tradicionales, los basados en el cálculo,
enumerativos y aleatorios puros son analizados y criticados en términos de robustez en
[GOL89], ello no significa que no sean útiles; pudiendo servir de complemento a
esquemas más robustos para la creación de híbridos.
El término Algoritmo Genético se usa por el hecho de que estos simulan los procesos de
la evolución darwiniana a través del uso de operadores genéticos que operan sobre una
población de individuos que “evoluciona” de una generación a otra.
El desarrollo de toda la teoría relacionada con el tema no solo ha servido para lograr un
método eficiente de búsqueda sino que han permitido abstraer y explicar rigurosamente el
proceso adaptativo en los sistemas naturales. Además, esto ha hecho posible diseñar
sistemas artificiales que incluyan estos mecanismos naturales.
Algo de historia
Desde finales de los años 50 y principios de los 60 se desarrollaron trabajos por algunos
biólogos para simular sistemas genéticos en una computadora, dentro de estos trabajos es
destacable el de Fraser, entre los años 60 y 62, donde se llegó a algo bastante parecido a
los AG, trabajando con cadenas y fenotipos.
El nombre de AG lo uso por primera vez Bagley en el año 67, y el mismo es el autor de
un trabajo importante sobre la utilización de AG en juegos.
1
En el texto se utilizará AG tanto para el plural como para el singular.
Holland siguió investigando en este campo y en el año 75 introdujo mejoras importantes
en los AG como es el escalado y publicó un libro sobre el tema que es material de
referencia clásico [HOL75].
En la actualidad, existen una gran cantidad de problemas en los que se usan los AG y han
llegado a consolidarse como métodos de búsqueda y de optimización.
Los Algoritmos Genéticos (AG) son métodos de búsqueda de propósito general basados
en los principios de la genética natural, es decir, son algoritmos de búsqueda basados en
los mecanismos de la selección natural y la genética.
Los Algoritmos Genéticos son un ejemplo de método que explota la búsqueda aleatoria
“guiada” que ha ganado popularidad en los últimos años debido a la posibilidad de
aplicarlos en una gran gama de campos y a las pocas exigencias que impone al problema.
Terminología usada
Componentes de un AG
Los AG trabajan a partir de una población inicial de estructuras artificiales que van
modificando repetidamente a través de la aplicación de los siguientes operadores
genéticos:
Operador de Selección o Darwiniano
Operador de Cruzamiento o Mendeliano
Operador de Mutación
Para utilizar los AG es necesario encontrar una posible estructura para representar las
soluciones. Pensando este asunto como el problema de buscar en un espacio de estados,
una instancia de esta estructura representa un punto o un estado en el espacio de
búsqueda de todas las posibles soluciones. Así, una estructura de datos en el AG
consistirá en uno o más cromosomas (frecuentemente uno), el cual se representa
comúnmente como una cadena de bits (existen otras representaciones).
Cada cromosoma (cadena) es una concatenación de un número de subcomponentes
llamados genes. La posición de un gen en el cromosoma se conoce como locus y sus
valores como alelos. En la representación como cadena de bits, un gen es un bit o una
cadena de bits, un locus es su posición en la cadena y un alelo es su valor (0 ó 1 si es un
bit).
Ejemplo:
Sea el problema de optimización genética la maximización de la siguiente función de
una variable:
1.3 Funcionamiento de un AG
Generación aleatoria de la
Población Inicial
Proceso de Reproducción
(selección)
Mutación
1- Trabajan con una codificación de los parámetros y no con los parámetros mismos.
2- Buscan a partir de una población de puntos y no de un punto simple.
3- Usan directamente la función objetivo y no la derivada u otro conocimiento auxiliar.
4- Usan reglas de transición probabilísticas y no determinísticas.
Las razones que se pueden argumentar son varias. Los métodos conocidos son buenos
mientras el problema no es muy complejo. Los AG permiten la solución eficiente de
funciones extremadamente complejas.
Las potencialidades de los AG se pueden resumir por sus habilidades para resolver una
variedad de problemas muy difíciles:
Trabajar sin conocimiento previo de la función a optimizar.
Optimizar funciones “ruidosas”.
Trabajar sin información secundaria como gradientes.
La mayoría de los especialistas en este tema coinciden en que los AG pueden resolver las
dificultades representadas en los problemas de la vida real que a veces son insolubles por
otros métodos.
Para Goldberg el tema central de la investigación en AG consiste en la robustez: el
balance entre la eficacia y la eficiencia necesaria para sobrevivir en muchos ambientes
diferentes [GOL89].
Goldberg destaca las formas en que difieren los AG de los sistemas tradicionales:
Los AG trabajan con una codificación del conjunto de parámetros, no con los
parámetros en sí.
Los AG realizan la búsqueda a partir de una población de puntos, no de un punto
simple.
Los AG sólo utilizan la información de la función objetivo, sin derivadas u otro
conocimiento auxiliar.
Los AG utilizan reglas de transición probabilísticas, no determinísticas.
En un trabajo más reciente Goldberg expone algunos motivos por los que los AG pueden
ser atractivos para el desarrollo de aplicaciones:
1. Pueden resolver problemas difíciles de forma rápida y confiable.
2. Son fáciles de enlazar a simulaciones y modelos existentes.
3. Son extensibles.
4. Son fáciles de hibridizar.
Analogías entre algunos conceptos
MSP CE
Solución Individuo
Estado Población
Búsqueda y optimización
Este es el campo en que más aplicaciones se reportan, habiéndose realizado incluso
trabajos con funciones muy complejas como en los trabajos de De Jong en 1975 que se
reportan en [GOL89].
También se ha trabajado en la obtención de soluciones a ecuaciones no lineales.
Aprendizaje automatizado
Los sistemas genéticos de aprendizaje automático, según se refiere en [GOL89] han
tenido un desarrollo sostenido desde inicios de los años 60, reportándose variedad de
trabajos, entre los más importantes se encuentran los relativos a los Sistemas
clasificadores [GOL89], que son sistemas que aprenden reglas de inferencia simples que
guían el comportamiento del sistema.
Este es el proceso que se encarga de la selección de los mejores de una generación a otra.
Los mejores seleccionados participan en el cruce.
Para la selección se usa la función objetivo (o de adaptación) la que evaluada en cada uno
de los individuos determinará cuántos individuos como este participarán en el
cruzamiento. Esto se realiza de la forma siguiente:
- Se evalúa la función en cada uno
- Se calcula la suma de todas estas evaluaciones
- Se calcula la probabilidad de cada uno para ser seleccionado como la fracción de esa
suma total que le corresponde
- Se generan números aleatorios y se seleccionan los individuos
Ejemplo:
Supongamos que tenemos que maximizar la función x^2 en el intervalo [0 … 31].
Para lograr esto necesitamos codificar los individuos de la población que en nuestro
caso serían los puntos. Como son 32 puntos distintos y se codificará en una cadena de
valores binarios solo necesitamos una cadena de longitud 5.
Por el contrario, cuando el AG se encuentra en los últimos estados, es decir, cuando está
convergiendo, la varianza entre los valores de adaptabilidad de las cadenas es pequeña y
por tanto el esquema de selección proporcional asigna más o menos igual número de
copias para todas las cadenas, perdiéndose el objetivo de promover las mejores cadenas.
Existen dos técnicas para resolver estos problemas, el escalado y la selección por rango.
El objetivo es limitar la competencia primero y luego estimularla.
Otra forma de evitar esto es el esquema de truncamiento sigma, que considera la
desviación estándar de los valores de adaptabilidad antes del escalado garantizando
descartar cadenas que potencialmente causen valores negativos.
Selección basada en el rango: Otro enfoque para evitar los problemas de la selección
proporcional antes mencionados es el de ignorar la función objetivo actual y usar un
procedimiento de ranqueo. Se clasifican las cadenas de acuerdo a sus valores de
adaptabilidad. Los padres son seleccionados usando la siguiente distribución de
probabilidad
p([k]) = 2k/ n(n+1)
donde [k] es la k-ésima cadena ordenada en forma ascendente. n es el tamaño de la
población. Note que la mejor cadena de la población, la [n], tiene oportunidad de ser
seleccionada igual a 2/n+1, el doble que la media cuya oportunidad es de 1/n. Algunos
especialistas en el tema han generalizado este método de ranqueo y argumentan el hecho
de preferir el ranqueo al escalado de la función objetivo.
Selección de torneo: Una alternativa que combina la idea de ranqueo con el mecanismo
de selección es la selección de torneo. Una cadena necesita ganar una competencia entre
un conjunto de cadenas seleccionadas aleatoriamente. En un k-torneo la mejor de k
cadenas es seleccionada para la próxima generación. Algunos análisis más profundos de
las características de esta selección son reportados en [BAC95], [BLI95].
Técnica del resto estocástico: Esta técnica establece que la cantidad de copias que debe
tener una cadena específica debe ser calculada del siguiente modo. Primero, de forma
determinística se toma la parte entera del valor esperado de copias para esa cadena.
Segundo, la parte fraccionaria participa en una selección estocástica (la ruleta). De esta
forma, la aleatoriedad se restringe sólo a la parte fraccionaria.
La obtención de individuos nuevos a partir de los que existen es una de las características
más interesantes e importantes en el trabajo de los AG. Este proceso se le llama
cruzamiento, a semejanza del proceso natural.
Ejemplo:
Supongamos que tenemos dos cadenas A y B que van a ser cruzadas. Para poder hacer
esto es necesario determinar el punto por donde se hará el cruce y después lo que
queda es intercambiar información:
Cadena A AAAAAAAAAAAAAAAAAAA
Cadena B BBBBBBBBBBBBBBBBBBB
^
|__ Punto de cruce
Se obtienen la nuevas cadenas:
El proceso anterior se realiza a través de un trabajo con las cadenas que participan como
una pareja para el cruzamiento:
El punto de cruce se obtiene, como debe suponerse de forma aleatoria. Este número
aleatorio debe ser, lógicamente, menor que el tamaño de la cadena. Una vez obtenido este
número, lo que queda es copiar a los dos individuos nuevos la parte de la cadena de sus
padres que le corresponde.
Este problema hace que para que el AG realice el cruzamiento tenga que generar dos
números aleatorios: uno para determinar si ocurrirá o no el cruzamiento en función de la
Probabilidad de Cruzamiento definida y otro para, si debe ocurrir el cruzamiento,
seleccionar cual será el punto de la cadena donde ocurrirá el cruce. En este caso, este
segundo número estará entre 2 y N.
Este proceso es muy importante ya que puede ser que un individuo malo tuviera alguna
característica muy buena. Cuando este individuo pasa por el proceso de reproducción
existe una alta probabilidad de que sea eliminado y por lo tanto se pierda esa
característica deseable. La recuperación de esta característica puede ser prácticamente
imposible a través de los otros mecanismos genéticos.
La casualidad que a veces permite hallazgos importantes, que por los caminos lógicos
podría demorarse mucho, es simulada a través de la mutación.
Puede ser que ninguno de los individuos de la población tenga una característica (y que
hasta incluso ninguno de los anteriores tuvo) y que esa característica es el detalle que
necesitan para lograr una mejoría importante, entonces esto puede obtenerse también a
través de la mutación.
El proceso es muy simple y solo consiste en determinar cual es el gen que mutará el
organismo. La selección de este gen se realiza de forma aleatoria. Una vez que se obtiene
solo es necesario cambiar el valor que esta en esa posición de la cadena por su opuesto.
Ejemplo:
Si tenemos la cadena siguiente:
0001011
y se selecciona la posición 4 para mutar entonces la cadena quedara:
0000011
Para el AG es importante tener control de la mutación ya que estos cambios pueden tener
tanto un efecto conveniente como perjudicial.
Para esto se utiliza un parámetro llamado Probabilidad de Mutación, el cual servirá para
determinar si un individuo mutará o no. Como se ve aquí tampoco se trabaja de forma
determinística sino a través de las probabilidades.
Orientación de la bibliografía
Capítulo 25 del libro de texto