Você está na página 1de 13

ALGORITMOS GENTICOS CON CODIFICACIN REAL EN LA OPTIMIZACIN DE FUNCIONES DE UNA VARIABLE REAL

Autor: Vctor Hermides Pino de los Reyes


Master en Matemtica Aplicada e Informtica para la Administracin. Profesor Auxiliar del Departamento de Informtica de la Facultad de Ciencias Tcnicas del Centro Universitario de Las Tunas. E mail: pino@ult.edu.cu

Coautor: Alan Oscar Mondol Romero


Estudiante del 4to ano de la Carrera de Ingeniera Informtica. E- mail: alanmrinf@estudiantes.ult.edu.cu

Centro Universitario de Las Tunas (CULT)

Las Tunas, mayo de 2009

INDICE
RESUMEN .............................................................................................................. 3 INTRODUCCION .................................................................................................... 4 DESARROLLO........................................................................................................ 4 En qu consisten y cmo funcionan los AG......................................................... 5 Algoritmos genticos con codificacin real .......................................................... 7 Operadores de cruce: .......................................................................................... 7 1. Cruzamiento plano ....................................................................................... 8 2. Cruzamiento simple...................................................................................... 8 3. Cruzamiento aritmtico ................................................................................ 8 4. Cruzamiento BLX ................................................................................ 8 5. Cruzamiento lineal........................................................................................ 9 6. Cruzamiento discreto ................................................................................... 9 Operadores de Mutacin: .................................................................................. 10 1. Mutacin aleatoria ...................................................................................... 10 2. Mutacin no uniforme................................................................................. 10 CONCLUSIONES.................................................................................................. 13 TRABAJOS FUTUROS ......................................................................................... 13 BIBLIOGRAFIA ..................................................................................................... 13

RESUMEN

Los Algoritmos Genticos (AG) se basan en los procesos hereditarios de los organismos biolgicos y el principio de la evolucin natural de las especies. Procesan poblaciones de cromosomas en funcin de su aptitud, los cuales representan soluciones candidatas en un espacio de bsqueda de soluciones, usando operadores de seleccin, cruzamiento y mutacin. La bibliografa referencia mayoritariamente el alfabeto binario para la codificacin de los cromosomas y la aplicacin de los operadores genticos. La codificacin real es natural para representar problemas con parmetros en dominios continuos. Se presenta un software para la optimizacin de funciones de una variable empleando AG con codificacin real, de modo que, en la representacin de los cromosomas coinciden genotipo y fenotipo, evadiendo el proceso de transformar las soluciones candidatas de una representacin real a una cadena binaria y su proceso inverso, disminuyendo la prdida de precisin al trabajar con herramientas discretas problemas continuos. El Software fue desarrollado en la plataforma Visual Studio 2005, en el lenguaje Microsoft Visual C# 2005. Fue diseado siguiendo el paradigma orientado a objetos. Se implementan la seleccin por la ruleta y torneo, mutacin aleatoria y no uniforme, cruzamientos aritmticos y BLX- y una estrategia evolutiva elitista. El criterio de terminacin es alcanzar una cantidad de generaciones. Pueden tratarse tanto problemas de mximo como de mnimo, funciones polinmicas, trigonomtricas, exponenciales, y/o la composicin de sumas, restas, productos o cocientes entre ellas. Se brindan estadsticas del proceso generacional. Se observan mejores resultados empleando cruzamiento BLX-, mutacin no uniforme y seleccin por la ruleta.

INTRODUCCION
Los Algoritmos Genticos (AG1) surgen como herramientas para la solucin de complejos problemas de bsqueda y optimizacin, producto del anlisis de los sistemas adaptativos en la naturaleza, y como resultado de abstraer la esencia de su funcionamiento. Los mtodos de bsqueda y optimizacin han sido objeto de estudio desde los primeros aos de la computacin extendindose desde los mtodos basados en el clculo, pasando por los mtodos enumerativos, hasta llegar a los algoritmos de bsqueda aleatoria. Los mtodos de bsqueda y optimizacin tradicionales, los basados en el clculo, enumerativos y aleatorios puros son analizados y criticados en trminos de robustez, ello no significa que no sean tiles; pudiendo servir de complemento a esquemas ms robustos para la creacin de hbridos. El trmino Algoritmo Gentico se usa por el hecho de que estos simulan los procesos de la evolucin darwiniana a travs del uso de operadores genticos que operan sobre una poblacin de individuos que evoluciona de una generacin a otra.

DESARROLLO
Los Algoritmos Genticos (AG) son mtodos de bsqueda de propsito general basados en los principios de la gentica natural, es decir, son algoritmos de bsqueda basados en los mecanismos de la seleccin natural y la gentica. Los Algoritmos Genticos son un ejemplo de mtodo que explota la bsqueda aleatoria guiada que ha ganado popularidad en los ltimos aos debido a la posibilidad de aplicarlos en una gran gama de campos y a las pocas exigencias que impone al problema. En el trabajo con AG se maneja una serie de trminos importados de la gentica natural. No siempre es adecuada la analoga, pero estos son comnmente aceptados:
1

En el texto se utilizar AG tanto para el plural como para el singular.

Poblacin

Conjunto de individuos o cromosomas. Equivale a una muestra aleatoria del espacio de solucin o un conjunto de soluciones alternativas.

Cromosoma Un cromosoma es un portador de la informacin gentica que transmite cada uno de sus genes. Una posible solucin. Gen Cada uno de los rasgos o caractersticas que conforman el cromosoma. Tambin se les llama parmetros o aspectos. Cada gen equivale a una variable del problema. Genotipo En biologa se le llama al paquete gentico total en su forma interna. En la terminologa de AG ser la informacin gentica de todo el cromosoma en forma codificada. Fenotipo Se le llama en gentica al paquete gentico tal y como interacta con el medio exterior. En los AG artificiales seran los aspectos del cromosoma decodificados. Locus Alelo Es la posicin de un gen el cromosoma Es el valor asociado a un gen

En qu consisten y cmo funcionan los AG


Los AG trabajan a partir de una poblacin inicial de estructuras artificiales que van modificando repetidamente a travs de la aplicacin de los siguientes operadores genticos: Operador de Seleccin o Darwiniano Operador de Cruzamiento o Mendeliano Operador de Mutacin

Para utilizar los AG es necesario encontrar una posible estructura para representar las soluciones. Se busca en un espacio de estados, una instancia de esta

estructura representa un punto o un estado en el espacio de bsqueda de todas las posibles soluciones. As, una estructura de datos en el AG consistir en uno o ms cromosomas (frecuentemente uno), el cual se representa comnmente como una cadena de bits (existen otras representaciones). Cada cromosoma (cadena) es una concatenacin de un nmero de

subcomponentes llamados genes. La posicin de un gen en el cromosoma se conoce como locus y sus valores como alelos. En la representacin como cadena de bits, un gen es un bit o una cadena de bits, un locus es su posicin en la cadena y un alelo es su valor (0 1 si es un bit). Al optimizar una estructura usando un AG se necesita una medida de la calidad de cada estructura en el espacio de bsqueda. La funcin de adaptabilidad es la encargada de esta tarea. En una maximizacin de funciones, la funcin objetivo frecuentemente acta como la funcin de adaptabilidad. Los AG realizan una maximizacin por defecto, para los problemas de minimizacin los valores de la funcin objetivo pueden ser negados y traslados con vistas a tomar valores positivos para producir as la adaptabilidad. El mecanismo de un AG simple es como sigue: El AG simple genera aleatoriamente una poblacin de n estructuras (cadenas,

cromosomas o individuos) Sobre la poblacin actan los operadores de seleccin, cruce y mutacin

transformando la poblacin. Una vez completada la accin de los tres operadores se dice que ha transcurrido un ciclo generacional. Luego se repite el paso anterior mientras no se garantice el criterio de parada

del AG. El operador de seleccin o Darwiniano realiza la seleccin de las cadenas de acuerdo a su adaptabilidad para el posterior apareamiento. El operador de cruzamiento o Mendeliano realiza la recombinacin del material gentico de dos cadenas padres.

El operador de Mutacin al estilo del operador natural realiza la mutacin de un gen dentro de un cromosoma o cadena a sus diferentes formas alelomorfas. Para cada uno de estos operadores est asociado el uso de probabilidades y la generacin de nmeros aleatorios. El AG ejecuta para un nmero fijo de generaciones o hasta que se satisface algn criterio de parada.

Algoritmos genticos con codificacin real


En la formulacin original de AG, las soluciones se han codificado usando el alfabeto binario. Sin embargo, se han aplicado codificaciones no binarias ms naturales para los problemas particulares de aplicacin. Entre ellas, destaca la codificacin real, particularmente adecuada para problemas con parmetros en dominios continuos. Un cromosoma es un vector de nmeros reales con un tamao igual a la longitud del vector solucin del problema. Los AG basados en este tipo de codificacin se denominan AG con codificacin real (AGCR). En la actualidad, existe un creciente inters en la resolucin de problemas de optimizacin reales usando AGCR, en campos tan diversos como la es ingeniera industrial, biotecnologa, economa, control, diseo aeroespacial, y otros. El operador de cruce juega un papel central en los AGCR. De hecho puede considerarse como una de las caractersticas que definen a estos algoritmos y es uno de los componentes a tener en cuenta para mejorar su eficacia. En el caso de los AGCR, este operador influye decisivamente sobre el nivel de diversidad en la poblacin, y por ello, es un factor determinante para evitar el problema de la convergencia prematura. Esto explica que el principal esfuerzo en la investigacin desarrollada para mejorar los AGCR se centre en la propuesta y estudio de nuevos operadores de cruce.

Operadores de cruce:
Sean los dos cromosomas

X = ( x1 , x2 ,..., xn ) y Y = ( y1 , y 2 ,..., y n ) padres.

1. Cruzamiento plano (Radcliffe, 1991)

1 Se selecciona aleatoriamente una posicin i { ,2,3,..., n} , entonces se obtiene un


hijo

H = ( h1 , h2 ,..., hi ,..., hn ) seleccionando

aleatoriamente

hi

del intervalo

[xi , yi ] , el resto de los componentes del hijo se toman de cualquiera de los dos
padres.

2. Cruzamiento simple (Wright, 1991; Michalelewics, 1992)

1 Se selecciona aleatoriamente una posicin i { ,2,3,..., n 1}y se construyen dos


nuevos hijos:

H 1 = ( x1 , x 2 ,..., xi , y i +1 , y i + 2 ,.., y n )
H 2 = ( y1 , y 2 ,..., yi , xi +1 , xi + 2 ,..., xn )
3. Cruzamiento aritmtico (Michalelewics, 1992)
Se selecciona aleatoriamente una constante

[0,1] y

una

posicin

i { ,2,3,..., n} y se obtienen dos hijos de la siguiente forma: 1

H 1 = ( x1 , x2 ,..., xi 1 , xi + (1 ) yi , xi +1 ,..., xn ) H 2 = ( y1 , y 2 ,..., yi 1 , yi + (1 ) xi , yi +1 ,..., y n )


La constante

puede no cambiar en durante el todo el proceso, en ese caso, se

trata de un cruzamiento aritmtico uniforme, en caso contrario, es un cruzamiento aritmtico no uniforme.

4. Cruzamiento
Se obtiene

BLX (Eshelman y otros, 1993)


hijo

un del

H = ( h1 , h2 ,..., hi ,..., hn ) donde hi se

selecciona siendo

aleatoriamente

intervalo

[XYmin I * , XYmax + I * ]

XYmax = max(xi , yi ) y XYmin = min(xi , yi ) , I = XYmax XYmin ,


[ 0.25,1.25]
los dos padres. Nota: El cruzamiento y la posicin

i { ,2,3,..., n} se 1

seleccionan

tambin

aleatoriamente. El resto de los componentes del hijo se toman de cualquiera de

BLX 0.0 es igual al cruzamiento plano.


i { ,2,3,..., n} aleatoriamente y se obtienen tres hijos con 1

5. Cruzamiento lineal (Wright, 1991)


Se toma una posicin

valores en el componente seleccionado iguales a:

xy i1 =

1 1 xi + y i 2 2

xy i2 =

3 1 xi y i 2 2

1 3 xyi3 = xi + y i 2 2
El resto de los componentes de los hijos se toman de cualquiera de los dos padres. En este tipo de cruzamiento, de los tres hijos obtenidos se seleccionan los dos con mejor aptitud.

6. Cruzamiento discreto (Muhlenbein y otros, 1993)


Se toma una posicin

i { ,2,3,..., n} aleatoriamente 1

y se obtienen un hijo que

tendr en la posicin seleccionada un nmero aleatorio seleccionado del conjunto formado por

{xi , yi }. El resto de los componentes del hijo se toman de cualquiera

de los dos padres.

Operadores de Mutacin:
Sea

X = ( x1 , x2 ,..., xn ) el cromosoma seleccionado para mutar y xi [ai , bi ]el

gen que mutar. En lo que sigue operador de mutacin a ese gen.

xi' ser

el resultado de la aplicacin del

1. Mutacin aleatoria (Michalelewics, 1992)

xi' se toma aleatoriamente del intervalo [ai , bi ]


2. Mutacin no uniforme
Este operador dependen del nmero de la iteracin (generacin) actual se aplique y

en que

g max es el nmero mximo de iteraciones (generaciones).

xi' =
Donde

xi + ( t ,bi xi ) if = 0 xi + ( t , xi ai ) if =1

es un nmero aleatorio escogido del conjunto {0,1} y:


(1 t )b G max

( t , y ) = y (1 r

Donde se toma aleatoriamente

r [0,1] y b es un parmetro seleccionado por el

usuario, el cual determina el grado de dependencia respecto al nmero de iteraciones. Esta funcin da un valor en el rango

[0, y ] tal que la probabilidad de

retornar un valor cercano a cero se incrementa a medida que el algoritmo avanza. El tamao del intervalo de generacin del gen debe hacerse pequeo con el paso de las iteraciones (generaciones) En el software elaborado para la optimizacin de funciones de una variable real, en esta, su versin 1.0, en la representacin de los cromosomas coinciden genotipo y fenotipo, evadiendo el proceso de transformar las soluciones

candidatas de una representacin real a una cadena binaria y su proceso inverso, disminuyendo la prdida de precisin al trabajar con herramientas discretas problemas continuos. El Software fue desarrollado en la plataforma Visual Studio 2005, en el lenguaje Microsoft Visual C# 2005. Fue diseado siguiendo el paradigma orientado a objetos. Se implementan la seleccin por la ruleta y torneo, mutacin aleatoria y no uniforme, cruzamientos aritmticos y BLX- y una estrategia evolutiva elitista. El criterio de terminacin es alcanzar una cantidad de generaciones. Pueden tratarse tanto problemas de mximo como de mnimo, funciones polinmicas, trigonomtricas, exponenciales, y/o la composicin de sumas, restas, productos o cocientes entre ellas. Se brindan estadsticas del proceso generacional. Esta es la ventana principal:

La siguiente figura muestra una ejecucin:

Se observan mejores resultados empleando cruzamiento BLX-, mutacin no uniforme y seleccin por la ruleta. Se ha empleado una estrategia evolutiva elitista, sembrando el mejor individuo de cada generacin en la siguiente.

CONCLUSIONES
1. Es natural y no es complejo desde el punto de vista computacional la aplicacin de los AGCR en problemas de optimizacin de funciones de una variable real. 2. La combinacin de los operadores de seleccin por la Ruleta, cruzamiento BLX- y mutacin No Uniforme muestran mejor convergencia que otras combinaciones entre los operadores empleados.

TRABAJOS FUTUROS
1. Mejorar el analizador sintctico de expresiones empleado, de modo que se ampli la gama de funciones que se puedan procesar y su ingreso sea ms cercano a la forma matemtica usual. 2. Extender el anlisis al caso n dimensional. 3. Implementar otros operadores genticos y validar estadsticamente su eficiencia.

BIBLIOGRAFIA
1. Francisco Herrera, Manuel Lozano, Ana M. Snchez. Algoritmos Genticos con Codificacin Real: Operadores de Cruce Hbridos Basados en Entornos con Mltiples Descendientes. 2. F. Herrera, M. Lozano, J.L. Verdegay. Tackling real-coded genetic algorithms: operators and tools for the behavioural analysis. Artificial Intelligence Reviews 12(4): 265-319. 3. Daniel Glvez Lio. Algoritmos Genticos. 4. Manuel Lozano. Algoritmos genticos con codificacin real. 5. MSDN Library para Visual Studio 2005.

Você também pode gostar