Está en la página 1de 12

Conferencia # 3: Algoritmos Genéticos: aspectos generales.

Introducción

Los Algoritmos Genéticos (AG1) surgen como herramientas para la solución de


complejos problemas de búsqueda y optimización, producto del análisis de los sistemas
adaptativos en la naturaleza, y como resultado de abstraer la esencia de su
funcionamiento.

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.

A pesar de estos trabajos, se reconoce al profesor John Holland de la Universidad de


Michigan como el creador de los AG con su trabajo sobre teoría de los sistemas
adaptativos, en el año 62. Es Holland el primero que adaptó la idea de la genética a
sistemas artificiales.

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.

1.2 ¿Qué son los Algoritmos Genéticos?

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

En el trabajo con AG se maneja una serie de términos “importados” de la genética


natural. No siempre es adecuada la analogía, pero estos son comúnmente aceptados:

Población Conjunto de individuos o cromosomas. Equivale a una muestra aleatoria


del espacio de solución o un conjunto de soluciones alternativas.
Cromosoma Un cromosoma es un portador de la información genética que transmite
cada uno de sus genes. Una posible solución.
Gen Cada uno de los rasgos o características que conforman el cromosoma.
También se les llama parámetros o aspectos. Cada gen equivale a una
variable del problema.
Genotipo En biología se le llama al “paquete” genético total en su forma interna. En
la terminología de AG será la información genética de todo el cromosoma
en forma codificada.
Fenotipo Se le llama en genética al paquete genético tal y como interactúa con el
medio exterior. En los AG artificiales serían los aspectos del cromosoma
decodificados.
Locus Es la posición de un gen el cromosoma
Alelo Es el valor asociado a un gen

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:

F(x) = x^2, donde 0  x  31.

Una forma de codificación para la variable x es asignarle una secuencia de 5 dígitos


binarios, de tal forma que la cadena 00000 representa el valor 0 de x y la cadena
11111 representa el valor x=31. La decodificación sería un proceso sencillo, pues el
valor real (fenotipo) se encuentra convirtiendo la secuencia binaria en un valor entero.
El genotipo de un individuo es una cadena de 5 bits, el fenotipo es un valor de la
variable decodificada.

Al optimizar una estructura usando un AG se necesita una medida de la calidad de cada


estructura en el espacio de búsqueda. La función de adaptabilidad es la encargada de esta
tarea. En una maximización de funciones, la función objetivo frecuentemente actúa como
la función de adaptabilidad, como en el ejemplo anterior, en el cual la meta es encontrar
el valor de <x> que maximice F.
Los AG realizan una maximización por defecto, para los problemas de minimización los
valores de la función objetivo pueden ser negados y traslados con vistas a tomar valores
positivos para producir así la adaptabilidad.

1.3 Funcionamiento de un AG

El modo de trabajo de un AG puede resumirse en el siguiente esquema el funcionamiento


de un AG simple.

El mecanismo de un AG simple es como sigue:


- El AG simple genera aleatoriamente una población de n estructuras (cadenas,
cromosomas o individuos)
- Sobre la población actúan los operadores transformando la población. Una vez
completada la acción de los tres operadores se dice que ha transcurrido un ciclo
generacional.
- Luego se repite el paso anterior mientras no se garantice el criterio de parada del AG.

Generación aleatoria de la
Población Inicial

Evaluación de las cadenas


de acuerdo a la Función
Objetivo

Criterio de Parada para la


Optimización Objetivo

Proceso de Reproducción
(selección)

Recombinación por cruzamiento

Mutación

Actualización de los individuos de


la próxima generación y evaluación
de la población

Figura 1 Diagrama funcional de un algoritmo genético.

El operador de selección o Darwiniano realiza la selección de las cadenas de acuerdo a


su adaptabilidad para el posterior apareamiento.
El operador de cruzamiento o Mendeliano realiza la recombinación del material genético
de dos cadenas padres.
El operador de Mutación al estilo del operador natural realiza la mutación de un gen
dentro de un cromosoma o cadena a sus diferentes formas alelomorfas.
Para cada uno de estos operadores está asociado el uso de probabilidades y la generación
de números aleatorios.
El AG ejecuta para un número fijo de generaciones o hasta que se satisface algún criterio
de parada.

Desde el punto de vista de la comparación de los AG con otros métodos de búsqueda se


pueden enmarcar sus diferencias en cuatro aspectos:

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.

1.4 ¿Por qué utilizar AG y no otros métodos conocidos?

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

Expandir Procesos de recombinación y


mutación
Acciones Operadores genéticos

Estrategia de selección de Esquema de selección que utiliza


nodo a expandir el valor de adaptación del
individuo

Estado objetivo o meta Condición de parada

I.5 Aplicaciones tradicionales

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.

1.6 Elementos relativos a la Población

El análisis de la población incluye varios elementos que van desde la cantidad de


individuos que la integran hasta el número que se reemplazan en cada iteración.
Tamaño de la población: Muchos trabajos se han escrito relativos a la influencia del
tamaño de la población en la convergencia del AG. En principio, es lógico pensar que el
trabajo con poblaciones pequeñas corren el riesgo de representar pobremente el espacio
de soluciones. Por otro lado, las poblaciones de gran tamaño consumen mayor tiempo
computacional. Sobre esta disyuntiva y como un trabajo teórico, Goldberg obtuvo en su
investigación que el tamaño óptimo de una población de cadenas binarias, crece
exponencialmente con la longitud de la cadena. Sin embargo, en diferentes resultados
empíricos muchos autores sugieren tamaños de poblaciones tan pequeños como 30
individuos.
Generación de la población inicial: Se describen fundamentalmente dos vías para
obtener la población inicial con que el AG comienza su trabajo:
a) Generación aleatoria de los individuos.
Usualmente la población inicial es generada aleatoriamente.
b) Sembrado de individuos.
La cuestión de si es importante partir de un conjunto de soluciones suficientemente
buenas como población inicial para el AG, también ha sido analizada. Se han
desarrollado trabajos que han encontrado que el sembrado en una población con
soluciones de alta calidad obtenidas de otra técnica heurística, ayuda al AG a
encontrar mejores soluciones más rápidamente que con un comienzo aleatorio.
Reemplazamiento: Cada iteración de un AG simple crea una población totalmente nueva
de una población existente. Este es llamado AG generacional. El AG que reemplaza sólo
una fracción pequeña de cadenas a la vez, es llamado AG de estado fijo o "steady-state".

1.7 Mecanismos de reproducción o selección

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.

Para cuatro (4) individuos podemos tener la tabla siguiente:

Indivi Cadena Valor f(x)=x^2 f/SUMA Cantidad Cantidad real


duo x esperada obtenida
f/PROM aleatoriamente
1 01101 13 169 0.14 0.58 1
2 11000 24 576 0.49 1.97 2
3 01000 8 64 0.06 0.22 0
4 10011 19 361 0.31 1.23 1
SUMA 1170 1.0 4.0 4
PROM (Promedio) 293 0.25 1.0 1
MAX 576 0.49 1.97 2

La cantidad esperada sería el valor si este proceso se hiciera de forma determinística,


pero una de la características de los AG es el uso de la aleatoriedad. Esto de realiza de
la forma siguiente:
Se usa el valor de f(x)/SUMA como probabilidad y se forman intervalos donde cada
individuo tendrá un tramo según su valor de probabilidad:
1- desde 0 hasta 0.14
2- desde 0.14 hasta 0.63=0.14+0.49
3- desde 0.65 hasta 0.69=0.63+0.06
4- desde 0.69 hasta 1.00=0.69+0.31
Cuando se genera un número aleatorio, la probabilidad de que esté en el intervalo de un individuo
estará en función del tamaño del mismo y por lo tanto de su adaptación al medio.

Como se ve no se realiza un proceso determinístico a la hora de la selección lo cual


permite una simulación más exacta del proceso natural. El proceso de reproducción no
solo garantiza que el individuo mejor adaptado tenga una participación más fuerte en la
formación de la nueva generación sino que esta magnitud también está fijada por la
proporción de la adaptación de ambos.

Otras variantes de selección


Sucede que en las generaciones iniciales de un AG los valores de adaptabilidad promedio
son bajos. La presencia de algunas cadenas con un valor de adaptabilidad relativamente
alto provoca que el mecanismo de selección proporcional asigne un número grande de
copias a estas supercadenas provocando así la convergencia temprana.

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.

Elitismo: Establece que el mejor individuo o los mejores de la población sobrevivan de


generación en generación. La estrategia de elitismo básica copia el mejor individuo de la
población actual a la próxima si éste individuo no ha sido transferido a través del proceso
normal de selección, cruzamiento y mutación.

1.8 Mecanismos de cruzamiento

El mecanismo de cruce es el que permite "confrontar ideas para el desarrollo de la


población en la búsqueda del mejor”

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:

Cadena NuevaAB1 AAAAAABBBBBBBBBBBBB


Cadena NuevaAB2 BBBBBBAAAAAAAAAAAAA

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 cruzamiento no tiene necesariamente que provocar la obtención de un organismo


mejor, su misión principal es la exploración de un nuevo camino, o sea, crear a partir de
la combinación de lo ya conocido.

La evaluación de los nuevos individuos se realizará a la hora de obtener la generación


siguiente, lo que ahora se garantiza es que se analizarán variantes nuevas.

Aleatoriedad en el cruzamiento y en la selección del punto de cruce


Para realizar el cruzamiento es necesario, como se vio, determinar el punto que definirá
que parte de cada cadena de los padres irá a cada hijo. El número J que se usará para
indicar el punto de cruce en cada cadena de longitud N estará entre 1 y N, significando
que cada cadena se divide en dos:
- una desde el gen 1 hasta el gen anterior a J
- otra desde el gen J hasta el gen N

Como puede verse si el número generado es 1, la primera porción de la cadena quedará


vacía (desde el 1 hasta el anterior a J=1, o sea desde 1 hasta 0) lo cual indica que en
realidad no se está realizando un intercambio de información, pues cada hijo será
exactamente igual a uno de sus padres. Esto no puede considerarse un error pero si es
importante tenerlo en cuenta en el funcionamiento del AG.

Para llevar el control de esto se trabaja con un parámetro denominado Probabilidad de


Cruzamiento el cual se corresponde con la probabilidad de que el número aleatorio sea
mayor que 1. Por tanto, esta probabilidad es la de que en realidad se creen hijos que sean
nuevos.

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.

Usando las cadenas seleccionadas en nuestro problema y realizando el apareamiento de


forma aleatoria se puede obtener lo siguiente:

Cadenas a Pareja Punto de Nuevos Valor x f(x)=x^2


cruzar cruce individuos
01101 2 5 01100 12 144
11000 1 5 11001 25 625

11000 4 3 11011 27 729


10011 3 3 10000 16 256
SUMA 1754
PROMEDIO 439
MAXIMO 729

El punto de cruce NO se selecciona al principio del AG y no es fijo para todas sus


generaciones. Tampoco es fijo para todos los elementos de una generación. Como puede
verse en el ejemplo anterior, la selección del punto de cruce deberá hacerse para cada
pareja. Lo mismo ocurre con la decisión de si deberá o no ocurrirá cruzamiento entre un
par de individuos, lo cual, como es lógico deberá decidirse antes de seleccionar el punto
de cruce.
Puede observarse que en el ejemplo anterior, mejoran todos los indicadores de la
generación.

Técnicas para realizar el cruce


Producto de la importancia que tiene el operador de cruzamiento para los AG diferentes
técnicas de cruzamiento han sido propuestas y analizadas.
Cruzamiento de uno, dos y múltiples puntos: El cruzamiento de un punto de cruce es el
que utiliza el AG simple. En el esquema de cruzamiento de dos puntos, dos puntos son
seleccionados aleatoriamente y los segmentos de las cadenas entre ellos intercambiados.
El cruzamiento de múltiples puntos trata cada cadena como un anillo de bits dividido por
k puntos de cruce en k segmentos. Los segmentos alternados son intercambiados entre el
par de cadenas a entrecruzar.
Cruzamiento uniforme: Es el intercambio de bits entre las cadenas, en vez de segmentos
como los casos anteriores. En cada posición de la cadena los bits son probabilísticamente
intercambiados con una probabilidad fija.

1.9 El operador de mutación

La mutación es un proceso, similar al biológico en el cual un gen de un individuo muta o


cambia al otro valor posible, o sea, si era 0 pasa a ser 1 y viceversa.

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.

Algunos aspectos han quedado claros de las investigaciones analíticas y empíricas:


1.- Incrementando la probabilidad de cruzamiento se incrementa la recombinación de
bloques de construcción pero también se incrementa la destrucción de buenas cadenas.

2.- Incrementando la probabilidad de mutación se tiende a transformar la búsqueda


genética en una búsqueda aleatoria, pero esto también permite reintroducir pérdida de
material genético.

3.- Incrementando el tamaño de la población se incrementa la diversidad y reduce la


probabilidad de que el AG haga una convergencia prematura, pero esto también
incrementa el tiempo requerido para que la población converja a las regiones optímales
en el espacio de búsqueda.

Orientación de la bibliografía
Capítulo 25 del libro de texto

También podría gustarte