Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Algoritmos Geneticos
Algoritmos Geneticos
Kd(I
j
t
,I
i
t
) si d(I
j
t
,I
i
t
)<K,
0 si d(I
j
t
,I
i
t
)K.
(1)
A continuacin para cada individuo I
j
t
denimos
t
j
=
ij
h(d(I
j
t
, I
i
t
)), valor que
utilizaremos para devaluar la funcin objetivo del individuo en cuestin. Es decir,
g(I
j
t
) = g(I
j
t
)/
t
j
. De esta manera aquellos individuos que estn cercanos entre s
vern devaluada la probabilidad de ser seleccionados como padres, aumentndose
la probabilidad de los individuos que se encuentran ms aislados.
(la distancia de Hamming se dene como el nmero de bits que tienen que cam-
biarse para transformar una palabra de cdigo vlida en otra palabra de cdigo
vlida.
Si dos palabras de cdigo dieren en una distancia d, se necesitan d errores para
convertir una en la otra.
Por ejemplo:
La distancia Hamming entre 1011101 y 1001001 es 2.
La distancia Hamming entre 2143896 y 2233796 es 3.
La distancia Hamming entre toned y roses es 3.)
2 ALGORITMOS GENTICOS 25
2.1.5. Operador de Seleccin
El operador de Seleccin es el encargado de transmitir y conservar aquellas carac-
tersticas de la soluciones que se consideran valiosas a lo largo de las generacio-
nes. El principal medio para que la informacin til se transmita es que aquellos
individuos mejor adaptados (mejor valor de funcin de evaluacin) tengan ms
probabilidades de reproducirse. Sin embargo, es necesario tambin incluir un fac-
tor aleatorio que permita reproducirse a individuos que aunque no estn muy bien
adaptados, puedan contener alguna informacin til para posteriores generacio-
nes, con el objeto de mantener as tambin una cierta diversidad en cada pobla-
cin. Algunas de las tcnicas de las cuales se dispone son las siguientes:
Ruleta o Seleccin Proporcional: Con este mtodo la probabilidad que tiene un
individuo de reproducirse es proporcional a su valor de funcin de evaluacin, es
decir, a su adaptacin. En este mtodo se dene un rango con las caractersticas de
la seleccin por sorteo. El nmero al azar ser un nmero aleatorio forzosamente
menor que el tamao del rango. El elemento escogido ser aquel en cuyo rango
est el nmero resultante de sumar el nmero aleatorio con el resultado total que
sirvi para escoger el elemento anterior. El comportamiento es similar al de una
ruleta, donde se dene un avance cada tirada a partir de la posicin actual. Tiene
la ventaja de que no es posible escoger dos veces consecutivas el mismo elemento,
y que puede ser forzado a que sea alta la probabilidad de que no sean elementos
prximos en la poblacin -esto ltimo no es una ventaja de por s; salvo que al-
gunos de los otros operadores genticos, es mejor utilizar un mtodo de seleccin
directa basado en la posicin relativa de los individuos de la poblacin-.
Seleccin por Ranking: Desarrollado por Whitley(1989) consiste en calcular las
probabilidades de reproduccin atendiendo a la ordenacin de la poblacin por el
valor de adaptacin en vez de atender simplemente a su valor de adecuacin. Estas
probabilidades se pueden calcular de diversas formas, aunque el mtodo habitual
es el ranking lineal (Baker (1985)).
Seleccin por Torneo: Reporta un valor computacional muy bajo debido a su sen-
cillez. Se selecciona un grupo de t individuos (normalmente t = 2, torneo binario)
y se genera un nmero aleatorio entre 0 y 1. Si este nmero es menor que un cierto
umbral K (usualmente 0,75), se selecciona para reproducirse al individuo con me-
jor adaptacin, y si este nmero es menor que K, se selecciona, por el contrario,
al individuo con peor adaptacin.
Esta tcnica tiene la ventaja de que permite un cierto grado de elitismo -el mejor
2 ALGORITMOS GENTICOS 26
nunca va a morir, y los mejores tienen ms probabilidad de reproducirse y de emi-
grar que los peores- pero sin producir una convergencia gentica prematura, si la
poblacin es, al menos, un orden de magnitud superior al del nmero de elemen-
tos involucrados en el torneo. En caso de que la diferencia sea menor no hemos
observado mucha diferencia entre emplear el torneo o no.
2.1.6. Operador de Cruce
El operador de cruce permite realizar una exploracin de toda la informacin al-
macenada hasta el momento en la poblacin y combinarla para crear mejores in-
dividuos. Dentro de los mtodos habituales destacamos los siguientes:
Cruce de un punto: Es el mtodo de cruce ms sencillo. Se selecciona una posicin
en las cadenas de los progenitores, y se intercambian los genes a la izquierda de
esta posicin.
Cruce de n puntos: Es una generalizacin del mtodo anterior. Se seleccionan
varias posiciones (n) en las cadenas de los progenitores y se intercambian los
genes a ambos lados de estas posiciones.
Cruce Uniforme: Se realiza un test aleatorio para decidir de cual de los progeni-
tores se toma cada posicin de la cadena.
Cruces para permutacin: Existe una familia de cruces especcas para los pro-
blemas de permutacin, siendo algunos de ellos:
Cruce de mapeamiento parcial: Toma una subsecuencia del genoma del
padre y procura preservar el orden absoluto de los fenotipos -es decir, orden
y posicin en el genoma- del resto del genoma lo ms parecido posible de
la madre.
Cruce de orden: toma una subsecuencia del genoma del padre y procura
preservar el orden relativo de los fenotipos del resto del genoma lo ms
parecido posible de la madre.
Cruce de ciclo: Tomamos el primer gen del genoma del padre, ponindolo
en la primera posicin del hijo, y el primer gen del genoma de la madre, po-
nindolo dentro del genoma del hijo en la posicin que ocupe en el genoma
del padre. El fenotipo que est en la posicin que ocupa el gen del genoma
del padre igual al primer gen del genoma de la madre se va a colocar en la
2 ALGORITMOS GENTICOS 27
posicin que ocupe en el genoma del padre, y as hasta rellenar el genoma
del hijo.
Es una buena idea que, tanto la codicacin como la tcnica de cruce, se hagan de
manera que las caractersticas buenas se hereden; o, al menos, no sea mucho peor
que el peor de los padres. En problemas en los que, por ejemplo, la adaptacin es
funcin de los pares de genes colaterales, el resultante del cruce uniforme tiene
una adaptacin completamente aleatoria.
2.1.7. Operador de Mutacin
La mutacin se considera un operador bsico, que proporciona un pequeo ele-
mento 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 bs-
queda a lo largo del espacio de posibles soluciones, tambin parece desprenderse
de los experimentos efectuados por varios investigadores que el operador de mu-
tacin va ganando en importancia a medida que la poblacin de individuos va
convergiendo (Davis). El objetivo del operador de mutacin es producir nuevas
soluciones a partir de la modicacin de un cierto nmero de genes de una solu-
cin existente, con la intencin de fomentar la variabilidad dentro de la poblacin.
Existen muy diversas formas de realizar la mutacin, desde la ms sencilla ( Pun-
tual ), donde cada gen muta aleatoriamente con independencia del resto de genes,
hasta conguraciones ms complejas donde se tienen en cuanta la estructura del
problema y la relacin entre los distintos genes.
Schaer y col. 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 slo de seleccin y mutacin. Encuentran que di-
cha 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 rela-
tivo a la probabilidad de cruce. Si bien en la mayora de las implementaciones de
AG se asume que tanto la probabilidad de cruce como la de mutacin permane-
cen constantes, algunos autores han obtenido mejores resultados experimentales
modicando la probabilidad de mutacin a medida que aumenta el nmero de
iteraciones.
2 ALGORITMOS GENTICOS 28
2.1.8. Reemplazo de la Poblacin y Condicin de Parada
Cada vez que se aplica el operador de cruce, nos encontramos con un nmero de
nuevos individuos (la descendencia) que se han de integrar en la poblacin para
formar la siguiente generacin. Esta operacin se puede hacer de diversas formas,
pero en general existen tres mtodos fundamentales para realizar el reemplazo:
- Cuando el nmero de individuos llega a un cierto nmero, se elimina un subcon-
junto de la poblacin conteniendo a los individuos peor adaptados.
- Cada vez que se crea un nuevo individuo, en la poblacin se elimina el peor
adaptado para dejar su lugar a este nuevo individuo.
- Cada vez que se crea un nuevo individuo, en la poblacin se elimina aleatoria-
mente una solucin, independientemente de su adaptacin.
En cuanto a el criterio de parada, generalmente viene determinado por criterios a
priori sencillos, como un nmero mximo de generaciones o un tiempo mximo
de resolucin, o ms ecientemente por estrategias relacionadas con indicadores
del estado de evolucin de la poblacin, como por la prdida de diversidad dentro
de la poblacin o por no haber mejora en un cierto nmero de iteraciones, siendo
por lo general una condicin mixta lo ms utilizado, es decir, limitar el tiempo de
ejecucin a un nmero de iteraciones y tener en cuenta algn indicador del esta-
do de la poblacin para considerar la convergencia antes de alcanzar tal limitacin.
El problema que confrontan los AG consiste en identicar dentro de un espacio
de hiptesis candidato, la mejor, donde la mejor hiptesis es aquella que optimiza
una medida numrica predenida para el problema, llamada adaptacin ( f itness)
de la hiptesis. Por ejemplo, si la tarea de aprendizaje es el problema de aproxi-
mar una funcin desconocida dado un conjunto de entrenamiento de entradas y
salidas, la adaptacin puede denirse como la precisin de la hiptesis sobre el
conjunto de entrenamiento (porcentaje de xitos al predecir la salida). Si la tarea
de aprendizaje tiene la forma de un juego, la adaptacin puede medirse en trmi-
nos del porcentaje de partidas ganadas. Aunque los detalles de implementacin
varan entre diferentes AG, todo comparten en general la siguiente estructura: El
algoritmo opera iterativamente, actualizando un conjunto de hiptesis llamada po-
blacin. En cada iteracin, todos los miembros de la poblacin son evaluados de
acuerdo a una funcin de adaptacin. Una nueva poblacin es generada, selec-
cionando probabilsticamente los individuos de mayor adaptacin en la poblacin
presente. Algunos de estos individuos pasan intactos a la siguiente generacin.
2 ALGORITMOS GENTICOS 29
Otros son seleccionados para crear una nueva generacin, aplicando operaciones
genticas como el cruce y la mutacin.
El prototipo de un AG simple se muestra a continuacin:
-
generacin de la poblacin inicial
while no se cumpla la condicin de parada do
. evaluacin de los individuos
. seleccin
. cruce
. mutacin
end while
-
Las entradas de este algoritmo incluyen una funcin de adaptacin para evaluar
los candidatos a hiptesis, un umbral deniendo el nivel aceptado de adaptacin
para dar por terminado el algoritmo, el tamao que debe mantener la poblacin, y
los parmetros necesarios para determinar como evoluciona la poblacin, esto es,
la fraccin de la poblacin que ser remplazada en cada generacin y la tasa de
mutacin presente.
Observen que cada iteracin de este algoritmo produce una nueva generacin de
hiptesis, con base en la poblacin actual de hiptesis. Primero, un cierto nmero
de hiptesis en la poblacin ((1 r) p) es seleccionado probabilsticamente para
su inclusin en la prole. La probabilidad de una hipotesis h
i
pob de ser selec-
cionada esta dada por:
P
r
(h
i
) =
adaptacion(h
i
)
p
j=1
adaptacion(h
i
)
(2)
Por lo tanto, la probabilidad de que una hiptesis sea seleccionada es proporcional
a su propio indice de adaptacin, e inversamente proporcional a la adaptacin de
las hiptesis concurrentes en la misma poblacin.
Una vez que estos miembros de la poblacin son seleccionados para ser incluidos
en la generacin, el resto de los miembros de esta se genera usando el operador
de cruce.
Este operador, selecciona (r p)/2 pares de hiptesis en la poblacin y genera
dos descendientes para cada par, combinando porciones de ambos padres. Los
padres son elegidos probabilsticamente con la P
r
(h
i
) denida como hasta ahora.
2 ALGORITMOS GENTICOS 30
En este momento, la generacin tiene el tamao de poblacin deseado p, as que
solo resta seleccionar m elementos de la poblacin para aplicar la operacin de
mutacin. Estos elementos son elegidos al azar y los cambios efectuados en ellos
son tambin aleatorios.
Algunos enfoques de AG practican un elitismo al evitar explcitamente que las
mejores hiptesis encontradas hasta ese momento, puedan mutar.
Este AG lleva a cabo una bsqueda por barrido (beam), paralela y aleatoria de
hiptesis que tienen un buen desempeo de acuerdo a la funcin de adaptacin.
2.1.9. Otros Operadores
Estos operadores no son utilizados en todos los problemas, solamente son em-
pleados en algunos, y en principio su variedad es innita. Generalmente son ope-
radores que exploran el espacio de soluciones de una forma ms ordenada, y que
actan ms en las ltimas fases de la bsqueda, en la cul se pasa de soluciones
asi buenas.
a
"buenas"soluciones.
Cromosomas de Longitud Variable: Hasta ahora se han descrito cromoso-
mas de longitud ja, donde se conoce de antemano el nmero de parmetros
de un problema. Pero hay problemas en los que esto no sucede. Por ejemplo,
en un problema de clasicacin, donde dado un vector de entrada, queremos
agruparlo en una serie de clases, podemos no saber siquiera cuntas clases
hay. Por ejemplo, en un perceptrn hay reglas que dicen cuantas neuronas
se deben de utilizar en la capa oculta; pero en un problema determinado
puede que no haya ninguna regla heurstica aplicable; se tendra que utilizar
los AG para hallar el nmero ptimo de neuronas.
En estos casos, se necesitan operadores ms: aadir y eliminar. Estos opera-
dores se utilizan para aadir un gen, o eliminar un gen del cromosoma. La
forma ms habitual de aadir un gen es duplicar uno ya existente, el cul
sufre mutacin y se aade al lado del anterior. En este caso, los operadores
del AG simple (seleccin, mutacin, cruce) funcionarn de la forma habi-
tual, salvo, claro est, que slo se har cruce en la zona del cromosoma de
menor longitud.
Operadores de Nicho (Ecolgico): Otros operadores importantes son los
operadores de nicho. Estos operadores estn encaminados a mantener la
diversidad gentica de la poblacin, de forma que cromosomas similares
2 ALGORITMOS GENTICOS 31
sustituyan slo a cromosomas similares, y son especialmente tiles en pro-
blemas con muchas soluciones; un AG con estos operadores es capaz de
hallar todos los mximos, dedicndose cada especie a un mximo. Ms que
operadores genticos, son formas de enfocar la seleccin y la evaluacin de
la poblacin.
Uno de las formas de llevar esto a cabo es la introduccin del crowding
(apiamiento). Otra forma es introducir una funcin de comparticin o sha-
ring, que indica cun similar es un cromosoma al resto de la poblacin. La
puntuacin de cada individuo se dividir por esta funcin de comparticin,
de forma que se facilita la diversidad gentica y la aparicin de individuos
diferentes.
Tambin se pueden restringir los emparejamientos, por ejemplo, a aquellos
cromosomas que sean similares. Para evitar las malas consecuencias del
inbreeding (destinado a potenciar ciertas caractersticas frente a otras) que
suele aparecer en poblaciones pequeas, estos periodos se intercalan con
otros periodos en los cules el emparejamiento es libre.
Operadores Especializados: En una serie de problemas hay que restringir
las nuevas soluciones generadas por los operadores genticos, pues no todas
las soluciones generadas van a ser vlidas, sobre todo en los problemas con
restricciones. Por ello, se aplican operadores que mantengan la estructura
del problema. Otros operadores son simplemente generadores de diversi-
dad, pero la generan de una forma determinada:
Zap:En vez de cambiar un solo bit de un cromosoma, cambia un gen com-
pleto de un cromosoma.
Creep:Este operador aumenta o disminuye en 1 el valor de un gen; sirve
para cambiar suavemente y de forma controlada los valores de los genes.
Transposicin:Similar al cruce y a la recombinacin gentica (Cuando las
dos clulas sexuales, o gametos, una masculina y otra femenina se combi-
nan, los cromosomas de cada una tambin lo hacen, intercambindose ge-
nes, que a partir de ese momento pertenecern a un cromosoma diferente.),
pero dentro de un solo cromosoma; dos genes intercambian sus valores, sin
afectar al resto del cromosoma. Similar a este es el operador de eliminacin-
reinsercin, en el que un gen cambia de posicin con respecto a los dems.
2 ALGORITMOS GENTICOS 32
2.1.10. Aplicando Operadores Genticos
En toda ejecucin de un AG hay que decidir con qu frecuencia se va a aplicar
cada uno de los AG; en algunos casos, como en la mutacin o el cruce uniforme,
se debe de aadir algn parmetro adicional, que indique con qu frecuencia se
va a aplicar dentro de cada gen del cromosoma. La frecuencia de aplicacin de
cada operador estar en funcin del problema; teniendo en cuenta los efectos de
cada operador, tendr que aplicarse con cierta frecuencia o no. Generalmente, la
mutacin y otros operadores que generen diversidad se suelen aplicar con poca
frecuencia; la recombinacin se suele aplicar con frecuencia alta.
En general, la frecuencia de los operadores no vara durante la ejecucin del al-
goritmo, pero hay que tener en cuenta que cada operador es ms efectivo en un
momento de la ejecucin. Por ejemplo, al principio, los ms ecaces son la mu-
tacin y la recombinacin; posteriormente, cuando la poblacin ha convergido en
parte, la recombinacin no es til, pues se est trabajando con individuos bastante
similares, y es poca la informacin que se intercambia. Sin embargo, si se produce
un estancamiento, la mutacin tampoco es til, pues est reduciendo el AG a una
bsqueda aleatoria; y hay que aplicar otros operadores. En todo caso, se pueden
usar operadores especializados.
Ejemplo simple de AG:
Se requiere calcular el mximo de una funcin f(x) en un intervalo [a,b]. Para esto
solamente se deriva la funcin y se iguala a cero. Pero se presenta un pequeo
inconveniente y es que no se conoce a f(x), aunque s se puede calcular o estimar
su valor en cualquier punto. He aqu los pasos a seguir:
Se estiman la resolucin con la que se desea trabajar. Es decir, se elige el
nmero de puntos que se van a examinar dentro del intervalo. Si, por ejem-
plo, el intervalo es el [0,100] y se asigna una resolucin de 0.5, entonces se
obtendrn 200 puntos en el intervalo.
Se genera una poblacin inicial de n individuos; que sern n nmeros (ele-
gidos al azar). Es decir, se obtiene a x
1
, x
2
, ..., x
n
. Todos ellos se encuentran
dentro del intervalo [a,b].
Ahora se le debe asignar mayor capacidad de reproduccin a los mejor do-
tados. Si se esta buscando el mximo, pues el mejor dotado ser aquel cuyo
valor de f (x
i
) sea mayor. De los n individuos que se tienen, se creara una
2 ALGORITMOS GENTICOS 33
poblacin intermedia, que ser la poblacin de los individuos que pasaran
a ser recombinados. Luego se calcula la frecuencia de cada uno de los n
genotipos en la primera poblacin, de la siguiente forma: p(x
i
) =
f (x
i
)
sumatotal
.
A continuacin denimos P(x
i
) como la funcin de distribucin: P(x
j
) es la
suma, desde 0 hasta j, de los p(x
i
).
Ejempo: Supongamos que n es igual a 4, y que, por ejemplo, se tiene:
f (x
0
) = 10
f(x
1
) = 40
f(x
2
) = 30
f(x
3
) = 20
Por lo tanto,
p(x
0
) = 0,1
p(x
1
) = 0,4
p(x
2
) = 0,3
p(x
3
) = 0,2
y tambin,
P(x
0
) = 0,1
P(x
1
) = 0,5
P(x
2
) = 0,8
P(x
3
) = 1,0
Es claro que los p(x
i
) suman 1. Acontinuacin se generan n nmeros aleato-
rios entre 0 y 1. Cada uno de esos nmeros por ejemplo, t estar relacionado
con un individuo de la generacin intermedia; de la siguiente forma:
si t est entre P(x
i
) y P(x
i+1
) escogemos x
i+1
.
Siguiendo con el ejemplo: Si los cuatro nmeros aleatorios son 0.359, 0.188,
0.654 y 0.399, entonces la generacin intermedia ser:
Como se ve, est claro que, pese al azar el individuo mejor dotado es el ms
favorecido.
El siguiente paso es la recombinacin. Se puede hacer de la forma que pa-
rezca ms adecuada. En primer lugar hay que buscar las parejas. Se trata de
2 ALGORITMOS GENTICOS 34
Nmero Aleatorio Individuo Seleccionado Nuevo Valor
0.1<0.359<0.5 x
1
x
0
0.1<0.188<0.5 x
1
x
1
0.5<0.654<0.8 x
2
x
2
0.1<0.399<0.5 x
1
x
3
obtener una nueva generacin como mezcla de esta con la que se esta tra-
bajando. Una vez que se tienen las parejas, se hace la recombinacin. Una
alternativa: media aritmtica; otra: media geomtrica. Otra, la ms usada:
cortar los dos nmeros "paps"por un lugar al azar y conseguir los "hi-
jos"intercambiando partes.
Para ejemplicar mejor veamos: si los individuos son 456 y 123, se elige
al azar un nmero entre 1 y 2 (ya que hay tres cifras). Si, por ejemplo, se
obtiene el 1, entonces un posible hijo podra ser el 4-23 y otro 1-56. Aunque
lo ms habitual es trabajar en base 2 (por lo menos, los nmeros sern ms
largos).
En este momento ya se tiene una nueva generacin. Generalmente, mejor
dotada que la inicial. Lo que se hace ahora es volver al tercer punto (clculo
de una poblacin intermedia). Por supuesto, el algoritmo se para cuando se
considere prudente o necesario. Por ejemplo, cuando se lleve un nmero de
iteraciones determinado, o cuando la poblacin no mejore demasiado.
Una variante posible es permitir la existencia de mutaciones (por ejemplo,
introducir cada cierto nmero de generaciones alguna variacin en una ci-
fra en busca de mejores soluciones. Esto es interesante debido a que, por
ejemplo, si se estn dando vueltas en torno a un mximo local, la variacin
introducida podra llevarnos hacia un genotipo mejor dotado.
Otra variante es la elitista, consistente en que los mejores genotipos no se
recombinen, sino que pasen directamente -tal cual- a la siguiente genera-
cin.
Ejemplo:
Un AG puede verse como un mtodo de optimizacin general, que busca en un
gran espacio de candidatos, a los elementos que tienen mejor desempeo con res-
pecto a la funcin de objetivo. Aunque no garantizan encontrar el elemento opti-
2 ALGORITMOS GENTICOS 35
mo, los AG generalmente tienen xito en encontrar un elemento con alta adapta-
cin.
Para ilustrar el uso de los AG en el aprendizaje de conceptos, se presentara breve-
mente el sistema GABIL que usa AG para aprender conceptos booleanos repre-
sentados como un conjunto disyuntivo de reglas preposicionales.
Se tomara el parmetro r = 0,6 que determina el porcentaje de la poblacin que
ser remplazada por cruce,. El parmetro m que determina la tasa de mutacin,
fue jado en 0.001.
Estos son valores tipicos para ambos parmetros. El tamao de la poblacin vario
entre 100 y 1000, dependiendo de la tarea de aprendizaje especca en cada expe-
rimento. Las hiptesis en GABIL se representan como un conjunto disyuntivo de
reglas proposicionales, solo que el atributo objetivo es codicado por un solo bit.
Para representar el conjunto de reglas, las cadenas representando reglas individua-
les son concatenadas. Por ejemplo, consideren un espacio de hiptesis donde las
pre-condiciones de las reglas son conjunciones restricciones sobre dos atributos
a
1
y a
2
. El atributo objetivo es c. Entonces, la hiptesis que consta de estas dos
reglas:
Si a
1
= T a
2
= F Entonces c = T; Si a
2
= T Entonces c = F, se representa por
la cadena:
a
1
a
2
c a
1
a
2
c
10 01 1 11 10 0
Observen que la longitud de la cadena de bits crece con el nmero de reglas en la
hiptesis. Esta longitud variable requiere una ligera modicacin en la denicin
de operador de cruce. El operador de cruce usado por GABIL es una extensin
estndar del operador de cruce en dos puntos.
En particular, dada la longitud variable de la cadena de bits representando las hi-
ptesis, el operador de corte debe estar restringido a aplicarse bajo las siguientes
condiciones: Dos padres son seleccionados, luego dos puntos de cruce son elegi-
dos aleatoriamente sobre el primer padre. Sea d
1
(d
2
) la distancia del punto mas a
la izquierda (mas a la derecha) al limite de la regla inmediatamente a la izquier-
da. Los puntos de cruce en el segundo padre se jan ahora aleatoriamente con la
restriccin de que deben tener los mismos valores d
1
(d
2
). Por ejemplo, si los dos
padres son:
2 ALGORITMOS GENTICOS 36
a
1
a
2
c a
1
a
2
c
h
1
= 10 01 1 11 10 0
y:
a
1
a
2
c a
1
a
2
c
h
2
= 01 11 0 10 01 0
y los puntos de cruce para el primer padre son los bits 1 y 8:
a
1
a
2
c a
1
a
2
c
h
1
= 1[0 01 1 11 1]0 0
entonces d
1
= 1 y d
2
= 3, por lo que los pares de puntos de cruce permitidos para
la hiptesis h
2
son: 1, 3 , 1, 8 y 6, 8 . Si el par 1, 3 es elegido:
a
1
a
2
c a
1
a
2
c
h
2
= 0[1 1]1 0 10 01 0
Por lo que la prole resultante de estas dos hiptesis es:
a
1
a
2
c
h
3
= 11 10 0
y:
a
1
a
2
c a
1
a
2
c a
1
a
2
c
h
4
= 00 01 1 11 11 0 10 01 0
Como se puede ver en el ejemplo, este operador de cruce permite que la prole
contenga diferente nmero de reglas que sus padres, y al mismo tiempo garantiza
que todas las cadenas de bits generadas de esta forma, representen conjuntos de
reglas bien denidos.
La funcin objetivo para cada hiptesis se basa en su precisin como clasicador
sobre un conjunto de ejemplos de entrenamiento. En particular, la funcin usada
para medir la adaptacin es:
adaptacion(h) = (correcto(h))
2
donde correcto(h) es el porcentaje de ejemplos bien clasicados por la hiptesis
h.
2 ALGORITMOS GENTICOS 37
2.2. ALGORITMOS GENTICOS PARALELOS
Un programa es paralelo si en cualquier momento de su ejecucin puede ejecutar
ms de un proceso. Para crear programas paralelos ecientes hay que poder crear,
destruir y especicar procesos as como la interaccin entre ellos. Bsicamente
existen tres formas de paralelizar un programa:
Paralelizacin de grano no: la paralelizacin del programa se realiza a
nivel de instruccin. Cada procesador hace una parte de cada paso del algo-
ritmo (seleccin, cruce y mutacin) sobre la poblacin comn.
Paralelizacin de grano medio: los programas se paralelizan a nivel de bu-
cle. Esta paralelizacin se realiza habitualmente de una forma automtica
en los compiladores.
Paralelizacin de grano grueso: se basan en la descomposicin del dominio
de datos entre los procesadores, siendo cada uno de ellos el responsable de
realizar los clculos sobre sus datos locales.
La paralelizacin de grano grueso tiene como atractivo la portabilidad, ya que
se adapta perfectamente tanto a multiprocesadores de memoria distribuida como
de memoria compartida. Este tipo de paralelizacin se puede a su vez realizar
siguiendo tres estilos distintos de programacin: paralelismo en datos, programa-
cin por paso de mensajes y programacin por paso de datos.
Paralelismo en datos: El compilador se encarga de la distribucin de los da-
tos guiado por un conjunto de directivas que introduce el programador. Estas
directivas hacen que cuando se compila el programa las funciones se distri-
buyan entre los procesadores disponibles. Como principal ventaja presenta
su facilidad de programacin. Los lenguajes de paralelismo de datos mas
utilizados son el estndar HPF (High Performance Fortran) y el OpenMP.
Programacin por paso de mensajes: El mtodo mas utilizado para pro-
gramar sistemas de memoria distribuida es el paso de mensajes o alguna
variante del mismo. La forma mas bsica consiste en que los procesos coor-
dinan sus actividades mediante el envo y la recepcin de mensajes. Las
libreras mas utilizadas son por este orden la estndar MPI (Message Pas-
sing Interface) y PVM (Parallel Virtual Machine).
2 ALGORITMOS GENTICOS 38
Programacin por paso de datos: A diferencia del modelo de paso de men-
sajes, la transferencia de datos entre los procesadores se realiza con primi-
tivas unilaterales tipo put-get, lo que evita la necesidad de sincronizacin
entre los procesadores emisor y receptor. Es un modelo de programacin de
muy bajo nivel pero muy eciente, aunque en la actualidad son muy pocos
los fabricantes que los soportan.
Una de las principales ventajas de los AG es que permite que sus operaciones se
puedan ejecutar en paralelo. Debido a que la evolucin natural trata con una po-
blacin entera y no con individuos particulares, excepto para la fase de seleccin,
durante la cual existe una competencia entre los individuos y en la fase de repro-
duccin, en donde se presentan iteraciones entre los miembros de la poblacin,
cualquier otra operacin de la poblacin, en particular la evaluacin de cada uno
de los miembros de la poblacin, pueden hacerse separadamente. Por lo tanto, casi
todas las operaciones en los AG son implcitamente paralelas.
Se ha establecido que la eciencia de los AG para encontrar una solucin optima,
esta determinada por el tamao de la poblacin. Por lo tanto, una poblacin grande
requiere de mas memoria para ser almacenada. Tambin se ha probado que toma
mayor cantidad de tiempo para converger. Si n es el tamao de la poblacin, la
convergencia esperada es n log(n).
Al utilizar computadores en paralelo, no solamente se provee de mas espacio de
almacenamiento, sino tambin con el uso de ellos se podrn producir y evaluar
mas soluciones en una cantidad de tiempo mas pequeo. Debido al paralelismo,
es posible incrementar el tamao de la poblacin, reducir el costo computacional
y mejorar el desempeo de los AG.
Probablemente el primer intento que se hizo para implementar los AG en arqui-
tecturas en paralelo fue en 1981, por John Grefenstette. Los primeros ensayos
consistan en un paralelismo global. Esta aproximacin trataba por paralelizar ex-
plcitamente las tareas paralelas implcitas de los AG secunciales, por lo tanto
la naturaleza de los problemas permaneca invariable. El algoritmo simplemente
manejaba una sencilla poblacin en donde cada individuo poda combinarse con
cualquiera de los otros, pero la generacin de los nuevos hijos y/o su evaluacin se
haca en paralelo. La idea bsica es que los diferentes procesadores puedan crear
nuevos individuos y computar sus aptitudes en paralelo, sin tener que comunicarse
con los otros.
2 ALGORITMOS GENTICOS 39
La evaluacin de la poblacin en paralelo es simple de implementar. Acada proce-
sador se le asigna un subconjunto de individuos para ser evaluados. Por ejemplo,
en un computador de memoria compartida, los individuos pueden estar almace-
nados en la memoria, y cada uno de los procesadores puede leer los cromosomas
asignados y puede grabar los resultados del computo de las aptitudes. Este mto-
do solamente supone que los AG trabajan con una generacin actualizada de la
poblacin. Se necesita adems, alguna sincronizacin entre las generaciones.
Generalmente, la mayor parte del tiempo de computo en un AG se gasta en la
funcion objetivo. El tiempo que se gasta en el manejo de los cromosomas durante
las fases de seleccin y recombinacin es despreciable. En un computador de me-
moria distribuida se puede almacenar la poblacin en un procesador "maestro", el
cual es responsable de enviar los individuos a los otros procesadores esclavos".
El "maestro", tambin es responsable por guardar los resultados de la evaluacin.
Una desventaja de esta implementacin es que se pueden presentar cuellos de bo-
tella, cuando los esclavos estn desocupados y solo el maestro esta trabajando.
Pero si se hace un buen uso del procesador maestro, se puede mejorar el factor de
balance, distribuyendo dinmicamente los individuos a los procesadores esclavos,
cuando ellos terminen sus trabajos.
Una segunda clase de AG paralelos consiste en dividir la poblacin en subpo-
blaciones, y cada una de ellas ejecutarlas en un procesador. El intercambio entre
subpoblaciones es posible por medio de un operador de "migracin".
Se emplea el modelo de islas para mostrar como los AG se comportan como si
el mundo fuera constituido por islas que se desarrollaran en forma independiente,
unas de las otras. En cada una de las islas, la poblacin es libre de converger hacia
un optimo diferente. El operador de migracin permite extraer de las diferentes
subpoblaciones las buenas caractersticas, para luego mezclarlas.
A continuacin se muestra el seudocdigo de un algoritmo con la evaluacin pa-
ralelizada:
do in parallel
generacin de la poblacin inicial
while no se cumpla la condicin de parada do
. evaluacin de los individuos
. seleccin
. produccin de nuevos individuos
. mutacin
end while
end parallel do
Escoger la mejor solucin
jcampos/EDA/ea/slides/9-
Algoritmos %20geneticos.pdf
[18] http://pbil.univ-lyon1.fr/library/subselect/html/genetic.html