Você está na página 1de 10

ALGORITMOS GENTICOS APLICADOS A LA INGENIERIA

Por: Ing. Dante Pinto Jeria

Los Algoritmos Genticos son un tipo de computacin evolutiva , basados en una analoga con la Teora de la Evolucin de las Especies, de Charles Darwin, en la que prevalece la supervivencia del mas apto. Fueron desarrollados por John Holland a mediados de los aos setenta. En este tipo de Algoritmos, se trabaja a nivel de cromosomas, representando un cromosoma con bits, o sea cadenas de enteros binarios (ceros o unos). Las operaciones que se realizan en el proceso de evolucin son la seleccin, el cruce y la mutacin. Seleccin.- Mediante esta operacin, los individuos menos aptos,(los que menos se adaptan a las condiciones del problema) son eliminados y reemplazados por los que presenten mayor aptitud dentro del entorno en el que se encuentren.

Cruce.- Dados dos padres, se combinan sus genes y dan lugar a nuevos individuos. Se selecciona a los padres mas aptos para el cruce, de manera que los hijos resultantes hereden las aptitudes de los padres. El punto de cruce puede ser aleatorio o fijo. Ejemplo de Cruce: Padre 111000110011 Madre 000000111111 Hijos 111000111111 000000110011

Punto de Cruce En este ejemplo el punto de cruce es seis. El primer hijo hereda los seis primeros cromosomas del padre y los ltimos seis de la madre. El segundo hijo hereda los primeros seis cromosomas de la madre y los ltimos seis del padre.

Mutacin.- En el proceso de encontrar los individuos mas adecuados, las mutaciones, a veces, son beneficiosas. Las mutaciones consisten en el cambio de uno o varios bits (0 a 1 o 1 a 0), de manera que generen un nuevo individuo. Generalmente las mutaciones vienen despus de los cruces y se rigen por una tasa ,predeterminada, de mutacin. Ejemplo de Mutacin.Individuo original: 101001011011

Individuo mutado:

101000011111

PDF created with pdfFactory trial version www.pdffactory.com

El entorno al que se deben adaptar los individuos se llama Funcin de Aptitud y es la funcin que se quiere optimizar, ya sea maximizndola o minimizndola. El diagrama de flujo tpico de un Algoritmo Gentico es el siguiente:

Generacin Aleatoria de una poblacin inicial que este dentro lo requerido por la Funcin de Aptitud

Para i desde 1 hasta el numero de generaciones.

Seleccin de los individuos mas aptos y eliminacin de los menos aptos.

Cruce, se puede tener una tasa de cruce que determine que porcentaje de la poblacin cruza y que otro porcentaje pasa a la siguiente generacin sin haber cruzado.

Mutacin, se mutan el numero de individuos que indique la tasa de mutacin predeterminada.

Determinacin de la Funcin de Aptitud de cada individuo.

Siguiente i

PDF created with pdfFactory trial version www.pdffactory.com

El nmero de generaciones es igual al nmero de iteraciones que tiene el proceso. A continuacion se dan algunas ventajas y desventajas en el uso de los A.G. Ventajas. Los A.G. no necesitan conocimientos especificos sobre los problemas que intentan resolver. Permiten la solucion de problemas ,tanto de programacion lineal, as tambien como de programacion no lineal. Usan operadores probabilisticos, en vez de los tipicos operadores deterministicos de las otras tecnicas.

Desventajas. Se debe conocer de antemano los limites entre los que pueden estar las soluciones adecuadas. Solo realizan maximizaciones. Solo aceptan nmeros enteros.

El hecho de que los A.G. solo realizan maximizaciones es un obstaculo que puede ser fcilmente salvado teniendo e cuenta que: Min[f(x)] = Max[g(x)] = Max[ - f(x)] Para trabajar con decimales, solo se necesita multiplicar por una potencia de diez, adecuada que elimine el numero fraccionario y al final se realiza una division por la misma potencia de diez. Ejemplo1: Dada la siguiente funcion matematica, se desea encontrar el mximo entre los lmites x =1 y x = 3 .
y ( x) := 0.305 + 2.628055 1.641944 + 0.341944 0.0230555 x x x x x
2 3 4 5

61

9461 2 5911 3 1231 4 83 5 x+ x x + x x 200 3600 3600 3600 3600

10

PDF created with pdfFactory trial version www.pdffactory.com

Solucion: Este problema no presenta ningun otro tipo de condicion, mas que encontrar el valor mximo en el intervalo dado, por lo tanto se empieza por generar una poblacion aleatoria entre los lmites de 1 a 3. Elegimos una poblacion de p = 10 individuos, un nmero de generaciones igual a ng = 10, el nmero de decimales es d = 2 y el nmero de variables es nv = 1 . El nmero de digitos de codificacion es igual a: celcod = Long( Binario(limSup*10d)) * nv Binario(3*100) = 100101100 Long(100101100) = 9 celcod = 9

A continuacion se muestran unas tablas que representan el proceso realizado con dos generaciones. Cada generacion esta compuesta por tres procesos que son la seleccin, el cruce y la mutacion. Seleccin: Se genera una poblacion aleatoria para la primera generacion, y se codifica binariamente esos valores. Luego se calcula la funcion de aptitud o funcion objetivo, luego la frecuencia acumulada de la funcion de aptitud ,la siguiente columna contiene el porcentaje que representa cada valor de la funcion de aptitud respecto del ultimo valor de la columna de frecuencia acumulada. Finalmente la ultima columna da los valores del torneo que se realiza al comparar cada valor de la columna de porcentaje con los demas valores de la misma columna y el nmero resultante es la cantidad de valores menores al valor que realiza la comparacion . Cruce: El ganador de la columna Gana reemplaza al perdedor. Se genera parejas aleatorias de cruce y tambien una columna con nmeros aleatorios que indicaran si los individuos cruzan, siempre y cuando el nmero aleatorio sea mayor al 20%, en caso contrario el individuo no cruza. Tambien se tiene una columna con el punto de cruce, el cual se explico antes. Mutacion: El primer hijo reemplaza al primer padre y el segundo hijo reemplaza al segundo padre, lugo se genera una columna de porcentajes aleatorios que indica ,si es menor que 5%, que el individuo mutara, tambien se debe indicar aleatoriamente que bit realizara la mutacion.

PDF created with pdfFactory trial version www.pdffactory.com

PRIMERA GENERACION
SELECCION N Valor de X Valor*10^d Binario 1 1.62 162 010100010 2 1.6 160 010100000 3 2.64 264 100001000 4 1.2 120 001111000 5 1.49 149 010010101 6 2.21 221 011011101 7 1.71 171 010101011 8 1.77 177 010110001 9 2.68 268 100001100 10 2.97 297 100101001 CRUCE Binario N Valor de X Valor*10^d 010100010 1 1.62 162 2 1.6 160 010100000 3 2.64 264 100001000 4 1.2 120 001111000 5 1.49 149 010010101 6 2.21 221 011011101 7 1.71 171 010101011 8 1.77 177 010110001 9 2.68 268 100001100 10 1.77 177 010110001 MUTACION N Binario Valor*10^d Valor de X %Alea Muta Muta si o no Cual bit muta 1 010100000 160 1.6 76 NO 2 010100010 162 1.62 28 NO 3 100001000 264 2.64 21 NO 4 001111100 124 1.24 35 NO 5 010010101 1.49 71 NO 149 6 011011101 221 2.21 57 NO 7 010101011 171 1.71 45 NO 8 010101000 168 1.68 27 NO 9 100111000 3.12 4 SI cuarto 312 10 011011101 221 2.21 39 NO Par de cruce %Alea Cruce 2 29 33 1 8 15 9 24 7 12 34 10 5 19 3 56 4 88 25 6 Decision SI SI NO SI NO SI NO SI SI SI Punto Cruce 2 6 5 7 4 3 1 FuAp =f(x) Frec. Acum. 1.52 1.52 1.51 3.03 0.95 3.98 5.21 1.23 6.67 1.46 1.38 8.05 1.54 9.59 11.13 1.54 12.04 0.91 0.54 12.58 % 12.08 12 7.55 9.78 11.61 10.97 12.24 12.24 7.23 4.29 Gana 7 6 2 3 5 4 8 9 1 0

SEGUNDA GENERACION
SELECCION

PDF created with pdfFactory trial version www.pdffactory.com

N Binario Valor*10^d Valor de X FuAp =f(x) Frec. Acum. 1 010100000 160 1.6 1.51 1.51 2 010100010 1.62 1.52 3.03 162 3 100001000 2.64 0.95 3.98 264 4 001111100 124 1.24 1.27 5.25 5 010010101 149 1.49 1.46 6.71 6 011011101 2.21 1.38 8.09 221 7 010101011 1.71 1.54 9.63 171 010101000 8 168 1.68 1.53 11.16 9 100011000 280 2.8 0.76 11.92 10 011011101 2.21 1.38 13.3 221

% 11.35 11.43 7.14 9.55 10.98 10.38 11.58 11.5 5.71 10.38

Gana 6 8 1 2 5 3 9 8 0 3

CRUCE Binario N Valor de X Valor*10^d 1 1.6 160 010100000 2 1.62 162 010100010 3 1.71 171 010101011 4 1.24 124 001111100 5 1.49 149 010010101 6 2.21 221 011011101 7 1.71 171 010101011 8 1.68 168 010101000 9 1.71 171 010101011 10 2.21 221 011011101 MUTACION N Binario Valor*10^d Valor de X %Alea Muta Muta si o no Cual bit muta 1 010010101 1.49 23 NO 149 2 010101011 171 1.71 52 NO 3 010101011 171 1.71 87 NO 4 001111000 120 1.2 21 NO 5 010100000 160 1.6 67 NO 6 011101011 235 2.35 2 SI tercero 7 010100010 162 1.62 78 NO 8 010101100 172 1.72 29 NO 9 011011101 221 2.21 15 NO 10 011101011 235 2.35 78 NO SELECCION N Binario Valor*10^d Valor de X FuAp =f(x) Frec. Acum. 1 010010101 149 1.49 1.464699 1.46 2 010101011 171 1.71 1.539729 2.999729 % 10.08 10.5963 Gana 3 6 Par de cruce %Alea Cruce 5 33 7 43 12 10 8 59 1 92 9 67 93 2 4 28 6 22 3 72 Decision SI SI NO SI SI SI SI SI SI SI Punto Cruce 2 5 6 2 3 4 5 2 3

PDF created with pdfFactory trial version www.pdffactory.com

3 010101011 4 001111000 5 010100000 6 010101011 7 010100010 8 010101100 9 011011101 10 011101011

171 120 160 171 162 172 221 235

1.71 1.2 1.6 1.71 1.62 1.72 2.21 2.35

1.539729 1.232806 1.51363 1.539729 1.520083 1.540962 1.380157 1.263962

4.539458 5.772264 7.285894 8.825623 10.345706 11.886668 13.266825 14.530787

10.5963 8.4841 10.4167 10.5963 10.4611 10.6048 9.4982 8.6985

6 0 4 6 5 9 2 1

Despues de solo dos generaciones ya se tiene un valor de x = 1.72 , con una FuAp = 1.54096 Utilizando el programa AlGen con 20 individuos y despues de 30 generaciones resultan los siguientes valores:

x =1.7803

FuAp = 1.5444

Cuando se tienen mas de una variable, se une en la codificacin en una sola cadena de bits todas las variables.

A continuacion se presentan ejemplos, de los muchos que pueden haber, de una aplicacin de los A. G. a la Ingeniera Civil.
Ejemplo2: En la cercha que se muestra en la figura , se desea determinar los valores mximos de x1, x2, x3, y x4 de modo que los valores en las barras esten entre 4 Pi 5.

Solucion: La Funcin de Aptitud se toma como: Max z = x1 + x2 + x3 + x4 Se toma como valor inicial cero y como valor final diez del dominio de las soluciones, tomando un nmero de decimales igual a dos, resulta lo siguiente:

PDF created with pdfFactory trial version www.pdffactory.com

La codificacin binaria de diez es 1010, pero como se utilizaran dos decimales, se debe multiplicar el limite superior por 102 , lo que resulta 1000 que en codificacin binaria es 1111101000, o sea una cadena de diez dgitos binarios, pero como se tienen cuatro variables la cadena final tiene 40 dgitos. La matriz geomtrica origina los siguientes sistemas de desigualdades que tienen que satisfacer las variables xi.

4 4 4 4 4 4 4 4

1 18

2 0

0 0 0

0 0

0 0

0 0

37 6 1 6 1 6 5 6 0 1 6 0

0 0 0 0 0

1 0 1 0

0 1 1 0 1

1 0

1 0 1 0

0 1 0 1 0 0 0 1 1 0 0 0

1 1 0 0 0 1

x 5x + x 2 6 3 4 x2 + x4 x1 x2 x3 x4 x3 x1 x2 6 x4 0

5 5 5 5 5 5 5 5

Con una poblacin de 20 individuos y despus de 30 generaciones, resultan los siguientes valores. x1 = 1. 87 x2 = 0. 34 x3 = 4. 91 x4 = 0. 95 La Funcin de Aptitud = 8. 07 Las fuerzas resultantes en las barras son:

P1 = -2. 98 ; P2 = 4. 98 ; P3 = 1. 77 ; P4 = -3. 98
Estos valores se encuentran dentro de los limites requeridos por las condiciones del problema.

Ejemplo3: Calcular los valores de q1 y q2 que vuelvan mxima la resultante de la carga trapezoidal aplicada al siguiente prtico ( la grfica se muestra en la siguiente hoja), sujeto a las siguientes restricciones: P 2.5 M1 0.5 V1 2 Mmax23 2

PDF created with pdfFactory trial version www.pdffactory.com

Solucin: Primero se calcula las reacciones hiperestticas, con ayuda del paquete Mathemtica. Luego , con el mismo paquete calculamos el valor de Mmax23.

Las restricciones quedan por tanto determinadas por las siguientes ecuaciones:
0.6 q1 + 1.275 q2 2.5 0.26666 q1 + 0.233 q2 0.5 1.4 q1 + 0.725 q2 2 24q12(-30q2+A) / ( 300 (q1 q2)2) + 27 q1 q2 (-30 q2 + A) + q22 (-70 q2 + 29 A) 2 donde : A = 5(24q12 + 27 q1q2 +29 q22) La funcin objetivo es: FuAp = R = 2 (q1 + q2) Aplicando el programa AlGen (desarrollado por el autor de este artculo), escrito en VisualBasic y con una poblacin de 20 individuos y despus de 30 generaciones resultan los siguientes valores:

q1 = 0.76

q2 = 1.27

FuAp = R = 4.06

BIBLIOGRAFA.

PDF created with pdfFactory trial version www.pdffactory.com

Denning, Peter J. Genetic Algorithms. Scientific American 1992. Holland, J. Genetic Algorithms. Scientific American 1992. Michalewicz, Zbigniew. Genetic Algorithms + Data Structures = Evolution Programs, Springer-Verlag 1992. Parcel John, Moorman Robert, Anlysis of Statically Indeterminate Structures, John Wiley & Sons,ic,1959. Winston Patrick H, Artificial Intelligence. Third Edition, Addison Wesley.

PDF created with pdfFactory trial version www.pdffactory.com

Você também pode gostar