You are on page 1of 164
Algoritmos Evolutivos UO etc Prone POC Resa nd ISBN 978-607-7686-29-3 wii Il | Dee ren Alfaomega Grupo Editor een) PT WOE LL) Le A tus aU TEs Un enfoque practico Lourdes Araujo Carlos Cervigon PNT eC caee) TCO) Algoritmos evolutivos: un enfoque practico Lourdes Araujo Carlos Cervigén Alfaomega 4 Ra-Ma’ Datos caalogrtioos ‘Araujo, Lourdes y Cervigsn, Caos. ‘Algor Evolvos tm efogue prsctico, amor Esiegn Alfoomeza Grupo Eto, S.A, de CV, Méxica ISBN: 978.607-7686-29.3 Formate: 17x23 em gins: 332 Algoritmos evlutivos: un enfogue prético Lourdes Araujo y Cars Cervigin ISBN: 978-84-7897911-,edicin original publicada por RA-MA Editors, Maid, Expats Derechos reservados © RAMA Eto Primera ediin: Alfaomega Grupo Eitor, México, abril 2009 (© 2009 Aifsomega Grupo Bator, S.A. de CV, Ptigoas 1139, Cl. Del Valle, 03100, Mésieo DF, Miembro dela Cimara Nacional dela Industria Eitral Mexicana Registro No.2317 Email atenconaltiente@alfuomegacom.my ISBN: 978.607.7686.29-3, Derechos reservados: Esta obra es propiedad ntelecal de su autor y Jos derechos de publiacin en lengut ‘sufiola an Sido legalmente transferdos al edo. robbs repedaccin parcial oa por cualquier medio sin pemiso por esr del propitario de los derechos del copyright. ‘Nota importante: Lainormscnconenid en esta ora ene un a exclasivamente dctc , pro ano, no et previo su proven anil profesional o infuse Las inicciones cas progr Inco, tan sd elaborados on gran caida pore aur y reproduces bajo ete no ‘e conta ALFAOMEGA GRUPO EDITOR, SA. de GX. sea juricamente responsable or eroresu omisiones; des ypejuicios gue se pudran air al uso dela informacion ‘omen en ste i, porn zac india do pia dine icin suorizada para vents ex México todo el continent american, “Impeeso en México, Printed in Mexico, Empress de rope ‘México: Alfa Grp Ear, CV. -Peiguras 139, Ca De Vil Msn, DFC 05100. “as (285) 900-7740 Fa (258) 5575-2420 205, Sm con 0800020908 Ema: ecionalcentalfameps comme (Colombia: Alfons Colombian $A. — Cares 15 No, 64 A 20 — PBX (57-1) 210012, Boga, Celia Fic (971) 606E ~E-mlscencanomegacom so te: Atromeea Grp Ec, S.A.~ Gener del Cant 370-Provienci, Saago, Chile “el (82) 2684248 "Fa (66 2955786 Eoma apeciowaloneac Angst: Allume Gro Ear Agen S.A Pagan 1307 PB“) ‘Armeminn CB IOST "Te (94-1) 48117183383, Bal ena alomegaen son Lourdes dedica esa obra a Jose, Lucas y Tomé Carlos dedica esta obra alos amigos de siempre y que serin para siempre PROLOGO.. AES: TECNICAS DE BUSQUEDA Y OPTIMIZACION... 1.LLA TEORIA DELA EVOLUCION... 112 BxqUena GENERAL DE UN ALOORITO EVOLITIVO 1.3 BUSQUEDA Y OPTIMIZACION ALGORITMOS GENETICOs. 2.1 PRINCIPALES ELEMENTOS DEUN AG 2.2 REPRESENTACION DE LOS INDIVIDUOS, 2.3 GENERACION DELA POBLACION INICIAL 2.4 GRADO DE ADAPTACION DELO INDIVIDUGS. 2.5 CONDICIONES DE TERMINACION . 2.6 proceso Dt S#L20010N: MECANSNOS DE MUESTREO 0 2,7 EL PROCESO DE REPRODUCCION: OPERADORES GENETICOS, = 38 2.7.1 Operador de Cruce Monopunto, ee 7 36 2.1.2 Operador de Mutacin Aleatoria bit bit... ve 36 2.8 EL PROCESO DE REEMPLAZO. 31 2.9 bapnNTACION DEL ALCORTNO GENETICO SIMPLE vs 38 2.91 Bstruturas de Dato. so i 40 2.9.2 Generacion de la Poblacin Initial nnn sss 40 2.9.3 Adapiacién de los Individuos... o rnc 2.9.4 Evaluacin de la Poblacién 2 = 43 2.95 Seleccin de Supervivientes.. 48 2.9.6 Reproduecion, Cruce y Mutacién “4 10_ ALGORMIMOS EVOLLTIVOS- UN ENFOQUE PRACT naa onan tnovce 2.10 BEMPLO DE APLICACION ALA BSQUEDA DEL OFTIMO DENA FUNCION 6 42.1.2 Cre dirt de do pas, 1 2.11 PRoPIEDADES THORICAS DELOS ALGORITHOS GENETICS, 2 42.13 Crue dere ime ne aii 3 42.14 Cre atmo m 10 2.11.2 B1Teorema Fundamental st 42.15 Crue media geomtin é i ut 2.11.3 Paaeismo Implicit, 56 42.16 Cre SOK smn HH 42.17 Cree BEX : m1 ALTERNATIVAS A LOS COMPONENTES DE UN ALGORITMO EVOLUTIVO 57 142.2 Operaores de mucin. aia .LDELA FUNCIONOBIETIVO ALA FUNCION DE ADAPTACION wns 8 422.1 Matai ire. nz 3.1 HaciendoPostva a Funcién de Adapeacion 2 4222 Matai No Unione. : = m 3.12 Baalad dela Funcién de Adaptacién st 43 mocraMacion caine Seceeananena 12 BPEL vn 65 43,1 Creacon dels indivduos a 16 3.3 CxTERIOS DF TeNAACION 68 43.2 Operadores de rue ee 19 3.4 VARIANTES DELOS OPERADORES GENETICOS 6 433 Operadores de mutacin. 120 ti ee emienete aad EXTENSIONES DE LOS ALGORITMOS GENETICOS, as 342 Crue Segment. a 5] ALOORITNOS EVOLUTIVOS MULTOBIETNO ress 126 3.43 Cruce Uniforme, i 5.1.1 Funciones agregativas 128 ae Gomera aay 5.1.2 Aproximaciones qe liza el concept de dominancn “129 3.45 Tasa de Mutacién Vaile ennui n 5.13 Bjemplo de aplicacin ce BI 2A Mebcioa Ades “ Se ‘52 ALGORITNOS BVOLUTWWOS PARALELOS v8 3.5 TRATAMIENTO DE PROBLEMAS CON RESTRICCIONES Hee 351 Técnicas sas 3 5.21 Modelos centalzados 0 en aH. 13 3.52 Algunos problemas de restieiones atados con AES 74 ee a Lee 3.5.2.1 Tees de peralcacin z eee Lad Seas tie 5.24 Modelo ibid nn ees 137 eee eee 53 ALOORITMOS MEMENCOS... aaane 139 Saag caguene SAANUEvAS TENDENCIAS 141 ea puaaioNe 5A. Imelgeni coletiva y Algrimos de Colonie de Hong. 11 3.5.2.6 Empaqucta cn Contre 5.42 Bvoluin diferencia Eee 3 3.52.7 Coloeado degra. 5.43 Algoriamos de Estacion de Distribuciones, 144 OTROS TIFOS DE ALGORITMOS FVOLUTIVOS.. oe ee ae aes 4.1 ALGORIM0S EVOLUTIVOS EN OFTIMIZACION COMBINATORIA. 91 OPTIMIZACION DE FUNCIONES (A). St 4.1.1 El problema dl vst de COMET enn 4 1. MaxIMIzacion De FLNCIONES Seiten 1st 41.1.1 Representa deo indvius 95 2. MINIMIZAciON DE FUNCIONES. Sees 153 44112 Opendores de cne é 96 3. OPmzAciON De FUNCIONES DE VARIAS VARIABLES 158 41.13 Opeadoe de mutacin : 103 442 ALGORITMOS EVOLUTIVOS PARA NUMEROS REALES. os OPTIMIZACION DE FUNCIONES (8). 42.1 Operadores de cic. aaa BUSQUEDA DE RUTAS DE METRO. 42.1.1 Cruse discret simple. tos 1. DESCRIPCIONDEL PROBLERA 12_ALOORITMOS EVOLUTIVOS: UN ENFOQUE PRACTICO, 2, DISERO DEL ALGORFIWO... 2.1 Representacin de los individuos... 22 Generacién dela poblacién i 23 Funcién de adaptacién : 24 Operador de eruce 25. Operadior de mutacin. 2.6 — Consideraciones adicionales. 3, TRATAMIENTO ALTERNATIVO DE LAS RESTRICCIONES.. 4. CONOTRAS RESTRICCIONES.. 5. UNIEMPLODEINTERFAZ.GRAFICA, PLANIFICACION DE HORARIOS soc 1. DESCRIPCION DEL PROBLEMA. 2. DISENODEL ALGORITMO. 2.1 Representacin de los individuos. 22 Generacién dela poblacién inicia. 23° Funcién de adaptacién 24 Operador de cruce 25. Operador de mutacin. 26 — Consideracionesadicionaes 3. TRATAMIENTO ALTERNATIVO DE LAS RESTRICCIONES. 4. ConoTRASRestRIccionEs.. CORTADO DE PATRONES. 1, DESCRIPCION DEL PROBLEMA... 2. DISERO DEL ALGORFTMO. oe a 2.1 Representacin de los datos de entra, 22 Representacin de los individu... 23° Generacién dela poblacién inicial 24 Funcién de adeptacién 25 Operadorde eruce 26 Operador de mutacin. 2.7 Parimetros del slgoritmo. 3, VARIANTES DEL DISES0 DE. ALOORETMO, 3.1 Disenoe implementacin. CONTROL DE TRAFICO AEREO. 1, DESCRIPCION DEL PROBLEMA vn 2, DISERO DEL ALGORITWO... sen HBS 185 187 188 189 pen 190 191 192 194 194 194 196 199, 201 eRAMA 2a 22 23 24 25 26 3. UNAREPRESENTACION ALTERNATIVA. 4. CONRESTRICCIONES ADICIONALES RESOLUCION DEL SUDOKU. 1. DESCRIPCION DEL PROBLEMA. ~ - 2, DISERO DEL ALGORITMO. 24 22 23 24 25 3. UNEIEMPLO DE INTEREAZ GRARICA 4. CONCLUSIONES.. IDENTIFICACK 1 DESCRIPCION DEL PROBLEMA... 2, DISERODEL ALGORITMO pice 13 Representacin de os individuos... Generac dela poblacion inci Funcién de adaptacin fi Operador de er on a Operador de mutacin Consideraciones adicionales i Representacién de los individuosy la poblacién. Generac dela poblaciéninicial. uncién de adaptacién Operador de ere nn Operadores de mutacién.. IN DE FUNCIONES.. : 29 Representacin de los individuos 24 229 22 Generacién de lapoblacién nical, v0 23 Funcién de adaptacin nD 24 — Eloperador de crue 236 25 — Operador de mutacién. . sn 3T 3, UNBIEMPLO DE INTERFAZGRAFICA wn 239 4, CONCLUSIONES, 240 GENERACION DE ESTRATEGIAS DE RASTREO. 1, DESCRIPCION DEL PROBLEMA. 2. pIsENODEL ALGORIIMO. 2a 22 23 24 25 Representacin de los individuos.. Generacién de la poblacién nici Funcién de adaptcion... El operador de ertee Operador de mutacin... 251 253 255 14 ALGORITMOS EVOLUTIVOS: UN ENFOQUE PRACTICO RAMA 3. UNIEMPLODEINTERFAZ GRAFICA, a sn SE INVASORES DEL ESPACIO. 259 1. DESCRIPCION DEL PROBLEMA, 259 2, _DISERODEL ALGOREIMO. oes os ss 263 2.1 Representacia de los individuos y la poblacién 22 Generacién dela poblacion inital nennensnnnninnnnnnnnnnns265 23. Funcién de adaptacion ons : Eee aey 24 Eloperador de eruce am 25 El operador de mutacin Seen 273 26 — Consideracionesadicionales 7 ss 3. UNA VERSION ws CoMPLE1a: CoN BOMBAS. 274 4, MAspificu.Topavia: MULTIPLES ALIENIGENAS. 215 UTILIDADES: CODIGO JAVA.. SOLUCION PROYECTO 1: CODIGO C++... BIBLIOGRAFIA. INDICE ALFABETICO. PROLOGO Los Algoritmos Evolutivos constituyen una técnica general de resolucién de problemas de bisqueda y optimizacién. Su forma de procesamiento se ha inspirado en la teoria de la evolucién de las especies. Trabajan con una coleccion 0 "poblaeidn” de soluciones eandidatas o "individuos”, para los que se calcula una ‘medida de su "adaptacién” o capacidad de ser solucién al problema a resolver. La ‘composicién de la poblacién va cambiando alo largo de un proceso iterativo, cuyas iteraciones se denominan generaciones. Los individuos con mayor adaptacién tienen una probabilidad mayor de sobrevivir y permanecer en la poblacién de la siguiente generacién, y de participar en "operaciones genéticas", que son ‘operaciones de creacién de nuevos individuos a partir de modificaciones de los de la poblacién anterior. De esta forma, se emula el proceso de Ia seleccién natural Los mecanismos de creacién de nuevos individuos a lo largo del proceso evolutivo aportan a estos algoritmos una de sus propiedades fundamentales: su ccapacidad de acceder a cualquier regidn del espacio de bisqueda del problema. Sin ‘embargo, esta capacidad no conlleva la ineficieneia de una bisqueda aleatoria, ya que el mecanismo de seleccién introduce un sesgo hacia las regiones més prometedoras. Los algoritmos evolutives permiten abordar problemas complejos de bisqueda y optimizacién que surgen en las ingenierias y los campos cientificos: problemas de planificacién de tareas, horarios,tfico aéreo y ferroviario, busqueda ‘de caminos dptimos, optimizacién de funciones, etc. Con este libro hemos querido aportar un enfogue prictico al estudio de estos algoritmos evolutives, que es 16_ ALGORITMOS EVOLUTIVOS: UN ENFOQUE PRACTICO oRAMA fundamental para aplicarlos a problemas reales de cualquier disciplina det cconocimiento. Los algoritmos evolutivos presentan una estructura general que puede aplicarse a los distntos problemas, facilitando enormemente las tareas de disefio © ‘mplementacién. El tinico requisito de un usuario que desee aplicar esta técnica para resolver un problema conereto es saber programar en cualquier lenguaje de ‘propésito general en el que codificard el algoritmo evolutivo. Sin embargo, para ‘obtener buenos resultados con estos algoritmos es necesario conocertos con detalle, ‘ya que dentro del esquema general de un algoritmo evolutivo hay que clegir riltiples componentes y parimetros, de los que va a depender Ia calidad del resultado y Ia eficiencia del algoritmo. El conocimiento de la eleccién més adecuada en cada caso, que a menudo depende de detalles sutiles del problema considerado, s6lo se consigue con la prictica. Esta idea nos ha llevado a proponer este libro, que consideramos adecuado para cualquier ingeniero o licenciado con conocimientos basicos de programacién. Este libro ha partido de las notas de los cursos impartidos durante los lltimos seis aos por los autores en la asignatura de Programacién evolutiva, en la Ingeniera Informética de la Universidad Complutense. El libro tiene dos partes: una primera en la que se describen los algoritmos, y una segunda en la que se proponen varios proyectos y se esuelven empleando estas técnicas En la primera parte se presentan los conceptos que se manejan en el disefio de los algoritmos evolutivos, siempre con un enfoque prictico orientado al desarrollo de aplicaciones. El primer capitulo de esta parte es una introduccién al tema, sus antecedentes y sus variantes, El segundo capitulo esti dedicado a uno de los tipos més frecuentemente utilizados de algoritmos evolutives: los algoritmos genéticos. Estos algoritmos, que trabajan con una representacion sencilla de los problemas en forma de cadenas binarias, nos sirven para presentar la estructura y Componentes bisicos de los algoritmos evolutivos. Para ello introducimos una sencilla notacién en pseudocédigo en la que se formulan los algoritmos a lo largo del libro. En el tercer capitulo se describen distintos refinamientos del algoritmo bisico presentado en el capitulo anterior. El cuarto capitulo esti dedicado a otras vvariantes de algoritmes evolutivos, que trabajan con distintos tipos de representacién de las soluciones del’ problema considerado. Finalmente, en el quinto capitulo se presentan alternativas que afectan a Ia estructura general del algoritmo, como los algoritmos evolutivos paralelos o los que buscan la ‘optimizacién simulténea de varios objetivos (optimizacién multiobjetivo).. En [a segunda parte del libro se describe con detalle una serie de proyectos pricticos de resolucién de problemas complejos aplicando distintos tipos de RAMA PROLOGO 17 algoritmos evolutivos. El primero de estos proyectos es una aplicacién directa del diseflo presentado en la parte I, para facilitar al lector la comprensién y manejo de Jos algoritmos. Los restantes proyectos, muy variados, abordan distintos problemas de alta complejidad computacional, que los algoritmos evolutivos permiten abordar con faclidad: planificacién de horarios, de recursos, busqueda de caminos éptimos con diversas restricciones y bisquedas de estrategias de juego, por citar algunos de cllos. Cada uno de los proyectos se describe cuidadosamente, especificando los clementos del disefio del tipo de algoritmo evolutivo elegido para resolver el problema. Las propuestas que se presentan facilitarén alos lectoes el acercamiento al problema y a otros similares, a su resolucién con un algoritmmo evolutivo. Estas propuestas pueden refinarse aplicando variantes de las presentadas en la parte I ‘También se proponen para todas ellas versiones més complejas que el usuario puede desartollar como cjercicios. Los esquemas se han planteado en ;pseudocédigo con la intencién de que sean accesibles para personas que trabajen en ‘cualquier lenguaje de programacién. Al final del libro, en los apéndices, apuntamos algunos detalles pricticos para la programacién en dos de los lenguajes més ‘extendidos: C+ y Java. [Nos gustaria terminar este predmbulo con una mencién especial a Darwin en el bicentenario de su nacimiento y en el 150 aniversario de la publicacién del “Origen de las especies", por su genial aportacién a la ciencia y su inspiracién para la Programacién Evolutiva Capitulo 1 AES: TECNICAS DE BUSQUEDA Y OPTIMIZACION 1, INTRODUCCION Los Algoritmos Evolutives (AEs) son una técnica de resolucidn de problemas de bisqueda y optimizacién inspirada en la teoria de la evolucidn de las especies y la seleccién natural. Estos algoritmos reiinen caracteristicas de bisqueda aleatoria con caractersticas de bisqueda dirigida que provienen del mecanismo de seleccién de los individuos més adaptados. La unién de ambas caractersticas les permite abordar los problemas de una forma muy particular, ya que tienen capacidad para accedet a cualquier regién del espacio de busqueda, capacidad de la que carecen otros métodos de busqueda exhaustiva, a la vez que exploran el espacio de soluciones de una forma mucho mas ‘eficiente que los métodos ppuramente aleatorios. Indudablemente, un algoritmo disefiado de forma especifica para la resolucién de un problema concreto seré mas eficiente que un algoritmo evolutivo, que es una téenica general de resolucién, Pero existen muchas situaciones en las que no es posible contar con tales algoritmos. Los algoritmos evolutives proporcionan un esquema general para la resolucién de problemas. Es decir, tnemos el algoritmo disefiado para el problema, ue nos ocupa y sélo tenemos que especificar Ia forma de ciertos componentes. Incluso en el disefio de estos componentes, hay patrones de disetio que se pueden aplicar a toda una clase de problemas y qué faclitan la construecién del algoritmo evolutivo. En general, la parte més dependiente del problema especifico considerado es la definicién de la funcién de adaptacion, que se utiliza en el proceso de seleccién del algoritmo evolutivo. Tanto en el disefto de esta funcién, 20 _ALGORITWOS EVOLUTIVOS: UN ENFOQUE PRACTICO RAMA como en el resto de los componentes del algoritmo es fitil incorporar ‘conocimiento especifico del problema, si es que se dispone de él, lo que puede ‘mejorar significativamente la eficiencia y la calidad de las soluciones encontradas, ‘También es importante tener en cuenta que los algoritmos evolutivos no ¢garantizan una solucién exacta al problema abordado, sino una aproximacién cuya calidad dependera de los recursos dedicados a la bisqueda, es decir, tiempo y ‘memoria, apare, claro esti, del disefio adecuado de los componentes del algoritmo. Gracias a esta caracteristica pueden aplicarse a problemas de alta complejidad computacional, proporcionando una solucién aproximada que en muchos casos es suficiente para las necesidades del usuario, 0 en otros es lo tinico que se puede obtener. Aunque la estructura general de los algoritmos evolutivos facilta ‘enormemente el disefio de un algoritmo de resolucién de un nuevo problema, s6lo la préctica y la experiencia con este tipo de algoritmos nos permite sacarles el ‘maximo partido, ya que sus resultados son muy dependientes de Ia correcta cleccién de sus componentes y parmetros. Por esto, en este libro se presenta una coleccién de problemas reales, y su resolucién con un algoritmo evolutivo. El estudio y puesta en prictica de estos proyectos permitirl al lector conocer y obtener Ia experiencia necesaria con los algoritmos evolutivos para llegar a comprender st filosofia y para abordar el disefio del algoritmo que resuelva un nuevo problema. 1.1 LA TEORIA DE LA EVOLUCION Los Algoritmos Evolutivos parten de las ideas del modelo de evolucién natural que fue propuesto por Charles Darwin [DAR1859]. De acuerdo con la tworia de Darwin la evolucién de las especies se debe al principio de seleccién natural, que favorece la supervivencia y multiplicacién de aquellas especies que stn mejor adaptadas a las condiciones de su entomo. Otro elemento que Darwin sefialé como relevante para la evolucién son las mutaciones, © pequetias variaciones que introducen diferencias en las caracteristicas fisicas y tipos de respuesta de los padres y los hijos. El mecanismo que fuerza la actuaci6n de la seleccién es la produccién de descendencia. Mientras hay abundancia de recursos, la poblacién crece exponencialmente. Este proceso lleva a situaciones de escasez de recursos en el entoro, en las que los individuos "mejor adaptados" al medio tienen mayor probabilidad de sobrevivir y de dejar descendencia, La genética y las leyes de Ia herencia genética han complementado la teoria, dde Darwin con mecanismos relativos a la herencia de caracteristicas fisicas en la pproduccién de descendencia, dando lugar a la teoria del neodarwinismo, De acuerdo con esta teoria, las caracteristicas fisicas de un individuo, su fenotipo, son eRAMA (CAPITULO 1: AES: TECNICAS DE BUSQUEDA Y OFTIMIZACION21 Ja consecuencia de su informacién genética 0 genotipo, cadenas de genes con complejas interacciones, que constituyen las unidades de transferencia de la hherencia. Los genes pueden modificarse puntualmente por mutaciones. La replicacién de las cadenas de genes en la reproduccién no siempre es perfecta. A ‘veces, aunque con una frecuencia extremadamente baja, se producen errores en el proceso de copia que constituyen mutaciones. Sin embargo, existen mecanismos reparadores de estos errores, como enzimas eodificadas en los propios genes, que reducen atin mas el porcentaje de este tipo de mutaciones. También existen factores cexternos, como la radiacién y eiertas sustancias quimicas, que pueden incrementar de forma significaiva las probabilidades de mutacién. La seleceién tiene lugar sobre los individuos, que son la consecuencia del ‘genotipo y su interaccién con el medio, constituyendo las unidades de seleccién. Lo que evoluciona es el conjunto de individuos que constituyen la poblacién, que representa a un conjunta de genes comunes a sus individuos. La adaptacién de su individuo es su tendencia,relativa al resto de los individuos de la poblacién, para sobrevivir y dejar descendencia en unas condiciones ambientales especificas Estas ideas estin en Ia base del disefto de los algoritmos evolutives. ‘Ademés, muchas de las propiedades de Ia evolucién de los seres vivos, como la ‘edad, la mayor 0 menor tendencia a la mutacién segin el estadio de la evolucién, tc, estin siendo objeto de investigacién para su incorporacién a las técnicas de ccomputacién evolutiva. Sin embargo, los algoritmos evolutives no tratan de ser un refleo fiel de la evolucién biolégica. Debemos tener en cuenta que la naturaleza cevoluciona a lo largo de millones de aflos, mientras que a nosotros nos interesa que ‘nuestros algoritmos nos proporcionen una solucién en un tiempo algo més corto. 1.2. ESQUEMA GENERAL DE UN ALGORITMO EVOLUTIVO Los distintos algoritmos evolutivos que se pueden formular responden a un cesquema bésico comuin, y comparten una serie de propiedades: ‘© Procesan simulténeamente, no una solucién al problema, sino todo un conjunto de cllas. Estos algoritmos trabajan con alguna forma de representacién de soluciones potenciales al problema, que se denominan individuos. El conjunto de todos ellos forma Ia poblacién con Ia que trabaja el algoritmo. ‘+ La composicién de la poblacién se va modificando a lo largo de las iteraciones del algoritmo que se denominan generaciones. De generacién 22 ALGORITWOS EVOLLTIVOS: UN ENFOQUE PRACTICO RAMA cen generacién, ademés de variar el mimero de copias de un mismo individuo en la poblacién, también pueden aparecer nuevos individuos ‘generados mediante operaciones de transformacién sobre individuos de la poblacién anterior. Dichas operaciones se conocen como operadores enéticos © Cada generacién incluye un proceso de seleccién, que da mayor probabilidad de permanecer en Ia poblacién y participar en las ‘operaciones de reproduccién a los mejores individuos. Los mejores individuos son aquellos que dan lugar a los mejores valores (ya Sean minimos o méximos) de la funcién de adaptacién del algoritmo. Es fundamental para el funcionamiento de un algoritmo evolutivo que este proceso de seleccién tenga una componente aleatoria, de forma que individuos con baja adaptacién también tengan oportunidades de sobrevivir, aunque su probabilidad sea menor. Es esta componente aleatoria Ia que dota a los algoritmos evolutivos de capacidad para cescapar de éptimos locales y de explorar distintas zonas del espacio de basqueda, El siguiente pseudocédigo muestra un posible esquema general de un algoritmo evolutivo: funcion algoritno_cenético) ‘Troblacion pol J/_poblacién 7 ‘Trarametros parémetros// tamafio poblacién obtener_paraetros(paranetros) ; pob = poblacion-inicial 3 : evaluacion(pob, tan_pob, pos_mejor, sumadaptacion) ; /{ bucle de evolucion o imientras fo Se alcanza condicién de terminacién hacer{ Seleccion(pob," paranetros): Feproducelon(pob, parametres) ; evaluacion(pob,parametros ,pos-mejor, sunadaptacion) ; devolver pobLpos_mejor] El algoritmo procesa un conjunto de individuos que forman la poblacién ‘pob. Al comienzo del algoritmo se obtienen los datos de entrada al problema (obtener_pardmetros) y se genera la poblacién inicial, cuyos individuos se evaliian ‘mediante la funcién de adaptacién del algoritmo. El resto del algoritmo consiste en tun bucle, cada una de cuyasiteraciones es una generacién en Ia que se produce un RAMA [CAPITULO I: AES: TECNICAS DE BUSQUEDA ¥ OFTIMIZACION23 proceso de seleccién, que da mayores probabilidades de tener copias en la nueva poblacién a los individuos més adaptados, seguido de un proceso de reproduccién fen el que se generan nuevos individuos a partir de los de la poblacién mediante ‘operaciones de mezela y pequefis alteraciones, y finalmente una evaluacién de la ‘mueva poblacién, En muchas ocasiones se utilizan pequefias variantes de este cesquema. Asi, por ejemplo, a veces se selecciona un subconjunto de Ia poblacién, {que es el nico que participa en las operaciones de reproduccién. Siguiendo este esquema general se han desarrollado distintas variantes de algoritmos evolutivos, cuya principal diferencia se encuentra en la representacin, de los individuos. Légicamente, los operadores genéticos que se utilizan para la reproduecién en cada caso dependen de la representacién adoptada. Las variantes mas conocidas, y de las que nos ocupamos en este libro, so: * Los Algoritmos Genéticos {HOL75}: utlizan una representacién binaria ocntera, © Los Programas de Evolucién (MIC94]: los individuos son cualquier cestructura de datos de tamafo fj. © Algoritmos Genéticos de Codificacién Real [BAC91, GOL91, HER98|: se hace evolucionar una poblacién de nimeros reales que codifican las posibles soluciones de un problema numérico. © La Programacién Evolutiva {KOZ94, KOZ02}: se hace evolucionar una poblacién de “programas” para resolver un problema en general, Los ‘programas que evolucionan pueden adoptar distntas formas, aunque Ia rms usual es un érbol. En cualquier caso, se trata de estructuras de datos de tamatio variable, es decir, no todos los individuos tienen el mismo tamafo, Este tipo de AE presenta una diferencia fundamental con el resto: no buscan la solueién @ una instancia conereta de un problema, sino una estrategia capaz de resolver cualquier instancia de ese problema 1.3 BUSQUEDA Y OPTIMIZACION Gran parte de los problemas que surgen en el desarrollo industrial y en la investigacién pueden formularse como una busqueda 0 como una optimizacién: dado un sistema, buscamos un conjunto de valores que permiten llevarlo a una 4, <4,(0.48593) <4, x, 4 < 43(0.81926) adap_mejor){ pos_mejor = 1; Adap_nejor = pob[i].adaptacion; } para cada i desde 0 hasta tam pob hacer { pobfpuneuscion = Beef Ta seeptacton 7 sunadap; Pob{i] :punt-acu'= pob(3]-puntuacion + punteacus Puntacu = punt_acu + pab[i] spuntuacion; } 2 2.9.5. Seleccién de Supervivientes La funcién de seleccién del algoritmo genético simple selecciona un nimero de supervivientes igual al tamaito de la poblacién por el método de la ruleta. La funcién modifica la poblacién que pasa a estar formada tnicamente por ‘cjemplares de los individuos supervivientes, {44 ALGORITMOS EVOLUTIVOS: UN ENFOQUE PRACTICO RAMA funcion seleccion(var TPoblacion pob, entero tam_pob) real sel_super(tan_pob]; // seleccionados para sobrevivir real prob: 77 probaly ad ge Select nce entero pos_super; // posicion del supervivi Froblacton pob-aux; // poblacion auxt iar entero ‘eara cada i desde 0 hasta tam_pob hacer { prob =aleaQ; bos_super = 0; mientras. (Cprob> pob[pos_super] .punt_acu) y (pos_super< tam_pob)) pos_super+s sel_super (i = pos_super; se genera la poblacién intermedia fara’ <26n°F* geSde°O hazea tancpob hacer { pob-auxti] = poblsei_superl1]]i Jnicializar(pob) 5 pera eada'l desde 0 hasta tan_pob hacer { obi] = pob_auxLis Probablemente ésta es la forma més simple de implementar Ia seleccién, aunque hay muchas otras posibilidades para este operador. 2.9.6 Reproduccién, Cruce y Mutacién Consideramos ahora emo se combinan los operadores ‘mutacin para producir una nueva generacién. La funcién reproduccién presenta ia secuencia a seguir. En un algoritmo genético simple, la implementacién de la reproduceién consiste en la seleccién de Ios individuos a reproducirse entre los de la poblaci6n resultante, y finalmente en la aplicacién del operador de cruce a cada tuna de las parejas, Finalmente se aplica la mutacién bit a bit mediante la funcién booleana mutacién. funcion reproduccion(var TPoblacion, pob, entero tan_pob, entero Tcrom, real’ prob_cruce) t ; 11 se1_crucettan_pob] ;//seleccionados para reproducirse entero nun_sel-cruce=0; // contador de selecctonados, Feal prob; entero, punto_cruce; Findiviguo hijol, entero Ji Se eligen los individuos a cruzar para‘ cada’ desde 0 hasta tan_pob t 5025 ee ORAMA ‘captruto2: ALGoRrTMos GENENCOS 65 //se generan tan_pob nimeros aleatorios a; en (0 1] prob’s ales; /T5e eligen Tos individuos de las posiciones i (gon 2) "prob cruce Si (prob © prob-cruce: sel-eruce(aun-sel-cruce] rumcsel-erucer+; 71 1 nimero de seleccionados se hace par $1 Counsel cruce nod 2)'—=1) nun_sel_cruce=-; // se cruzan Tos individuos elegidos en un punto al azar punto_cruce = alea ent(O, lcron); para cada i desde 0 hasta num-sel_cruce avanzando 2{ Cruce(poblsel-crucef tl], pobLsel_cruceLi+ii1, rijol, Aijo2,1crom," punto_cruce); // os nuevos individuos’ sustituyen a sus progenitores pobtset crucep]] = hijot: pobLsel_cruce[i+i]] = hijo2; El operador de cruct toma dos padres y genera dos cadenas hijas. Recibe la probabilidad de cruce, junto con la longitud de la cadena. El intercambio de cruce se realiza en un par de bucles. La funcién calcula Ia adaptacién de los nuevos individuos. funcion cruce(rindividuo padret, tindividuo padre2, var Tindividuo hijol, var Tindividuo’hijo2, ‘ fentero'Tcron, entero’ punto-cruce) enero ti "icializar(hi jol.genes); jntetaltzarthijo2.genes> /] primera parte del intercanbio: 1a 1 y 2.a2 para cada i'desde 0 hasta punto cruce hacer{ ijol-ganes[i] = padres-genes[i] hijoz-genes[1] = padre2 genes 1 // segunda parte: 1a2y2a1 para cada i desde punto_cruce hasta Tcrom; hacer{ hijol-genesti] = padree-genestiJ: hijoz-genes[i] = padrelgenes( iJ; //,s¢ evalian, hijol.adaptacion = adaptacion(hijo1, Icron); hijoz-adaptacion = adaptacion(hijoz, Tcron)! 46 _ALGORITMOS EVOLUTIVOS: UN ENFOQUE PRACTICO RAMA Finalmente consideramos el operador de mutacién, que con la probabilidad indicada considera la posible mutacién de cada gen del genotipo. Le funcién revisa la adaptacién del individuo en caso de que se produzea alguna mutacién. funcion mutacion(var TPoblacion pob, entero tam_pob, ‘entero Icrom, real’ prob_mut) booleano mutado; entero 1,33 real prob; para cada i desde 0 hasta tam_pob hacer{ futado = Falso; para cada j desde 0 hasta Icrom hacer{ Vise genera un numero aleatorio en (0 1) prob = aleaQ; F7'se mutan aquellos genes con prob < que prob_mut SH (prob. prob_mut){ pobli].genes(j] = not pobLi].genes(j1); mutado’= cierto; } Si (mutado) pobLil-adaptacion = adaptacion(pobli], 1crom); 2.10 EJEMPLO DE APLICACION A LA BUSQUEDA DEL OPTIMO DE UNA FUNCION ‘Vamos a aplicar nesiro algoritmo genético a la bisqueda del maximo en el intervalo [0,20} de una seeilla funcién: x f@O-F La sencillez de la funcién no justfica la necesidad de aplicacién de un AG. ‘Sin embargo, precisamente esta sencllez nos permite utilizarla para clarificar el funcionamiento del AG, que se aplicaré exactamente de la misma forma a otras unciones més complejas. Por los mismos motives, elegimos también valores de los parimetros que normalmente resultan demasiado pequefios para el buen funcionamiento del AG, ‘pero que nos permiten visualizar el proceso con mayor claridad. Hemos elegido los siguientes valores para los pardmetros: eRAMA ALGORITMOS GENETICOS 47 [ Precision 0.0005 Tamafio de poblacién Et (Tasadecruces Swe Tasa de mutaciones 1% Numero de generaciones 10 Suponiendo que tabajamos con una funcién sobre nimeros reales, necesitamos discretizar dicho intervalo para hacer corresponder posiciones dei intervalo real considerado con nimeros enteros representados por nuestra cadena binaria, El parémetro precisin (PREC) indica ef nimero de posiciones decimales en las que nos interesa que el resultado de esta correspondencia sea exacto, Este pparimetro condiciona la longitud de la eadena binaria de nuestro algoritmo, A mayor precision requerida, més larga debe ser nuestra cadena para poder representar la cantidad de alimeros reales con esa provision dentro del intervalo de baisqueda especificado. Es habitual utilizar la precisién como pardmetro de entrada al AG y a partir de ella calcular la longitud de las cadenas binarias, en Iugar de cespecificardirectamente dicha longitud. ara discretizar el intervalo real contenido entre xau ¥ Xau» 10 dividimos en ppequetias porciones de anchura menor que PREC, como muestra Ia siguiente figura: x edena binaria Xmin PREC Xmax Los mimeros representados por nuestras cadenas binarias serin las siones entre porciones. Con una longitud de cadena binaria 1 podemos representar a 2 niimeros enteros, 10 que nos permite dividir 2'-1 porciones de intervalo, Imponiendo que la anchura de las poreiones sea menor que PREC tenemos: 48 _ALGORITWOS EVOLUTIVOS: UN ENFOQUE PRACTICO ORAMA De esta férmula podemos obtener la longitud de cadena necesitamos para que nuestro algoritmo pueda aleanzar la precisin requerids 1[loe,0+25%5] donde [x] es el primer valor entero igual o mayor que x. En nuestro caso, en que %9i“0 Y a2, tenemos [once Syn RAMA “captruL.02: ALGORITMOS GeNETICOS 49 La tabla presenta para cada individuo su genotipo (la cadena binaria), su fenotipo (el valor real que le corresponde a la cadena binaria) y el valor de adaptacién correspondiente al fenotipo. En este caso la adaptacién media de la poblacion es de 0.183415 y el mejor individuo es el de la posicién 17, con un valor de adaptacién de 0.486318. Podemos observar que en la poblacién inicial fos valores de las adaptaciones son muy variados. Siguiendo con los pasos del algoritmo, la siguiente fase es el proceso de selevei6n de supervivientes por el método de la ruleta. La siguiente tabla muestra en Ia primera columna los valores generados por este método y la poblacién 0.0001 resultant dl proceso Una vez ealeulada Ia longitu de las cadenas binrias de 1a poblacién Seleccién | individuo x adaptaciin podemos generar Ia poblacin inicial. La siguiente tabla muestra el resultado de 11 | oooonoori0ti007017 | 165137 | o.oso334a {sta operacion en una sjecucién de nusto algortmo ejemplo: 310 | 100010000000301000 | 1.5638, 0.453871 ‘1000011011000100 | 2.76393 [031982 Posicién Individuo_ x adaptacién: 001010110011111001 | 12.4381 0.0798818 1 | o00010100010010000 | 0.708731 | 0.471874 301111001000110010 | 5.96171 | 0.163147 2 100000010100101011 | 16.6115 (0.059982 "100101100001010000 | 0.789264 0.486318 3} s01210030101101001 [11.7698 | 0084354 T1o101110001301010 | 67367 rT 4 foo1001101131001100 | 4.05061 [0.232698 so1110010101101001 | 11,7658 | 0.084354 5 | oooors013110113101 [14.8377 | 00670814 aponnriooopsorbo00 [acestes [OAseaTE &—[oosoioaz0011111001 | 12.4381 | 00798818 igri |isapnod to aqsoaoionissarailiitttt| ozvaze7 7 s00000000110113000 | 2.30477 | 0365143 a Taoataatonoastaoro [é7367 nase | t1o001101101010100 | 3 34741 | 0.274262 [Feeiiag ec arosntsooonscans0 [e736 atcaa [8 o0o000110000113110 [9.70219 | 0.101886 ‘8 | so00s101101010100 | 3.34741 | 0.274262 30 [ 100010000000101000 1.5638 0.453871 32 | a00111011110100111 | 17,9634 | .055a968 1 ‘000000011011001011 | 16.5137 (0.0603344 (17 "100101100001010000 | 0.789264 0.486318 42 | sooriz011130100111 | 17.9634 | 00554968 +7—| toot0110000r010000 | ocaszes | osmosis 33 opi0o11u101111111 | 19.8174 | 090500812 iste | roecaamumaoscion is aavait see] aavaree 14 [e1oo10110120110011 [16.0708 | o.osis84s, 2 | a000000r0r00101011 | 16.6115 | 0.059987 15 | 401111001000110010 [596171 | 0.163247 17 [oorarreo0or010000 [oseszea —| oases [16 16.7832 0,0593726 6 '001010110011111001 | 12.4381 (0.0798818 17 [400101100001010000 | 0.7as264 | 0.486318 18 | e1o0x100010010101 | 13.2119 | 0.075258. 19” | o01000011011000100 | 2.76399 | 0.31982 Tras el proceso de seleccidn, la adaptacién media de la poblacién sube a 20 110101110001101010 | 6.7367 0.14524 0.252348. Podemos observar que los individuos més adaptados, como el 17, tienden a recibir mas copias en la nueva poblacién, mientras que los individuos de 50 ALGORTTMOS EVOLUTIVOS: UN ENFOQUE PRACTICO RAMA RAMA ‘cAPfTUL02: ALGORITWOS GeNENCOS 1 baja adaptacién, como el 2, tienden a desaparecer. Sin embargo, se trata de un proceso probebilistico, por lo que también los individuos de baja adaptacién tienen ‘oportunidades. De hecho podemos ver que el individuo 12, que tiene una adaptacion muy baja respecto a la media, ha logrado sobrevivir. El siguiente paso de Ia evolucién es 1a reproduccién 0 generacién de ‘nuevos individuos mediante el operador de eruce. La siguiente tabla muestra los padres elegidos aleatoriamente para el cruce comprobando la tasa de mutacién, y el ppunto de cruce, tambign elegido aleatoriamente, Punto de cruce [padre padre2 13 2 3 4 7 2 3 3 15 3 16 7 16 18 13 El estado de la poblacién después de los cruces se muestra en la tabla: Posicién | individu x ‘adaptacién 1 | 000000011021008011 165137 | 0.0603344 2 | 100010000000100100 2.81381 0.315537 3 | 001000011011001000 151398 | 0.459877 ‘4 | oo1010110011111001 12.4381 | 00798818 5 | 101111001000110010 5.96171 | 0.163147 6 | 100101100001010000 0.789264 | 0.486318 7} 210101110001101010 6.7367 | 0.14524 ‘a | 101110010101101001 117698 | 0.084354 ‘9 | 100101300001010000 0.789264 | 0.486318 10___| 110001101101010100 3.34761 | 0.274262 11___| 110101110001101010 6.7367 | 0.14524 42 | 110101110001101010 13 | 110101100001010000 6.7367 | 0.14524 0.789416 | 0.48634 14__| 100111011110100111 17.9634 | 0.0554968, 15 | 100001101101010100 3.34726 | 0.274272 16 | 100001101101010100 | _3.34726 | 0.274272 17__ | 110101100001010000 ‘0.789416 | 0.48634 18 | 100000010100101000 e111 | 0.448032 19 [100101100001010011 15.7893 | 0.0630809 20 | 001010110011111001 12.4381 | 0.0798818 En este caso, Ia adaptacién media ha descendido ligeramente, 0.250673. EI mejor individuo en este caso sigue siendo el de la posicién 17, y es el producto de uno de los eruces, teniendo un valor de adaptacién ligeramente mejor (0.48634) que el de sus progenitores (0.486318 y 0.274262). Finalmente se aplica el operador de mutacién. La siguiente tabla muestra Jas posiciones de los individuos y posiciones (dentro del individuo) de los genes aque han mutado, Tndividue gen 9 15 10 16 4 a 20 ria El estado de Ia poblacién después de aplicar el operador de mutacién ‘aparece en la siguiente tabla: Posieién | Individue x 1 ‘000000011011001011 | 16.5137 2 :100010000000100100 | 2.81381 (0.315537 Z ‘001000011011001000__| 1.51398 0.45987 | 4 (001010110011111001___| 12.4381 0.0798818 5 [101111001000110010 | 5.96171, 0.163147 6 | to0101100001010000 | 0.788264 | 0.486318 7 110101110001101010 | 6.7367 0.14524 8 101110010101101001 | 11,7698 0.084354 9 1100101100001011000 | 2.03927 (0.398313 30 110001101101010000 | 0.8474 (0.493223 rT 110101110001101010 | 6.7367 0.14524 2 110101110001101010 | 6.7367 0.14524 3 110101100001010000 [0.789416 | 0.48634 14__| 100111001110100111 | 17.9536 (0.0555268 15 1100001101101010100 | 3.34726 (0.274272 16 100001101101010100 | 3.34726 (0.274272 a7 110101100001010000 [0.789416 | 0.48634 18 "100000010100101000 | 1.61141, (0.448032 19 "100101100001010011 | 15.7893, (0.063080 20 o1to10110011111001 | 12.4382 0.0798808 52_ ALGORITMOS EVOLUITIVOS: UN ENFOQUE PRACTICO RAMA ‘Tras la mutacién, la adaptacién media de la poblacién ha pasado a ser 0.257073. El mejor individuo es ahora el 10, que es el producto de una mutacién, con una adaptacién de 0.493223, un valor que ya se acerca al 6ptimo de la funcién que esti en 0.5. La evolucién de los valores medio y maximo de Ia adaptacién con las, sgeneraciones aparece en la siguiente tabla “Generacién | Adap. Media | Adap. Max. x aan 0.257073 | 0.493223, Bara 2 0.378307 | 0.498506 | 0.925525 3 0.395765 | 0.49323 | 0.847476 4 o.4saizs | 0.499953 | 0.986408 | 5 oases | 0.499953 | 0.986408 6 0.467791 | 0.499953 | 0.986408 7 o.4s34a1 | 0.499953 | 0.986408 8 0.483225 | 0.499953 | 0.986408 3 0.489634 | _0.499997_| 1.00365 10 0.488957 | 0.499997 | 1.00357, Podemos ver como a medida que avanzan las generaciones los valores ‘medio y miximo de la adaptacién de la poblacién tienden @ mejorar. Sin embargo, Ja mejora de la adaptacién de una generacién a otra no est garantizada, a menos {que se introduzea elitismo, una téenica que veremos més tarde, para garantizar Ia supervivencia del mejor, o de algunos de los mejores, de generacién en generacién. ‘Asi, en nuestro ejemplo podemos ver que de la generacién 2 a la 3 la adaptacién del mejor individuo de Ia poblacién baja de 0.498506 a 0.49323. 2.11 PROPIEDADES TEORICAS DE LOS ALGORITMOS GENETICOS Los algoritmos genéticos, debido a su codificacion binaria, presentan un comportamiento diferenciado del resto de los algoritmos evolutivos, que en ‘muchos casos les permite ser més eficientes que un algoritmo evolutivo con otro tipo de representacién. Las razones de estas propiedades fueron estudiadas por Holland [HOL75] y la justficacién propuesta se basa en considerar que los AGs procesan patrones de eoincidencia entre grupos de individuos. oRaMA ‘capiru.02: ALGoRITMOS GENENCOS 53 Vamos @ comenzar por introducir el concepto de esquema y sus propiedades. 2.11.1 Esquemas Podemos observar numerosas coincidencias entre las cadenas con las que ‘rabaja un AG. Los patrones de coincidencia entre las cadenas més adaptadas pueden ayudar a guiar la bisqueda. El concepto de esquema [HOL75] recoge este hecho. Definicién: un esquema cs un patron de coincidencia que se construye sobre el alfabeto {0,1,*}. El simbolo * juega el papel de comodin. Un esquema representa a todos los individuos que coinciden con los ceros y unos del esquema, ‘pudiendo contener cualquier simbolo en las posiciones en las que el esquema tiene el caricter * Es decir, al alfabeto binario {0, 1) le afiadimos un simbolo especial 0 ‘comodin, el *. Por ejemplo, el esquema 0000 encaja con las dos cadenas {00000, 10000}, "y el esquema 01*000*01 encaja con las cuatro cadenas binarias ‘010000001, 010000101, 011000001, 011000101. Los esquemas que no contienen €l simbolo * s6lo representan a una cadena y los esquemas que sélo contienen * representan a todas las cadenas de Ia longitud del esquema. Puesto que cada comodin * puede tomar dos valores, 0 0 6 1, un esquema con m comodines representa a 2" esquemas. El fundamento te6rico de los algoritmos genéticos reside en Ia nocién de esquema, Para analizar eémo crece y decrece la presencia de los esquemas contenidas en la poblacién de una AG necesitamos formalizar algunas propiedades de los esquemas. Algunos esquemas son mis especifics que otros. Por ejemplo, el esquema O11*1** esti: mis definido que el esquema 0°*****. Ademis, ciertos exquemas abarcan més parte de la Tongitud tolal de la cadena que ots. Por ejemplo, el esquema 1****1* abarca una porcién de la cadena mayor que el esquema 1*1***, Para cuantifiar estas ideas inteoducimos dos propiedades de los cesquemas: el orden de un esquema y la longitud definida. Estas propiedades estin relacionadas con la representatividad del esquema, y con la probabilidad de que el ‘esquema sobreviva al eruce, Dado un esquema E se definen: Orden de un esquema, o(E): es el nimero de posiciones fijadas (es decir, con 0 6 1) que contiene dicho esquema. Por ejemplo, el orden del esquema O11*1** es 4 (o(011*1*#)= 4, mientras el orden de O***#** es 1. S4_ ALOORITMOS EVOLITIVOS: UN ENFOQUE PRACTICO ORAMA Longitud definida de un esquema, &(): es la distancia entre Ia primera y “ltima posiciones fijadas de la cadena, ET esquema O11*1** tiene una longitud definida 5-4, porque la altima posicién especificada es 5 y la primera es 1, ‘mientras el esquema 0°***** tiene longitud de definicién 5-0. Cuanto mayor es el orden del esquema a menos cadenas representa, por lo que el orden es una medida de la representatividad del esquema. La longitud definida mide el grado de agrupamiento o dispersién de la informacion dentro del esquema. Cuanto menor sea, més agrupada esti la informacion y mayor es la probabilidad de sobrevivir a una operacién de cruce 2.11.2 El Teorema Fundamental Fstas nociones nos permiten formular un resultado fundamental de los AGSs, conocido como el Teorema Fundamental de los AGS. Este resultado se reficre ‘la tendencia que tiene a evolucionar de una determinada forma la presencia de tipo de esquema en la poblacién. La presencia m/E.) de un esquema E en la poblacién en un instante la definimos formalmente como el nimero de cadenas de Ia poblacién en el instante r que encajan en el esquema E. La adaptacién del cesquema £ en el instante ¢, que denotamos por ff), es la media de las adaptaciones de las cadenas de la poblacién que encajan en el esquema & en el instante f ‘Teorema fundamental de los Algoritmos Genéticos: la presencia de un esquema E en la poblacién P de la generacion del instante # en un Algoritmo Genético evoluciona estadisticamente de acuerdo con la eouacién: [ve $2) oe), SB) Ext +1) 2 m(E,N.- Et DE MENA donde p. es la tasa de eruce del AG, y pw la tasa de mutacion. 5) y ofB) son la longitud definida y el orden del esquema E, respectivamente Este teorema indica que los esquemas cortos, de orden bajo adaplados por ‘encima de la media, estadistcamente incrementan su presencia en la poblacién de forma exponencial en generaciones sucesivas. Aunque agut s6lo damos una indicacién, la demostracion de este resultado ¢s sencilla. Se basa en estudiar el efecto de las operaciones de seleccién, eruce y _mutacién sobre los esquemas de la poblacién. — RAMA ‘caPtruL.02 ALGORIMOS GENETICOS 5 Por ejemplo, el efecto de Ia seleccién sobre el nimero esperado de cesquemas en la poblacién se determina de la siguiente forma. Supongamos que en tun instante dado de tiempo ¢ hay m ejemplares de un esquema particular E contenido en la poblacién P(), donde escribiremos m=m(E..) (puede haber dlistintas cantidades del esquema E en distintos instantes de tiempo). Durante la reproduccién, una cadena se copia de acuerdo con st. adaptacién, es decir, una cadena xs seleecionada con probabilidad p,= Df, ‘Tomando una poblacién sin solapamientos de tamaho n mediante reemplazamientos a partir de la poblacién P() esperamos tener m(E,t+!) representantes del esquema F en la poblacién en el instante r+, como se deduce de la ecuacién m(E,t+1)=m(EV.nf(EVEf, donde f(E) es la aptitud media de las cadenas representadas por el esquema E en el instante f. Si reconocemos que Ia aptitud media de toda la poblacién puede escribirse F-Dfin centonces podemos reeseribir la ecuacién de crecimiento reproductivo del esquema ccomo sigue: = fL) m(Eyt+1) = mE)? H = m(E,t), f decir, la presencia de un esquema particular crece en proporcién a la adaptacién. ‘media del esquema respecto de la aptitud de la poblacién, y por tanto, os esquemas. ‘adaptados por encima de la media incrementan su presencia en la poblacién a lo largo de las generaciones. Andlogamente se estudian los efectos del eruce y la rmutacién y se combinan todos ells. Dada Ia importancia de estos esquemas adaptados por encima de la media, de orden bajo y pequetia longitud, se les da el nombre especial de blogues constructivos. Se considera que los AGs exploran el espacio de basqueda a través de la yuxtaposicidn de este tipo de esquemas, que van aumentando su presencia y recombinindose a lo largo de las generaciones. S6_ALGORITMOS EVOLUTIVOS UN ENFOQUE PRACTICO. onama 2.11.3 Paralelismo Implicito La razin de la eficiencia de la representacién que usan los AGs es que al procesar una poblacién de 7 individuos, se procesa un nimero mucho mayor de {esquemas. Una estimacién al mimero de esquemas procesados en una poblacién de tamaiio es n° [GOL89]. A esta estimacién se llega con argumentes estadisticos sobre el nimero de esquemas de una determinada longitud que hay en una poblacién de tamatio n, partiendo de los hechos de que: ‘+ En.una poblacién de m individuos binarios de tamafo /existen entre 2! y nn? esquemas distnts. + mimero de esquemas de tamafo J, en un individvo de tamato / es 2(lz+1), Para vero basta considera et nimero de esquemas distintos nla primera porcién de tama J, del indviduo, que es 2, y contr el nimero de desplszamientos de la poreiin que podemos realizar Io largo de individuo, ‘Tomando después un tamafto de poblacién adecuado para que los tesquemas de interés no se repitan, se Hega a la estimacién de n’ para el nimero de esquemas procesades. Podemos ver este resultado como una forma de paralelismo implicito inherente a los AGs que les dota de particular eficiencia, Sin embargo, hay otros factores a tener en cuenta ala hora de seleccionar el AE que mis conviene a nuestro problema. Sila representacién binaria es natural al problema y por tanto la codificacién y decodificacién de los individuos es sencilla, un algoritmo genético sera el mas adecuado, debido a la propiedad de pparalelismo implicito. También es importante que los genes, 0 bits de los individuos, tengan significado, porque s6lo entonces tendrin sentido los bloques constructivos de los que hablibamos. Sin embargo, si la representacién binaria no natural al problema, lo que suele suponer costosas operaciones de codificacién y decodificacién, y la existencia de bit sin significado en la representacién, debemos considerar otras formas mas naturales de representacién. Capitulo 3 ALTERNATIVAS A LOS COMPONENTES DE UNALGORITMO EVOLUTIVO, Los algoritmos evolutivos son una téenica robusta capaz de proporcionar soluciones de calidad con una amplia variacién de componentes y parimetros, Sin ‘embargo, también se producen situaciones en las que el algoritmo ya no es capaz de seguir evolucionando, o de hacerlo hacia la direecién adecuada. Una de las principales propiedades que necesita cumplir un algoritmo evolutivo para producir resultados de calidad es contar con suficiente diversidad en Ja poblacién. Esta diversidad se refiere tanto a los genotipos de los individuos ‘como a los valores de adaptacién que les corresponden, Cuando falta diversidad en los genotipos, los operadores genéticos no son capaces de erear nuevos individuos que se encuentren en una zona del espacio de busqueda distinta de Ia de sus progenitores. Asi mismo, silos valores que toma la funcién de adaptacién son muy similares, la seleccién no funciona adecuadamente. Si el valor de adaptacién de los ‘mejores individuos se diferencia muy poco del resto, In naturaleza probablistica ‘del mecanismo de seleccién hard que la composicién de la poblacién sea aleatora, sin conseguir favorecer a los mas adaptados. Por otra parte, diferencias demasiado grandes de los valores de adaptacién impiden que el mecanismo de seleccién funcione adecuadamente. El mecanismo de seleccién hace que los individuos con 1un valor de adaptacién muy superior a la media consigan una cantidad de copias de si mismos en la siguiente generacién muy superior al resto. Esto hace que los restantes individuos tiendan a desaparecer, llegando nuevamente a una situacién de falta de diversidad. “58 _ALGORITWOS EVOLUTIVOS: UN ENFOQUE PRACTICO RAMA En situaciones de falta de diversidad en la poblacién, un algoritmo evolutivo tender converger prematuramente. La convergencia, que fue introducida por De Jong [JON9S], se refiere a una evolucién en una situacién de ‘uniformidad, bien en la composicién de los individuos, bien en los valores de adaptacin de Ia poblacién, Una vez-que el algoritmo ha convergido, la exploracién del espacio de busqueda se minimiza o se detiene, Si el algoritmo evolutivo funciona correctamente, debe tender a converger hacia el Optimo de los valores de la funcién de adaptacién, Sin embargo, si la convergencia es prematura, es muy ‘probable que el algoritmo no haya conseguido evolucionar hasta fener individuos fen la zona del espacio de busqueda en Ia que se encuentra el 6ptimo. En los algoritmos evolutivos se utilizan medidas de diversidad que permiten detectar situaciones de falta de diversidad, y asi poder preveniras. Goldberg y Deb [GOL91] comenzaron el trabajo en esta direccién introduciendo el ceoncepto de tiempo de posesién (takeover time) como una medida de presién selectiva. La presién selectiva es el grado en el que se favorece a los individuos mms adaptados. Es importante que Ia intensidad de la presién selectiva se encuentre en un rango apropiado, ya que demasiada presién lleva a la pérdida de diversidad, pero poca presién hace que el algoritmo evolucione muy lentamente. Fl tiempo de posesién mide el nimero de generaciones necesarias para que toda la poblacién festé compuesta por eopias del mejor individuo de la poblacién inicial cuando el {inico operador que se aplica es la seleccidn. Bick [BAC94] extendié los resultados del trabajo de Goldberg y Deb analizando y comparando la presin selectiva de los ‘métodos de seleccién mas utilizados. Otra medida muy usada de presién selectiva [HAN94] es la razén entre las probabilidades de seleccidn del mejor individuo de Ja poblacién y lade la media de la poblacién: Adaptacién_méxima resion_selectiva = ee “Adaptacién_media En este capitulo se presentan mecanismos de modificacién de la funcién objetivo para obtener una funcién de adaplacién que favorezce la existencia de diversidad en la poblacién, También se introducrin otros métodos que pueden Imejorar el ‘comportamiento de los algoritmos evolutives en determinadas Cireunstancias: el eltismo, que garantiza la supervivencia del mejor o de un Dequeto grupo de mejores individuos de generacion en generacién, condiciones de ferminacion mas refnadas y operadores genético altemativos a Tos que utiliza el algoritmo genético simple. En el ejemplo del capitulo 2 el sinico objetivo era optimizar ta funcién dada. Sin embargo, es muy frecuente que se presenten problemas en los que, ademis de querer optimizar alguna forma de funcién, se desee hacerlo bajo {© RA-MA CAPITULO 3: ALTERNATIVAS A LOS COMPONENTES DE UN ALGORYTMO EVOLITIVO59 eterminadas condiciones 0 restrieciones. Por ejemplo, en una funcién de dos ‘variables x y, podemos desear encontrar valores para estas variables en las que se ‘encuentre el méximo de la funcién pero siempre que cumplan que x>y. En este ‘capitulo también veremos una serie de técnicas generales para aborder problemas ‘con restricciones. ___La mayor parte de los mecanismos que se describen en este capitulo son aplicables no solo a los algoritmos genéticos sino a todos los algoritmos evolutivos. Slo los que tienen una relacién directa con la representacién de los individuos, ‘como los operadores genéticos alternativos que se describen, son especificas de los algoritmos genéticos. Sin embargo, hemos decidido abordar en este momento la escripcidn de estos mecanismos de mejora, antes de pasar a presentar algoritmos evolutivos que utilizan otra representacién, porque en este punto del libro el lector ya estd preparado para empezar a realizar los proyectos que se presentan en la ‘segunda parte del libro. Por ello es importante que pueda contar con los canis que peoitn mejor los components de lgoritmo genfco simple que pueden ser necesarios © en todo caso mejorar los rest los proyectos: ‘pena sjorar Ios resultados de los proyect 3.1 DE LA FUNCION OBJETIVO A LA FUNCION DE ADAPTACION __ Como deciamos en la introduccién, para que el operador de seleccién funcione correetamente, los valores de la funcién de adaptacién deben tener una separacién adecuada: si son muy proximos, Ia seleceién no podra distinguir a los ‘mas adaptados para favorecerlos y si se producen valores exteemadamente mejores due el resto la seleccién puede hacer que Ia poblacién se sature con copias de estos superindividuos, convergiendo prematuramente, Ademés, los valores de la ‘daptacion necesita ser postivos par poder alicar muchos e los mezansms de seleccién que hemos vist, __ En esta seccién presentamos técnicas que nos permiten convert nuestra funcién objetivo en una funcién de adaptacién positive o en una funcién que produce valores para distintos individuos con separaciones adecuadas. 3.1.1 Haciendo Positiva la Funcién de Adaptacién le izado para la maximizacién de 1a probabilidades de seleccién proporcionales al valor de la funcién . Sin embargo, en una minimizacién lo que nos interesen son los valores mas pequefios de dicha funcién. Luego no se puede aplicar el mecanismo _ALGORITMOS EVOLUTIVOS: UN ENFOQUE PRACTICO ORAMA ‘de muestreo tal cual. Tampoco podemos limitarnos a cambiar el signo de ta funcién, puesto que el mecanismo de muestreo trabaja con valores positives que ropresentan probabilidades. La solucidn esté en realizar una modificacién de los valores de la funcién de adaptacién, de forma que se obtengan valores positivos y que cuanto menor sea cl valor de la funcién (mas cercano al 6ptimo) mayor sea el correspondiente valor revisado, Sea cmax el valor méximo de los valores de adaptacién g(x) de la poblacién en una determinada generacidn. Entonces la adaptacién revisada fs) ‘correspondiente ala adaptacién g/) la definimos como: I(x) = emax— g(x) ‘que cumple las condiciones requeridas. También podrian utilizarse valores muy superiores a cmax, pero entonces la separacién relativa de los valores de adaptacion. de los individuos seri menor y el mecanismo de seleccién funcionaré peor. En lugar de utilizar cmar conviene utilizar valores ligeramente mayores (por ejemplo, un 105%) para prevenir que si toda la poblacién converge a un ‘mismo valor de adaptacién, la adaptacién revisada se haga nula. Para introducir esta variacién, modificamos el e6digo del algoritmo ‘genético tal como aparece en el siguiente pseudocédigo, introduciendo una llamada fla funcién revisar_adaptacion_minimizar, que realiza la modificacién de la ‘adaptacién para minimizacién: funcion Algoritmo_cenético_minimiza(— { ‘Toblacion pob;_// poblacién ‘Parametros parémetros// tanafio poblacién obtener_paranetros(parametros) ; pob-= poblacion_inicial Qi : Fevisar-adaptacion_minimtzar(pob, parémetros, cmax); evaluacfon(pob, tam_pod, pos_mejor, sunadaptacion); bucle de evoTucion shenttas fo Se alcanza 1a condicién de terminacién hacer{ Seleccton(pob, "paranetros): Feproduceion(pob,paranetras) ; Fevisarcadaptacionminimizar(pob, parémetros, cnax); evaluacion(pob, paranetros, pos.nejor, sunadaptacion) ; devolver pob[pos_nejor] [© RA-MA CAPITULO 3: ALTERNATIVAS A LOS COMPONENTES DE UN ALGORITMO EVOLLTIVO 61 Esta funcién calcula las nuevas adaptaciones de cada generacién. Como el valor de cma cambia de generacién en generacién, es necesario revisar todas las adaptaciones. Sin embargo, no es necesario recalcular el valor de la funcién objetivo porque este no cambia. El valor del fenotipo x almacena el valor de la funcién objetivo, que s6lo se calcula al crear un nuevo individuo, bien en la ppoblacién inicial, bien como resultado de una operacién genética, como el cruce 0 Ja mutacién, La funcién de revisar_adaptacion_minimizar aparece en el siguiente pseudocédigo: funcion revisar_adaptacion_minimiza(var Teoblacion pob, ; ‘Tparanetros param, var real chat) TP tn valor por debajo de cuataui: ad tn valor por debajo de cualquiera que pueda 77 Xonar fa funcién objetivo, ww" P para cada individuo desde 1 hasta param.tam_pob hacer{ 51 (Gobtt]-agaptacion > “cnax) entonces chax= pobti}ox;, emax = cmax * 1.05; //margen para evitar sunadaptacion = 0 | Af Si eonverge 1a poblacién para cada individyo desde 1 hasta param. tan_pob hacer{ pob{i].adaptacion = cmax - poblil.x: Esta funcién asigna a emax el mayor valor de la funcién objetivo en toda la poblacién. El valor de cmax se hace ligeramente mayor para prevenir el problema al que se llega si se produce convergencia y toda la poblacién tiene el mismo valor de la adaptacién. En este caso, la adaptacién revisada de toda Ia poblacién seré ‘cero, y por tanto la suma de las adaptaciones también. Como sumadapracion se usa, ppara calcular la adaptacién media, se produciri un error en el algoritmo por adap_mejor){ 4_ ALGORITMOS EVOLUTIVOS:UN ENFOQUE PRACTICO RAMA pos_mejor = 1 Edap-nejor = pob[i] .adaptacion; ara cada i desde 0 hasta tam_pob hacer { Bobf i] -puntuacion = pabt]-adapracion /_sunadap: Bob[] ;punt_acu. pantuacion + punt-acu; punt-acu © punt_acu « pobli]-puntuactons y Los otros métodos de escalado se utlizan de la misma forma, Dependiendo del rango de valores que tome la funcién objetivo det problema, este tipo de escalado puede producir valores de adaptacién negativos, {que tenemos que evitar. En este caso podemos sustituir la segunda condicién por ‘otra que especifique que el valor minimo de la adaptacién sea 0: Sumy =O o con lo que se Ilega al siguiente valor de a ‘© Escalado Sigma. Esta téenica, propuesta inicialmente por Forrest [FORSS] hace que el valor de Ia adaptacién de un individuo dependa del valor de la funcién objetivo, del valor medio de dicha funcién para toda la poblacién y de la dispersién oF de valores: Este mecanismo hace que el comportamiento de la seleccién varie a lo largo de la evolucién. En las primeras generaciones se tendrin valores altos de la [© RA-MA CAPITULO 3: ALTERNATIVAS A LOS COMPONENTES DE UN ALGORITMO EVOLATIVO6S desviacién estindar lo que hari que las variaciones entre las adaptaciones de los individuos Sean pequefias, y las oportunidades de supervivencia se repartan. Segiin vanza la evolucién, la desviacin se reduce y los individuos mas adaptados tienen ‘mas oportunidades, ‘© Escalado ‘basado en potencias. Con este método, propuesto en [MCGB5], el valor de la adaptacién se obtiene elevando el valor de la funcién objetivo @ alguna potencia k: Sa) = (8) Valores de X utilizados en la literatura han sido 1.005 [MIC94]. El método y los parimetros necesarios a utilizar en cada problema es una ceuestidn de prictica y experiencia 3.2 ELITISMO El elitismo consiste en asegurar Ia supervivencia de los mejores individuos de la poblacin, En su detallado estudio del comportamiento de los algoritmos genéticos en Ia optimizacién de una coleccién de funciones seleccionada a tal fin, De Jong [JON75] descubrié que el elitismo acelera la convergencia de funciones uunimodales, es decir, con un iinico valor éptimo, y por tanto relativamente sencillas. Sin embargo, en funciones multimodales, més complejas, el elitismo puede degradar el comportamiento del algoritmo. Es decir, como De Jong concluy6, “el elitismo mejora la biisqueda local a expensas de la perspectiva slobat” Por lo tanto, debemos utilizar el elitismo cuidadosamente, teniendo en ‘cuenta las caracteristicas del problema. En general, el porcentaje de la poblacién ‘que puede formar parte de la élite debe ser pequeflo, no mayor de un 1 0 un 2% del ‘mato de la poblacién. Sin embargo, es una téenica muy itil, que no s6lo acelera la convergencia, sino que asegura que si en algin momento de la evolucién del algoritmo hemos aleanzado una buena solucién, ésta no se perders en generaciones posteriores. La forma mas sencilla de implementar el elitismo para una élite de E individuos es reservar los E mejores individuos de Ia generacién anterior. Los restantes N-E individuos de la poblacién se scleeeionan de la forma usual. Si se utiliza reemplazo inmedisto, y los operadores de cruce y mutacin se aplican sobre toda la poblacién incuida la éite, se pueden perder ios mejores individuos. Sin 6 ALGORITMOS EVOLUTIVOS: UN ENFOQUE PRACTICO onan embargo, es importante que los individuos de la lite participen en las operaciones genéticas, ya que son los mejores. Se han propuesto otras alterativas [ZHO0S] que tratan de preservar la élite también en las operaciones de cruce y mutacién. Aqui presentamos una posible implementacién de estas caracteristicas, ya que la conservacién directa de los mejores £ individuos durante la seleccién es muy sencilla y no necesita detallarse mas. En Ia alternativa que presentamos aqui hemos dado prioridad a conserva la ‘ordenacién aleatoria de los individuos de Ia poblacién, Para implementar el clitismo sin ordenar a los individuos en Ia poblacién, en Ia representacién de los individuos introducimos un indicativo booleano de’ pertenever a la élite. Este indieativo podri ser consultado por los operados genéticos para respetar de alguna forma a los individuos marcados como élite. ‘tipo Tindividuo = registrof 7 ‘Toenes genes; // cadena de bits (genotipo) booigano elite; // indicative de pertenecer a la élite La funcién de sefeccion se encarga de poner a verdadero el indicativo bbooleano de pertenencia a la élite en los individuos de mejor adaptacién, Para ello lama a-una nueva funcién seleccion_elite. funcion seleccion(var TPoblacion pob, entero tampob, : entero tan_elite) real se1_super[tan_pob];//seleccionados para sobrevivir teal prob; //\ probabi lidad-de seleccion entero pos super; // posicion del superviviente Troblacion pob_aux; // poblacién auxi liar entero 13 seleccionar_elite(pob, tan_pob, tamelite); acy ad dee 0 hast tan sb hacer AE atl Sethe MMSE SME SY A cae fasedt |_super[i] = rob = alea(); Beth optt2i mientras ((prob > pob[pos_super].punt_acu) y pos_super |< tai pob)) pos_super = pos_super + 1; Sel_super[i] = pos_super; } 3 // se genera la poblacién intermedia {©RA-MA CAPITULO 5: ALTERNATIVAS A LOS COMPONENTES DE UN ALGORIFMO EVOLUTIVO 67 para cada j desde 0 hasta tan_pob hacer { pob_aux[i] = pob[sel_super(1]]; ‘inicializar(pob) ; para cada i desde 0 hasta tan_pob hacer { pobli] = pob_aux(i]; La funcion seleccion_elite se encarga de marcar como élite a ls individuos de la poblacién de mejor adaptacién. Para ello comienza inicializando a falso el indicativo de élite de toda la poblacién. Después coloca en la lista sel_elite las posiciones de fos mejores individuos de la poblacién. Para ello empieza colecando fen sel_elite los. primeros tam _elite individuos de la poblacién, que serén reemplazados si se encuentran otros mejores. Esta élite inicial se ordena de mayor a ‘menor por las adaptaciones de los individuos. Después se va recorriendo el resto de Ja poblacién y cada individuo que se encuentra con un valor de adaptacién mejor que el de los que ya estin en Ia élite se inserta ordenadamente, desplazando al resto de los individuos que quedan por debajo. Al final de este proceso, sel_elite contiene las posiciones de los mejores y se utiliza para poner a verdadero el indicativo de pertenecer a la élite de los correspondientes individuos de la poblacién, funcion seleccion_elite(var TPoblacion pob, entero tan_pob, t entero tam_elite) real sel_elite[tam_pob]; // seleccionados como la élite enters ts para’ cada i desde 1 hasta tan_pob hacer pobli].elite = falso; para cada desde Uhasta tan elite hacer selueliteli) = ty ordenarspor adapeacién(se1_elite, tan elite); para cada i desde tamelite + 1 hasta tam-pob hacer { jad mientras((j <= tanelite) y ob {sel_ct} tel j]]-adaptacion> obi] .adaptacion))< eyed y 5i (j <= tamelite) entonces { ‘asertar_ordenadamente(sel_elite, j, i); para cada i desde 0 hasta tan_elite hacer { pob[sel_elite[i]].elite = cierto; (8 ALGoRITMOS EVOLLTIVOS: UN ENFOQUE PRACTICO RAMA Los operados genéticas de cruce y mutacién se aplican normalmente, pero si se trata de un AG con estado estacionario en el que los hijos sustituyen a los padres, cuando un hijo va a reemplazar a un padre, se comprueba si el padre pertenece a la élite, y si es as, slo ¢s sustituido si la adaptacion del hijo es mejor aque la del padre, 3.3 CRITERIOS DE TERMINACION En el algoritmo genético simple presentado en el capitulo anterior hemos utilizado como eriterio de terminacién del algoritmo aleanzar un niimero maximo ide generaciones. Sin embargo existen otras altemativas. Michalewicz [MIC94] ‘considera los siguientes criterios: © Aleanzar un nimero maximo de generaciones. ‘© Aleanzar un nimero maximo de llamadas al céleulo de la adaptacién. ‘= Llegar @ una situacién con escasas posibilidades de que se produzcan ‘cambios significativos en Ia generaci6n siguiente. ‘i adoptamos alguna de las dos primeras alternativas necesitaremos alguna cstimacién preliminar de la complejidad del problema. Podemos conseguirla realizando algunas ejecuciones preliminares del algoritmo con valores tentativos para este pardmetro. El tereer criterio de terminacién se basa en el avance que ha conseguido el algoritmo en un cierto nimero de generaciones. Este nimero de generaciones también puede ser un parimetro. Las posibilidades de progreso del algoritmo pueden estimarse en funcién de dos aspectos: la estructura de los individuos, es decir, su genotipo, 0 su valor de adaptacién, Los algoritmos cuya terminacién ‘depende del primer aspecto comprueban el niimero de genes que han convergido a tun mismo valor. Se considera que un gen ha convergido si un porcentaje predeterminado de la poblacién tiene el mismo valor para ese gen. Si el nimero de genes que han convergido a un mismo valor supera cierto porcentaje, entonces el algoritmo termina. Si se considera el segundo aspecto, es ecir, el valor de la adaptacién, entonces el algoritmo termina si la mejora de la funcién de adaptacién (Ia media de la poblacién o el méximo) en un nimero predefinido de generaciones esti por debajo de un cierto valor umbral dado por otro parimetro. © RAMA CAPITULO 3: ALTERNATIVAS A LOS COMPONENTES DE UN ALGORITMO EVOLUTIVO 6 Dependiendo de nuestro conocimiento del problema, podemos utilizar ‘otras condiciones de terminacién. Por ejemplo, si se trata de un problema de bisqueda pura, sin optimizacién, el algoritmo’ puede terminar al encontrar la primera solucién al problema, si es que s6lo se necesita una de ellas. También en Jos problemas de optimizacién, podemos utilizar criterios basados en las nevesidades particulares de caso, Por ejemplo, si necesitamos encontrar un miximo de una funcién que esté por encima de un determinado valor, no necesitamos buscar el maximo absoluto, y cl algoritmo se puede detener en cuanto el valor de la funcién objetivo supera el valor buscado. 3.4 VARIANTES DE LOS OPERADORES GENETICOS La mision de los operadores genéticos es recombinar 1a informacién ‘genética existente en la poblacién y generar nuevo material genético que permita ‘explorar nuevas regiones del espacio de biisqueda. Los operadores de cruce y ‘mutacién que utiliza el algoritmo genético simple no son los Ginicos capaces de ‘rear diversidad. En esta seccién consideramos algunos operadores alternatives al eruce monopunto y a la mutacién bit abit para los algoritmos genéticos. En el capitulo 3 se presentan otros operadores especificas de las representaciones de los individuos utlizadas por cada tipo de algoritmo. 3.4.1. Cruce Multipunto El cruce monopunto tiene algunos inconvenientes [MIC94] como que no permite cualquier combinacién posible del material genético de los padres. Entre los operadores de cruce alternativos propuestos estén los de cruce multipunto [ESH89, JON92}, En el eruce de dos puntos se eligen dos puntos de cruce y se intercambia centre los dos padres el segmento definido por dichos puntos de cruce, como ‘muestra la figura: 70_ALGORITMOS EVOLUTIVOS: UN ENFOQUE PRACTICO RAMA Padres 1 1 Puntos de cruce El cruce de dos puntos se extiende de forma natural al eruce multipunto [ESH89}, en el que se tienen miltiples puntos de cruce que definen un conjunto de Ssegmentos que se infereambian entre os padres. Para que este cruce pueda altemar fl mismo nimero de segmentos pertenecientes a cada padre, el nimero de ssegmentos debe ser par. 3.4.2. Cruce Segmentado En el cruce segmentado [ESH89] e! mimero de. puntos de eruce puede variar. En este cruce se introduce un nuevo parimetto que es la tasa de segmentado. Este parimetro especifiea la probabilidad de que el final de un segmento el individuo esté en un determinado punto de la cadena, Es decir, en cada punto de la cadena determinamos con la probabilided dada por Ia ‘tasa de segmentacién si el segmento en curso termina en ese punto o se extiende a més Posiciones. Para una tasa de segmentado de 0.2 tendremos en promedio 5 segmentos, pero esta cantidad puede variar en cada caso. 3.4.3. Cruce Uniforme En el cruce uniforme [SYS89, SPE91] se decide con la probabilidad dada por un pardmetro de qué padre recibe el primer hij el valor de cada posicién de la cadena. El otro hijo recibe el valor de esa misma posicién del otro padre. 3.4.4 Cruce Adaptativo También se ha propuesto un operador de cruce [SHA87] en el que la distribucién de los puntos de eruce se va adaptando a lo largo de la evolueién del algoritmo. Para implementarlo se registran los puntos de eruce con los que se ha {© RA.MA CAPITULO: ALTERNATIVAS A LOS COMPONENTES DE UN ALGORITMO EVOLUTIVO 71 realizado el eruce en cada individuo. Los puntos de cruce correspondientes a los ‘mejores individuos tienen més oportunidades de aplicarse. 3.4.5 Tasa de Mutacién Variable ‘También podemos considerar alterativas a Ia mutacién introducida en el algoritmo genético simple. Una variante que se puede introducir en los genéticos es utilizar una tasa de mutacién variable que se vaya reduciendo a medida que avanza, la evolucién [FOGR9]. De esta forma la busqueda es més amplia en las _generaciones iniciales y se va reduciendo a media que avanza la evolucién. Blick y Schitz [BAC96B] han utilizado un porcentaje de mutacién p(t), aque se va actualizando de generacién en generacién de acuerdo conta mula siendo T el nimero méximo de generaciones, ¢ 1a generacién en curso y 7 la Jongitud del eromosoma, 3.4.6 Mutacién Adaptativa En Ia mutacién adaptativa, Ia tasa de mutacién va cambiando con la evolucién del algoritmo. La tasa de mutacién se incluye en el genotipo, como otra variable que toma valores entre 0 y I. En este caso, el porcentaje de mutacién se fagrega como un pardmetro més al genotipo, de tal forma que se vuelva una variable ‘ms con un valor que oscil entre 10 y 1.0. Blick y Schttz [BAC96B] han propuesto una transformacién de la tasa de mutacin de ma m’ mediante la siguiente formula: w’-(ie Benno) donde 7 es un parimetro denominado tasa de aprendizaje para el que sugieren un valor de 0.2 y N(O,1) es un nimero aleatorio normalmente distribuido, con un valor esperado de cero y una desviacién estindar de uno. 72_ ALGORITMOS EVOLUTIVOS: UN ENFOQUE PRACTICO ORAMA 3.5 TRATAMIENTO DE PROBLEMAS CON RESTRICCIONES Los problemas de satisfaccién de restricciones se formulan sobre un cconjunto de variables, cada una de las cuales toma valor en un rango espectfico, y sobre las que se definen un conjunto de restricciones. El objetivo de la resolucién dde un problema de este tipo puede ser hallar un valor para cada variable, dentro de su rango especifico, de forma que se satisfagan todas las resricciones (problema de satisfactibilidad), o bien buscar una asignacién de valores para las variables, que ademas de satisfacer las restricciones, optimice alguna funcién objetivo (problema de optimizacién), Dependiendo del problema los dominios de las variables pueden ser continuos © diseretos. Las restrieciones pueden involucrar a una, dos o mis variables. jemplos clisicos que se utilizan para el estudio de téenicas de este tipo de ‘problemas son los siguientes: + Problema de las N reinas: se trata de colocar N' reinas en un tablero de ajedrez NxN, de manera que ninguna de ellas esté amenazada, es decir, no puede haber dos reinas en la misma fila, en la misma columna en ia misma diagonal ‘© Problemas de empaquetado: se trata de toda una clase de problemas en Jos que el objetivo es empaquetar un conjunto de objetos en uno 0 varios, recipientes de forma que optimice algin parimetro del empaquetado: ‘minimizar el nimero de recipientes empleado, maximizar el valor de los ‘objetos empaquetados en un niimero fijo de recipientes, etc. El problema de la mochila es un caso particular de este tipo de problemas, en el que se quiere maximizar el valor de los objetos empaquetados que se puedan ‘meter en un tinico recipiente (a mochila). Otro problema de este tipo es cl cortado de patrones, para el que se desarrolla un proyecto en la parte II de este libro. * Coloreado de grafos 0 mapas. El objetivo en este problema es colorear ‘un mapa con un niimero limitado de colores (0 bien minimizando el ‘mimero de colores empleados) de forma que a todo par de regiones adyacentes (comparte una frontera, no un solo punto) se le asignan colores distntos. El problema se puede formular para un grafo haciendo ccorresponder cada regién con un nodo y las aristas se establecen entre regiones adyacentes. [© RA.MA CAPITULO’: ALTERNATIVAS A LOS COMPONENTES DE LIN ALGORITMO EVOLUTIVO 73 ‘+ Planificacién de horarios y tareas. El disefio de los horarios admisibles en distintos contextos: colegios, universidades, rutas de autobuses, etc. un problema muy complejo que se ha tratado en muchos casos con AEs. Lo mismo ocurre con la planificacién de tareas que deben esarrollarse en determinados plazos dados por las condiciones del problema 0 en las que se requieren recursos compartidos cuyo uso en ada momento es necesario planifica. ‘Aunque en algunos casos se trata de problemas planteados en un marco sencillo, tienen una gran importancia ya que se corresponden con importantes y ‘ificiles problemas reales, Por ejemplo, las soluciones al problema de las N reinas earantizan que las posiciones con reinas pueden accederse desde las ocho irecciones que llevan a sus posiciones vecinas sin contlicto con otras posiciones, y esto tiene aplicacién al control de trifico aéreo, al enrutamiento de mensajes en redes de procesadores, al disefio de rutas de recogida de personas o materiales, etc. EI problema de empaquetado tiene aplicaciones directas a los contenedores de almacenaje y transporte de mercancias, reciclado, ete. El coloreado de grafos tiene también aplicaciones muy importantes como la asignacién de frecuencias en telefonia mévil, el disefto de circuitos o la asignacién de registros de la méquina por los compiladores de programas. Los problemas de planificacién de horarios y tareas tienen aplicaciones evidentes. ado la importancia teenolbgica de las aplicaciones que se corresponden ‘con este tipo de problemas, se han desarrollado diversas téenicas de trabajo con este tipo de problemas [TSA99, ROS06]. Nosotros consideramos aqui las téenicas bbasadas en algoritmos evolutivos. 3.5.1 Técnicas basicas Las téenicas de tratamiento de restricciones en algoritmos evolutivos pueden agruparse en tres tipos basicos: ‘© Técnicas de penalizacién: son las mis generales, ya que pueden aplicarse a cualquier problema con restricciones. Consisten en generar soluciones para el problema ignorando las restricciones y penalizar después en la evaluacién a aquellas soluciones que no cumplan las restricciones del problema. A menudo Ia funcién de penalizacién

You might also like