Artículo predicción mundial 2014 algoritmos geneticos
1. 1
Predicci´on de posibles equipos ganadores del
mundial 2014 con algoritmos gen´eticos
J. Saraguro1
R. Le´on2
H. Paz3
Resumen—En este art´ıculo se da una explici´on de los
algoritmos gen´eticos, y de los distintos m´etodos que existen para
generar nuevas poblaciones asi como tambi´en los mecanismos de
evaluci´on(Fitness) para evaluar el funcionmiento del algoritmo
gen´etico y en base a la recopilaci´on bibliogr´afica poder realizar
una aplicaci´on para determinar cuales son los cuatro equipos
con mayor probabilidad de ganar el mundial de f´utbol Brasil
2014 con la ayuda de algoritmos gen´eticos.
Index Terms—Fitness, Algoritmos Gen´eticos, Cruce, Mutaci´on,
Poblaci´on.
I. INTRODUCCI ´ON
EN el presente articulo con la ayuda de algoritmos
gen´eticos se pretende determinar las cuatro equipos del
mundial 2014 con mayor posibilidad de convertirse en el
ganador. Para obtener este objetivo se describir´a conceptos
b´asicos acerca de los algoritmos gen´eticos como tambi´en su
funcionamiento y utilizaci´on en la rama de la inteligencia
artificial. Esta predicci´on se la realizar´a mediante el uso de
una aplicaci´on pr´actica la cual ser´a desarrollada en el lenguaje
de programaci´on Java con la ayuda de la librer´ıa JGAP.
II. ALGORITMOS GEN ´ETICOS
Una de las capacidades de los seres humanos es tener la
posibilidad de predecir el comportamiento del entorno que lo
rodea, tal como lo pretende realizar la inteligencia artificial.
Como parte de la inteligencia artificial est´an presentes los
algoritmos gen´eticos, que hoy en d´ıa son muy utilizados para
resolver m´ultiples problemas del mundo real. Son algoritmos
de b´usqueda basados en la mec´anica de la selecci´on natural
y de la gen´etica.[2]
Para obtener la soluci´on estos algoritmos utilizan la
informaci´on hist´orica para encontrar nuevos puntos de vista
de una soluci´on ´optima del problema planteado, o la mejora
de los resultados.
El funcionamiento de un algoritmo gen´etico trata que
en cada generaci´on se crea un conjunto nuevo de cadenas
1J. Saraguro, Universidad Nacional de Loja, Loja, Ecuador jlsaragu-
rop@unl.edu.ec
2R. Le´on, Universidad Nacional de Loja, Loja, Ecuador
mrleonr@unl.edu.ec
3Tutor. H. Paz, Universidad Nacional de Loja, Loja, Ecuador
hpaz@unl.edu.ec
utilizando bits y partes m´as adecuadas del progenitor. Este
proceso aleatorio no resulta nada f´acil o simple.
Entonces estos algoritmos est´an basados en conocimientos
de la evoluci´on biol´ogica, ya que en esta evoluci´on se llevan a
cabo a base de interacciones locales entre individuos, y entre
estos y lo que les rodea, ya sea por conseguir recursos como:
comida, agua y refugio y la persona que atraiga mas personas
a perseguir su meta ser´a el que tenga mas probabilidad de
supervivencia.
Por tanto, cuando Holland se enfrent´o a los algoritmos
gen´eticos, los objetivos de su investigaci´on fueron dos:
1. Imitar los procesos adaptativos de los sistemas naturales.
2. Dise˜nar sistemas artificiales (normalmente programas)
que retengan los mecanismos importantes de los
sistemas naturales.
Podemos considerar que los algoritmos gen´eticos tienen, al
menos, estos elementos en com´un:
Poblaciones de cromosomas
Selecci´on en base a su capacidad
Cruces para producir descendencia nueva
Mutaci´on aleatoria de la nueva descendencia.
II-A. Algoritmos gen´eticos simples
El Algoritmo Gen´etico Simple, tambi´en denominado
Can´onico, se representa en la figura 1, se necesita una codi-
ficaci´on o representaci´on del problema, que resulte adecuada
al mismo.
Figura 1. Pseudoc´odigo de un Algoritmo Gen´etico Simple
Adem´as se requiere una funci´on de ajuste o adaptaci´on
al problema, la cual asigna un n´umero real a cada posible
2. 2
soluci´on codificada. Durante la ejecuci´on del algoritmo,
los padres deben ser seleccionados para la reproducci´on,
a continuaci´on dichos padres seleccionados se cruzar´an
generando dos hijos, sobre cada uno de los cu´ales actuar´a un
operador de mutaci´on.[3]
Aplicar el algoritmo gen´etico al campo de la resoluci´on
de problemas habr´a que seguir una serie de pasos, como es
conseguir que el tama˜no de la poblaci´on sea lo suficientemente
grande para garantizar la diversidad de soluciones. Se aconseja
que la poblaci´on sea generada de forma aleatoria para obtener
dicha diversidad. [1]
Los pasos b´asicos de un algoritmo gen´etico son:
Evaluar la puntuaci´on de cada uno de los cromosomas
generados.
Permitir la reproducci´on de los cromosomas siendo los
m´as aptos los que tengan m´as probabilidad de reprodu-
cirse.
Con cierta probabilidad de mutaci´on, mutar un gen del
nuevo individuo generado.
Organizar la nueva poblaci´on.
Estos pasos se repetir´an hasta que se de una condici´on de
terminaci´on. Se puede fijar un n´umero m´aximo de iteraciones
antes de finalizar el algoritmo gen´etico o detenerlo cuando no
se produzcan m´as cambios en la poblaci´on.[1]
Figura 2. Estructura de un Algoritmo Gen´etico Simple
III. OPERADORES GEN ´ETICOS
Para el paso de una generaci´on a la siguiente se aplican
operadores gen´eticos. Los m´as usados son los operadores de
selecci´on, cruce, copia y mutaci´on.
1. Selecci´on.- Los algoritmos de selecci´on ser´an los en-
cargados de escoger que individuos van a disponer de
oportunidades de reproducirse.
En este tipo de algoritmos se pretende imitar lo
que ocurre en la naturaleza, se ha de otorgar un
mayor n´umero de oportunidades de reproducci´on a los
individuos m´as aptos.[5]
Este operador escoge cromosomas entre la poblaci´on
para efectuar la reproducci´on. Cuanto m´as capaz
sea el cromosoma, m´as veces ser´a seleccionado para
reproducirse.[6]
Existen dos formas de emplear este algoritmo las cuales
son:
a) Selecci´on por Ruleta: Propuesto por DeJong, es
posiblemente el m´etodo mas utilizado. A cada
individuo de la poblaci´on se le asigna una parte
proporcional a su ajuste de una ruleta, de tal
forma que la suma de todos los porcentajes es la
unidad.
En este tipo de selecci´on los mejores individuos
reciben una porci´on de la ruleta mayor que
la recibida por los peores. Para seleccionar un
individuo basta con generar un n´umero aleatorio
del intervalo [0..1] y devolver el individuo situado
en esa posici´on de la ruleta.[5]
Es un m´etodo muy sencillo, pero ineficiente a
medida que aumenta el tama˜no de la poblaci´on
(su complejidad es O(n2
)). Presenta adem´as el
inconveniente de que el peor individuo puede ser
seleccionado m´as de una vez.[5]
b) Selecci´on por Torneo: La idea principal de este
m´etodo consiste en realizar la selecci´on en base
a comparaciones directas entre individuos. Existen
dos versiones:
Determin´ıstica: en esta versi´on se selecciona al
azar un n´umero p de individuos (generalmente
se escoge p = 2). De entre los individuos
seleccionados se selecciona el m´as apto para
pasarlo a la siguiente generaci´on. [5]
Probabil´ıstica: se diferencia en que en vez de
escoger siempre el mejor, se genera un n´umero
aleatorio del intervalo [0.,1], si es mayor que
un par´ametro p (fijado para todo el proceso
evolutivo) se escoge el individuo m´as alto y en
caso contrario el menos apto. Generalmente p
toma valores en el rango 0,5 < p <= 1.
2. Cruce.- Una ves seleccionados los individuos, estos
son combinados para producir la descendencia que
se formar´a la nueva generaci´on. la idea principal del
cruce se basa en que, si se toman dos individuos
correctamente adaptados al medios y se obtiene una
descendencia que comparta genes de ambos, existe
la posibilidad de que los genes heredados sean los
causantes de la bondad de los padres.[5]
Basicamente la labor de este operador es elegir un
lugar, y cambiar las secuencias antes y despu´es de
esa posici´on entre dos cromosomas, para crear nueva
descendencia.[6]
3. 3
Al compartir las caracter´ısticas buenas de dos indivi-
duos, las descendencia o al menos parte de ella, deber´ıa
tener una bondad mayor de cada unos de los padres por
separado.Existen multitud de algoritmos de cruce, pero
los m´as utilizados son:
a) Cruce de 1 punto: Es la m´as sencilla de las t´ecnicas
de cruce. Una ves seleccionados dos individuos se
cortan sus cromosomas por un punto seleccionado
aleatoriamente para generar dos segmentos diferen-
ciados en cada uno de ellos: la cabeza y la cola.
Se intercambian las colas entre los dos individuos
para generar los nuevos descendientes.
Figura 3. Cruce de 1 Punto
b) Cruce de 2 puntos: Se trata de una modificaci´on
del cruce de 1 punto. En vez de cortar por un
´unico punto los cromosomas de los padres como
en el caso caso anterior se realizan dos cortes.
Se deber´a tener en cuenta que ninguno de estos
puntos de corte coincida con el extremo de los
cromosomas para garantizar que se originen tres
segmentos. Para generar la descendencia se escoge
el segmento central de uno de los padres y los
segmentos laterales del otro padre.[5]
Figura 4. Cruce de 2 Puntos
c) Cruce Uniforme: Esta t´ecnica implica la
generaci´on de una m´ascara de cruce de valores
binarios. Si en una de las posiciones de las
m´ascara hay un 1, el gen situado en esa posici´on
en uno de los descendientes se copia del primer
padre. Si por lo contrario hay un 0 el gen se
copia del segundo padre. Para producir el segundo
descendiente se intercambian los papeles de los
padres, o bien se intercambia la interpretaci´on de
los unos y los ceros de la m´ascara de cruce.[5]
La descendencia contiene una mezcla de genes de
cada uno de los padres. El n´umero efectivo de
puntos de cruce es fijo pero ser´a por t´ermino medio
L/2, siendo L la longitud del cromosoma (n´umero
de alelos en representaciones binarias o de genes
en otro tipo de representaciones).
3. Copia.- Es otra estrategia reproductiva para la obtenci´on
de una nueva generaci´on a partir de la anterior. A
diferencia del cruce, se trata de una estrategia de
Figura 5. Cruce Uniforme
reproducci´on asexual. Consiste simplemente en la copia
de un individuo en la nueva generaci´on.
El porcentaje de copias de una generaci´on a la siguiente
es relativamente reducido, pues en caso contrario se
corre el riesgo de una convergencia prematura de la
poblaci´on hacia ese individuo.
4. Mutaci´on.- la mutaci´on de un individuo provoca que
alguno de sus genes, generalmente uno s´olo, var´ıe su
valor de forma aleatoria.
Aunque se pueden seleccionar los individuos
directamente de la poblaci´on actual y mutarlos antes de
introducirlos en la nueva poblaci´on, la mutaci´on se la
puede utilizar de manera conjunta con el operador de
cruce, es decir primero se seleccionan dos individuos de
la poblaci´on para realizar el cruce. Si el cruce tiene ´exito
entonces uno de los descendientes, o ambos se muta. [5]
IV. FUNCI ´ON DE EVALUACI ´ON DE LOS ALGORITMOS
GEN ´ETICOS
Para el correcto funcionamiento de un algoritmo gen´etico
se debe poseer un m´etodo que indique si los individuos de
la poblaci´on representa o no buenas soluciones al problema
planteado. De esto se encarga la funci´on de evaluaci´on, que
establece una medida num´erica d la bondad de una soluci´on
la cual recibe el nombre de ajuste.[5]
Se pueden diferencias cuatro tipos de ajuste o fitness[4]:
Fitness Puro: r(i,t)
Es la medida de ajuste establecida en la terminolog´ıa
natural del propio problema. La ecuaci´on 1 establece el
c´alculo del valor de bondad de un individuo i en un
instante t (o generaci´on).
r(i, t) =
Nc?
j=1
|s(i, j) − c(i, j)| (1)
Siendo:
s(i, j) = valor deseado para el individuo i en el caso j.
c(i, j) = valor obtenido por el individuo i en el caso j.
4. 4
Nc = n´umero de casos.
En problemas de maximizaci´on los individuos con un
fitness puro elevado ser´an los m´as interesantes, por el
contrario en los problemas de minimizaci´on interesar´an
los individuos con un fitness puro reducido.
Fitness Estandarizado: s(i, t)
Para solucionar esta dualidad ante problemas de mini-
mizaci´on o maximizaci´on se modifica el ajuste puro de
acuerdo a la ecuaci´on 2.
s(i, t) =
?
r(i, t) minimizaci´on
rmax − r(i, t) maximizaci´on
(2)
En el caso de minimizaci´on se emplea directamente
la medida de fitness puro, si el problema es de
maximizaci´on se resta de una cota superior rmax del
error de fitness puro. Empleando esta m´etrica la bondad
de un individuo ser´a mayor cuanto m´as cercano est´e a
cero el valor del ajuste.
Por lo tanto, dentro de la generaci´on t, un individuo
i siempre ser´a mejor que uno j si se verifica que
s(i, t) < s(j, t).
Fitness Ajustado: a(i, t)
Se obtiene aplicando la transformaci´on reflejada en la
ecuaci´on 3 al fitness estandarizado.
a(i, t) =
1
1 + s(i, t)
(3)
De esta manera, el fitness ajustado tomar´a siempre
valores del intervalo [0..1]. Cuando m´as se aproxime
al fitness ajustado de un individuo a 1 mayor ser´a su
bondad.
Fitness Normalizado: n(i, t)
Los diferentes tipos de fitness vistos hasta ahora hacen
referencia ´unicamente a la bondad del individuo en cues-
ti´on. El fitness normalizado introduce un nuevo aspecto:
indica la bondad de una soluci´on con respecto al resto de
soluciones representadas en la poblaci´on. Considerando
una poblaci´on de tama˜no N, se obtiene seg´un la ecuaci´on
4
n(i, t) =
a(i, t)
?N
k=1 a(k, t)
(4)
Al igual que el fitness ajustado, siempre tomar´a valores
del intervalo [0.,1], con mejores individuos cuanto m´as
pr´oximo est´e a la unidad. Pero a diferencia de antes,
un valor cercano a 1 no s´olo indica que ese individuo
represente una buena soluci´on al problema, sino que
adem´as es una soluci´on destacadamente mejor que las
proporcionadas por el resto de la poblaci´on.
La suma de los valores del fitness normalizado de todos
los individuos de una poblaci´on dar´a siempre 1. Este tipo
de ajuste es empleado en la mayor´ıa de los m´etodos de
selecci´on proporcionales al fitness.
V. EJEMPLO EN JAVA
La aplicaci´on esta desarrollada en le lenguje de
programaci´on JAVA utilizando la librer´ıa JGAP la cual
nos permite el desarrollo de Algoritmos Gen´eticos.
Como se explic´o en la introducci´on esta aplicaci´on nos
permite predecir los cuatro equipos con mayor probabilidad
de ganar el mundial Brasil 2014 con la ayuda de algoritmos
gen´eticos.
En la figura 6 se presenta la pantalla principal de la
aplicaci´on.
Figura 6. Pantalla Principal
En la figura 7 observamos los equipos que se encuentr´an
clasificdos al mundial 2014 los cuales van ha ser nuestra
poblaci´on.
Figura 7. Listado de Equipos
En la figura 8 observamos la informci´on de cada uno
de los paises que se encuentran en listado, dentro de la
informaci´on contamos con: datos de los tres ultimos partidos,
grupo al cual pertenecen en el mundial, el n´umero de copas
de mundiales que ha ganado y el puesto en el rankig de la
FIFA; en base ha esta informaci´on se dar´a un puntaje a cada
equipo para su evaluaci´on.
5. 5
El bot´on actulizar nos permtir´a editar la informaci´on de cada
uno de los equipos.
Figura 8. Datos de los Equipos
Al presionar el bot´on predecir el resultado de esta acci´on
se presenta en la figura 9, en la cual se observa el resultado de
la ejecuci´on de la aplicaci´on, es decir nos presenta los cuatro
equipos con mayor probabilidad de ganar el mundial Brasil
2014.
Figura 9. Datos de los Equipos
En la figura 10 se observa la evoluci´on seg´un se como se
ejecuta la aplicaci´on hasta que encuentra el resultado deseado.
Figura 10. Datos de los Equipos
Con lo respecta al c´odigo de la aplicaci´on lo esencial
se centra en la clase EFitness la cu´al contiene los m´etodos
necesarios para que la poblaci´on evolucione y as´ı llegar al
resultdo deseado.
En la figura 11 observamos el m´etodo evalute el cual nos
permite determinar cu´al es la mejor opci´on para el resultado
deseado.
En la figura 12 observamos el m´etodo getGenreScore, nos
permite obtener el puntje de acuerdo a la evaluaci´on .
VI. CONCLUSIONES
Los algoritmo gen´eticos son de gran ayuda para resolver
problemas de optimizaci´on cuando su espcio de busqued
est´a dentro de un rango.
La calidad de evaluci´on del algoritmo gen´etico
dependar´a de la l´ogica que se codifique en el fitness.
La selecci´on de buenos padres para la generaci´on de un
nueva poblaci´on depender´a del tama˜no de la poblaci´on
original.
Figura 11. M´etodo Evluate de la Clase Fitness
Figura 12. M´etodo getGenreScore de la Clase Fitness
VII. RECOMENDACIONES
Relizar un buena l´ogica de comparacion entre los
par´ametros del algoritmo gen´etico para obtener un buen
resultdo.
El uso de la librer´ıa JGAP para el desarrollo de
algoritmos gen´eticos en el lenguaje de programaci´on
JAVA
El uso de la librer´ıa JAVACSV para el manejo de archivos
CSV.
REFERENCIAS
[1] P. Antonio A. Jorge. Algoritmos gen´eticos, 2005.
[2] Universidad de pa´ıs vasco. Algoritmos gen´eticos, 2014.
[3] Intelligent Systems Group. Algoritmos gen´eticos, 2001.
[4] J. R. Koza. Genetic Programming: On the Programming
of Computers by Means of Natural Selection. 1992.
[5] G. Marcos. Introducci´on a los algoritmos gen´eticos, 2012.
[6] R. Piedad. Introducci´on a los algoritmos gen´eticos y sus
aplicaciones, 2011.
link del código fuente:
https://github.com/mricharleon/PrediccionMundialAlgoritmosGeneticos.git
6. 6
BIOGRAF´IA
Mario Richar Le´on Ram´on , estudiante de la
Carrera de Ingier´ıa en Sistemas, D´ecimo M´odulo.
Loja, Ciudad Loja - Ecuador, 2014.
, estudiante de la
Carrera de Ingier´ıa en Sistemas, D´ecimo M´odulo.
Loja, Ciudad Loja - Ecuador, 2014.
Jenny Saraguro