Está en la página 1de 16

Algoritmos Genticos

Inteligencia Artificial

Ingeniera Ciberntica y en Sistemas Computacionales 8 Semestre


Hernndez Reyes Lidy Lpez Surez Ricardo Mendiola Illescas Rosa Mara Valdez Moreno Israel

12 de Mayo de 2011

ndice
ndice.............................................................................................................................. 2 Objetivos......................................................................................................................... 3 Definiciones y conceptos bsicos del tema.....................................................................3 Estructura.................................................................................................................... 6 Tipos de Representacin........................................................................................... 6 Tamao de la poblacin............................................................................................6 Poblacin Inicial........................................................................................................ 6 Funcin Objetivo....................................................................................................... 6 Operador de Seleccin..............................................................................................6 Operador de Cruce.................................................................................................... 7 Operador de Mutacin..............................................................................................7 Ventajas....................................................................................................................... 7 Desventajas................................................................................................................. 7 Cundo usar algoritmos genticos?............................................................................8 Antecedentes y desarrollo histricos...............................................................................8 Fundamentos biolgicos..................................................................................................9 Estado del arte................................................................................................................ 9 reas de aplicacin y clases.......................................................................................10 Desarrollos actuales en el mundo y en Mxico..............................................................11 Caso Prctico................................................................................................................. 12 Bibliografa consultada.................................................................................................. 14 Cuestionario.................................................................................................................. 15

Algoritmos Genticos y su relacin con el movimiento de una pierna robtica.


2

Objetivos
Explicar el concepto de Algoritmo Gentico, as como todos los aspectos que lo rodean. Mostrar un ejemplo prctico para mejor comprensin del tema.

Definiciones y conceptos bsicos del tema


El Algoritmo Gentico (AG) es un modelo de aprendizaje que debe su comportamiento a una metfora de algunos de los mecanismos de la evolucin que se observan en la naturaleza (como la reproduccin sexual y el principio de la supervivencia del ms apto), son mtodos adaptativos, generalmente usados en problemas de bsqueda y optimizacin de parmetros. Siguiendo la definicin dada por Goldberg en 1989: Los Algoritmos Genticos son algoritmos de bsqueda basados en la mecnica de la seleccin natural y de la gentica natural. Combinan la supervivencia del ms apto entre estructuras de secuencias con intercambio de informacin estructurado, aunque aleatorizado, para constituir as un algoritmo de bsqueda que tenga algo de las genialidades de las bsquedas humanas. A grandes rasgos, un algoritmo gentico consiste en una poblacin de soluciones codificadas de forma similar a cromosomas. Cada uno de estos cromosomas tendr asociado un ajuste o valor de bondad que cuantifica su validez como solucin del problema. En funcin de este valor se le darn ms o menos oportunidades de reproduccin. Adems, con cierta probabilidad se realizarn mutaciones de estos cromosomas. El poder de los AG proviene del hecho de que se trata de una tcnica robusta, y pueden tratar con xito una gran variedad de problemas provenientes de diferentes reas, incluyendo aquellos en los que otros mtodos encuentran dicultades. Si bien no se garantiza que el AG encuentre la solucin ptima del problema, existe evidencia emprica de que se encuentran soluciones de un nivel aceptable, en un tiempo competitivo con el resto de algoritmos de optimizacin combinatoria. Los algoritmos de optimizacin combinatoria resuelven instancias de problemas que se creen ser difciles en general, explorando el espacio de soluciones (usualmente grande) para estas instancias. Los algoritmos de optimizacin combinatoria logran esto reduciendo el tamao efectivo del espacio, y explorando el espacio de bsqueda eficientemente. Estos algoritmos se relacionan frecuentemente con problemas NP. En el caso de que existan tcnicas especializadas para resolver un determinado problema, lo ms probable es que superen al AG, tanto en rapidez como en ecacia. El gran campo de aplicacin de los AG se relaciona con aquellos problemas para los cuales no existen tcnicas especializadas. Incluso en el caso en que dichas tcnicas existan, y funcionen bien, pueden efectuarse mejoras de las mismas hibridndolas con los AG. Cuando el AG es implementado, se hace de forma que involucre el

siguiente ciclo: 1. Generacin de una poblacin inicial de manera aleatoria. 2. Evaluar el desempeo de todos los individuos de la poblacin, tomando en cuenta alguna funcin objetivo. 3. Crear una nueva poblacin mediante la ejecucin de operaciones como el crossover y mutacin sobre individuos cuyo desempeo haya sido evaluado. 4. Descartar la poblacin vieja e iterar usando la nueva, hasta que el nmero de generaciones alcanza al criterio de terminacin.

Generacion=0

Poblacin Inicial Aleatoria

Criterio de terminaci n?? NO Evaluacin de cada individuo en la poblacin SI Generacion++ Individuos =M? NO

SI Resultado Propuesto

Fin

Mutacin Seleccin de la operacin Gentica Cruce 2 Individuos seleccionados en base a su desempeo Ejecucin Crossover Insercin de 2 individuos en la nueva poblacin Individuo seleccionado en base a su desempeo Ejecucin Mutacin Insercin del mutante en la nueva poblacin

Individuos=Individuos+ 2

Individuos=Individuos+ 1

Una iteracin de este ciclo constituye una generacin. Este comportamiento puntual no se observa como un todo dentro de las poblaciones en la naturaleza pero si representa un modelo de implementacin conveniente. La primera generacin (generacin 0) de este proceso opera sobre una

poblacin de individuos generados aleatoriamente. Desde entonces las operaciones genticas en conjunto con la medida del desempeo trabajan para mejorar la poblacin.

Estructura
Tipos de Representacin Durante los primeros aos el tipo de representacin utilizado era siempre binario, debido a que se adapta perfectamente al tipo de operaciones y el tipo de operadores que se utilizan en un AG. Sin embargo, las representaciones binarias no son siempre efectivas por lo que se empezaron a utilizar otro tipo de representaciones. En general, una representacin debe identicar las caractersticas constituyentes del conjunto a estudiar, de forma que distintas representaciones dan lugar a distintas perspectivas y por tanto distintas soluciones. Tipos bsicos de representaciones: Representacin binaria: Cada gen es un valor 1 0. Representacin entera: Cada gen es un valor entero. Representacin real: Cada gen es un valor real.

Tamao de la poblacin Una cuestin que se puede plantear es la relacionada con el tamao idneo de la poblacin. Parece intuitivo que las poblaciones pequeas corren el riesgo de no cubrir adecuadamente el espacio de bsqueda, mientras que el trabajar con poblaciones de gran tamao puede acarrear problemas relacionados con el excesivo costo computacional. Poblacin Inicial Habitualmente la poblacin inicial se escoge al azar. Si los individuos de la poblacin inicial se obtuviesen como resultado de alguna tcnica heurstica o de optimizacin local puede suceder que se acelere la convergencia del AG. Sin embargo en algunos casos la desventaja resulta ser la prematura convergencia del algoritmo, queriendo indicar con esto la convergencia hacia ptimos locales. Funcin Objetivo El resultado al cual se desea llegar. Operador de Seleccin El operador de Seleccin es el encargado de transmitir y conservar aquellas caractersticas de las soluciones que se consideran valiosas a lo largo de las generaciones. El principal medio para que la informacin til se transmita es que aquellos individuos mejor adaptados tengan ms probabilidades de reproducirse. Sin embargo, es necesario tambin incluir un factor aleatorio que permita reproducirse a individuos que aunque no estn muy bien adaptados, puedan contener alguna informacin til para posteriores

generaciones, con el objeto de mantener as tambin cierta diversidad en cada poblacin. Operador de Cruce El operador de Cruce permite realizar una exploracin de toda la informacin almacenada hasta el momento en la poblacin y combinarla para crear mejores individuos. Operador de Mutacin La mutacin se considera un operador bsico, que proporciona un pequeo elemento de aleatoriedad en el entorno de los individuos de la poblacin. Si bien el operador de cruce es el responsable de efectuar la bsqueda a lo largo del espacio de posibles soluciones, el operador de mutacin va ganando en importancia a medida que la poblacin de individuos va convergiendo. El objetivo del operador de mutacin es producir nuevas soluciones a partir de la modicacin de cierto nmero de genes de una solucin existente, con la intencin de fomentar la variabilidad dentro de la poblacin. Existen muy diversas formas de realizar la mutacin, desde la ms sencilla (puntual), donde cada gen muta aleatoriamente con independencia del resto de genes, hasta conguraciones ms complejas donde se tienen en cuanta la estructura del problema y la relacin entre los distintos genes.

Ventajas
Los AG son intrnsecamente paralelos. Ya que los AG tienen descendencia mltiple, pueden explorar el espacio de soluciones en mltiples direcciones a la vez. Debido al paralelismo que les permite evaluar implcitamente muchos esquemas a la vez, los AG funcionan particularmente bien resolviendo problemas cuyo espacio de soluciones potenciales es realmente grande, demasiado vasto para hacer una bsqueda exhaustiva en un tiempo razonable. Poseen la habilidad para manipular muchos parmetros simultneamente. Muchos problemas de la vida real no pueden denirse en trminos de un nico valor que hay que minimizar o maximizar, sino que deben expresarse en trminos de mltiples objetivos. La virtud de esta tcnica es que permite a los AG comenzar con una mente abierta, por as decirlo. Cualquier estrategia de resolucin de problemas que dependa de un conocimiento previo, debe inevitablemente comenzar descartando muchos caminos a priori, perdiendo as cualquier solucin novedosa que pueda existir.

Desventajas
La primera y ms importante consideracin al crear un AG es denir una representacin del problema. El lenguaje utilizado para especicar soluciones candidatas debe ser robusto; es decir, debe ser capaz de tolerar cambios aleatorios que no produzcan constantemente errores
7

fatales o resultados sin sentido. El problema de cmo escribir la funcin objetivo debe considerarse cuidadosamente para que se pueda alcanzar una mayor aptitud y verdaderamente se d una solucin mejor para el problema dado. Un problema muy conocido que puede surgir con un AG se conoce como convergencia prematura, esto a raz de una incorrecta definicin de la poblacin inicial. No utilizar AG en problemas resolubles de manera analtica, pues estos mtodos analticos tradicionales consumen mucho menos tiempo y potencia computacional que los AG y, a diferencia de los AG, a menudo est demostrado matemticamente que ofrecen la nica solucin exacta.

Cundo usar algoritmos genticos?


La aplicacin ms comn de los AG ha sido la solucin de problemas de optimizacin, en donde han mostrado ser muy ecientes y conables. Sin embargo, no todos los problemas pudieran ser apropiados para la tcnica, y se recomienda en general tomar en cuenta las siguientes caractersticas del mismo antes de intentar usarla: Su espacio de bsqueda (sus posibles soluciones) debe de estar delimitado dentro de un cierto rango. Debe permitir la definicin de una funcin de aptitud que nos indique que tan buena o mala es cierta respuesta. Las soluciones deben programarse de una forma que resulte relativamente fcil de implementar en el computador.

Antecedentes y desarrollo histricos.


El desarrollo de los Algoritmos Genticos se debe a gran medida a John Holland, investigador de la Universidad de Michigan. A finales de la dcada de los 60 desarroll una tcnica que imitaba en su funcionamiento a la seleccin natural. Aunque originalmente esta tcnica que imitaba en su funcionamiento a la seleccin natural. Finales de los 59 y principios de los 60.- Algoritmos Genticos programados en computadoras por bilogos evolutivos que buscaban explcitamente realizar modelos de aspectos de la evolucin natural. En 1962, investigadores como G.E.P. Box, G.J. Friedman, W.W. Bledsoe y H.J. Bremermann haban desarrollado independientemente algoritmos inspirados en la evolucin para optimizacin de funciones y aprendizaje automtico, pero sus trabajos generaron poca reaccin. En 1965 surgi un desarrollo ms exitoso, cuando Ingo Rechenberg, entonces de la Universidad Tcnica de Berln, introdujo una tcnica que llam estrategia evolutiva. En 1975 apareci el trabajo fundamental en el campo de los algoritmos genticos con la publicacin del libro Adaptacin en Sistemas Naturales y Artificiales de John Holland'.

A finales de 1980s la General Electric comenz a vender el primer producto de Algoritmo Gentico para solucionar problemas de procesos industriales. En 1989 se cre el producto Evolver que fue el primer producto de Algoritmo Gentico para Computadoras personales.

Fundamentos biolgicos.
En la naturaleza, los individuos de una poblacin compiten constantemente con otros por recursos tales como la comida, agua y refugio. Los individuos que tienen ms xito en la lucha por los recursos tienen mayores probabilidades de sobrevivir y generalmente una descendencia mayor. Al contrario, los individuos peor adaptados tienen un menor nmero de descendientes, o incluso ninguno. Esto implica que los genes de los individuos mejor adaptados se propagarn a un nmero cada vez mayor de individuos de las sucesivas generaciones. La combinacin de caractersticas buenas de diferentes ancestros puede originar en ocasiones que la descendencia est incluso mejor adaptada al medio que los padres. De esta manera, las especies evolucionan adaptndose ms y ms al medio a medida que transcurren las generaciones [Beasley et al., 1993]. Pero la adaptacin de un individuo no slo est determinada por su composicin gentica. Influyen otros factores como el aprendizaje, en ocasiones adquirido por el mtodo de prueba y error, en ocasiones adquirido por imitacin del comportamiento de los padres. Para imitar esta adquisicin de conocimiento se han desarrollado variantes como el Ajuste Fino, consistentes en pequeas modificaciones de los genes de un cromosoma. Por ejemplo, estas modificaciones pueden realizarse tomando como resultado e mejor individuo tras la ejecucin de varias generaciones de un Algoritmo Gentico cuya poblacin previamente ha sido creada a partir de ligeras variaciones del individuo al que se desea incorporar el conocimiento.

Estado del arte


En la actualidad los algoritmos genticos se utilizan para infinidad de cosas, existen trabajos y proyectos tanto comerciales como no comerciales. Entre ellas tenemos empresas de aplicaciones como las siguientes: JGAP: Aplicacin hecha en java para generar soluciones a problemas implementando algoritmos genticos, tiene diversas funcionalidades como: educativas, de investigacin o simple entretenimiento. Optimal Synthesis Inc.: Organizacin que ofrece herramientas para bsqueda gentica a partir de los algoritmos genticos, abalada por la marina de Estados Unidos, ofrece su producto para trabajar con MatLab. Anglo American Chaos: Modelado y anlisis de datos no lineales en conjunto con los algoritmos genticos y otras tecnologas de la IA como programacin gentica, prediccin de patrones, estimacin de ruidos, etc. Perfect tablePlan: Programa funcional que ayuda a planear la localizacin de las personas en una boda.

RML Technologies Inc.: Programa Discipulus 5 que usa la programacin gentica basada en los algoritmos genticos para predecir modelos. JAGA: Software para crear aplicaciones que funcionen con algoritmos genticos y programacin gentica.

En la actualidad los usos y tecnologas de los algoritmos genticos van mejorando y creciendo cada da ms. A continuacin se mencionan algunas reas y clases donde se aplican los algoritmos genticos.

reas de aplicacin y clases


Optimizacin: Se trata de un campo especialmente abonado para el uso de los AG, por las caractersticas intrnsecas de estos problemas. No en vano fueron la fuente de inspiracin para los creadores de estos algoritmos. Los AG se han utilizado en numerosas tareas de optimizacin, incluyendo la optimizacin numrica, y los problemas de optimizacin combinatoria. Programacin automtica: Los AG se han empleado para desarrollar programas para tareas especcas, y para disear otras estructuras computacionales tales como el autmata celular, y las redes de clasicacin. Aprendizaje mquina: Los AG se han utilizado tambin en muchas de estas aplicaciones, tales como la prediccin del tiempo o la estructura de una protena. Han servido asimismo para desarrollar determinados aspectos de sistemas particulares de aprendizaje, como pueda ser el de los pesos en una red neuronal, las reglas para sistemas de clasicacin de aprendizaje o sistemas de produccin simblica, y los sensores para robots. Economa: En este caso, se ha hecho uso de estos Algoritmos para modelar procesos de innovacin, el desarrollo de estrategias de puja, y la aparicin de mercados econmicos. Sistemas inmunes: Al momento de modelar varios aspectos de los sistemas inmunes naturales, incluyendo la mutacin somtica durante la vida de un individuo y el descubrimiento de familias de genes mltiples en tiempo evolutivo, ha resultado til el empleo de esta tcnica. Ecologa: En el modelado de fenmenos ecolgicos tales como las carreras de armamento biolgico, la coevolucin de parsito-huesped, la simbiosis, y el ujo de recursos. Gentica de poblaciones: En el estudio de preguntas del tipo "Bajo qu condiciones ser viable evolutivamente un gen para la recombinacin?". Evolucin y aprendizaje: Los AG se han utilizado en el estudio de las relaciones entre el aprendizaje individual y la evolucin de la especie. Sistemas sociales: En el estudio de aspectos evolutivos de los sistemas sociales, tales como la evolucin del comportamiento social en colonias de insectos, y la evolucin de la cooperacin y la comunicacin en sistemas multiagentes.

10

Desarrollos actuales en el mundo y en Mxico.


1. Aplicacin de algoritmos genticos a un despacho econmico: Tesis de Maestria en Grado de ciencias de la ingeniera elctrica con especialidad en potencia. UNAM. 2006 2. Una Aplicacin de los Algoritmos Genticos en la Discriminacin: Aurora Montano Rivas Mario Cant Sifuentes. Departamento de Estadstica y Clculo, Universidad Autnoma Agraria Antonio Narro. 2004. 3. Actas de los Talleres de las Jornadas de Ingeniera del Software y Bases de Datos, Vol. 2, No. 4, 2008 Generacin de mutantes con algoritmos genticos Domnguez Jimnez, J. J., Estero Botaro, A., Medina Bulo, I.Departamento de Lenguajes y Sistemas Informticos. Cdiz, Chile

11

Caso Prctico
Nuestro caso prctico se basa en el modelo cinemtico denominado "Strandbeest" creado por el escultor cinemtico Theo Jansen. Este modelo esta formado por mltiples eslabones unidos, a los cuales se les conecta algn mecanismo actuador, como un motor, y esto provoca que el modelo reaccione con un movimiento similar a una pierna humana. 20
29 cms. 10

17 cms

5 cm

-10

-20

-30

30 cms.

-40

La figura anterior muestra al modelo con medidas de los eslabones. Con estas medidas se sigue un paso con la forma marcada con rojo.
-60 -50 -40 -30 -20 -10 0 10 20

-50

Estos parmetros de las longitudes de los eslabones, son introducidos al algoritmo gentico desarrollado en Matlab. Los parmetros son codificados de forma especial para especificar la funcin objetivo, la cual en este caso es dar un paso con mayor longitud en X. Durante las simulaciones, se obtenan resultados dependiendo de los parmetros de entrada, por ejemplo:
Parametros:
u=10; m=.6*u; d=2*u; l1=2.9*u; l2=1.9*u; l3=3*u;
20 10 0 -10 -20

muy

variados

Resultados: dx = 25.0118

dy =

4.8270

-30 -40 -50 -60 -50

-40

-30

-20

-10

10

20

30

40

50

12

Trayectoria de la pata
0

Desplazamiento en x

-38 -40 -42 -44 -46

-10 -20 -30 -40

20

40

60

80

100

120

140

Desplazamientos en y

-48 -50 -52 -54

-42 -44 -46 -48 -50

-30

-25

-20

-15

-10

20

40

60

80

100

120

140

Pero tambin se dieron casos en donde no eran posibles fsicamente los resultados obtenidos: Parametros: u=10; m=.6*u; d=2*u; l1=2.8*u; l2=2.0*u; l3=3*u; Resultados: dx = 25.4300 0.8542 dy =

20 10 0 -10 -20 -30 -40 -50 -60 -50

-40

-30

-20

-10

10

20

30

40

50

Trayectoria de la pata -40 -42 -44 -46 -48 -50


Desplazamientos en y Desplazamiento en x 0 -10 -20 -30 -40

20

40

60

80

100

120

140

-52 -54 -56

-47.5

-48

-48.5

-58 -30 -25 -20 -15 -10


-49 0 20 40 60 80 100 120 140

13

En base a estos resultados se obtuvo que las mejores medidas son las siguientes: U=10
M .6 6 cm D 2 20 cm
20 29 cm 10 19 cm 0 6 cm

L1 2.9 29 cm

L2 1.9 19 cm

Dx 25.0118

Dy 4.8270

-10

-20 30 cm -30

-40

-50

Bibliografa consultada
E. Gmez-Ramrez & F. Mazzanti, Cellular Neural Networks Learning using Genetic Algorithm, 7mo. Congreso Iberoamericano de Reconocimiento de Patrones, CIARP 2002, Noviembre 19-22, CIC-IPN, Cd. de Mxico, Mxico. 2002. A.G. Snchez de Tagle Horta. Introduccin a los algoritmos genticos. T esis
(ingeniero en ciberntica y en sistemas computacionales)--Universidad La Salle. Escuela de Ingeniera. C.L., Karr et al. Industrial applications of genetic algorithms. Boca Ratn. 1999
-60 -50 -40 -30 -20 -10 0 10 20

http://www.sistedes.es/TJISBD/Vol-2/No-4/articles/pris-08-dominguezmutantesGeneticos.pdf

14

Cuestionario
1. Qu son los algoritmos genticos?

a) Son algoritmos de bsqueda que se basan en iteraciones y buscan resultados ptimos. b) Son algoritmos de bsqueda basados en la mecnica de la seleccin natural y de la gentica natural que consisten en una poblacin de soluciones codificadas de forma similar a cromosomas. c) Son algoritmos de bsqueda basados en la mecnica de la seleccin natural y de la gentica natural que siempre brindan el resultado ms ptimo. d) Son algoritmos basados en matemticas avanzadas, los cuales son codificados de modo similar a una ecuacin.
2. Cules son los tipos que existen para representar las caractersticas

constituyentes del conjunto a estudiar? a) Binario, real y entero b) Binario, cadenas c) Nmeros y d) Entero y y caracteres. cadenas. fracciones.
3. Qu ventajas ofrecen los algoritmos genticos?

a) Manipulan muchas variables al mismo tiempo y se trabaja con la mente abierta. b) Puede presentarse la convergencia prematura y trabajan de forma paralela. c) Definir la representacin del problema y manipular muchas variables al mismo tiempo. d) Se trabaja con la mente abierta y dan siempre la mejor solucin a un problema.
4. Cules son los operadores utilizados en algoritmos genticos?

a) De seleccin, d)Ninguno de los mutacin y relacin. anteriores. a) John Holland Gmez


6. Cul

b) De seleccin,

c) De mutacin, seleccin y cruce.

cruce y crecimiento.

5. Quin introdujo el trmino de Algoritmo Gentico?

b) Ingo Rechenberg

c)Charles Darwin

d)

E.

Ramrez es el nombre conocimiento? a)Ajuste Gentico d)Ajuste Biolgico a)1972 d)1869 de la tcnica que imita la adquisin de

b)Ajuste Fino

c)Ajuste

Natural

7. En qu ao se le dio el nombre de Algoritmo Gentico?

b)1960

c)1975

15

8. Para qu sirve Perfect Table Plan? a) Organizar Cocteles b) Organizar Bodasc) Organizar cursos Organizar clases 9. Mencione una aplicacin de los algoritmos genticos a) Optimizacin b) Estudio c) Crear clones d)Programacin

d)

automtica 10.Software con el cual podemos hacer modelado de algoritmos genticos a) Mat Lab b) Word c) Angry Birds d) Paint

16

También podría gustarte