You are on page 1of 0

Anales del Instituto de Ingenieros de Chile, Agosto 97, pp. 83-92.

OPTIMIZACIN MEDIANTE ALGORITMOS GENTICOS


Pablo Estvez Valencia
*
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.

* Ingeniero Civil Electricista (U. de Chile), Ph.D. en Ingeniera (U. de Tokio).
Acadmico, Departamento de Ingeniera Elctrica, Facultad de Ciencias Fsicas y Matemticas, Universidad de Chile.
e-mail : pestevez@tamarugo.cec.uchile.cl
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 x x
t
n
t
( ) { , ..., } =
1
, para la iteracin t, donde cada
individuo x
i
representa un punto de bsqueda en el
espacio de las soluciones potenciales a un problema
dado. El desempeo de un individuo x
i
se evalua
segn una funcin de adaptacin f(x
i
). 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.
La estructura del algoritmo evolutivo bsico es la
siguiente:
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
Las principales diferencias de los algoritmos
evolutivos con los mtodos tradicionales de bsqueda
(p.ej. mtodos basados en gradientes, aleatorios,
exhaustivos, etc.) son las siguientes :
codificacin del conjunto de parmetros (en
general no se evolucionan los parmetros
directamente sino que su codificacin).
bsqueda en paralelo con una poblacin de
puntos.
uso de funcin de adaptacin directamente (no se
requiere de derivadas).
reglas de transicin probabilsticas entre una
iteracin y otra.
Para encontrar los ptimos globales, los algoritmos
de optimizacin hacen uso de dos tcnicas : a)
explorar reas desconocidas en el espacio de
bsqueda, y b) explotar el conocimiento obtenido de
puntos previamente evaluados. Los algoritmos
evolutivos combinan ambas tcnicas de un modo
eficiente.
Este artculo introduce en forma tutorial los
algoritmos genticos y su aplicacin a la
optimizacin de parmetros. En particular se
considera la optimizacin numrica de funciones con
y sin restricciones. Se presentan resultados de
simulaciones de ejemplos simples que ilustran el
comportamiento de los algoritmos y operadores
genticos descritos. Finalmente, se describe
brevemente una aplicacin de algoritmos genticos
para la seleccin de entradas a clasificadores basados
en redes neuronales.
2. Algoritmo Gentico Simple
El algoritmo evolutivo bsico descrito en la
introduccin da lugar a una gran variedad de
modelos, dependiendo de como se especifiquen la
forma de representacin de los individuos
(codificacin) y los operadores genticos de
seleccin, recombinacin y mutacin. En esta seccin
se describe el algoritmo gentico original propuesto
por John Holland [6], junto a algunas de sus
variantes. El algoritmo gentico de Holland se
fundamenta tericamente en el teorema de schemata,
cuya definicin y demostracin escapa al propsito
de este artculo. El lector interesado en este teorema
puede consultar el texto de Goldberg [5].
El algoritmo gentico simple aplica a problemas de
optimizacin de parmetros continuos de la forma :

min f x x x
x l u l u i n
k k kn
ki i i i i
( , , , ),
[ , ] , , , , ,
1 2
1

< =
(1)
donde cada componente x
ki
tiene un dominio definido
por una cota inferior l
i
y una cota superior u
i
, y por lo
tanto el espacio de bsqueda es un subconjunto
de
n
.
A continuacin se especifica un algoritmo gentico
simple y se explican brevemente sus fundamentos.
2.1 Representacin y Funcin de Adaptacin
Un punto de bsqueda
H
x x x x
k k k kn
= ( , , , )
1 2
, se
representa mediante una tira binaria (binary string).
Cada una de las n componentes del vector
H
x
k
se
codifica en binario usando b bits. Luego las
representaciones binarias de cada parmetro se
concatenan en una sola tira, obtenindose individuos
de largo = nb bits.
El algoritmo gentico considera una poblacin inicial
de M tiras binarias de largo , generadas
aleatoriamente. Para evaluar el desempeo de estos
individuos se requiere decodificar cada componente
representada en binario al entero correspondiente
entre 0 y 2
b
-1 y luego reescalarlo en el intervalo real
correspondiente al dominio de esa componente segn
(1). Durante el proceso evolutivo, el algoritmo
gentico genera una nueva poblacin de tamao M a
partir de la poblacin actual y evala el desempeo
de los nuevos individuos. Este mecanismo de
codificacin implica que en el espacio original
continuo slo se realiza una bsqueda con una grilla
de puntos. La precisin de esta bsqueda depende del
nmero de bits utilizados para la codificacin de los
parmetros.
2.2 Mtodos de Seleccin
El mecanismo de seleccin permite orientar la
bsqueda a aquellos puntos ms promisorios, i.e. con
la mayor adaptacin observada hasta el momento. El
operador de seleccin genera a partir de la poblacin
actual una poblacin intermedia del mismo tamao,
reproducicndo con un mayor nmero de copias a los
individuos ms aptos y eliminando o asignando un
menor nmero de copias a los individuos menos
aptos. El operador de seleccin no produce puntos
nuevos en el espacio de bsqueda, sino que
determina qu individuos dejarn descendencia y en
qu cantidad en la prxima generacin.
El algoritmo gentico simple utiliza una regla de
supervivencia probabilstica. En analoga con un
problema de la teora de juegos (multi-armed bandit
problem), John Holland postul que la estrategia
ptima de seleccin consiste en aumentar
exponencialmente el nmero de copias del mejor
individuo observado respecto al peor. Este mtodo se
conoce como seleccin proporcional.
2.2.1 Seleccin Proporcional
La probabilidad de seleccin p
i,t
del i-simo
individuo en la poblacin P(t) depende de la
adaptacin relativa de ste con respecto a la
poblacin :
p
f
f
i t
i
j
j
n ,
, =
=1
(2)
donde f
j
es la adaptacin del j-simo individuo. El
nmero esperado de copias N
e
del i-simo individuo
en la prxima generacin es:
[ ] N i Mp
f
f
e i t
i
t
= =
,
,
(3)
donde f
t

es la adaptacin promedio de la poblacin
P(t), y M es el tamao de sta.
La fase de seleccin de un algoritmo gentico basado
en valores esperados se compone de dos partes :
determinacin de los valores esperados N
e
conversin de los valores esperados a nmeros
discretos de descendencia (muestreo)
El algoritmo de muestreo debe mantener una
poblacin constante y al mismo tiempo proveer de un
muestreo exacto, consistente y eficiente. El algoritmo
de muestreo original propuesto por Holland se
conoce como el mtodo de la ruleta.
Mtodo de la ruleta :
1. Determinar la suma S de las adaptaciones de toda
la poblacin.
2. Relacionar uno a uno los individuos con
segmentos contiguos de la recta real [0,S), tal que
cada segmento individual sea igual en su tamao a
su grado de adaptacin.
3. Generar un nmero aleatorio en [0,S).
4. Seleccionar el individuo cuyo segmento cubre el
nmero aleatorio.
5. Repetir el proceso hasta obtener el nmero
deseado de muestras.
El mtodo de la ruleta sufre de una dispersin
ilimitada, es decir la discrepancia entre el nmero
esperado de copias y el nmero real obtenido por el
mtodo de la ruleta puede ser la mxima posible. El
algoritmo ptimo Muestreo Estocstico Universal
(SUS) corrige esta situacin [2].
Muestreo Estocstico Universal :
SUS es anlogo a una ruleta con M punteros
igualmente espaciados entre s, de modo que con un
solo lanzamiento se obtienen M ganadores. El
mtodo SUS no tiene sesgo y su dispersin es la
mnima posible. El algoritmo es como sigue :
sum = 0
ptr = rand( ) [0,1]
for i=1 to M
sum= sum+N
e
[i]
while(sum > ptr) do
selectind[i]
ptr = ptr +1
end
end
donde N
e
[i] es el nmero esperado de copias para el
individuo i-simo segn (3). Debe tomarse en cuenta
que SUS puede slo reducir el error de muestreo pero
no eliminarlo completamente.
Por otra parte la determinacin del valor esperado
mediante (3) es muy sensible a la presencia de un
individuo super adaptado en la poblacin actual,
pudiendo ste llevarse un elevado nmero de copias
generacin tras generacin y causar una convergencia
prematura del algoritmo a un ptimo local,
especialmente para poblaciones pequeas. Una forma
de resolver la convergencia prematura por presencia
superindividuos es usar seleccin por ranking.
2.2.2 Seleccin por Ranking
El algoritmo de seleccin por ranking es como sigue :
1. Ordenar la poblacin del mejor individuo (x = 1)
al peor (x = M).
2. Asignar un nmero de copias esperadas segn
( ) ( )
( )
( )
x
x
M
=

+ +
1
1
donde
( ) , , . x M
x
= =
+ +
1 2 2

+
: mximo valor esperado (1.1-1.2 recomendado)

: mnimo valor esperado.


3. Usar muestreo estocstico universal (SUS) para
llenar la poblacin.
2.2.3 Seleccin por Torneo
Este mtodo de seleccin no se basa en valores
esperados y no requiere por lo tanto de un algoritmo
de muestreo. El algoritmo es como sigue :
1. Escoger tamao de torneo q (tpicamente q=2).
2. Crear una permutacin aleatoria de M enteros.
3. Comparar la adaptacin de los prximos q-
miembros de la poblacin y seleccionar el mejor.
4. Si se acaba la permutacin, generar una nueva
permutacin.
5. Repetir hasta llenar la poblacin.
Seleccin por torneos de tamao q = 2 es anlogo a
la seleccin por ranking con
+
= 2 , ya que ambos
mtodos asignan dos copias al mejor, cero copias al
peor y una al promedio.
Los distintos mtodos de seleccin pueden ser
analizados en trminos de su presin selectiva. sta
se mide como el inverso del tiempo requerido por el
mejor individuo para llenar la poblacin con copias
de si mismo, cuando no acta otro operador gentico
(takeover time).
Los mtodos de seleccin se ordenan en orden
creciente de presin selectiva (para valores
estndares de sus parmetros) del siguiente modo :
seleccin proporcional, ranking y torneo [2].
2.3 Recombinacin
El operador de recombinacin (crossover) es el
operador de bsqueda ms importante en los
algoritmos genticos. Este es un operador sexuado
que intercambia el material gentico de un par de
padres produciendo descendientes que normalmente
difieren de sus padres. La idea central es que
segmentos distintos de padres diferentes con alta
adaptacin deberan combinarse en nuevos
individuos que tomen ventaja de esta combinacin.
El algoritmo gentico explota las regiones con mayor
adaptacin, ya que generaciones sucesivas de
seleccin y recombinacin producen un nmero
creciente de puntos en estas regiones.
El operador de recombinacin opera con
probabilidad p
c
(esto permite que en algunos casos no
haya recombinacin y se mantengan los padres).
Dados p y q un par de padres, de largo bits, se
escoge aleatoriamente un punto { } k 1 1 , , y
se intercambian los bits a la derecha de esa posicin
entre ambos individuos, obtenindose los
descendientes s y v, como se indica a continuacin :
H

H

H

H

p p p p p
q q q q q
s p p q q
v q q p p
k k
k k
k k
k k
=
=
=
=

( , , , , , )
( , , , , , )
( , , , , , )
( , , , , , )
1 1
1 1
1 1
1 1

El operador crossover de un punto, descrito ms
arriba, sufre de un sesgo posicional ya que un bit
cercano al extremo derecho de la tira tiene una alta
probabilidad de intercambio, mientras que un bit en
el extremo izquierdo tiene una baja probabilidad de
intercambio. El operador crossover binomial corrige
este sesgo, intercambiando bits entre padres sobre
una base bit a bit, con probabilidad p [ , ] 01
aleatoria, distinta para cada posicin.
2.4 Mutacin
En el algoritmo gentico simple, el operador de
mutacin juega un papel secundario, invirtiendo
ocasionalmente un bit. Tasas de mutacin pequeas
garantizan que un individuo no difiera mucho de sus
padres en el genotipo (tira binaria). La mutacin sirve
para evitar la prdida de diversidad producto de bits
que han convergido a un cierto valor para toda la
poblacin, y que por tanto no pueden ser recuperados
por el operador de recombinacin. El operador de
mutacin invierte cada bit de la tira binaria sobre una
base bit a bit con probabilidad p
m
,

{ }
{ } = m q q q q q q i
p
m
( , , , ) ( , , , ), , ,
1 2 1 2
1

donde
=
>

q
q si r p
q si r p
i
i m
i m
1
y [ ] r 01 , uniformemente aleatorio, distinto para
cada bit q
i
.
Ejemplo 1.
El algoritmo gentico simple descrito anteriormente
se implement en lenguaje C. A modo de prueba se
procedi a minimizar la funcin de Bohachevsky,
f x y x y x y ( , ) . cos( ) . cos( ) . , = + +
2 2
2 03 3 04 4 07
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.
Fig. 1.1 Funcin de Bohachevsky invertida.
Los parmetros x e y se codificaron con 16 bits cada
uno, resultando en individuos de largo 32. Se
consideraron poblaciones de tamao 100, un nmero
mximo de generaciones de 100 y 30 simulaciones
con distintas inicializaciones.
La Fig. 1.2 muestra los resultados promedios del
mejor individuo en funcin del nmero de
generaciones, para los siguientes mtodos de
seleccin :
a) Proporcional con ruleta, p
c
=0.8, p
m
=0.01.
b) Proporcional con SUS, p
c
=0.8, p
m
=0.01.
c) Ranking,
+
= 15 . , p
c
= 0.8, p
m
= 0.01.
d) Torneo q = 2, p
c
= 1.0, p
m
= 0.01.
Fig. 1.2 Comparacin de los distintos mtodos de
seleccin para la funcin de Bohachevsky. Las
curvas muestran el promedio del mejor individuo en
30 simulaciones con inicializaciones distintas para :
a) seleccin proporcional con ruleta, b) seleccin
proporcional con SUS, c) seleccin por ranking y d)
seleccin por torneo.
Este ejemplo ilustra que para una mayor presin
selectiva se obtiene una mayor velocidad de
convergencia. Sin embargo, este resultado no es
generalizable al caso de funciones discretas o
fractlicas, donde un aumento de la presin selectiva
no necesariamente conlleva a mejores resultados [2].
A pesar de la existencia de mltiples mnimos locales
en el ejemplo considerado, el algoritmo gentico
simple encontr el ptimo global, y toda la poblacin
convergi a ste.
3. Algoritmos de Nichos Paralelos
El algoritmo gentico simple converge a una sola
solucin debido al tamao finito de la poblacin y a
la acumulacin de errores estocsticos de muestreo.
Los algoritmos de nichos extienden los algoritmos
genticos a dominios que requieren de la localizacin
y mantencin de mltiples soluciones, p.ej. la
optimizacin de funciones con mltiples mximos.
Los algoritmos de nichos paralelos forman y
mantienen subpoblaciones dentro del espacio de una
poblacin nica, mediante la disminucin de la
competencia entre puntos distantes en el espacio de
bsqueda. Para esto se introduce una mtrica d en el
espacio genotpico, i.e., d d s s
ij i j
= ( , ) , donde s
i
y s
j
son las tiras binarias (genotipos) y d es la distancia de
Hamming (nmero de bits diferentes entre tiras).
Alternativamente, la distancia se puede medir en el
espacio fenotpico, i.e., d d x x
ij i j
= ( , ) , donde x
i
y x
j
son los vectores de parmetros decodificados y d es
la distancia Euclidiana.
Hay dos tipos bsicos de algoritmos de nichos :
compartimiento (sharing) y hacinamiento (crowding).
Mtodo de Compartimiento
Los algoritmos de compartimiento se basan en la idea
de que la adaptacin debe ser compartida como un
recurso nico entre individuos similares en una
poblacin. Se define una nueva adaptacin
compartida
f
, dividiendo la funcin de adaptacin
original por un factor que toma en cuenta la similitud
del individuo con el resto de la poblacin :
= f j
f j
sh d
ij
( )
( )
( )
,
donde sh es la funcin de compartimiento,
sh d
d
otro caso
d
share share
( )
( ) , ,
=
1
0

y
share
son constantes.
La funcin de compartimiento entrega un 1 cuando
dos individuos son idnticos, 0 cuando su grado de
disimilitud supera un cierto umbral y un nmero
entre 0 y 1 para grados intermedios de similitud. El
umbral de similitud est especificado por la constante

share
. Si la distancia entre dos individuos es mayor
que este umbral entonces ellos no compiten entre s.
La proporcin de la poblacin esperada en una clase
(p.ej. un mximo local) es funcin de la adaptacin
de esa clase dividida por la suma de las adaptaciones
de todas las clases. Usualmente se utiliza
compartimiento con seleccin proporcional, pero en
principio se podra utilizar cualquier mtodo de
seleccin.
El algoritmo de compartimiento es capaz de mantener
mltiples soluciones. Su principal desventaja es que
es costoso computacionalmente, ya que se requiere
calcular la distancia entre todos los elementos de la
poblacin en cada generacin. Adems requiere del
ajuste de los parmetros de la funcin de
compartimiento.
Mtodo de Hacinamiento
Estos algoritmos forman y mantienen nichos
mediante el reemplazo de los elementos de la
poblacin con individuos similares. En el modelo de
hacinamiento determinstico de Mahfoud [8], un
individuo compite en un torneo con sus padres. Dado
un par de padres y sus descendientes se realizan los
torneos que hagan competir a aquellos individuos
ms cercanos y se selecciona por reemplazo.
Algoritmo de Hacinamiento Determinstico :
Repetir n/2 veces
1. Seleccionar 2 padres, p
1
y p
2
, aleatoriamente sin
reemplazo.
2. Recombinarlos, dando origen a c
1
y c
2
.
3. Opcionalmente mutar dando origen a c
1
y c
2
.
4. Dada una medida de distancia d(x,y) aplicar la
siguiente regla de reemplazo :
Si
[ ] [ ]
d p c d p c d p c d p c ( , ) ( , ) ( , ) ( , )
1 1 2 2 1 2 2 1
+ +
{
}
{
}
Si reemplazar por
si reemplazar por
De otro modo
Si reemplazar por
si reemplazar por
f c f p p c
f c f p p c
f c f p p c
f c f p p c
( ) ( )
( ) ( )
( ) ( )
( ) ( )
<
<
<
<
1 1 1 1
2 2 2 2
2 1 1 2
1 2 2 1
A continuacin se ilustran algunos ejemplos de
aplicacin del mtodo de hacinamiento
determinstico. Aunque el mtodo de compartimiento
tambin ha sido implementado no se presentan
resultados de este algoritmo, debido a que estos son
similares a los de hacinamiento, salvo en lo referente
al costo computacional y ajuste de parmetros.
Ejemplo 2.
Para probar el algoritmo de hacinamiento
determinstico se eligi la funcin sinusoide
atenuada,
f X e sin x x
x
1
2 2
0 1
0 8 6
5 0 10 ( ) ( ), .
(ln )
.
.
=



.
La variable x se codific en 30 bits, resultando en
tiras de largo 30. Esta funcin tiene 5 mximos en
x=0.1, 0.3, 0.5, 0.7 y 0.9 con alturas 1.0, 0.917,
0.707, 0.459 y 0.250 respectivamente. Para esta
funcin se consider una poblacin de tamao 100,
probabilidad de crossover 1.0, probabilidad de
mutacin 0.0 y un nmero mximo de 500
generaciones.
La fig. 2.1 muestra la distribucin inicial de la
poblacin de 100 puntos en la funcin sinusoide
atenuada. La fig. 2.2 ilustra la distribucin final de la
poblacin despus de 500 generaciones. El algoritmo
de hacinamiento determinstico encuentra y mantiene
todos los ptimos de la funcin sinusoide atenuada.
Ejemplo 3.
Como segunda funcin de prueba se escogi la
funcin en dos dimensiones de Himmelblau :
f x y
x y x y
x y
2
2 2 2 2
2186 11 7
2186
6 6
( , )
( ) ( )
,
, [ , ].
=
+ +

Cada parmetro se codific con 15 bits, resultando en
individuos de largo 30. Esta funcin tiene 4 mximos
idnticos en (3,2), (3.584,-1.848), (-3.779,-3.383) y
(-2.805, 3.131), de valor 1.0.
Fig. 2.1 Distribucin inicial de la poblacin de 100
puntos en la funcin sinusoide atenuada.
Fig. 2.2 Distribucin final de la poblacin despus de
500 generaciones de hacinamiento determinstico. La
figura muestra convergencia de la poblacin a todos
los mximos de la funcin sinusoide atenuada.
Para esta funcin se consider una poblacin de
tamao 100, probabilidad de crossover 1.0,
probabilidad de mutacin 0.0 y un nmero mximo
de 100 generaciones.
La fig. 3.1 muestra la distribucin inicial de la
poblacin de 100 puntos en la funcin de
Himmelblau. La fig. 3.2 ilustra la distribucin final
de la poblacin despus de 100 generaciones. El
algoritmo de hacinamiento determinstico encuentra
y mantiene los cuatro ptimos de la funcin.
4. Optimizacin con Restricciones
El problema general de programacin no lineal para
variables continuas es minimizar o maximizar
f X X x x
n
n
( ), ( ,..., ) =
1
,
donde X F S . El conjunto S
n
define el
espacio de bsqueda y el conjunto F S define el
espacio de soluciones factibles. Hasta el momento se
ha considerado F S = , es decir optimizacin sin
restricciones.
En esta seccin se considera la optimizacin con
restricciones. El espacio de bsqueda S se define
como un rectngulo n-dimensional en
n
(dominios
de variables definidos por cotas superior e inferior) :
l i x u i i n
i
( ) ( ), 1 ,
y el conjunto de soluciones factibles F se define por
m 0 restricciones
g X j q
h X j q m
j
j
( ) , , ... ,
( ) , , , .
=
= = +
0 1
0 1
Hay dos enfoques para manejar individuos no
factibles o ilegales : estrategias pro-vida (mtodos de
reparacin y de penalizacin) y estrategias pro-libre
eleccin (mtodos abortivos y anticonceptivos).
Mientras que los mtodos abortivos eliminan los
individuos ilegales que se generen, los mtodos
anticonceptivos no permiten la generacin de
individuos no factibles. El mtodo GENOCOP [8]
optimiza funciones numricas con restricciones
lineales, utilizando un conjunto de operadores
genticos cerrados que mantienen la factibilidad de
las soluciones. Una solucin se representa como un
vector de nmeros en punto flotante.
Las estrategias pro-vida permiten la presencia de
individuos ilegales en una poblacin. Un enfoque es
penalizar los individuos no factibles, agregando un
trmino en la funcin objetivo,
eval X
f X si X F
f X Q X otro caso
( )
( ),
( ) ( ),
=

+
(4)
donde f es la funcin objetivo y Q X ( ) 0 es la
penalizacin para el individuo X.
Para construir la funcin de penalizacin se utiliza un
conjunto de funciones f
j
, las que miden la violacin
de la j-sima restriccin,
f X
max g X si j q
h X si q j m
j
j
j
( )
{ , ( )},
( ) , .
=

+

0 1
1
(5)

Fig. 3.1 Distribucin inicial de la poblacin de 100
puntos en la funcin de Himmelblau.
Fig. 3.2 Distribucin final de la poblacin despus de
100 generaciones de hacinamiento determinstico. La
figura muestra convergencia de la poblacin a todos
los mximos de la funcin de Himmelblau.
En GENOCOP II [8] se considera el problema
general de programacin no lineal. El mtodo
selecciona un punto inicial aleatorio que satisface las
restricciones lineales (la poblacin inicial consiste de
copias de este nico individuo). Los individuos se
evaluan segn la frmula
eval X f X f X
j
j
m
( , ) ( ) ( ),

= +
=
1
2
2
1
(6)
donde es un parmetro de temperatura. Despus de
algunas generaciones la temperatura disminuye
aumentando la presin sobre las soluciones no
factibles. La mejor solucin encontrada sirve de
punto de partida para la prxima generacin. El
proceso continua hasta que la temperatura alcance el
punto de congelacin.
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 05 1 = = t t
Como primera funcin de prueba se utiliz la funcin
de Michalewicz
min f X x x
sujeto a
x x
( ) , =
+
1 2
2
1
2
2
2
2 0
Las soluciones globales son : X
1
*=(-0.832,-1.180),
X
2
*=(-0.832, 1.180) y f(X*) = -1.088. Las variables
x
1
y x
2
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 x
2
=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
min f X
f x x x si x
f x x si x
f x x si x
sujeto a
x
x x
x x
x
( )
( ) .
(( ) )
( )
,
.
=
= +
=
= +

1 2
5
2 1
2
1
2
1
27 3 1
2
2
3
1
3
1
3 1
3
2
11
3 1
1
3 2
1 2
1
10 10 0 2
3 9 2 4
2 4 6
0
3 6 0
0 6 2 0
Esta funcin tiene tres soluciones globales en
( ) ( ) ( ) 0 0 3 3 4 0 , , , , , , y
en todos los casos
f X ( ) = 1. Las variables x
1
y x
2
se codificaron con
30 bits en el intervalo [-6,6].
Fig. 4.1 Distribucin de la poblacin en la
generacin 100 para hacinamiento determinstico con
crossover de un punto.
Fig. 4.2 Distribucin de la poblacin en la
generacin 100 para hacinamiento determinstico con
crossover binomial.
Las figs. 5.1 y 5.2 ilustran el resultado obtenido
despus de 100 generaciones de hacinamiento
determinstico, utilizando crossover de un punto y
binomial, respectivamente. El interior del tringulo
inferior y su frontera corresponden a la regin de
factibilidad. Nuevamente se observa que una vez que
los puntos estn en la frontera el crossover de un
punto es menos efectivo que el crossover binomial.
5. Aplicaciones
Una aplicacin en la que se est trabajando
actualmente es la clasificacin automtica de
defectos en maderas (nudos, grietas, manchas, etc.)
[1]. A partir de las imgenes se realiza una extraccin
paramtrica de caractersticas que sirven de entradas
a un clasificador basado en redes neuronales. Es
frecuente que el conjunto de caractersticas extradas
de la imagen dependa de la experiencia del diseador
y que el nmero de caractersticas no sea ptimo e
incluya redundancias. Se estn utilizando algoritmos
genticos para optimizar el conjunto de entradas al
clasificador neuronal, lo que es importante para
reducir el error de generalizacin y el tamao de los
modelos. En este caso una tira binaria puede
representar las entradas presentes o ausentes, y la
evaluacin de cada individuo corresponde al
desempeo del clasificador neuronal con ese
subconjunto de entradas.
Fig. 5.1 Distribucin de la poblacin en la
generacin 100 para hacinamiento determinstico con
crossover de un punto.
Fig. 5.2 Distribucin de la poblacin en la
generacin 100 para hacinamiento determinstico con
crossover binomial.
6. Conclusiones
Se ha realizado una introduccin tutorial a los
algoritmos genticos en optimizacin. Entre los
diversos mtodos revisados y probados destaca el de
hacinamiento determinstico, ya que es barato
computacionalmente y adems permite localizar y
mantener mltiples ptimos. Para problemas con
restricciones, sin embargo, se deben considerar
operadores genticos especiales. En casos donde la
solucin se encuentra en la frontera del espacio de
soluciones factibles, la recombinacin y la mutacin
convencional pierden eficacia. El crossover binomial
tiene un mejor desempeo en estas circunstancias que
el crossover de un punto convencional. Otra
alternativa es utilizar operadores de mutacin
especiales tales como mutacin de frontera, donde un
punto en la frontera del espacio de soluciones
factibles es mutado por otro en esta misma frontera.
Agradecimientos
Se agradece especialmente a Rodrigo Caballero
Campos por realizar las simulaciones de los ejemplos
ilustrados en este artculo. Se agradece tambin a
todos los estudiantes del curso Computacin
Evolucionaria, dictado por el autor en los aos 1996
y 1997, en el Departamento de Ingeniera Elctrica
de la Universidad de Chile.
Referencias
[1] Aracena, J., Estvez, P., Goles, E., Prez, C.,
Reconocimiento de Defectos en Maderas
mediante Redes Neuronales, XII Congreso
Chileno de Ingeniera Elctrica, Temuco, Nov.
1997 (aceptado).
[2] Back, T., Evolutionary Algorithms in Theory and
Practice, Oxford Press, 1996.
[3] Davis, L., Handbook of Genetic Algorithms, Van
Nostrand Reinhold, 1991.
[4] Fogel, D., Evolutionary Computation, IEEE
Press, 1995.
[5] Goldberg, D.E., Genetic Algorithms in Search,
Optimization and Machine Learning, Addison-
Wesley, 1989.
[6] Holland, J.H., Adaptation in Natural and
Artificial Systems, MIT Press, Second Edition,
1992.
[7] Koza, J.R., Genetic Programming, MIT Press,
1992.
[8] Mahfoud, S.W., Niching Methods for Genetic
Algorithms, Ph.D. Thesis, U. of Illinois at
Urbana-Champaign, 1995.
[9] Michalewicz, Z., Genetic Algorithms+Data
Structures= Evolution Programs, Springer-Verlag,
Second Edition, 1994.
[10] Mitchell, M., An Introduction to Genetic
Algorithms, MIT Press, 1996.

You might also like