Documentos de Académico
Documentos de Profesional
Documentos de Cultura
0912 F 51111 F 82 B 2 A 6100 Asdasdas 0000 Dsadsadasdasdsa
0912 F 51111 F 82 B 2 A 6100 Asdasdas 0000 Dsadsadasdasdsa
Resumen
Este artculo introduce en forma tutorial los algoritmos evolutivos de bsqueda denominados algoritmos
genticos. Estos algoritmos se inspiran en la mecnica de la seleccin natural y la gentica para
evolucionar una poblacin inicial de puntos sucesivamente hacia mejores regiones del espacio de
bsqueda. La evolucin de la poblacin se realiza mediante la aplicacin de operadores genticos
probabilsticos de seleccin, recombinacin y mutacin. Los algoritmos genticos requieren conocer
solamente el valor de la funcin objetivo en la poblacin de puntos y no sus derivadas. Esto ltimo
permite abordar una gran variedad de problemas de optimizacin no tratables mediante mtodos basados
en gradientes.
Se describe en detalle un algoritmo gentico simple con aplicacin a la optimizacin de parmetros
continuos, incluyendo diversos mtodos de seleccin : proporcional, ranking y torneo. La influencia del
mtodo de seleccin en la velocidad de convergencia del algoritmo gentico se ilustra mediante un
ejemplo de una funcin continua con mltiples mximos.
Se introducen los algoritmos de nichos paralelos que permiten extender los algoritmos genticos al caso
en que se requiera localizar y mantener mltiples soluciones dentro de una poblacin. Se describen dos
algoritmos de nichos paralelos : compartimiento y hacinamiento. Entre estos, el mtodo de hacinamiento
presenta el menor costo computacional y adems no requiere del ajuste de parmetros adicionales. Se
presentan resultados del algoritmo de hacinamiento para dos funciones conteniendo mltiples mximos.
En ambos casos el algoritmo encuentra y mantiene todos los ptimos globales.
Finalmente, se considera el problema de optimizacin con restricciones. Este problema se trata agregando
un trmino de penalizacin de las restricciones violadas en la funcin objetivo. Se ilustra un par de
ejemplos en los que se utiliza un algoritmo de hacinamiento con penalizacin. Los resultados indican que
los operadores genticos convencionales de recombinacin y mutacin pierden efectividad cuando la
solucin global se encuentra en la frontera del espacio de soluciones factibles. En este caso operadores
genticos alternativos tales como el crossover binomial obtienen mejores resultados.
1. Introduccin
Durante las ltimas dcadas ha habido un creciente
inters en algoritmos basados en el principio de la
evolucin (supervivencia del ms apto). Entre los
algoritmos evolutivos ms conocidos se incluyen los
algoritmos genticos [3,5,6,10], programacin
evolucionaria [4], estrategias evolutivas [2,9] y
programacin gentica [7]. El conjunto de estas
tcnicas se agrupa bajo el nombre de computacin
evolucionaria.
Los algoritmos evolutivos son mtodos robustos de
bsqueda, que permiten tratar problemas de
optimizacin donde el objetivo es encontrar un
conjunto de parmetros que minimizan o maximizan
una funcin de adaptacin (fitness). Estos algoritmos
operan con una poblacin de individuos
P( t ) = {x1t ,..., x nt } , para la iteracin t, donde cada
individuo xi representa un punto de bsqueda en el
espacio de las soluciones potenciales a un problema
dado. El desempeo de un individuo xi se evalua
segn una funcin de adaptacin f(xi). Esta funcin
permite ordenar del mejor al peor los individuos de la
poblacin en un continuo de grados de adaptacin.
La poblacin inicial evoluciona sucesivamente hacia
mejores regiones del espacio de bsqueda mediante
procesos probabilsticos de a) seleccin de los
individuos ms adaptados en la poblacin (a mayor
grado de adaptacin mayor probabilidad de dejar
descendencia) y b) modificacin por recombinacin
y/o mutacin de los individuos seleccionados.
comenzar
t =0
inicializar P(t)
evaluar P(t)
mientras (no condicin de trmino) hacer :
t = t+1
seleccionar P(t) a partir de P(t-1)
recombinar y/o mutar P(t)
evaluar P(t)
fin
fin
min
f ( x k 1 , x k 2 , L, x kn ),
(1)
j =1
fj
( x 1)
( M 1)
donde
x
( x ) = M , 1 + 2, = 2 + .
r
s = ( p1 , K , p k 1 , q k , K , q l )
r
v = ( q1 , K , q k 1 , p k , K , p l )
donde qi =
qi
1 qi
donde x , y [11
, ]. Esta funcin tiene un mnimo
global en cero y mltiples mnimos locales. En la Fig.
1.1 se ilustra la funcin de Bohachevsky invertida.
i {1,Ll} ,
si r > pm
si r pm
f ( j)
,
sh( d ij )
sh( d ) =
d
1 ( share
) , d share ,
0
otro caso
Si [ d ( p1 , c1 ) + d ( p 2 , c 2 )] [ d ( p1 , c 2 ) + d ( p 2 , c1 )]
{Si
f ( c1 ) < f ( p1 ) reemplazar p1 por c1
si
De otro modo
{Si
si
f ( c 2 ) < f ( p2 ) reemplazar
p2
por c 2 }
f ( c 2 ) < f ( p1 )
p1
por c 2
f ( c1 ) < f ( p 2 )
reemplazar
reemplazar
p2
por c1}
el
se
2(ln 2 )
algoritmo de hacinamiento
eligi la funcin sinusoide
x 0.1
0.8
sin 6 (5x ),
0 x 10
. .
f ( X ),
X = ( x1 ,..., x n ) n ,
l ( i ) x i u( i ),
1 i n ,
g j ( X ) 0,
h j ( X ) = 0,
j = 1,... q ,
j = q + 1, K , m.
f ( X ),
si X F
f ( X ) + Q ( X ),
otro caso
(4)
max{0, g j ( X )}, si 1 j q
h j ( X ) , si q + 1 j m.
(5)
1
2
m
j =1
f j2 ( X ),
(6)
Ejemplo 4.
Se consider el mismo algoritmo de hacinamiento
determinstico usado en los ejemplos anteriores, pero
sujeto a la penalizacin descrita por ecs. (4-6). Se
utiliz el siguiente esquema de enfriamiento de
temperaturas ( 0 ) = 1, ( t ) = 0.5 ( t 1).
Como primera funcin de prueba se utiliz la funcin
de Michalewicz
f ( X ) = x1 x 22 ,
min
sujeto a
2
1
2
2
x +x 20
Las soluciones globales son : X1*=(-0.832,-1.180),
X2*=(-0.832, 1.180) y f(X*) = -1.088. Las variables
x1y x2 se codificaron con 30 bits en [-2,2].
La fig. 4.1 ilustra el resultado obtenido despus de
100 generaciones de hacinamiento determinstico,
utilizando crossover de un punto. El interior del
crculo y su frontera corresponden a la regin de
factibilidad. Se observa que la poblacin converge a
la frontera donde se encuentran los ptimos globales,
y a un mnimo local en x2=0. Sin embargo, una vez
que los puntos estn en la frontera el crossover de un
punto pierde efectividad. La fig. 4.2 ilustra el mismo
caso pero con crossover binomial. Se observa un
mejor agrupamiento de la poblacin en torno de los
ptimos.
Ejemplo 5.
Como segunda funcin de prueba se utiliz la
funcin de Hock
f1 = x 2 + 10 5 ( x 2 x1 ) 2 10
. si 0 x1 2
f (X) =
min
f 2 = 271 3 (( x1 3) 2 9) x 23
3
11
1
f 3 = 3 ( x1 2 ) + x 2 3
si 2 x1 4
si 4 x1 6
sujeto a
x2 0
x1 3x 2 + 6 0 .
x1
0 x1 6,
x2 0