Vous êtes sur la page 1sur 12

PONTIFICIA UNIVERSIDAD CATLICA DEL ECUADOR

SEDE IBARRA
ESCUELA DE INGENIERA

TRABAJO DE INVESTIGACIN

ALGORITMOS GENTICOS

Autores: Jorge Bejarano Francisco Ypez

Ibarra Julio del 2014

ndice

1. Introduccin 3
1.1.

Definicin

2. Orgenes

3. Base biolgica

4. Codificacin de problemas 4
5. Principales algoritmos
5.1.

Reemplazo

5.2.

Copia 6

5.3.

Elitismo

5.4.

Mutacin

6. Operadores genticos
6.1.

Seleccin

6.2.

Cruce 8

7. Ejemplo prctico

1. Introduccin

7
9

El algoritmo gentico es una tcnica de bsqueda basada en la teora de la evolucin de


Darwin, que ha cobrado tremenda popularidad en todo el mundo durante los ltimos aos.
Se presentarn aqu los conceptos bsicos que se requieren para abordarla, as como unos
sencillos ejemplos que permitan a los lectores comprender cmo aplicarla al problema de
su eleccin.
1.1.

Definicin

Los Algoritmos Genticos (AGs) son mtodos adaptativos que pueden usarse para resolver
problemas de bsqueda y optimizacin. Estn basados en el proceso gentico de los
organismos vivos. A lo largo de las generaciones, las poblaciones evolucionan en la
naturaleza de acorde con los principios de la seleccin natural y la supervivencia de los ms
fuertes, postulados por Darwin. Por imitacin de este proceso, los Algoritmos Genticos
son capaces de ir creando soluciones para problemas del mundo real. La evolucin de
dichas soluciones hacia valores ptimos del problema depende en buena medida de una
adecuada codificacin de las mismas.

2. Orgenes
En la naturaleza los individuos de una poblacin compiten entre s en la bsqueda de
recursos tales como comida, agua y refugio. Incluso los miembros de una misma especie
compiten a menudo en la bsqueda de un compaero. Aquellos individuos que tienen ms
xito en sobrevivir y en atraer compaeros tienen mayor probabilidad de generar un gran
nmero de descendientes. Por el contrario individuos poco dotados producirn un menor
nmero de descendientes. Esto significa que los genes de los individuos mejor adaptados se
propagarn en sucesivas generaciones hacia un nmero de individuos creciente. La
combinacin de buenas caractersticas provenientes de diferentes ancestros, puede a veces
producir descendientes "superindividuos", cuya adaptacin es mucho mayor que la de
cualquiera de sus ancestros. De esta manera, las especies evolucionan logrando unas
caractersticas cada vez mejor adaptadas al entorno en el que viven.
Los Algoritmos Genticos usan una analoga directa con el comportamiento natural.
Trabajan con una poblacin de individuos, cada uno de los cuales representa una solucin
factible a un problema dado. A cada individuo se le asigna un valor puntuacin,
relacionado con la bondad de dicha solucin. En la naturaleza esto equivaldra al grado de
efectividad de un organismo para competir por unos determinados recursos. Cuanto mayor
sea la adaptacin de un individuo al problema, mayor ser la probabilidad de que el mismo
sea seleccionado para reproducirse, cruzando su material gentico con otro individuo
seleccionado de igual forma. Este cruce producir nuevos individuos, descendientes de los

anteriores, los cuales comparten algunas de las caractersticas de sus padres. Cuanto menor
sea la adaptacin de un individuo, menor ser la probabilidad de que dicho individuo sea
seleccionado para la reproduccin, y por tanto de que su material gentico se propague en
sucesivas generaciones.

3. Base biolgica
El algoritmo gentico es una tcnica de bsqueda basada en la teora de la evolucin de
Darwin, que ha cobrado tremenda popularidad en todo el mundo durante los ltimos aos,
por lo que la comunidad cientfica internacional ha mostrado un creciente inters en una
nueva tcnica de bsqueda basada en la teora de la evolucin y que se conoce como el
algoritmo gentico. Esta tcnica se basa en los mecanismos de seleccin que utiliza la
naturaleza, de acuerdo a los cuales los individuos ms aptos de una poblacin son los que
sobreviven, al adaptarse ms fcilmente a los cambios que se producen en su entorno. Hoy
en da se sabe que estos cambios se efectan en los genes de un individuo (unidad bsica de
codificacin de cada uno de los atributos de un ser vivo), y que sus atributos ms deseables
(i.e., los que le permiten adaptarse mejor a su entorno) se transmiten a sus descendientes
cuando ste se reproduce sexualmente.

4. Codificacin de problemas
El Algoritmo Gentico Simple, se representa en la Ilustracin 1. Como se ver a
continuacin, se necesita una codificacin o representacin del problema, que resulte
adecuada al mismo. Adems se requiere una funcin de ajuste o adaptacin al problema, la
cual asigna un nmero real a cada posible solucin codificada.
Ilustracin 1: Algoritmo Gentico Simple

Se supone que los individuos (posibles soluciones del problema), pueden representarse
como un conjunto de parmetros (que denominaremos genes), los cuales agrupados forman
una ristra de valores (a menudo referida como cromosoma). Si bien el alfabeto utilizado
para representar los individuos no debe necesariamente estar constituido por el (0, l), buena
parte de la teora en la que se fundamentan los Algoritmos Genticos utiliza dicho alfabeto.
En trminos biolgicos, el conjunto de parmetros representando un cromosoma particular
se denomina fenotipo. El fenotipo contiene la informacin requerida para construir un
organismo, el cual se refiere como genotipo. Los mismos trminos se utilizan en el campo
de los Algoritmos Genticos. La adaptacin al problema de un individuo depende de la
evaluacin del genotipo. Esta ltima puede inferirse a partir del fenotipo, es decir puede ser
computada a partir del cromosoma, usando la funcin de evaluacin. La funcin de
adaptacin debe ser diseada para cada problema de manera especfica. Dado un
cromosoma particular, la funcin de adaptacin le asigna un nmero real, que se supone
refleja el nivel de adaptacin al problema del individuo representado por el cromosoma.

5. Principales algoritmos
5.1.
Remplazo
Proceso de reemplazo: a partir de los (n) miembros de la poblacin de criadores y de los (s)
miembros de la poblacin de descendientes se debe obtener una nueva poblacin de n
miembros. Para hacerlo existen diferentes criterios:

Reemplazo inmediato (o al vuelo): los s descendientes sustituyen a sus respectivos


progenitores.

Reemplazo con factor de llenado: los s descendientes sustituyen a aquellos


miembros de la poblacin de criadores que ms se les parezcan.

Reemplazo por insercin (o de tipo "coma"): segn el tamao relativo de la


descendencia respecto de la poblacin se distinguen dos casos:
a) s n: se muestrean para ser eliminados s miembros de la poblacin de criadores
(normalmente los perores). Esos miembros sern sustituidos por los
descendientes.
b) s > n: se muestrean n miembros de la poblacin de descendientes y se constituye
con ellos la nueva poblacin. Ntese que con este modo cualquier individuo slo
puede sobrevivir a lo sumo una generacin.

5.2.

Copia

La copia es la otra estrategia reproductiva para la obtencin de una nueva generacin a


partir de la anterior. A diferencia del cruce, se trata de una estrategia de reproduccin
asexual. Consiste simplemente en la copia de un individuo en la nueva generacin.
El porcentaje de copias de una generacin a la siguiente es relativamente reducido, pues en
caso contrario se corre el riesgo de una convergencia prematura de la poblacin hacia ese
individuo. De esta manera el tamao efectivo de la poblacin se reducira notablemente y la
bsqueda en el espacio del problema se focalizara en el entorno de ese individuo.
Lo que generalmente se suele hacer es seleccionar dos individuos para el cruce, y si ste
finalmente no tiene lugar, se insertan en la siguiente generacin los individuos
seleccionados.
5.3.

Elitismo

El mtodo ms utilizado para mejorar la convergencia de los algoritmos genticos es el


elitismo. Consiste bsicamente en realizar la etapa de seleccin en dos partes:
a) Se muestrea una lite de r miembros de entre los mejores de la poblacin inicial y se
incorporan directamente a la poblacin final, sin pasar por la poblacin intermedia.
b) La poblacin auxiliar de criadores se muestrea de entre los n r restantes miembros
de la poblacin inicial.
Comnmente, el tamao de la lite r es bastante pequeo (1 2 para n=50), y el tipo de
muestreo es bien directo o bien por sorteo, ambos en la variedad diversa.
Bajo ciertas condiciones muy generales, la introduccin del elitismo garantiza la
convergencia terica al ptimo global; en la prctica, mejora la velocidad de convergencia
de los algoritmos genticos cuando la funcin de evaluacin es unidmodal (no hay
subptimos), sin embargo la velocidad de convergencia empeora con funciones fuertemente
multimodales.
Con tamaos de poblacin pequeos se consiguen efectos similares a los del elitismo
introduciendo reinicializaciones peridicas en los algoritmos genticos: cada vez que el
algoritmo gentico converge se salvan los mejores individuos, se reinicializan los dems y
se vuelve a comenzar. La reinicializacin tiene efectos beneficiosos sobre las prestaciones
del mtodo debido a que introduce diversidad, requisito especialmente crtico en los
algoritmos genticos con poblaciones pequeas.

5.4.

Mutacin

La mutacin se considera un operador bsico, que proporciona un pequeo elemento de


aleatoriedad en la vecindad (entorno) de los individuos de la poblacin. Si bien se admite
que el operador de cruce es el responsable de efectuar la bsqueda a lo largo del espacio de
posibles soluciones, tambin parece desprenderse de los experimentos efectuados por
varios investigadores que el operador de mutacin va ganando en importancia a medida que
la poblacin de individuos va convergiendo (Davis, 1985).
Schaffer y col. (1989) encuentran que el efecto del cruce en la bsqueda es inferior al que
previamente se esperaba. Utilizan la denominada evolucin primitiva, en la cual, el proceso
evolutivo consta tan solo de seleccin y mutacin. Encuentran que dicha evolucin
primitiva supera con creces a una evolucin basada exclusivamente en la seleccin y el
cruce. Otra conclusin de su trabajo es que la determinacin del valor ptimo de la
probabilidad de mutacin es mucho ms crucial que el relativo a la probabilidad de cruce.
La bsqueda del valor ptimo para la probabilidad de mutacin, es una cuestin que ha sido
motivo de varios trabajos. As, De Jong (1975) recomienda la utilizacin de una
probabilidad de mutacin del bit de l1, siendo l la longitud del string. Schaffer y col. (1989)
utilizan resultados experimentales para estimar la tasa optima proporcional a 1/ 0.9318l0.4535,
donde denota el nmero de individuos en la poblacin.
Si bien en la mayora de las implementaciones de Algoritmos Genticos se asume que tanto
la probabilidad de cruce como la de mutacin permanecen constantes, algunos autores han
obtenido mejores resultados experimentales modificando la probabilidad de mutacin a
medida que aumenta el nmero de iteraciones. Pueden consultarse los trabajos de Ackley
(1987), Bramlette (1991), Fogarty (1989) y Michalewicz y Janikow (1991).

6. Operadores genticos
Una vez seleccionados dos padres, sus cromosomas se combinan, utilizando habitualmente
los operadores de cruce y mutacin. Las formas bsicas de dichos operadores se describen a
continuacin.

6.1. Seleccin
El operador de seleccin de padres ms utilizado, es el denominado operador de seleccin
proporcional a la funcin objetivo, en la cual cada individuo tiene una, probabilidad de ser
seleccionado como padre que es proporcional al valor de su funcin objetivo.

Denotando por ppropj,t la probabilidad de que el individuo Ijt sea seleccionado como padre,
se tiene que:

Este operador de seleccin es invariante ante un cambio de escala, pero no ante una
traslacin.
6.2.

Cruce

El operador de cruce, coge dos padres seleccionados y corta sus ristras de cromosomas en
una posicin escogida al azar, para producir dos subristras iniciales y dos subristras finales.
Despus se intercambian las subristras finales, producindose dos nuevos cromosomas
completos (vase la Ilustracin 2). Ambos descendientes heredan genes de cada uno de los
padres. Este operador se conoce como operador de cruce basado en un punto.
Habitualmente el operador de cruce no se aplica a todos los pares de individuos que han
sido seleccionados para emparejarse, sino que se aplica de manera aleatoria, normalmente
con una probabilidad comprendida entre 0.5 y 1.0. En el caso en que el operador de cruce
no se aplique, la descendencia se obtiene simplemente duplicando los padres.
Ilustracin 2: Operador de cruce basado en un punto

7. Ejemplos (ejercicio prctico)


Vamos a partir de una funcin f(x) muy sencilla:
f(x) = x2
Imagina que deseas encontrar el valor de x que hace que la funcin f(x) alcance su valor
mximo, pero restringiendo a la variable x a tomar valores comprendidos entre 0 y 31. An
ms, a x slo le vamos a permitir tomar valores enteros, es decir: 0,1,2,3,...,30, 31.
Obviamente el mximo se tiene para x = 31, donde f vale 961. No necesitamos saber
algoritmos genticos para resolver este problema, pero su sencillez hace que el algoritmo
sea ms fcil de comprender.
Lo primero que debemos hacer es encontrar una manera de codificar las posibles soluciones
(posibles valores de x). Una manera de hacerlo es con la codificacin binaria. Con esta
codificacin un posible valor de x es (01011). Cmo se interpreta esto? Muy sencillo:
multiplica la ltima componente (un 1) por 1, la penltima (un 1) por 2, la anterior (un 0)
por 4, la segunda (un 1) por 8 y la primera (un 0) por 16 y a continuacin haz la suma: 11.
Observa que (00000) equivale a x = 0 y que (11111) equivale a x = 31.
A cada posible valor de la variable x en representacin binaria le vamos a llamar individuo.
Una coleccin de individuos constituye lo que se denomina poblacin y el nmero de
individuos que la componen es el tamao de la poblacin. Una vez que tenemos codificada
la solucin, debemos escoger un tamao de poblacin. Para este ejemplo ilustrativo vamos
a escoger 6 individuos.
Debemos partir de una poblacin inicial. Una manera de generarla es aleatoriamente: coge
una moneda y lnzala al aire; si sale cara, la primera componente del primer individuo es
un 0 y en caso contrario un 1. Repite el lanzamiento de la moneda y tendremos la segunda
componente del primer individuo (un 0 s sale cara y un 1 s sale cruz). As hasta 5 veces y
obtendrs el primer individuo. Repite ahora la secuencia anterior para generar los
individuos de la poblacin restantes. En total tienes que lanzar 5 * 6 = 30 veces la moneda.
Nuestro siguiente paso es hacer competir a los individuos entre s. Este proceso se conoce
como seleccin. La tabla 1 resume el proceso.

10

Tabla 1:SELECCIN

Cada fila en la tabla 1 est asociada a un individuo de la poblacin inicial. El significado de


cada columna de la tabla es el siguiente:
(1) = Nmero que le asignamos al individuo.
(2)= Individuo en codificacin binaria.
(3) = Valor de x.
(4) = Valor de f(x).
Observa que el mejor individuo es el 5 con f = 676. Calcula la media de f y obtendrs
fmed=324.3. En cuanto a la columna (5) ahora te lo explico. Una manera de realizar el
proceso de seleccin es mediante un torneo entre dos. A cada individuo de la poblacin se
le asigna una pareja y entre ellos se establece un torneo: el mejor genera dos copias y el
peor se desecha. La columna (5) indica la pareja asignada a cada individuo, lo cual se ha
realizado aleatoriamente. Existen muchas variantes de este proceso de seleccin, aunque
este mtodo nos vale para ilustrar el ejemplo.
Despus de realizar el proceso de seleccin, la poblacin que tenemos es la mostrada en la
columna (2) de la tabla 2. Observa, por ejemplo, que en el torneo entre el individuo 1 y el 6
de la poblacin inicial, el primero de ellos ha recibido dos copias, mientras que el segundo
cae en el olvido.

11

Tabla 2: CRUCE

Tras realizar la seleccin, se realiza el cruce. Una manera de hacerlo es mediante el cruce
1X: se forman parejas entre los individuos aleatoriamente de forma similar a la seleccin.
Dados dos individuos pareja se establece un punto de cruce aleatorio, que no es ms que un
nmero aleatorio entre 1 y 4 (la longitud del individuo menos 1). Por ejemplo, en la pareja
2-3 el punto de cruce es 3, lo que significa que un hijo de la pareja conserva los tres
primeros bits del padre y hereda los dos ltimos de la madre, mientras que el otro hijo de la
pareja conserva los tres primeros bits de la madre y hereda los dos ltimos del padre. La
poblacin resultante se muestra en la columna (2) de la tabla 3.
Tabla 3: POBLACIN TRAS EL CRUCE

En la columna (3) tienes el valor de x; en la siguiente tienes el valor de f correspondiente.


Fjate en que ahora el valor mximo de f es 784 (para el individuo 2), mientras que antes de
la seleccin y el cruce era de 676. Adems fmed ha subido de 324.3 a 389.3. Qu quiere
decir esto? Simplemente que los individuos despus de la seleccin y el cruce son mejores
que antes de estas transformaciones.
El siguiente paso es volver a realizar la seleccin y el cruce tomando como poblacin
inicial la de la tabla 3. Esta manera de proceder se repite tantas veces como nmero de

12

iteraciones t fijes. Y cul es el ptimo?. En realidad un algoritmo gentico no te garantiza


la obtencin del ptimo pero, si est bien construido, te proporcionar una solucin
razonablemente buena. Puede que obtengas el ptimo, pero el algoritmo no te confirma que
lo sea. As que qudate con la mejor solucin de la ltima iteracin. Tambin es buena idea
ir guardando la mejor solucin de todas las iteraciones anteriores y al final quedarte con la
mejor solucin de las exploradas.
Consideraciones adicionales
En problemas reales en los que se aplican los algoritmos genticos, existe la tendencia a la
homogenizacin de la poblacin, es decir a que todos los individuos de la misma sean
idnticos. Esto impide que el algoritmo siga explorando nuevas soluciones, con lo que
podemos quedar estancados en un mnimo local no muy bueno.
Existen tcnicas para contrarrestar esta "deriva gentica". El mecanismo ms elemental,
aunque no siempre suficientemente eficaz, es introducir una mutacin tras la seleccin y el
cruce. Una vez que has realizado la seleccin y el cruce escoges un nmero determinado de
bits de la poblacin y los alteras aleatoriamente. En nuestro ejemplo consiste simplemente
en cambiar algunos(s) bit(s) de 1 a 0 de 0 a 1.

Vous aimerez peut-être aussi