SANDRA VICTORIA HURTADO G. HENRY TRUJILLO M. Estudiantes de 90. Semestre de Ingeniera de Sistemas ICESI 31 ICESI -&1;;; Cmo logran esto los seres vivos? Si se conoce la respuesta es posible tra- tar de aplicarla a un programa o al- goritmo; esto es lo que efectivamente ocurri. La respuesta fue dada por Charles Darwin y su teora evolutiva: los orga- nismos sobreviven gracias a la selec- cin natural. Por este principio, los indi- viduos con mayores ventajas frente al ambiente sobreviven y tienen descen- dencia con esas o mejores ventajas. Ahora surge la pregunta: Cmo lle- var unos principios biolgicos y ge- nticos a un algoritmo para poder "imi- tar" el comportamiento de los seres vi- vos? La respuesta son los algoritmos genticos. Las ventajas de los algoritmos genticos radican no slo en su capaci- "" Hit &+ ir i ,!t2IlJgFMi1q r' 'Wp MM 1. INTRODUCCiN :>.onas interesadas en adquirir el disquete de este programa favor consignar $4.000 enta 0026 04536 9 Ahorrams -Cosmocentro Cali, y enviar recibo o colocar Fax al 2345, Oficina de Investigaciones ICESI y les haremos llegar por Servientrega a la ,drreCclOn indicada. En el presente artculo se presenta el final del proyecto de Inves- tigacinsobreAlgoritmos Genticos que se desarroll con la asesora del profe- Mnera. que los computadores evo- IUEi0.t:tflP, aumeqta su capacidad para resolver problemas cada vez ms com- muchos campos han supera- do humanos, por ejemplo, la la que realizan clculos matemticos. -",;.,, ." existen muchos otros en los cuales los seres vivos a cualquier programa. Uno es la capacidad de adaptarse a nevos ambientes o situaciones de cua,lqutfr'tipo y superar los problemas que s-presentan. HIJOS Cruzamiento PADRES En este caso la po:sicin de cruce fue 3 El procedimiento necesita de ampliar su espacio de ello utili- za la Mutacin, que proporciona altera- ciones ocasionales del cromosoma, con el fin de evitar poblaciones montonas. En el caso de utilizar un alfabeto binario realizar una mutacin consistir en cam- biar un 1 por un Oo viceversa. -Cmo funcionan los algoritmos genticos? Lo primero que debemos hacer es determinar cmo representar los par- metros del en un cromosoma y la funcin objetivo para evaluar de los individuos. Simulando los sistemas de seleccin natural a los que se encuentran someti- dos los organismos vivos, los algoritmos utilizan tres operadores bsi- cos para solucionar el nrnhl<>m", De acuerdo con un procedimiento probabilstico, los cromosomas con al- tos valores de su funcin objetivo son escogidos para contribuir con uno o ms descendientes en la genera- cin. A este procedimiento se le deno- mina Seleccin. El procedimiento requerido para pro- ducir cromosomas hijos se llama Cru- zamiento y consiste en la mezcla y recombinacin de los genes de dos cromosomas, que han sido pn:wi,lm,eo- te seleccionados de la generacin an- terior. Para cruzar estos cromosomas se escoge la de cruce entre 1 y la longitud del cromosoma, y se prc)dlJcEin dos cromosomas con caractersti- cas de ambos Por eie'm[)lo: Cada cromosoma es una solucin, buena o del A medida que el se va desa- rrollando las soluciones se acercan cada ala En los sistemas naturales, los indivi- duos se encuentran a las condi- los rodean y de acuerdo con ad,apl:acin al mismo se determina su soIJreviven:;ia. de manera que los "me- individuos sobreviven y tienen En los sistemas naturales, un indivi- dLlO es un ser que caracteriza su eSIJe(;II::. En los algoritmos un indlVlClUO es un solo cromosoma, que en ,nTO forman una poblacin de cromosomas. Cuando nos enfrentamos a un pro- blema con los mtodos tradicionales es manipular mucha informacin adiCional para apropiadamente, pues adems de los parmetros y la fun- cin que deseamos optimizar es nece- sario utilizar tcnicas y mtodos adicio- nales para la resolucin al oroblema plante,adIJ. Por para obtener el mximo para una funcin nnlinr)mi",,,, sera necesario conocer el dorninio de la funcin y, todos los del dominio en la funcin y obte- ner de ellos el que d mayor resultado o el mximo utilizando mtodos analticos (derivadas). Para resolver este mismo utilizando ritmos lo nico que debemos saber es la codificacin de los parme- tros en un cromosoma y la funcin que cadenas (strings) y cada de la cadena representa un gen. El primer paso al desarrollar un algoritmo gentico es, entonces, codifi- car el parmetro deseado como una cadena y usando unalfabeto. Por ejem- plo, si buscamos codificar la posicin de un interruptor (encendido-apagado) po- dramos utilizar una cadena de una sola posicin y que tomara dos valores: uno para indicar encendido y otro para indi- car apagado. Si utilizamos los valores y 1 estaramos usando un alfabeto binario. O: apagado 1: encendido La longitud de un cromosoma est determinada por el nmero de genes que lo conforman. Si, por queremos codificar el nmero 5 usando el alfabeto binario es utilizando una cade- na de 3: 101, una cadena de longitlld 4: 0101, etc. El valor que pueda tomar cada gen se conoce como alelo. Si utiliza el alfa- beto binario cada gen slo tomar dos valores, uno o cero. El conjunto ordenado de genes un cromosoma se conoce como genotipo y las caractersticas del indi- viduo. Por en el cromosoma el genotipo es {1 ,0,0,1 ,O}. carac:telrst,iClS de un individuo COlldil:;iolrlacias por su y se a nivel externo. As, de los valores que tengan los genes de una persona decir que es alta o de ojos azules o ver- de cabello liso o rizado, etc. Esto se denomina fenotipo, y en los al- goritmos corresponde a la decodificacin de un cromosoma. Con- tinuando con el el fenotipo para el cromosoma 10010 ser su represen- tacin en decimal (18). Las caractersticas de los seres vi- vos se encuentran registradas en los cromosomas y los genes, lo que hace que cada individuo sea diferente dentro de una poblacin. En algoritmos genticos los cro- mosomas se representan mediante 11. ALGORITMOS GENETICOS: CONCEPTOS y FUNDAMENTOS -Qu son Jos algoritmos genticos? Los algoritmos genticos son algoritmos inspirados en la seleccin natural que han logrado todo el proceso evolutivo de los vi- vos para resolver problemas de optimi- zacin, y aprendizaje en las mquinas. La teora de los algoritmos nAnilir.()!'; fue desarrollada por John H. Holland, sus y sus estudiantes en la Universidad de en un proyec- to que buscaba el proceso de de los di- sistemas artificiales que conser- varartlos I'Ils iml)Orlantes mecanismos sis'lenlas naturales. De este pro- frI'l'lnn Algorii:mo Ge- dad de adaptacin sino en la robustez que presentan, es decir, el balance en- tre eficiencia y eficacia necesario para sobrevivir en diferentes ambientes. En el siguiente pargrafo se dar una breve introduccin a los algoritmos genticos, mostrando sus principales conceptos. y otros. i Puede hacer c1ick en ellos y averiguar qu sucede! Este botn indica que la ventana actual depen- de de otra principal. Haciendo c1ick en este botn o presionando las teclas ALT- Rse re- gresar a la ventana desde la cual se llam a la ventana actual. En algunas de las ventanas se en- contrar adems con otros botones que sirven para diferentes propsitos, por ejemplo: Una vez haya terminado de leer la in- formacin que se da en esta ventana, puede volver a la pantalla normal presio- nando el botn OK (o digitando ALT-O). 3. Ventanas acerca de... En muchas pantallas se encontrar con palabras en color rojo (donde ade- ms cambia la forma del cursor, al pa- sar el mouse sobre ellas), al hacer c1ick sobre ellas con el mouse aparecer una ventana Acerca de... donde se dar in- formacin adicional relacionada con la palabra seleccionada. Este botn permite ir a la ventana anterior. La misma funcin se pue- de obtener presionan- do las teclas: ALT - A DEMO Algoritmos Genticos Al seleccionar este bo- tn o presionar ALT- S se, terminar la ejecu- cin del programa (ver Salir). En la primera ventana se mostrarn dos botones, para empezar el progra- ma seleccione el botn Inicio: Seleccionando este bo- tn se ir a la siguiente ventana. Tambin se puede hacer presio- nando: ALT-[ en el cono Demo Algoritmos Ge- nticos 2. Botones y comandos En la mayora de las ventanas se ten- drn disponibles botones en la parte in- ferior, cuya funcin se explicar a conti- nuacin: Tambin puede presionar las teclas: ALU Una vez ha comenzado el programa, podr navegar a travs de las pantallas o ventanas con los botones que se en- cuentran en la parte inferior de la venta- na. O. Introduccin En este manual para usuarios fina- les se muestra el funcionamiento bsi- co del programa Tutorial sobre Al- goritmos Genticos Simples (DEMO- AG). Este programa busca mostrar de una manera general y sencilla los prin- cipales conceptos de los Algoritmos Genticos. El programa Demo Algoritmos Ge- nticos v 1.0 fue escrito por Juan An- drs Alvarez, Sandra Victoria Hurtado y Henry Trujllo, utilizando Visual Basic, versin 3.0 standard. Para correr el programa es necesa- rio tener Windows 3.1 o superior. Ade- ms se debe tener una resolucin de aO()x600, letra pequea. Se puede co- rrer con 16 colores, pero se recomienda qyeseln 256 colores. 1. Cmo empezar El puede correrse desde DOS (en e,1 directorio donde se encuen- tre el programa) con el comando: demo -ag <enter>. (Esto iniciar Windows automticamente). Tambin puede correrse desde Win- dows dando doble c1ick con el mouse 111. DEMO ALGORITMOS GENTICOS (V 1.0 MANUAL BSICO) Usan la informacin que les propor- ciona la funcin objetivo y no requie- ren de otros mtodos o conocimien- tos auxiliares. Esta caracterstica hace que se puedan adaptar ms fcilmente a los diferentes proble- mas. Usan reglas de transicin probabi- lsticas como una herramienta para distribuir mejor los puntos de bs- queda. es[>aciiQ,Il? solu- po- ClfQ1110S'OlTlaS Que por sus d,iversls a9arXafl dis- tintas soluciones al mismotiempo, y adems, por efectos del cruzamien- to amplan mucho ms el espacio de bsqueda. Por el contrario, los algoritmos tradicionales manipulan un solo punto de bsqueda. Tambin se deben asignar las probabili- dades de cruzamiento y mutacin ade- cuadas para el problema, y seguir los pasos que se describen a continuacin: 1. Se crea una poblacin inicial aleato- ria y se evala cada cromosoma de acuerdo con la funcin objetivo. 2. Se seleccionan los cromosomas con mejor valor fitness para ser reprodu- cidos. 3. De los cromosomas seleccionados se escogen pares al azar para ser cruzados. Los cromosomas hijos for- man la nueva generacin. 4. Ocasionalmente se muta algn gen de acuerdo con la probabilidad de mutacin. 5. Se repite el proceso de seleccin, cruzamiento y mutacin de genera- cin en generacin hasta que se complete el nmero mximo de ge- neraciones establecido, o se alcan- za una solucin suficientemente bue- na. o -.ii Ventajas de los algoritmos genticos? algoritmOS genticos difieren en de los algoritmos especialrnotl'1 n los de bsqueda y opti- , , d6H t Mi n,,' {Bitk 1 ss, :2 35 rii ICESI GOLBERG, David E. Genetic Algorithms in Search, Optimization, andMachine Learning. Addison-Wesley Publishing Company, inc. 1989. HEDBERG, Sara Emergin Genetic AI- gorithms. En: Al Expert. Vol. 9 No. 9 (Sept. de 1994). HOLLAND, John. Algoritmos Genticos. En: Investigacin y Ciencia. No. 192 (Sept. de 1992). KENNEDY, Scott A. Five ways to a Smarter Genetic Algorithm. Vol. 8 No. 12 (Dic. de 1993). LAWTON, George. Genetic Algorithms for Schedule Optimization. En: Al Expert. Vol. 7 No. 5 (May. de 1992). WINSTON, Patrick Henry. Inteligencia artifi- cial. 3a. Ed. Addison-Wesley Iberoamerica- na. 1994. gentico (como la probabilidad de mutacin y de cruce), lo que permi- le encontrar soluciones ms pti- mas. Los algoritmos genticos represen- tan, por todas sus caractersticas, una opcin que debe ser tenida en cuenta cuando se busca resolver un problema con algn grado de com- plejidad, yen general debera ser un mtodo que pueda ser conocido y aplicado por los estudiantes de In- geniera de Sistemas dellCESI. V. BIBLlOGRAFIA CONA, John. Developing a Genetic Progra- ma System. En: Al Expert. Vol. 10 No. 2 (Feb. de 1995). IV. CONCLUSIONES Los algoritmos genticos presentan importantes ventajas sobre los algoritmos tradicionales, como son: su capacidad para trabajar con va- rios puntos simultneamente abar- cando as un espacio mucho mayor de bsqueda ("paralelismo"), su sim- plicidad (ya que no requieren mani- pular directamente los parmetros del problema) y su facilidad para adaptarse a muy diferentes tipos de problemas. Los algoritmos genticos presentan algunas desventajas como: la dificul- tad para encontrar una representa- clnapropiada de los parmetros del prOblema o para hallar una funcin objetivo adecuada. Los algOritmos genticos no asegu- ran encontrar la solucin ptima, pero en muchos casos pueden pro- porcionar soluciones bastante ade- cuadas y que por otros mtodos hu- biera sido imposible encontrar. Es posible modificar algunos de los parmetros iniciales de un algoritmo == Salir Est seguro? tAsi.1 Puede seleccionar salir (botn SI o ALT - S) o retornar al programa y conti- nuar normalmente (botn NO o ALT- N). En este caso se mostrar una venta- na para confirmar que desea terminar el programa 6. Realizadores Si desea informacin acerca de los creadores del programa Demo Al- goritmos Genticos puede hacer c1ick sobre el dibujo que se muestra en la parte inferior izquierda de todas las pan- tallas. 5. Salir En cualquier momento es posible fi- nalizar la ejecucin del programa al pre- sionar el botn Salir o digitar ALT - S. Irdeesla
Retornar para volver ala panta1l9 des- de donde se inici el ejemplo y conti- nuar desde all. Al presionar este bo- tn se mostrar una ventana con las esta- dsticas de la pobla- cin mostrada. Para salir de esta ventana seleccione el botn OK. Al hacer c1ick sobre este botn aparecer una ventana con co- mentarios acerca de lageneraciQn que se muestra en la panta- lla. Para eliminar esta ventana haga Click
4. Ejemplo Presionando el botn Ejemplo que aparece en una de las pantallas se po- dr observar una aplicacin prctica de un algoritmo gentico. En esta seccin se podr navegar como en las dems pantallas con los botones que aparecen en la parte inferior derecha. En las ltimas pantallas de esta sec- cin se tendrn dos botones adiciona- les cuya funcin se explica a continua- cin: :_=.=:Qi::===*:ii::I:========:C:-:m:"j==*::,