9
1 ALGORITMOS GENÉTICOS PARA LOS CUATRO MEJORES EQUIPOS DEL MUNDIAL 1. J. Banda, 2. J. Solano, Tutor: Ing. Henry Paz Resumen—En el presente Paper se abordara temas como Gen,Cromosoma ,Tipos de Cruce, Mutación, Población, Evolu- ción, Fitness,Tipos de Fitness, y código. Index Terms—Algoritmo Genético, Gen, Cromosoma. I. I NTRODUCCIÓN Los Algoritmos Genéticos (AGs) son métodos adaptativos que pueden usarse para resolver problemas de búsqueda y optimización. Están basados en el proceso genético de los organismos vivos. A lo largo de las generaciones, las poblaciones evolucionan en la naturaleza de acorde con los principios de la selección natural y la supervivencia de los mas fuertes, postulados por Darwin (1859).[1] Por imitación de este proceso, los Algoritmos Genéticos son capaces de ir creando soluciones para problemas del mundo real. La evolución de dichas soluciones hacia valores óptimos del problema depende en buena medida de una adecuada codificación de las mismas. II. ESTADO DEL ARTE II-A. Principios Básicos Los principios básicos de los Algoritmos Genéticos fueron establecidos por Holland (1975)[2], y se encuentran bien descritos en varios textos – Goldberg (1989), Davis (1991), Michalewicz (1992), Reeves (1993)[2]. En la naturaleza los individuos de una población compiten entre si en la búsqueda de recursos tales como comida, agua y refugio. Incluso los miembros de una misma especie compiten a menudo en la búsqueda de un compañero. Aquellos individuos que tienen mas éxito en sobrevivir y en atraer compañeros tienen mayor probabilidad de generar un gran numero de descendientes. Por el contrario individuos poco dotados producirán un menor numero de descendientes. Esto significa que los genes de los individuos mejor adaptados se propagaran en sucesivas generaciones hacia un numero de individuos creciente. La combinación de buenas características provenientes de diferentes ancestros, puede a veces producir descendientes “superindividuos”, cuya adaptación es mucho mayor que la de cualquiera de sus ancestros. De esta manera, las especies evolucionan logrando unas características cada vez mejor 1. J. Banda, Universidad Nacional de Loja, Loja, Ecuador, e-mail: jiban- [email protected] 2. J. Solano , Universidad Nacional de Loja, Loja,Ecuador, e-mail: jpsola- [email protected] Manuscrito recibido el 28 de Mayo, 2014; revisado el 28 de Mayo, 2014. adaptadas al entorno en el que viven. De esta manera se produce una nueva población de posibles soluciones, la cual reemplaza a la anterior y verifica la interesante propiedad de que contiene una mayor proporción de buenas características en comparación con la población anterior. Así a lo largo de las generaciones las buenas características se propagan a través de la población. Favoreciendo el cruce de los individuos mejor adaptados, van siendo exploradas las áreas mas prometedoras del espacio de búsqueda. Si el Algoritmo Genético ha sido bien diseñado, la población convergerá hacia una solución óptima del problema.[3] El poder de los Algoritmos Genéticos proviene del hecho de que se trata de una técnica robusta, y pueden tratar con éxito una gran variedad de problemas provenientes de diferentes áreas, incluyendo aquellos en los que otros métodos encuen- tran dificultades. Si bien no se garantiza que el Algoritmo Genético encuentre la solución optima del problema, existe evidencia empírica de que se encuentran soluciones de un nivel aceptable, en un tiempo competitivo con el resto de algoritmos de optimización combinatoria. En el caso de que existan téc- nicas especializadas para resolver un determinado problema, lo mas probable es que superen al Algoritmo Genético, tanto en rapidez como en eficacia. El gran campo de aplicación de los Algoritmos Genéticos se relaciona con aquellos problemas para los cuales no existen técnicas especializadas. Incluso en el caso en que dichas técnicas existan, y funcionen bien, pueden efectuarse mejoras de las mismas hibridandolas con los Algoritmos Genéticos. II-B. Elementos de un algoritmo genético y su traducción biológica. Todos los organismos que conocemos están compuestos por una o más células, cada una de las cuales contiene a su vez uno o más cromosomas (esto es, cadenas de ADN), que tienen la función de ser una especie de “anteproyecto” del organismo del que forman parte. Un cromosoma se puede dividir, conceptualmente, en genes, bloques funcionales de ADN que codifican una determinada proteína. Solemos pensar en los genes, aunque en una visión muy superficial, como los responsables de determinar los rasgos del individuo, tales como el color de los ojos, o del cabello. Las diferentes posibilidades de escoger un rasgo (ojos azules, marrones o verdes, por ejemplo) reciben el nombre de alelos. Cada gen está localizado en una determinada posición (lugar) dentro

Algoritmos geneticos mundial

Embed Size (px)

DESCRIPTION

Algoritmos Genéticos para los mejores equipos del mundial

Citation preview

Page 1: Algoritmos geneticos mundial

1

ALGORITMOS GENÉTICOS PARA LOSCUATRO MEJORES EQUIPOS DEL MUNDIAL

1. J. Banda, 2. J. Solano, Tutor: Ing. Henry Paz

Resumen—En el presente Paper se abordara temas comoGen,Cromosoma ,Tipos de Cruce, Mutación, Población, Evolu-ción, Fitness,Tipos de Fitness, y código.

Index Terms—Algoritmo Genético, Gen, Cromosoma.

I. INTRODUCCIÓN

Los Algoritmos Genéticos (AGs) son métodos adaptativosque pueden usarse para resolver problemas de búsqueday optimización. Están basados en el proceso genético delos organismos vivos. A lo largo de las generaciones, laspoblaciones evolucionan en la naturaleza de acorde conlos principios de la selección natural y la supervivenciade los mas fuertes, postulados por Darwin (1859).[1] Porimitación de este proceso, los Algoritmos Genéticos soncapaces de ir creando soluciones para problemas del mundoreal. La evolución de dichas soluciones hacia valores óptimosdel problema depende en buena medida de una adecuadacodificación de las mismas.

II. ESTADO DEL ARTE

II-A. Principios Básicos

Los principios básicos de los Algoritmos Genéticos fueronestablecidos por Holland (1975)[2], y se encuentran biendescritos en varios textos – Goldberg (1989), Davis (1991),Michalewicz (1992), Reeves (1993)[2]. En la naturaleza losindividuos de una población compiten entre si en la búsquedade recursos tales como comida, agua y refugio. Incluso losmiembros de una misma especie compiten a menudo en labúsqueda de un compañero. Aquellos individuos que tienenmas éxito en sobrevivir y en atraer compañeros tienen mayorprobabilidad de generar un gran numero de descendientes.Por el contrario individuos poco dotados producirán un menornumero de descendientes. Esto significa que los genes delos individuos mejor adaptados se propagaran en sucesivasgeneraciones hacia un numero de individuos creciente.La combinación de buenas características provenientes dediferentes ancestros, puede a veces producir descendientes“superindividuos”, cuya adaptación es mucho mayor que lade cualquiera de sus ancestros. De esta manera, las especiesevolucionan logrando unas características cada vez mejor

1. J. Banda, Universidad Nacional de Loja, Loja, Ecuador, e-mail: [email protected]

2. J. Solano , Universidad Nacional de Loja, Loja,Ecuador, e-mail: [email protected]

Manuscrito recibido el 28 de Mayo, 2014; revisado el 28 de Mayo, 2014.

adaptadas al entorno en el que viven.

De esta manera se produce una nueva población deposibles soluciones, la cual reemplaza a la anterior yverifica la interesante propiedad de que contiene una mayorproporción de buenas características en comparación con lapoblación anterior. Así a lo largo de las generaciones lasbuenas características se propagan a través de la población.Favoreciendo el cruce de los individuos mejor adaptados, vansiendo exploradas las áreas mas prometedoras del espacio debúsqueda. Si el Algoritmo Genético ha sido bien diseñado,la población convergerá hacia una solución óptima delproblema.[3]

El poder de los Algoritmos Genéticos proviene del hecho deque se trata de una técnica robusta, y pueden tratar con éxitouna gran variedad de problemas provenientes de diferentesáreas, incluyendo aquellos en los que otros métodos encuen-tran dificultades. Si bien no se garantiza que el AlgoritmoGenético encuentre la solución optima del problema, existeevidencia empírica de que se encuentran soluciones de un nivelaceptable, en un tiempo competitivo con el resto de algoritmosde optimización combinatoria. En el caso de que existan téc-nicas especializadas para resolver un determinado problema,lo mas probable es que superen al Algoritmo Genético, tantoen rapidez como en eficacia. El gran campo de aplicación delos Algoritmos Genéticos se relaciona con aquellos problemaspara los cuales no existen técnicas especializadas. Incluso enel caso en que dichas técnicas existan, y funcionen bien,pueden efectuarse mejoras de las mismas hibridandolas conlos Algoritmos Genéticos.

II-B. Elementos de un algoritmo genético y su traducciónbiológica.

Todos los organismos que conocemos están compuestospor una o más células, cada una de las cuales contiene a suvez uno o más cromosomas (esto es, cadenas de ADN), quetienen la función de ser una especie de “anteproyecto” delorganismo del que forman parte. Un cromosoma se puededividir, conceptualmente, en genes, bloques funcionalesde ADN que codifican una determinada proteína. Solemospensar en los genes, aunque en una visión muy superficial,como los responsables de determinar los rasgos del individuo,tales como el color de los ojos, o del cabello. Las diferentesposibilidades de escoger un rasgo (ojos azules, marrones overdes, por ejemplo) reciben el nombre de alelos. Cada genestá localizado en una determinada posición (lugar) dentro

Page 2: Algoritmos geneticos mundial

2

del cromosoma que integra.

Muchos organismos tienen varios cromosomas en cadacélula. El genoma del organismo es la colección completadel material genético. Lo que se conoce como genotipo, esel conjunto de genes contenido en un genoma. El genotipodará lugar, tras el desarrollo fetal, al fenotipo del organismo,esto es, a sus características físicas y mentales, tales comoel color de ojos, la estatura, o la inteligencia. La mayoría delas especies reproductoras sexualmente que habitan nuestroplaneta, almacenan sus cromosomas por parejas (son diploides;se llaman haploides en caso contrario). En el caso del serhumano, cada célula somática (no germen) de su cuerpocontiene 23 pares de cromosomas. Durante la reproducciónsexual se produce una recombinación o cruce: en cada padre,se intercambian los genes entre cada par de cromosomas,para formar un gameto (un cromosoma único), y entonces,los gametos de los dos padres se emparejan para constituir unconjunto completo de cromosomas diploides. En el caso dela reproducción haploide, los genes se intercambian entre dospadres con una sola rama de cromosomas. La descendenciaestá sujeta a mutaciones, donde se produce un cambio enalgún nucleótido (bits elementales de ADN) de padre a hijo;esas modificaciones son resultado habitualmente de “erroresde copia”. La capacidad del organismo se define como laprobabilidad de que el organismo viva para reproducirse(viabilidad) o como una función del número de descendenciaque tenga ese organismo (fertilidad) [4].Traslademos estos conceptos a la “vida artificial”: en losalgoritmos genéticos, el término cromosoma se refiere a uncandidato a solución del problema, que a menudo se codificacomo una cadena de bits. Los genes son tanto un bit comobloques cortos de bits adyacentes que codifican un elementoparticular del candidato a solución (por ejemplo, en el casode la optimización de una función multiparamétrica, losbits que codifican un parámetro particular, se considera ungen). Un alelo en una cadena de bits será un 0 o un 1 (paraalfabetos largos cada lugar puede tener más alelos). El cruceconsiste, normalmente, como en su espejo biológico, en unintercambio de material genético entre dos cromosomas dedos padres haploides. La mutación es una permutación enun bit en un lugar aleatorio (o, en el caso de alfabetos largos,remplazar el símbolo de un lugar escogido aleatoriamentecon un símbolo nuevo escogido también aleatoriamente).En la mayoría de las aplicaciones de los algoritmos genéticosnos encontraremos con individuos haploides, concretamente,de cromosomas únicos. El genotipo de un individuo enun algoritmo genético que emplea cadenas de bits es,simplemente, la configuración de bits del cromosoma de eseindividuo. La noción de fenotipo no aparece en el contextode los algoritmos genéticos, aunque avances recientes enla materia trabajan con algoritmos que poseen un nivel“genotípico” y uno “fenotípico” (por ejemplo, la cadena debits que codifica una red neuronal, y la red en sí misma).

Según hemos visto, podemos considerar que los algoritmosgenéticos tienen, al menos, estos elementos en común:poblaciones de cromosomas, selección en base a su capacidad,

cruces para producir descendencia nueva, y mutación aleatoriade la nueva descendencia. La inversión - el cuarto elementode los algoritmos genéticos tal y como los concibió Holland- se usa raramente en las implementaciones actuales, y susventajas, si las tiene, no están del todo establecidas.

Se puede pensar en cada cromosoma de un algoritmogenético como en un punto en el espacio de búsquedade candidatos a soluciones. El algoritmo genético procesapoblaciones de cromosomas, remplazando sucesivamentecada población por otra. El algoritmo suele requerir unafunción de capacidad o potencial que asigna una puntuación(la capacidad) a cada cromosoma de la población actual.

La capacidad o el potencial de un cromosoma dependede cómo resuelva ese cromosoma el problema a tratar.Un concepto relacionado es el del “paisaje del potencial”.Definido originalmente por Sewell Wright (1931) en elcontexto de la genética de poblaciones, el paisaje de unpotencial es la representación del espacio de todos losposibles genotipos junto con sus capacidades. De este modo,los operadores de cruce y mutación pueden verse comomodos de mover una población en el paisaje definido porsu función de capacidad, y un algoritmo genético como unmétodo de búsqueda de ese paisaje para cadenas altamentecalificadas.

La forma más simple de algoritmo genético utiliza tres tiposde operadores: selección, cruce y mutación.

1 Selección o reproducción: Este operador escoge cromo-somas entre la población para efectuar la reproducción.Cuanto más capaz sea el cromosoma, más veces seráseleccionado para reproducirse.

2 Cruce: Se trata de un operador cuya labor es elegirun lugar, y cambiar las secuencias antes y después deesa posición entre dos cromosomas, para crear nuevadescendencia (por ejemplo, las cadenas 10010011 y11111010 pueden cruzarse después del tercer lugar paraproducir la descendencia 10011010 y 11110011). Imita larecombinación biológica entre dos organismos haploides.

3 Mutación: Este operador produce variaciones de modoaleatorio en un cromosoma (por ejemplo, la cadena00011100 puede mutar su segunda posición para darlugar a la cadena 01011100). La mutación puede darseen cada posición de un bit en una cadena, con unaprobabilidad, normalmente muy pequeña (por ejemplo0.001).

Como se ve, los Algoritmos Genéticos difieren de los métodostradicionales de búsqueda y optimización, en cuatro cuestionesesenciales:

II-C. Algoritmo Genético SimpleEn muchas redes las unidades de proceso tienen respuesta

de forma:

Los Algoritmos Genéticos trabajan sobre una poblaciónde individuos. Cada uno de ellos representa una posible

Page 3: Algoritmos geneticos mundial

3

solución al problema que se desea resolver. Todo individuotiene asociado un ajuste de acuerdo a la bondad con respectoal problema de la solución que representa (en la naturalezael equivalente sería una medida de la eficiencia del individuoen la lucha por los recursos).

Fig.1 Ejemplo Codificación: Red de Neuronas Artificiales

El funcionamiento genérico de un Algoritmo Genéticopuede apreciarse en el siguiente pseudocódigo:

Inicializar población actual aleatoriamente

MIENTRAS no se cumpla el criterio de terminacióncrear población temporal vacía

MIENTRAS población temporal no llenaseleccionar padrescruzar padres con probabilidad PcSI se ha producido el cruce

mutar uno de los descendientes con probabilidad Pmevaluar descendientesañadir descendientes a la población temporal

SINOañadir padres a la población inicial.

FIN SIFIN MIENTRAS

aumentar contador generacionesestablecer como nueva población actual la población temp

FIN MIENTRAS

Una generación se obtiene a partir de la anterior por mediode los operadores de reproducción. Existen 2 tipos:

Cruce: Se trata de una reproducción de tipo sexual.Se genera una descendencia a partir del mismo numerode individuos (generalmente 2) de la generación anterior.

Copia: Se trata de una reproducción de tipo asexual.Un determinado numero de individuos pasa sin sufrirninguna variación directamente a la siguiente generación.

Una vez generados los nuevos individuos se realiza lamutación con una probabilidad Pm. La probabilidad demutación suele ser muy baja, por lo general entre el 0.5 % yel 2 %.Se sale de este proceso cuando se alcanza alguno de loscriterios de parada fijados. Los mas usuales suelen ser: Losmejores individuos de la población representan solucionessuficientemente buenas para el problema que se desearesolver.

La población ha convergido. Un gen ha convergido cuandoel 95 % de la población tiene el mismo valor para él, en elcaso de trabajar con codificaciones binarias, o valores dentrode un rango especificado, en el caso de trabajar con otro tipode codificaciones. Una vez que todos los genes alcanzan laconvergencia se dice que la población ha convergido. Cuandoesto ocurre la media de bondad de la población se aproximaa la bondad del mejorindividuo.Se ha alcanzado el numero de generaciones maximizoespecificado.Sobre este algoritmo inicialmente propuesto por Holland sehan definido numerosas variantes. Quizás una de las masextendidas consiste en prescindir de la población temporal demanera que los operadores genéticos de cruce y mutación seaplican directamente sobre la población genética. Con estavariante el proceso de cruces varía ligeramente. Ahora nobasta, en el caso de que el cruce se produzca, con insertardirectamente la descendencia en la población. Puesto queel numero de individuos de la población se ha de mantenerconstante, antes de insertar la descendencia en la poblaciónse le ha de hacer sitio. Existen para ello diversas opciones:

Reemplazo de padres: para hacer hueco a la descen-dencia en la población se eliminan de ella a los padres.Reemplazo de individuos similares: cada uno de losindividuos de la descendencia reemplazará a un individuode la población con un ajuste similar al suyo. Paraescoger este individuo se obtiene la posición en la quese debería insertar el nuevo individuo para mantenerordenada la población y se escoge para insertarlo unaposición al azar de su vecindad (p.e. uno de entre loscinco individuos superiores o inferiores).Reemplazo de los peores individuos: los individuosque se eliminaran de la población para dejar paso ala descendencia se seleccionar aleatoriamente de entrelos peores individuos de la población. Por lo general seconsideran individuos pertenecientes al ultimo 10 %.Reemplazo aleatorio: los individuos eliminados se se-leccionan al azar.

Evidentemente trabajando con única población no se puededecir que se pase a la siguiente generación cuando se llenela población, pues siempre está llena. En este caso el pasoa la siguiente generación se producirá una vez que se hayanalcanzado cierto número de cruces y mutaciones.Este número dependerá de la tasa de cruces y mutacionesespecificadas por el usuario y del tamaño de la población.Así con una tasa de cruces del 90 %,una tasa de mutacionesdel 0.02 % y trabajando con 100 individuos se pasara a lasiguiente generación cuando se alcanzasen 45 cruces (cadacruce genera 2 individuos con lo que se habrían insertado enla población 90 individuos, esto es el 90 %) o 2 mutaciones.

II-D. Operadores Genéticos.Para el paso de una generación a la siguiente se aplican

una serie de opera- dores genéticos. Los más empleados sonlos operadores de selección, cruce, copia y mutación. En el

Page 4: Algoritmos geneticos mundial

4

caso de no trabajar con una población intermedia temporaltambién cobran relevancia los algoritmos de reemplazo. Acontinuación se verán en mayor detalle:

Selección: Los algoritmos de selección serán losencargados de escoger que individuos van a disponer deoportunidades de reproducirse y cuales no. Puesto que setrata de imitar lo que ocurre en la naturaleza, se ha deotorgar un mayor numero de oportunidades de reproduccióna los individuos más aptos. Por lo tanto la selección de unindividuo estará relacionada con su valor de ajuste. No sedebe sin embargo eliminar por completo las opciones dereproducción de los individuos menos aptos, pues en pocasgeneraciones la población se volverían homogénea.

Una opción bastante común consiste en seleccionar elprimero de los individuos participantes en el cruce mediantealguno de los métodos expuestos a continuación y el segundode manera aleatoria.

Selección por Ruleta: Propuesto por DeJong, esposiblemente el método mas utilizado desde los oxigenes delos Algoritmos Genéticos [Blickle and Thiele, 1995].A cada uno de los individuos de la población se le asignauna parte proporcional a su ajuste de una ruleta, de talforma que la suma de todos los porcentajes sea la unidad.Los mejores individuos recibirán una porción de la ruletamayor que la recibida por los peores. Generalmente lapoblación está ordenada en base al ajuste por lo que lasporciones más grandes se encuentran al inicio de la ruleta.Para seleccionar un individuo basta con generar un numeroaleatorio del intervalo [0..1] y devolver el individuo situadoen esa posición de la ruleta. Esta posición se suele obtenerrecorriendo los individuos de la población y acumulando susproporciones de ruleta hasta que la suma exceda el valorobtenido.Es un método muy sencillo, pero ineficiente a medida queaumenta el tamaño de la población (su complejidad esO(n2 )). Presenta ademas el inconveniente de que el peorindividuo puede ser seleccionado mas de una vez. En muchabibliografía se suele referenciar a este método con el nombrede Selección de Montecarlo.

Selección por Torneo: La idea principal de este métodoconsiste en realizar la selección en base a comparacionesdirectas entre individuos. Existen dos versiones de selecciónmediante torneo:

DeterminísticaProbabilística

En la versión determinística se selecciona al azar unnumero p de individuos (generalmente se escoge p = 2). Deentre los individuos seleccionados se selecciona el mas aptopara pasarlo a la siguiente generación.

La versión probabilística únicamente se diferencia en elpaso de selección del ganador del torneo. En vez de escoger

siempre el mejor se genera un número aleatorio del intervalo[0..1], si es mayor que un parámetro p (fijado para todo elproceso evolutivo) se escoge el individuo mas alto y en casocontrario el menos apto. Generalmente p toma valores en elrango 0,5 <p ≤ 1

Variando el numero de individuos que participan en cadatorneo se puede modificar la presión de selección. Cuandoparticipan muchos individuos en cada torneo, la presión deselección es elevada y los peores individuos apenas tienenoportunidades de reproducción. Un caso particular es el eli-tismo global. Se trata de un torneo en el que participan todoslos individuos de la población con lo cual la selección sevuelve totalmente determinística. Cuando el tamaño del torneoes reducido, la presión de selección disminuye y los peoresindividuos tienen mas oportunidades de ser seleccionados.

Elegir uno u otro método de selección determinará laestrategia de búsqueda del Algoritmo Genético. Si se optapor un método con una alta presión de selección se centrala búsqueda de las soluciones en un entorno próximo a lasmejores soluciones actuales. Por el contrario, optando por unapresión de selección menor se deja el camino abierto para laexploración de nuevas regiones del espacio de búsqueda.

Existen muchos otros algoritmos de selección. Unosbuscan mejorar la eficiencia computacional, otros el numerode veces que los mejores o peores individuos pueden serseleccionados. Algunos de estos algoritmos son muestreodeterminístico, escalamiento sigma, selección por jerarquías,estado uniforme, sobrante estocástico, brecha generacional,etc.

II-E. Cruce

Una vez seleccionados los individuos, éstos son recombi-nados para producir la descendencia que se insertará en lasiguiente generación. Tal y como se ha indicado anteriormenteel cruce es una estrategia de reproducción sexual. Su impor-tancia para la transición entre generaciones es elevada puestoque las tasas de cruce con las que se suele trabajar rondan el90 %.

Los diferentes métodos de cruce podrán operar de dosformas diferentes. Si se opta por una estrategia destructiva losdescendientes se insertarán en la población temporal aunquesus padres tengan mejor ajuste (trabajando con una únicapoblación esta comparación se realizará con los individuosa reemplazar). Por el contrario utilizando una estrategia nodestructiva la descendencia pasará a la siguiente generaciónúnicamente si supera la bondad del ajuste de los padres(o delos individuos a reemplazar)[5].

La idea principal del cruce se basa en que, si se tomandos individuos correctamente adaptados al medio y se obtieneuna descendencia que comparta genes de ambos, existe laposibilidad de que los genes heredados sean precisamentelos causantes de la bondad de los padres. Al compartir lascaracterísticas buenas de dos individuos, la descendencia, oal menos parte de ella, debería tener una bondad mayor quecada uno de los padres por separado. Si el cruce no agrupa las

Page 5: Algoritmos geneticos mundial

5

mejores características en uno de los hijos y la descendenciatiene un peor ajuste que los padres no significa que se estédando un paso atrás. Optando por una estrategia de cruce nodestructiva garantizamos que pasen a la siguiente generaciónlos mejores individuos. Si, aún con un ajuste peor, se opta porinsertar a la descendencia, y puesto que los genes de los padrescontinuarán en la población aunque dispersos y posiblementelevemente modificados por la mutación en posteriores crucesse podrán volver a obtener estos padres, recuperando así labondad previamente perdida.

Existen multitud de algoritmos de cruce. Sin embargo losmás empleados son los que se detallarán a continuación:

Cruce de un puntoCruce de 2 puntosCruce Uniforme

II-E1. Cruce de un punto: Es la más sencilla de lastécnicas de cruce. Una vez seleccionados dos individuos secortan sus cromosomas por un punto seleccionado aleatoria-mente para generar dos segmentos diferenciados en cada unode ellos: la cabeza y la cola. Se intercambian las colas entre losdos individuos para generar los nuevos descendientes. De estamanera ambos descendientes heredan información genética delos padres, tal y como se puede ver en la figura 2.

Fig 2. Cruce de un punto

II-E2. Cruce de 2 punto: Se trata de una generalizacióndel cruce de 1 punto. En vez de cortar por un único punto loscromosomas de los padres como en el caso anterior se realizandos cortes. Deberá tenerse en cuenta que ninguno de estospuntos de corte coincida con el extremo de los cromosomaspara garantizar que se originen tres segmentos. Para generarla descendencia se escoge el segmento central de uno de lospadres y los segmentos laterales del otro padre, tal como sepuede ver en la figura 3.

Fig 3. Cruce de 2 punto

Generalmente se suele referir a este tipo de cruce conlas siglas DPX (Double Point Crossover). Generalizando se

pueden añadir más puntos de cruce dando lugar a algoritmosde cruce multipunto.

II-E3. Cruce Uniforme: El cruce uniforme es una técnicacompletamente diferente de las vistas hasta el momento. Cadagen de la descendencia tiene las mismas probabilidades depertenecer a uno u otro padre.

Aunque se puede implementar de muy diversas formas, latécnica implica la generación de una máscara de cruce convalores binarios. Si en una de las posiciones de la máscarahay un 1, el gen situado en esa posición en uno de losdescendientes se copia del primer padre. Si por el contrariohay un 0 el gen se copia del segundo padre. Para producirel segundo descendiente se intercambian los papeles de lospadres, o bien se intercambia la interpretación de los unos ylos ceros de la máscara de cruce.

Tal y como se puede apreciar en la figura 4, la descendenciacontiene una mezcla de genes de cada uno de los padres.El numero efectivo de puntos de cruce es fijo pero serapor término medio L/2, siendo L la longitud del cromosoma(numero de alelos en representaciones binarias o de genes enotro tipo de representaciones). Se suele referir a este tipo decruce con las siglas UPX (Uniform Point Crossover).

Fig 4. Cruce Uniforme

II-E4. Cruces específicos de codificaciones no binarias:Los tres tipos de cruce vistos hasta el momento son válidospara cualquier tipo de representación del genotipo. Si seemplean genotipos compuestos por valores enteros o realespueden definirse otro tipo de operadores de cruce:

Media: el gen de la descendencia toma el valor mediode los genes de los padres. Tiene la desventaja de queúnicamente se genera un descendiente en el cruce de dospadres.Media geométrica: cada gen de la descendencia tomacomo valor la raíz cuadrada del producto de los genesde los padres. Presenta el problema añadido de que signodar al resultado si los padres tienen signos diferentes.Extensión: se toma la diferencia existente entre losgenes situados en las mismas posiciones de los padres yse suma al valor más alto o se resta del valor más bajo.Solventa el problema de generar un único descendiente

II-F. MutaciónLa mutación de un individuo provoca que alguno de sus

genes, generalmente uno sólo, varíe su valor de forma aleato-ria. Aunque se pueden seleccionar los individuos directamentede la población actual y mutarlos antes de introducirlos en

Page 6: Algoritmos geneticos mundial

6

la nueva población, la mutación se suele utilizar de maneraconjunta con el operador de cruce. Primeramente se selec-cionan dos individuos de la población para realizar el cruce.Si el cruce tiene éxito entonces uno de los descendientes, oambos, se muta con cierta probabilidad Pm. Se imita de estamanera el comportamiento que se da en la naturaleza, puescuando se genera la descendencia siempre se produce algúntipo de error, por lo general sin mayor trascendencia, en elpaso de la carga genética de padres a hijos. La probabilidadde mutación es muy baja, generalmente menor al 1 %. Estose debe sobre todo a que los individuos suelen tener unajuste menor después de mutados. Sin embargo se realizanmutaciones para garantizar que ningún punto del espaciode búsqueda tenga una probabilidad nula de ser examinado.Tal y como se ha comentado, la mutación más usual es elreemplazo aleatorio. Este consiste en variar aleatoriamente ungen de un cromosoma. Si se trabaja con codificaciones binariasconsistirá simplemente en negar un bit. También es posiblerealizar la mutación intercambiando los valores de dos alelosdel cromosoma. Con otro tipo de codificaciones no binariasexisten otras opciones:

Incrementar o decrementar a un gen una pequeña canti-dad generada aleatoriamente.Multiplicar un gen por un valor aleatorio próximo a 1.

Aunque no es lo más común, existen implementaciones deAlgoritmos Genéticos en las que no todos los individuos tienenlos cromosomas de la misma longitud. Esto implica que notodos ellos codifican el mismo conjunto de variables. En estecaso existen mutaciones adicionales como puede ser añadir unnuevo gen o eliminar uno ya existente.

II-G. EvaluaciónPara el correcto funcionamiento de un Algoritmo Genético

se debe de poseer un método que indique si los individuos dela población representan o no buenas soluciones al problemaplanteado. Por lo tanto para cada tipo de problema que sedesee resolver deberá derivarse un nuevo método, al igualque ocurrirá con la propia codificación de los individuos.De esto se encarga la función de evaluación, que estableceuna medida numérica de la bondad de una solución. Estamedida recibe el nombre de ajuste. En la naturaleza el ajuste(o adecuación) de un individuo puede considerarse como laprobabilidad de que ese individuo sobreviva hasta la edad dereproducción y se reproduzca. Esta probabilidad deberá estarponderada con el numero de descendientes. Evidentemente noes lo mismo una probabilidad de reproducción del 25 % en unapoblación de un par de cientos de individuos que esa mismaprobabilidad en una población de varios millones. En el mundode los Algoritmos Genéticos se empleará esta medición paracontrolar la aplicación de los operadores genéticos. Es decir,permitirá controlar el número de selecciones, cruces, copiasy mutaciones llevadas a cabo. La aproximación más comúnconsiste en crear explícitamente una medida de ajuste paracada individuo de la población. A cada uno de los individuosse les asigna un valor de ajuste escalar por medio de unprocedimiento de evaluación bien definido. Tal y como se hacomentado, este procedimiento de evaluación será específico

del dominio del problema en el que se aplica el AlgoritmoGenético. También puede calcularse el ajuste mediante unamanera ço-evolutiva". Por ejemplo, el ajuste de una estrategiade juego se determina aplicando esa estrategia contra lapoblación entera (o en su defecto una muestra) de estrategiasde oposición.

Se pueden diferenciar cuatro tipos de ajuste o fitness [Koza,1992]:

II-G1. Fitness Puro r(i,t): Es la medida de ajuste esta-blecida en la terminología natural del propio problema. Laecuación 1 establece el cálculo del valor de bondad de unindividuo i en un instante t (o generación).

Ecuación 1

Siendo:s(i, j) = valor deseado para el individuo i en el caso jc(i, j) = valor obtenido por el individuo i para el caso jNc = Número de casosPor ejemplo, dispóngase una población de hormigas que

deben llenar la despensa de cara al invierno. La bondad decada hormiga seria el numero de piezas de comida llevadas porella hasta el hormiguero. En los problemas de maximización,como sería el de las hormigas mencionado anteriormente,los individuos con un fitness puro elevado serán los másinteresantes. Al contrario, en los problemas de minimizacióninteresarán los individuos con un fitness puro reducido.

II-G2. Fitness Estandarizado: Para solucionar esta dua-lidad ante problemas de minimización o maximización semodifica el ajuste puro de acuerdo a la ecuación 2.

Ecuación 2

En el caso de problemas de minimización se emplea di-rectamente la medida de fitness puro. Si el problema es demaximización se resta de una cota superior rmax del errorel fitness puro. Empleando esta métrica la bondad de unindividuo será mayor cuanto mas cercano esté a cero el valordel ajuste. Por lo tanto, dentro de la generación t, un individuoi siempre será mejor que uno j si se verifica que s(i, t) <s(j,t).

II-G3. Fitness Ajustado a(i,t): Se obtiene aplicando latransformación reflejada en la ecuación 3 al fitness estandari-zado.

Ecuación 3

Page 7: Algoritmos geneticos mundial

7

De esta manera, el fitness ajustado tomará siempre valoresdel intervalo [0..1]. Cuando más se aproxime el fitness ajustadode un individuo a 1 mayor será su bondad.

II-G4. Fitness Normalizado: n(i,t): Los diferentes tiposde fitness vistos hasta ahora hacen referencia únicamente a labondad del individuo en cuestión. El fitness normalizado intro-duce un nuevo aspecto: indica la bondad de una solución conrespecto al resto de soluciones representadas en la población.Considerando una población de tamaño N, se obtiene segúnla ecuación 4.

Ecuación 4

Al igual que el fitness ajustado, siempre tomará valores delintervalo [0..1], con mejores individuos cuanto mas próximoesté a la unidad. Pero a diferencia de antes, un valor cercanoa 1 no solo indica que ese individuo represente una buenasolución al problema, sino que ademas es una solución des-tacadamente mejor que las proporcionadas por el resto de lapoblación.

La suma de los valores del fitness normalizado de todoslos individuos de una población dará siempre 1. Este tipo deajuste es empleado en la mayoría de los métodos de selecciónproporcionales al fitness.

III. IMPLEMENTACIÓN EN JAVA

La solución de este proyecto esta realizado en JAVA,utilizando archivos, y librerías JGAP.

JGAP es un componente de algoritmos genéticos yprogramación genética en un marco de Java. Proporcionamecanismos genéticos básicos que se pueden utilizarfácilmente para aplicar los principios evolutivos a lassoluciones de problemas.

Los algoritmos genéticos (AG) son algoritmos evolutivosque utilizan el principio de la selección natural para desarrollarun conjunto de soluciones hacia una solución óptima. AGno sólo son bastante potentes, pero también es muy fácil deusar ya que la mayor parte del trabajo puede ser encapsuladaen un único componente, obligando a los usuarios sólo paradefinir una función de aptitud que se utiliza para determinarla forma "buenaüna solución particular es relativa a otrassoluciones.

Fig 5. Aplicación de AG para los cuatro mejores equipos del mundial

Con esta premisa, y para este estudio se ha ejemplificadocon un ejercicio que consiste en determinar cuales son loscuatro países mas opcionados para conseguir ganar la copadel torneo mundial de futbol, utilizando algunas métricasde valoración y los algoritmos genéticos que proporciona lalibrería JGAP.

Como primera instancia, se ha requerido crear un archivoen formato .txt que contiene la información de los equiposelegibles al mundial: grupo al que pertenece, ranking,número de copas y el resultado final de los últimos cincopartidos jugados

Fig 6. Archivo de Texto Equipo

Esta información proporcionada corresponde a un modelode clase denominado Equipo.java, la información que seobtiene del archivo.txt se acoplará a este patrón, esta clasecontiene los métodos accesores set y get de todas las variables,además se debe generar un método que realice la función delectura de éste archivo y genere la lista de todos los equipos.

Page 8: Algoritmos geneticos mundial

8

Fig 7. Equipo.java

Luego se debe realizar una configuración inicial que con-siste en generar una función de aptitud, en este ejemplo secreará una clase denominada EquipoFitnessFunction.java queextiende de la clase FitnessFunction.java (disponible en lalibrería JGAP), en donde se debe sobreescribir el métodoevaluate para finalmente obtener el valor del score o valorde aptitud de cada equipo, éste valor de puntuación estarádefinido en el método private double getGenreScore(Equipoequipo) que evalúa la sumatoria de los siguientes parámetros.

Se evalúa los cinco últimos partidos jugados donde se leasignará una puntuación de +2 por cada partido ganado,+1 al partido empatado y -2 al partido perdido.Se evalúa el ranking en una escala del 1-10 se agrega ala puntuación +5, 10-20 se agrega +4, 20-30 se agrega+3, 30-40 e agrega +2 y del 40-50 +1 respectivamente.Se evalúa el número de copas mundiales ganadas en unaescala de 10-8 se suma +5 a la puntuación, de 8-6 sesuma +4, del 6-4 se suma +3, del 4-2 se suma +2 y del2-0 se suma 1.

Fig 8. Override del método de evaluación. FitnessFunction.

Previo a obtener los resultados de evaluación, se deberealizar la configuración para ejecutar el algoritmo gené-tico, primeramente se determinan las acciones de la con-figuración fijándole valores como DefaultConfiguration, ta-maño de la población y el valor del Fitness Function an-teriormente creado en la clase EquipoFitnessFunction.java(conf.setFitnessFunction(new EquipoFitnessFunction(equipos,rankings))), y luego se obtiene los genes de los cuatro equiposmejor puntuados.

Fig 9. Función de inicializar el algoritmo genético

Finalmente, mediante el método testSelectFittestEquipoevoluciona la población de cromosomas de este genotipo yse obtienen los resultados.

Fig 10. Función de evolución de población.

A continuación se abarcara la configuración de algoritmosgenéticos utilizando la librería JGAP.

IV. CONCLUSIONES

La librería JGAP ha simplificado el esfuerzo brindandotodo lo necesario para implementar algoritmos genéticosen JAVA, sirviéndonos de métodos como: Cromosoma,Gen, Evaluación, Fitness, Tipos de cruce, indispensablesen la creación del algoritmo genético para la obtenciónde los cuatro mejores equipos para este mundial

Se puede observar que al variar el resultado y dotar demejores características en cuanto su ranking, numero decopas, últimos partidos ganados, los equipos evolucionanen las poblaciones mejor opcionadas como favoritas alfinal del resultado

El Algoritmo Genético detecta los cuatro mejoresequipos (favoritos) de fútbol para el mundial en basea su ranking, grupo, cinco últimos paridos jugados,numero de copas ganadas. Obteniendo como resultadoa los cuatro mejores equipos opcionados para la copamundial, es notoria la diferencia ya que el algoritmogenético es el que se encarga de seleccionar a los masopcionados para la final del mundial.

La evolución de nuestra población depende del fitness,de que como se quiere que evolucione, ya sea de acuerdoal ranking, numero de copas, últimos partidos jugados.

Page 9: Algoritmos geneticos mundial

9

En este caso se han empleado todas estas característicasy se a obtenido a los cuatro favoritos para este mundial

REFERENCIAS[1] Darwin, 1859, On the Origin of Species by Means of Natural Selection,

John Murray, London.

[2] Holland, 1975, Adaptation in Natural and Artificial Systems,Universityof Michigan Press, Ann Arbor. Republished by the MITpress, 1992.

[3] [Beasley et al., 1993] Beasley, D., Bull, D. R., and Martin,R. R. (1993) An overview of genetic algorithms: Part 1,fundamentals.,University Computing.

[4] Piedad Tolmos Rodríguez-Piñero Introducción a los algo-ritmos genéticos y sus aplicaciones,[En línea]. Available:http://www.uv.es/asepuma/X/J24C.pdf [Último acceso: 24 de Mayo2014].

[5] Introducción a los Algoritmos Genéticos [En línea]. Available:http://sabia.tic.udc.es/mgestal/cv/aaggtutorial/aagg.html [Último acceso:24 de Mayo 2014]

[6] Jairo Banda, Jhon Solano Código de AlgoritmoGenético para los 4 mejores equipos del mun-dial, [En línea]. Available: http://algoritmosgeneticos-mundial.googlecode.com/svn/trunk/Examen3/

Jairo Banda

Estudiante de la Carrera de Ingeniería en Sistemas de laUniversidad Nacional de Loja, Experto en Mantenimiento Preventivoy Correctivo, Analista de Sistemas, Provincia de Loja, Ciudad Loja,Ecuador, 2014.

Jhon Solano

Estudiante de la Carrera de Ingeniería en Sistemas de laUniversidad Nacional de Loja, Programador Nivel Medio en Java,Nivel Básico PHP, Matlab y otros lenguajes Provincia de Loja,Ciudad Loja, Ecuador, 2014.