Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Z Algoritmos Genéticos 01 PDF
Z Algoritmos Genéticos 01 PDF
< =
(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)
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.