SlideShare uma empresa Scribd logo
1 de 9
Baixar para ler offline
Algorítmos Genéticos
Faicán Rosa
Ingeniería en Sistemas
Mejía Jorge
Ingeniería en Sistemas
El presente documento tiene como finalidad dar un enfoque de Algoritmos Genéticos, teoría y
práctica con la finalidad de resumir los conceptos principales dentro de esta tem ática. Permi-
tiendo hacer uso de este documento de forma sencilla y resumida.
Introducción
La capacidad del ser humano para predecir el comporta-
miento de su entorno, se ha ido incrementando con el paso
del tiempo. De igual modo, ha comprendido que, si bien
era capaz de controlar muchos aspectos de su vida, y su
interacción con lo que le rodeaba, no lo era para otros tantos.
La inteligencia artificial es responsable de muchos
de esos logros. Los pioneros de esta ciencia estaban tan
interesados en la electrónica, como en la biología, y por eso
sus aplicaciones iban desde calcular trayectorias de misiles,
a tratar de modelizar el cerebro, de imitar el proceso de
aprendizaje humano, y de simular la evolución biológica.
John Hollanden 1962 asienta las bases para desarrollar lo
que hoy en día se conoce como algoritmos genéticos.
Constituido como un método de búsqueda que imita la
teoría de la evolución biológica de Darwin para la resolución
de problemas. Para ello, se parte de una población inicial
de la cual se seleccionan los individuos más capacitados
para luego reproducirlos y mutarlos para finalmente obtener
la siguiente generación de individuos que estarán más
adaptados que la anterior generación.
História
En los últimos años, la comunidad científica internacional
ha mostrado un creciente interés en una nueva técnica de
búsqueda basada en la teoría de la evolución y que se
conoce como el algoritmo genético. Esta técnica se basa en
los mecanismos de selección que utiliza la naturaleza, de
acuerdo a los cuales los individuos más aptos de una po-
blación son los que sobreviven, al adaptarse más fácilmente
a los cambios que se producen en su entorno.(de la Peña, s.f.)
En la actualidad se sabe que los cambios se efectúan en
los genes (unidad básica de codificación de cada uno de los
atributos de un ser vivo) de un individuo, y que los atributos
más deseables del mismo se transmiten a sus descendientes,
cuando éste se reproduce sexualmente.
Un investigador de la Universidad de Michigan llamado
John Holland estaba consciente de la importancia de la
selección natural, y a fines de los 60s desarrolló una técnica
que permitió incorporarla en un programa de computadora.
Su objetivo era lograr que las computadoras aprendieran
por sí mismas. A la técnica que inventó Holland se le llamó
originalmente "planes reproductivos", pero se hizo popular
bajo el nombre .algoritmo genético"tras la publicación de su
libro en 1975.
Este libro presentaba el algoritmo genético como una
abstracción de la evolución biológica, y proporcionaba el
entramado teórico para la adaptación bajo el algoritmo
genético. El Algoritmo Genético de Holland era un método
para desplazarse, de una población de cromosomas (bits)
a una nueva población, utilizando un sistema similar a la
“selección natural” junto con los operadores de cruces,
mutaciones e inversión inspirados en la genética. En este
primitivo algoritmo, cada cromosoma consta de genes (bits),
y cada uno de ellos es una muestra de un alelo particular (0
o 1). El operador de selección escoge, entre los cromosomas
de la población, aquellos con capacidad de reproducción, y
entre éstos, los que sean más “compatibles”, producirán más
descendencia que el resto.(Recalde, s.f.)
La mayor innovación de Holland fue la de introducir un
algoritmo basado en poblaciones con cruces, mutaciones
e inversiones2. Es más, Holland fue el primero en intentar
colocar la computación evolutiva sobre una base teórica
firme.
Hasta hace poco, esta base teórica, fundamentada en la
noción de “esquemas”, fue la estructura sobre la que
se edificaron la mayoría de los trabajos teóricos sobre
algoritmos genéticos en las décadas siguientes.
En estos últimos años se ha generado una amplia interac-
ción entre los investigadores de varios métodos de compu-
tación evolutiva, rompiéndose las fronteras entre algoritmos
genéticos, estrategias evolutivas y programación evolutiva.
Mejía Jorge- Faicán Rosa Tutor: Ing. Henry Paz
Como consecuencia, en la actualidad, el término “algoritmo
genético” se utiliza para designar un concepto mucho más
amplio del que concibió Holland.
Genética
Figura 1. Genética
Estudia la forma como las características de los organis-
mos vivos, sean éstas morfológicas, fisiológicas, bioquímicas
o conductuales, se transmiten, se generan y se expresan,
de una generación a otra, bajo diferentes condiciones
ambientales.
La genética, pues, intenta explicar cómo se heredan y se
modifican las características de los seres vivos, que pueden
ser de forma, fisiológicas, e incluso de comportamiento, o
la forma de aparearse de los mamíferos. De esta forma, la
genética trata de estudiar cómo estas características pasan
de padres a hijos, a nietos, etc., y por qué, a su vez, varían
generación tras generación.
La genética es la disciplina unificadora de las ciencias
biológicas, ya que sus principios generales se aplican a todos
los seres vivos. En todas las áreas de la Biología se recurre
a los conceptos que gobiernan la herencia, cuando se trata
de explicar la variabilidad existente en la naturaleza, así
como también cuando el hombre transforma la naturaleza
para su beneficio. El mejoramiento de plantas y animales,
la comprensión de la patología humana y producción de
medicamentos por medio de la biotecnología, son apenas
algunos ejemplos.
La genética es la ciencia que se ocupa del estudio de
la estructura y función de los genes en los diferentes
organismos, así como también del comportamiento de los
genes a nivel de poblaciones.(LÓPEZ, s.f.)
El desarrollo de nuevos métodos para la investigación
genética en los últimos años, ha transformado a esta
disciplina en el centro de la biología y de la medicina en
particular. Así por ejemplo, el estudio de los principios
genéticos básicos y sus aplicaciones en el diagnóstico, es de
suma importancia en todas las profesiones relacionadas con
la salud.
Además de su relevancia teórica para las ciencias biológi-
cas, los principios de la genética tienen importantes aplica-
ciones prácticas, ya sea en la producción de vegetal, tanto de
alimentos como productos de interés industrial o farmaceu-
tico, así como en la salud humana y la produccíon y salud
animal.
Algoritmos Genéticos
Los Algoritmos Genéticos 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 evoluciónan en la naturaleza de acorde con los
principios de la selección natural y la supervivencia de los
más fuertes, postulados por Darwin (1859).
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.(Martí, s.f.)
Figura 2. Individuo Genético Binario
En la naturaleza los individuos de una población compiten
entre sí 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 más éxito en sobrevivir y en
atraer compañeros tienen mayor probabilidad de generar un
gran número de descendientes. Por el contrario individuos
poco dotados producirán un menor número de descendientes.
Esto significa que los genes de los individuos mejor
adaptados se propagarán en sucesivas generaciones hacia un
número 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
UNIVERSIDAD NACIONAL DE LOJA
jlmejiam@unl.edu.ec, rvfaicanc@unl.edu.ec
2
Mejía Jorge- Faicán Rosa Tutor: Ing. Henry Paz
especies evolucionan logrando unas características cada vez
mejor adaptadas al entorno en el que viven. Los Algoritmos
Genéticos usan una analogía directa con el comportamiento
natural.
Trabajan con una población de individuos, cada uno
de los cuales representa una solución factible a un pro-
blema dado. A cada individuo se le asigna un valor ó
puntuación, relacionado con la bondad de dicha solución.
En la naturaleza esto equivaldría al grado de efectividad de
un organismo para competir por unos determinados recursos.
Cuanto mayor sea la adaptación de un individuo al
problema, mayor será la probabilidad de que el mismo
sea seleccionado para reproducirse, cruzando su material
genético con otro individuo seleccionado de igual forma.
Este cruce producirá nuevos individuos descendientes de los
anteriores los cuales comparten algunas de las características
de sus padres.
Cuanto menor sea la adaptación de un individuo, menor
será la probabilidad de que dicho individuo sea seleccionado
para la reproducción, y por tanto de que su material genético
se propague en sucesivas generaciones.(Valencia, s.f.)
De esta manera se produce una nueva población de
posibles soluciones, la cual reemplaza a la anterior 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 más 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.
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 encuentran dificultades.
Si bien no se garantiza que el Algoritmo Genético
encuentre la solución óptima del problema, existe evidencia
empírica de que se encuentran soluciones de un nivel acep-
table, en un tiempo competitivo con el resto de algoritmos
de optimización combinatoria.(Coello, s.f.)
En el caso de que existan técnicas especializadas para
resolver un determinado problema, lo más 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éecnicas especializadas.
Incluso en el caso en que dichas técnicas existan, y
funcionen bien, pueden efectuarse mejoras de las mismas
hibridándolas con los Algoritmos Genéticos.
Funcionamiento de un Algoritmo Genético
Las caracteristicas del perceptrón son similiares a las
redes lineales, pero su función de transferencia es lineal, no
se limita a las salidas entre 0 y 1.
La clasificación lineal y el Filtramiento Adaptativo se
constituyen como las aplicaciones mas comunes dentro de
las redes lineales.
Métodos de selección
Permite orientar la búsqueda a aquellos puntos de la po-
blación mas promisorios de la población generando una nue-
va población del mismo tamaño que la original dejando a los
especímenes que tengan el mejor fitness para que formen una
nueva población y de ella se desprendan los nuevos hijos. El
algoritmo genético simple utiliza una regla de superviviencia
probabilística. En analogía con un problema de la teoría de
juegos.
Selección Proporcional
La probabilidad de selección pi,t del i-esimo individuo en
la población P(t) depende de la adaptación relativa de este
con respecto a la población:
Donde fj es la adaptación del j-esimo individuo. El núme-
ro esperado de copias Ne del i-ésimo individuo en la próxima
generación es:
La fase de selección de un algoritmo genético basado en
valores esperados se compone de dos partes:
Determinación de los valores esperados Ne.
Conversión de los valores esperados a números discre-
tos de descendencia (muestreo).
UNIVERSIDAD NACIONAL DE LOJA
jlmejiam@unl.edu.ec, rvfaicanc@unl.edu.ec
3
Mejía Jorge- Faicán Rosa Tutor: Ing. Henry Paz
Método de la Ruleta
El algoritmo de muestreo debe mantener una población
constante y al mismo tiempo proveer de un muestreo exac-
to, consistente y eficiente. El algoritmo de muestreo original
propuesto por Holland se conoce como método de la ruleta.
Determinar la suma S de las adaptaciones de toda la
población.
Relacionar uno a uno los individuos con segmentos
contiguos de la recta real [0, S], tal que cada segmento
individual sea igual en su tamaño al grado de adapta-
ción.
Repetir el proceso hasta obtener el número deseado de
muestras.
Sufre dispersión ilimitada, es decir la discrepancia en-
tre el número esperado de copias y el número real ob-
tenido por el método de ruleta puede ser el máximo
posible.
Muestreo Estocastico Universal
Corrige el problema del método de la ruleta, es análogo
a este método con M punteros espaciados en parte iguales
entre si, de modo que con un solo lanzamiento se obtienen
M ganadores. No tiene sesgo y su disperision es la minima
posible.
La determinación del valor esperado con la ayuda de
este método es muy sensible a la presencia de un individuo
con afinidad en la adaptación establecida dentro de la
población actual, llevándose así un número elevado de
copias generación tras generación en poblaciones pequeñas.
Selección por Ranking
El algoritmo de seleción es el siguiente:
Ordenar la población del mejor individuo (x=1) al peor
(x=M).
Asignar un número de copias esperadas según:
Fórmulas:
n+=máximmo valor esperado n-=mínimo valor espe-
rado
Usar el valor del muestreo estocástico para llenar la
población.
Selección por Torneo
Esté método de seleción no se basa en valores esperados
y por lo tanto no requiere de un algoritmo de muestreo.
Algortimo:
Escoger el tamaño del torneo.
Crear una permutación aleatoria de M enteros.
Comparar la adaptación de los próximos miembros de
la población y seleccionar el mejor.
Si se acaba la permutación, generar una nueva permu-
tación
Repetir hasta llenar la población.
Es análogo a método de ranking debido a que ambos
realizan copias al mejor y cero copias al peor.
Lo métodos de seleción se ordenan en orden crecien-
te de presión selectiva, para valores estándares de sus
estados.(Ramirez, 2011)
Métodos de cruce
Se trata de un operador cuya labor es elegir un lugar,
y cambiar las secuencias antes y después de esa posición
entre dos cromosomas, para crear nueva descendencia (por
ejemplo, las cadenas 10010011 y 11111010 pueden cruzarse
después del tercer lugar para producir la descendencia
10011010 y 11110011). Imita la recombinación biológica
entre dos organismos haploides.
Cruce por un punto
Los dos cromosomas padres se cortan por un punto. Se
copia la información genética de uno de los padres desde el
inicio hasta el punto de cruce y el resto se copia del otro
progenitor. Es una de las formas clásicas de crossover.
UNIVERSIDAD NACIONAL DE LOJA
jlmejiam@unl.edu.ec, rvfaicanc@unl.edu.ec
4
Mejía Jorge- Faicán Rosa Tutor: Ing. Henry Paz
Figura 3. Crossover por un punto
Curce por dos puntos
Se trata de la misma filosofía que en el caso anterior peo
en este caso los padres se cortan por dos puntos. Se copiará
al descendiente los genes de un cromosoma progenitor desde
el principio hasta el primer punto de cruce, los genes del otro
progenitor desde el primer punto de cruce hasta el segundo y
del segundo punto de cruce hasta el final se copiará del otro
progenitor.(Holland, Septiembre 1992)
Figura 4. Crossover por dos puntos
Cruce uniforme
Cada gen del descendiente se obtiene de cualquiera de los
padres de forma aleatoria. Una opción es generar un número
aleatorio.
Si este número supera un cierto umbral se elegirá un padre
determinado y si no lo supera se elige al otro.
Figura 5. uniforme
Mutación
Tiene baja probabilidad de ser utilizado y permite
introducir nueva información no presente en la población.
Opera sobre un solo individuo, determina una posición y la
invierte con cierta probabilidad. Permite salir de máximos
locales.
Figura 6. Mutación del Gen de un individuo
Dentro del algoritmo simple el operador de mutación
permite invertir ocasionalmente un bit. Tasa de mutación
pequeña garantiza que el individuo no se diferencie mucho
de sus padres.
La mutación permite evitar la pérdida de diversidad que
han convergido a un cierot valor para toda la población y que
por lo tanto no pueden ser recuperados por el operador de
recombinació.(Rodriguez, s.f.)
Aplicación de los Algoritmos Genéticos
Dentro de los problemas y soluciones que se pueden
dar estan los siguientes beneficios de la aplicación de los
Algoritmos Genéticos.
Optimización: Se trata de un campo en el que se ha
hecho uso de numerosas tareas de optimización inclu-
yendo la optimización numérica y los problemas de
optimización combinatoria.
Programación Automática: Los Algoritmos Genéti-
cos se han empleado para desarrollar programas pa-
ra tareas específicas, y para diseñar otras estructuras
computacionales tales como el autómata celular, y las
redes de clasificación.
Aprendizaje máquina: Los algoritmos genéticos se han
utilizado también en muchas de estas aplicaciones,
tales como la predicción del tiempo o la estructura
de una proteína. Han servido asimismo para desarro-
llar determinados aspectos de sistemas particulares de
aprendizaje, como pueda ser el de los pesos en una red
neuronal, las reglas para sistemas de clasificación de
aprendizaje o sistemas de producción simbólica, y los
sensores para robots.(Poste, s.f.)
Sistemas inmunes: A la hora de modelizar varios as-
pectos de los sistemas inmunes naturales, incluyendo
la mutación somática durante la vida de un individuo
y el descubrimiento de familias de genes múltiples en
tiempo evolutivo, ha resultado útil el empleo de esta
técnica.
Ecología: En la modelización de fenómenos ecológi-
cos tales como las carreras de armamento biológico,
UNIVERSIDAD NACIONAL DE LOJA
jlmejiam@unl.edu.ec, rvfaicanc@unl.edu.ec
5
Mejía Jorge- Faicán Rosa Tutor: Ing. Henry Paz
la coevolución de parásito-huesped, la simbiosis, y el
flujo de recursos.
Genética de poblaciones: En el estudio de preguntas
del tipo “¿Bajo qué condiciones será viable evolutiva-
mente un gene para la recombinación?”
Evolución y aprendizaje: Los Algoritmos Genéticos se
han utilizado en el estudio de las relaciones entre el
aprendizaje individual y la evolución de la especie.
Sistemas sociales: En el estudio de aspectos evoluti-
vos de los sistemas sociales, tales como la evolución
del comportamiento social en colonias de insectos, y
la evolución de la cooperación y la comunicación en
sistemas multi-agentes.(Baker, s.f.)
Ejemplo Práctico
Se muestra un grupo de pantallas en las cuales se describe
los datos a ingresar y las salidas que se tendrán como
resultado a estos ingresos.
Figura 7. Pantalla inicial al ejecutar el programa
Código en Java
CLASE FitnessFunction.java.(R, s.f.)
public class MovieFitnessFunction extends FitnessFun-
ction
Figura 8. Pantalla donde se presentan los resultados
List equipos = new ArrayList();
List ranking = new ArrayList();
public MovieFitnessFunction(List movies, List genres)
this.equipos = movies;
this.ranking = genres;
@Override
protected double evaluate(IChromosome chromosome)
double score = 0;
double imdbScore = 0;
List dups = new ArrayList();
int badSolution = 1;
for (int i = 0; i <chromosome.size(); i++)
IntegerGene agene = (IntegerGene) chromosome
.getGene(i);
int index = (Integer) chromosome.getGene(i
).getAllele();
if (dups.contains(index))
badSolution = 0;
else
dups.add(index);
RankingFifa equipo=(RankingFifa) equipos.get
(index);
UNIVERSIDAD NACIONAL DE LOJA
jlmejiam@unl.edu.ec, rvfaicanc@unl.edu.ec
6
Mejía Jorge- Faicán Rosa Tutor: Ing. Henry Paz
double genreScore = getGenreScore(equipo);
if (genreScore == 0)
badSolution = 0;
double a= Double.parseDouble(equipo.getPartido2());
double b= Double.parseDouble(equipo.getPartido3());
score = (score + equipo.getPartido1() + a + b) +
(genreScore);
return (score * badSolution);
private int getGenreScore(RankingFifa equipo)
int copas = 0;
int Rankingc = 0;
int partido3=0;
int partido2=0;
int partido1=0;
int total = 0;
int grupoA=0;
int grupoB=0;
int grupoC=0;
int grupoD=0;
int grupoE=0;
int grupoF=0;
int grupoG=0;
int grupoH=0;
int c= Integer.parseInt(equipo.getCopas());
int d= Integer.parseInt(equipo.getRanking());
int e= Integer.parseInt(equipo.getPartido2());
int f= Integer.parseInt(equipo.getPartido3());
int g= equipo.getPartido1();
String grupo=equipo.getGrupo();
if(grupo.equals(.A
"))
grupoA=grupoA +4;
if(grupo.equals("B"))
grupoB=grupoB +3;
if(grupo.equals(Ç"))
grupoC=grupoC +3;
if(grupo.equals("D"))
grupoD=grupoD +2;
if(grupo.equals(.E
))
grupoE=grupoE +3;
if(grupo.equals("F"))
grupoF=grupoF +1;
if(grupo.equals("G"))
grupoG=grupoG +1;
if(grupo.equals("H"))
grupoH=grupoH +1;
int grupitos=grupoA+grupoB+grupoC+grupoD+grupoE
+grupoF+grupoG+grupoH;
if(e == 1)
partido2= partido2 +1;
if(e == 0)
partido2= partido2;
if(e == -1)
partido2= partido2 - 1;
if(f == 1)
partido3= partido3 +1;
if(f == 0)
partido3= partido3 + 0;
if(f == -1)
partido3= partido3 - 1;
if(g == 1)
partido1= partido1 +1;
if(g == 0)
partido1= partido1 + 0;
if(g == -1)
partido1= partido1 - 1;
if (c >0)
copas = c + c;
if(c == 0)
copas=0;
if ((d >= 1) (d<=10))
Rankingc = Rankingc + 18;
if ((d>= 11) (d<=20))
Rankingc = Rankingc + 15;
if ((d>= 21) (d<=30))
Rankingc = Rankingc + 12;
UNIVERSIDAD NACIONAL DE LOJA
jlmejiam@unl.edu.ec, rvfaicanc@unl.edu.ec
7
Mejía Jorge- Faicán Rosa Tutor: Ing. Henry Paz
if ((d>= 31) ((d)<=40))
Rankingc = Rankingc + 9;
if ((d>= 41) (d<=50))
Rankingc = Rankingc + 6;
if ((d>= 51) (d<=60))
Rankingc = Rankingc + 3;
total = copas + Rankingc + partido3 + partido2 +
partido1+grupitos;
return total;
Clase TestFitness.java
public class TestFitness
private Configuration conf;
private SwappingMutationOperator swapper;
private MovieFitnessFunction fitnessFunction = null;
public List equipos = new ArrayList();
public List ranking = new ArrayList();
private List resultado = new ArrayList();
private String solucion;
private String solucion2;
private static final int MAXALLOWEDEVOLUTIONS =
2000;
privateChromosomeequipoChromosome = null;
public void initialize(String tipoPelicula) throws
Exception
StringTokenizer st = new StringTokenizer(
tipoPelicula);
while (st.hasMoreElements())
String genre = st.nextToken();
ranking.add(genre);
equipos = this.loadEquipos();
conf = new DefaultConfiguration();
Configuration.resetProperty(Configuration.
PROPERTYF ITEVALI NS T);
conf.setFitnessEvaluator(
newDefaultFitnessEvaluator());
conf.getGeneticOperators().clear();
swapper = new SwappingMutationOperator(conf);
conf.addGeneticOperator(swapper);
conf.setPreservFittestIndividual(true);
conf.setPopulationSize(1000);
conf.setKeepPopulationSizeConstant(false);
fitnessFunction = new MovieFitnessFunction(equipos,
ranking);
conf.setFitnessFunction(fitnessFunction);
Gene[] equiposGenes = new Gene[4];
equiposGenes[0] = new IntegerGene(conf, 0,
equipos.size() - 1);
equiposGenes[1] = new IntegerGene(conf, 0,
equipos.size() - 1);
equiposGenes[2] = new IntegerGene(conf, 0,
equipos.size() - 1);
equiposGenes[3] = new IntegerGene(conf, 0,
equipos.size() - 1);
equipoChromosome = new Chromosome(conf,
equiposGenes);
equiposGenes[0].setAllele(new Integer(0));
equiposGenes[1].setAllele(new Integer(1));
equiposGenes[2].setAllele(new Integer(2));
equiposGenes[3].setAllele(new Integer(3));
conf.setSampleChromosome(equipoChromosome);
public String getSolucion2()
return solucion2;
public void setSolucion2(String solucion2)
this.solucion2 = solucion2;
public List getResultado()
return resultado;
public void setResultado(List resultado)
this.resultado = resultado;
public String getSolucion()
return solucion;
UNIVERSIDAD NACIONAL DE LOJA
jlmejiam@unl.edu.ec, rvfaicanc@unl.edu.ec
8
Mejía Jorge- Faicán Rosa Tutor: Ing. Henry Paz
public void setSolucion(String solucion)
this.solucion = solucion;
private List loadEquipos()
equipoMundial em=new equipoMundial();
List list = new ArrayList(em.getList());
em.getEntityManager().getTransaction().commit();
em.getList();
list=em.getList();
return list;
public void testSelectFittestMovies() throws Exception
equipos = this.loadEquipos();
System.out.println(equipos);
Genotype population = Genotype.randomInitial
Genotype(conf);
IChromosome bestSolutionSoFar = equipoChromosome;
for (int i = 0; i <MAXALLOWEDEVOLUTIONS ; i + +
)
population.evolve();
IChromosome candidateBestSolution =
population.getFittestChromosome();
if (candidateBestSolution.getFitnessValue() >
bestSolutionSoFar.getFitnessValue())
bestSolutionSoFar = candidateBestSolution;
printSolution(bestSolutionSoFar, equipos);
solucion2=String.valueOf(bestSolutionSoFar);
public void printSolution(IChromosome solution,
List equipos)
System.out.println("Valor del Fitness: -
solution.getFitnessValue());
solucion=String.valueOf(solution.getFitnessValue()
);
System.out.println(solucion);
for (int i = 0; i <solution.size(); i++)
int index = (Integer) solution.
getGene(i).getAllele();
RankingFifa equipo = (RankingFifa)
equipos.get(index);
resultado.add(equipo.getNombre().toString());
System.out.println(equipo.getNombre().
toString());
System.out.println(resultado);
Conclusiones
Se puede concluir que los algoritmos genéticos permi-
ten la simulación por medios computacionales de la
génetica del ser humano, así como tambien la selec-
ción de los genes con mayor grado de adaptabilidad
dentro de una población.
No necesitan conocimientos específicos sobre el pro-
blema que intentan resolver. Operan de forma simultá-
nea con varias soluciones, en vez de trabajar de forma
secuencial como las técnicas tradicionales.
Recomendaciones
Son fáciles de ejecutars en arquitecturas modernas, por
lo que es recomendable realizar las funciones de adap-
tación deacuerdo al problema que se intenta resolver.
Usan operadores probabilísticos, en vez de los típicos
operadores determinísticos de las otras técnicas.
Referencias
Baker, J. (s.f.). Algoritmos Genéticos.
Coello, C. A. C. (s.f.). Algoritmos Genéticos y sus Aplicaciones.
de la Peña, J. A. (s.f.). Algoritmos genéticos. Descargado de
Universidad Carlos III
Holland, J. H. (Septiembre 1992). Algoritmos Genéticos.
LÓPEZ, M. H. (s.f.). Predicción económica con algoritmos genéti-
cos: operadores genéticos versus matriz de transición.
Martí, R. (s.f.). Algoritmos Genéticos.
Poste, M. G. (s.f.).
R, M. J. (s.f.). Código en Java. Descargado de
http://mundial-ag.googlecode.com/svn/trunk/
PredicciC3B3nMundialAlgoritmosGenC3A9ticos/
Ramirez, J. C. C. (2011). Composición Musical usando Algoritmos
Genéticos.
Recalde, L. (s.f.). Esquemas Algorítmicos - Algoritmos Genéticos.
Rodriguez, P. T. (s.f.). Introducción a los Algoritmos Genéticos y
sus aplicaciones.
Valencia, P. E. (s.f.). Optimización Mediante Algoritmos Genéti-
UNIVERSIDAD NACIONAL DE LOJA
jlmejiam@unl.edu.ec, rvfaicanc@unl.edu.ec
9

Mais conteúdo relacionado

Mais procurados (7)

Darwin vs lamarck
Darwin vs lamarckDarwin vs lamarck
Darwin vs lamarck
 
Teorias evolucionistas
Teorias evolucionistasTeorias evolucionistas
Teorias evolucionistas
 
Evolución Darwiniana
Evolución DarwinianaEvolución Darwiniana
Evolución Darwiniana
 
Evolucion 2
Evolucion 2Evolucion 2
Evolucion 2
 
Evolucion
EvolucionEvolucion
Evolucion
 
Clonacion completo (2)
Clonacion completo (2)Clonacion completo (2)
Clonacion completo (2)
 
Teoria evolutiva.
Teoria evolutiva.Teoria evolutiva.
Teoria evolutiva.
 

Semelhante a Algoritmos Genéticos: Teoría y Aplicaciones

Trabajo+completo+de+inteligencia+algoritmo+genetico
Trabajo+completo+de+inteligencia+algoritmo+geneticoTrabajo+completo+de+inteligencia+algoritmo+genetico
Trabajo+completo+de+inteligencia+algoritmo+geneticoRufino meri?
 
Algoritmos Geneticos - Teoria.pdf
Algoritmos Geneticos - Teoria.pdfAlgoritmos Geneticos - Teoria.pdf
Algoritmos Geneticos - Teoria.pdfCastañeda Samanamu
 
El Proyecto Matriz #123A. MAXIMO SANDIN vs DARWIN: DARWINISMO SOCIAL IV
El Proyecto Matriz #123A. MAXIMO SANDIN vs DARWIN: DARWINISMO SOCIAL IVEl Proyecto Matriz #123A. MAXIMO SANDIN vs DARWIN: DARWINISMO SOCIAL IV
El Proyecto Matriz #123A. MAXIMO SANDIN vs DARWIN: DARWINISMO SOCIAL IVProyecto Matriz
 
Algoritmo genetico
Algoritmo geneticoAlgoritmo genetico
Algoritmo geneticoRufino meri?
 
Juarez sanchez miriam_m16s3_ladiversidad
Juarez sanchez miriam_m16s3_ladiversidadJuarez sanchez miriam_m16s3_ladiversidad
Juarez sanchez miriam_m16s3_ladiversidadMiry Juarez
 
Práctica de word
Práctica de wordPráctica de word
Práctica de wordsandradeber
 
Algoritmos Genéticos_Inteligencia Artificial
Algoritmos Genéticos_Inteligencia ArtificialAlgoritmos Genéticos_Inteligencia Artificial
Algoritmos Genéticos_Inteligencia ArtificialGabriela_Rodriguez
 
Proyecto genoma humano
Proyecto genoma humanoProyecto genoma humano
Proyecto genoma humanomicaela15
 
Algoritmos geneticos mundial
Algoritmos geneticos mundialAlgoritmos geneticos mundial
Algoritmos geneticos mundialJairo Banda
 
Nicolon 2010 diálogos entre filosofía y biología bateson
Nicolon 2010 diálogos entre filosofía y biología batesonNicolon 2010 diálogos entre filosofía y biología bateson
Nicolon 2010 diálogos entre filosofía y biología batesonRicardo Nicolon
 
Fundamentos de la Biologia Molecular
Fundamentos de la Biologia MolecularFundamentos de la Biologia Molecular
Fundamentos de la Biologia MolecularCrisnelda
 

Semelhante a Algoritmos Genéticos: Teoría y Aplicaciones (20)

Trabajo+completo+de+inteligencia+algoritmo+genetico
Trabajo+completo+de+inteligencia+algoritmo+geneticoTrabajo+completo+de+inteligencia+algoritmo+genetico
Trabajo+completo+de+inteligencia+algoritmo+genetico
 
Algoritmos Geneticos - Teoria.pdf
Algoritmos Geneticos - Teoria.pdfAlgoritmos Geneticos - Teoria.pdf
Algoritmos Geneticos - Teoria.pdf
 
El Proyecto Matriz #123A. MAXIMO SANDIN vs DARWIN: DARWINISMO SOCIAL IV
El Proyecto Matriz #123A. MAXIMO SANDIN vs DARWIN: DARWINISMO SOCIAL IVEl Proyecto Matriz #123A. MAXIMO SANDIN vs DARWIN: DARWINISMO SOCIAL IV
El Proyecto Matriz #123A. MAXIMO SANDIN vs DARWIN: DARWINISMO SOCIAL IV
 
Algoritmo genetico
Algoritmo geneticoAlgoritmo genetico
Algoritmo genetico
 
Dopazo perazzo[1]
Dopazo perazzo[1]Dopazo perazzo[1]
Dopazo perazzo[1]
 
Algoritmos genéticos
Algoritmos genéticosAlgoritmos genéticos
Algoritmos genéticos
 
BIOETICA
BIOETICABIOETICA
BIOETICA
 
Juarez sanchez miriam_m16s3_ladiversidad
Juarez sanchez miriam_m16s3_ladiversidadJuarez sanchez miriam_m16s3_ladiversidad
Juarez sanchez miriam_m16s3_ladiversidad
 
Práctica de word
Práctica de wordPráctica de word
Práctica de word
 
Biologia
BiologiaBiologia
Biologia
 
Biologia ii
Biologia iiBiologia ii
Biologia ii
 
Biologia ii
Biologia iiBiologia ii
Biologia ii
 
Biologia ii
Biologia iiBiologia ii
Biologia ii
 
Algoritmos Genéticos_Inteligencia Artificial
Algoritmos Genéticos_Inteligencia ArtificialAlgoritmos Genéticos_Inteligencia Artificial
Algoritmos Genéticos_Inteligencia Artificial
 
Genetica vegetal 1 13
Genetica vegetal 1 13Genetica vegetal 1 13
Genetica vegetal 1 13
 
Proyecto genoma humano
Proyecto genoma humanoProyecto genoma humano
Proyecto genoma humano
 
GENOMA
GENOMAGENOMA
GENOMA
 
Algoritmos geneticos mundial
Algoritmos geneticos mundialAlgoritmos geneticos mundial
Algoritmos geneticos mundial
 
Nicolon 2010 diálogos entre filosofía y biología bateson
Nicolon 2010 diálogos entre filosofía y biología batesonNicolon 2010 diálogos entre filosofía y biología bateson
Nicolon 2010 diálogos entre filosofía y biología bateson
 
Fundamentos de la Biologia Molecular
Fundamentos de la Biologia MolecularFundamentos de la Biologia Molecular
Fundamentos de la Biologia Molecular
 

Último

FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAEl Fortí
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Lourdes Feria
 
Ley 21.545 - Circular Nº 586.pdf circular
Ley 21.545 - Circular Nº 586.pdf circularLey 21.545 - Circular Nº 586.pdf circular
Ley 21.545 - Circular Nº 586.pdf circularMooPandrea
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónLourdes Feria
 
Ecosistemas Natural, Rural y urbano 2021.pptx
Ecosistemas Natural, Rural y urbano  2021.pptxEcosistemas Natural, Rural y urbano  2021.pptx
Ecosistemas Natural, Rural y urbano 2021.pptxolgakaterin
 
PLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docxPLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docxlupitavic
 
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
INSTRUCCION PREPARATORIA DE TIRO .pptx
INSTRUCCION PREPARATORIA DE TIRO   .pptxINSTRUCCION PREPARATORIA DE TIRO   .pptx
INSTRUCCION PREPARATORIA DE TIRO .pptxdeimerhdz21
 
Historia y técnica del collage en el arte
Historia y técnica del collage en el arteHistoria y técnica del collage en el arte
Historia y técnica del collage en el arteRaquel Martín Contreras
 
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...JAVIER SOLIS NOYOLA
 
Heinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoHeinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoFundación YOD YOD
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Carlos Muñoz
 
La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...JonathanCovena1
 
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAJAVIER SOLIS NOYOLA
 
origen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioorigen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioELIASAURELIOCHAVEZCA1
 
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSTEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSjlorentemartos
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.amayarogel
 
Sesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxSesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxMaritzaRetamozoVera
 

Último (20)

FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...
 
Ley 21.545 - Circular Nº 586.pdf circular
Ley 21.545 - Circular Nº 586.pdf circularLey 21.545 - Circular Nº 586.pdf circular
Ley 21.545 - Circular Nº 586.pdf circular
 
Unidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la InvestigaciónUnidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la Investigación
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcción
 
Ecosistemas Natural, Rural y urbano 2021.pptx
Ecosistemas Natural, Rural y urbano  2021.pptxEcosistemas Natural, Rural y urbano  2021.pptx
Ecosistemas Natural, Rural y urbano 2021.pptx
 
PLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docxPLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docx
 
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
 
INSTRUCCION PREPARATORIA DE TIRO .pptx
INSTRUCCION PREPARATORIA DE TIRO   .pptxINSTRUCCION PREPARATORIA DE TIRO   .pptx
INSTRUCCION PREPARATORIA DE TIRO .pptx
 
Historia y técnica del collage en el arte
Historia y técnica del collage en el arteHistoria y técnica del collage en el arte
Historia y técnica del collage en el arte
 
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
 
Heinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoHeinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativo
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
 
La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...
 
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
 
origen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioorigen y desarrollo del ensayo literario
origen y desarrollo del ensayo literario
 
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
 
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSTEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.
 
Sesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxSesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docx
 

Algoritmos Genéticos: Teoría y Aplicaciones

  • 1. Algorítmos Genéticos Faicán Rosa Ingeniería en Sistemas Mejía Jorge Ingeniería en Sistemas El presente documento tiene como finalidad dar un enfoque de Algoritmos Genéticos, teoría y práctica con la finalidad de resumir los conceptos principales dentro de esta tem ática. Permi- tiendo hacer uso de este documento de forma sencilla y resumida. Introducción La capacidad del ser humano para predecir el comporta- miento de su entorno, se ha ido incrementando con el paso del tiempo. De igual modo, ha comprendido que, si bien era capaz de controlar muchos aspectos de su vida, y su interacción con lo que le rodeaba, no lo era para otros tantos. La inteligencia artificial es responsable de muchos de esos logros. Los pioneros de esta ciencia estaban tan interesados en la electrónica, como en la biología, y por eso sus aplicaciones iban desde calcular trayectorias de misiles, a tratar de modelizar el cerebro, de imitar el proceso de aprendizaje humano, y de simular la evolución biológica. John Hollanden 1962 asienta las bases para desarrollar lo que hoy en día se conoce como algoritmos genéticos. Constituido como un método de búsqueda que imita la teoría de la evolución biológica de Darwin para la resolución de problemas. Para ello, se parte de una población inicial de la cual se seleccionan los individuos más capacitados para luego reproducirlos y mutarlos para finalmente obtener la siguiente generación de individuos que estarán más adaptados que la anterior generación. História En los últimos años, la comunidad científica internacional ha mostrado un creciente interés en una nueva técnica de búsqueda basada en la teoría de la evolución y que se conoce como el algoritmo genético. Esta técnica se basa en los mecanismos de selección que utiliza la naturaleza, de acuerdo a los cuales los individuos más aptos de una po- blación son los que sobreviven, al adaptarse más fácilmente a los cambios que se producen en su entorno.(de la Peña, s.f.) En la actualidad se sabe que los cambios se efectúan en los genes (unidad básica de codificación de cada uno de los atributos de un ser vivo) de un individuo, y que los atributos más deseables del mismo se transmiten a sus descendientes, cuando éste se reproduce sexualmente. Un investigador de la Universidad de Michigan llamado John Holland estaba consciente de la importancia de la selección natural, y a fines de los 60s desarrolló una técnica que permitió incorporarla en un programa de computadora. Su objetivo era lograr que las computadoras aprendieran por sí mismas. A la técnica que inventó Holland se le llamó originalmente "planes reproductivos", pero se hizo popular bajo el nombre .algoritmo genético"tras la publicación de su libro en 1975. Este libro presentaba el algoritmo genético como una abstracción de la evolución biológica, y proporcionaba el entramado teórico para la adaptación bajo el algoritmo genético. El Algoritmo Genético de Holland era un método para desplazarse, de una población de cromosomas (bits) a una nueva población, utilizando un sistema similar a la “selección natural” junto con los operadores de cruces, mutaciones e inversión inspirados en la genética. En este primitivo algoritmo, cada cromosoma consta de genes (bits), y cada uno de ellos es una muestra de un alelo particular (0 o 1). El operador de selección escoge, entre los cromosomas de la población, aquellos con capacidad de reproducción, y entre éstos, los que sean más “compatibles”, producirán más descendencia que el resto.(Recalde, s.f.) La mayor innovación de Holland fue la de introducir un algoritmo basado en poblaciones con cruces, mutaciones e inversiones2. Es más, Holland fue el primero en intentar colocar la computación evolutiva sobre una base teórica firme. Hasta hace poco, esta base teórica, fundamentada en la noción de “esquemas”, fue la estructura sobre la que se edificaron la mayoría de los trabajos teóricos sobre algoritmos genéticos en las décadas siguientes. En estos últimos años se ha generado una amplia interac- ción entre los investigadores de varios métodos de compu- tación evolutiva, rompiéndose las fronteras entre algoritmos genéticos, estrategias evolutivas y programación evolutiva.
  • 2. Mejía Jorge- Faicán Rosa Tutor: Ing. Henry Paz Como consecuencia, en la actualidad, el término “algoritmo genético” se utiliza para designar un concepto mucho más amplio del que concibió Holland. Genética Figura 1. Genética Estudia la forma como las características de los organis- mos vivos, sean éstas morfológicas, fisiológicas, bioquímicas o conductuales, se transmiten, se generan y se expresan, de una generación a otra, bajo diferentes condiciones ambientales. La genética, pues, intenta explicar cómo se heredan y se modifican las características de los seres vivos, que pueden ser de forma, fisiológicas, e incluso de comportamiento, o la forma de aparearse de los mamíferos. De esta forma, la genética trata de estudiar cómo estas características pasan de padres a hijos, a nietos, etc., y por qué, a su vez, varían generación tras generación. La genética es la disciplina unificadora de las ciencias biológicas, ya que sus principios generales se aplican a todos los seres vivos. En todas las áreas de la Biología se recurre a los conceptos que gobiernan la herencia, cuando se trata de explicar la variabilidad existente en la naturaleza, así como también cuando el hombre transforma la naturaleza para su beneficio. El mejoramiento de plantas y animales, la comprensión de la patología humana y producción de medicamentos por medio de la biotecnología, son apenas algunos ejemplos. La genética es la ciencia que se ocupa del estudio de la estructura y función de los genes en los diferentes organismos, así como también del comportamiento de los genes a nivel de poblaciones.(LÓPEZ, s.f.) El desarrollo de nuevos métodos para la investigación genética en los últimos años, ha transformado a esta disciplina en el centro de la biología y de la medicina en particular. Así por ejemplo, el estudio de los principios genéticos básicos y sus aplicaciones en el diagnóstico, es de suma importancia en todas las profesiones relacionadas con la salud. Además de su relevancia teórica para las ciencias biológi- cas, los principios de la genética tienen importantes aplica- ciones prácticas, ya sea en la producción de vegetal, tanto de alimentos como productos de interés industrial o farmaceu- tico, así como en la salud humana y la produccíon y salud animal. Algoritmos Genéticos Los Algoritmos Genéticos 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 evoluciónan en la naturaleza de acorde con los principios de la selección natural y la supervivencia de los más fuertes, postulados por Darwin (1859). 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.(Martí, s.f.) Figura 2. Individuo Genético Binario En la naturaleza los individuos de una población compiten entre sí 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 más éxito en sobrevivir y en atraer compañeros tienen mayor probabilidad de generar un gran número de descendientes. Por el contrario individuos poco dotados producirán un menor número de descendientes. Esto significa que los genes de los individuos mejor adaptados se propagarán en sucesivas generaciones hacia un número 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 UNIVERSIDAD NACIONAL DE LOJA jlmejiam@unl.edu.ec, rvfaicanc@unl.edu.ec 2
  • 3. Mejía Jorge- Faicán Rosa Tutor: Ing. Henry Paz especies evolucionan logrando unas características cada vez mejor adaptadas al entorno en el que viven. Los Algoritmos Genéticos usan una analogía directa con el comportamiento natural. Trabajan con una población de individuos, cada uno de los cuales representa una solución factible a un pro- blema dado. A cada individuo se le asigna un valor ó puntuación, relacionado con la bondad de dicha solución. En la naturaleza esto equivaldría al grado de efectividad de un organismo para competir por unos determinados recursos. Cuanto mayor sea la adaptación de un individuo al problema, mayor será la probabilidad de que el mismo sea seleccionado para reproducirse, cruzando su material genético con otro individuo seleccionado de igual forma. Este cruce producirá nuevos individuos descendientes de los anteriores los cuales comparten algunas de las características de sus padres. Cuanto menor sea la adaptación de un individuo, menor será la probabilidad de que dicho individuo sea seleccionado para la reproducción, y por tanto de que su material genético se propague en sucesivas generaciones.(Valencia, s.f.) De esta manera se produce una nueva población de posibles soluciones, la cual reemplaza a la anterior 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 más 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. 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 encuentran dificultades. Si bien no se garantiza que el Algoritmo Genético encuentre la solución óptima del problema, existe evidencia empírica de que se encuentran soluciones de un nivel acep- table, en un tiempo competitivo con el resto de algoritmos de optimización combinatoria.(Coello, s.f.) En el caso de que existan técnicas especializadas para resolver un determinado problema, lo más 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éecnicas especializadas. Incluso en el caso en que dichas técnicas existan, y funcionen bien, pueden efectuarse mejoras de las mismas hibridándolas con los Algoritmos Genéticos. Funcionamiento de un Algoritmo Genético Las caracteristicas del perceptrón son similiares a las redes lineales, pero su función de transferencia es lineal, no se limita a las salidas entre 0 y 1. La clasificación lineal y el Filtramiento Adaptativo se constituyen como las aplicaciones mas comunes dentro de las redes lineales. Métodos de selección Permite orientar la búsqueda a aquellos puntos de la po- blación mas promisorios de la población generando una nue- va población del mismo tamaño que la original dejando a los especímenes que tengan el mejor fitness para que formen una nueva población y de ella se desprendan los nuevos hijos. El algoritmo genético simple utiliza una regla de superviviencia probabilística. En analogía con un problema de la teoría de juegos. Selección Proporcional La probabilidad de selección pi,t del i-esimo individuo en la población P(t) depende de la adaptación relativa de este con respecto a la población: Donde fj es la adaptación del j-esimo individuo. El núme- ro esperado de copias Ne del i-ésimo individuo en la próxima generación es: La fase de selección de un algoritmo genético basado en valores esperados se compone de dos partes: Determinación de los valores esperados Ne. Conversión de los valores esperados a números discre- tos de descendencia (muestreo). UNIVERSIDAD NACIONAL DE LOJA jlmejiam@unl.edu.ec, rvfaicanc@unl.edu.ec 3
  • 4. Mejía Jorge- Faicán Rosa Tutor: Ing. Henry Paz Método de la Ruleta El algoritmo de muestreo debe mantener una población constante y al mismo tiempo proveer de un muestreo exac- to, consistente y eficiente. El algoritmo de muestreo original propuesto por Holland se conoce como método de la ruleta. Determinar la suma S de las adaptaciones de toda la población. Relacionar uno a uno los individuos con segmentos contiguos de la recta real [0, S], tal que cada segmento individual sea igual en su tamaño al grado de adapta- ción. Repetir el proceso hasta obtener el número deseado de muestras. Sufre dispersión ilimitada, es decir la discrepancia en- tre el número esperado de copias y el número real ob- tenido por el método de ruleta puede ser el máximo posible. Muestreo Estocastico Universal Corrige el problema del método de la ruleta, es análogo a este método con M punteros espaciados en parte iguales entre si, de modo que con un solo lanzamiento se obtienen M ganadores. No tiene sesgo y su disperision es la minima posible. La determinación del valor esperado con la ayuda de este método es muy sensible a la presencia de un individuo con afinidad en la adaptación establecida dentro de la población actual, llevándose así un número elevado de copias generación tras generación en poblaciones pequeñas. Selección por Ranking El algoritmo de seleción es el siguiente: Ordenar la población del mejor individuo (x=1) al peor (x=M). Asignar un número de copias esperadas según: Fórmulas: n+=máximmo valor esperado n-=mínimo valor espe- rado Usar el valor del muestreo estocástico para llenar la población. Selección por Torneo Esté método de seleción no se basa en valores esperados y por lo tanto no requiere de un algoritmo de muestreo. Algortimo: Escoger el tamaño del torneo. Crear una permutación aleatoria de M enteros. Comparar la adaptación de los próximos miembros de la población y seleccionar el mejor. Si se acaba la permutación, generar una nueva permu- tación Repetir hasta llenar la población. Es análogo a método de ranking debido a que ambos realizan copias al mejor y cero copias al peor. Lo métodos de seleción se ordenan en orden crecien- te de presión selectiva, para valores estándares de sus estados.(Ramirez, 2011) Métodos de cruce Se trata de un operador cuya labor es elegir un lugar, y cambiar las secuencias antes y después de esa posición entre dos cromosomas, para crear nueva descendencia (por ejemplo, las cadenas 10010011 y 11111010 pueden cruzarse después del tercer lugar para producir la descendencia 10011010 y 11110011). Imita la recombinación biológica entre dos organismos haploides. Cruce por un punto Los dos cromosomas padres se cortan por un punto. Se copia la información genética de uno de los padres desde el inicio hasta el punto de cruce y el resto se copia del otro progenitor. Es una de las formas clásicas de crossover. UNIVERSIDAD NACIONAL DE LOJA jlmejiam@unl.edu.ec, rvfaicanc@unl.edu.ec 4
  • 5. Mejía Jorge- Faicán Rosa Tutor: Ing. Henry Paz Figura 3. Crossover por un punto Curce por dos puntos Se trata de la misma filosofía que en el caso anterior peo en este caso los padres se cortan por dos puntos. Se copiará al descendiente los genes de un cromosoma progenitor desde el principio hasta el primer punto de cruce, los genes del otro progenitor desde el primer punto de cruce hasta el segundo y del segundo punto de cruce hasta el final se copiará del otro progenitor.(Holland, Septiembre 1992) Figura 4. Crossover por dos puntos Cruce uniforme Cada gen del descendiente se obtiene de cualquiera de los padres de forma aleatoria. Una opción es generar un número aleatorio. Si este número supera un cierto umbral se elegirá un padre determinado y si no lo supera se elige al otro. Figura 5. uniforme Mutación Tiene baja probabilidad de ser utilizado y permite introducir nueva información no presente en la población. Opera sobre un solo individuo, determina una posición y la invierte con cierta probabilidad. Permite salir de máximos locales. Figura 6. Mutación del Gen de un individuo Dentro del algoritmo simple el operador de mutación permite invertir ocasionalmente un bit. Tasa de mutación pequeña garantiza que el individuo no se diferencie mucho de sus padres. La mutación permite evitar la pérdida de diversidad que han convergido a un cierot valor para toda la población y que por lo tanto no pueden ser recuperados por el operador de recombinació.(Rodriguez, s.f.) Aplicación de los Algoritmos Genéticos Dentro de los problemas y soluciones que se pueden dar estan los siguientes beneficios de la aplicación de los Algoritmos Genéticos. Optimización: Se trata de un campo en el que se ha hecho uso de numerosas tareas de optimización inclu- yendo la optimización numérica y los problemas de optimización combinatoria. Programación Automática: Los Algoritmos Genéti- cos se han empleado para desarrollar programas pa- ra tareas específicas, y para diseñar otras estructuras computacionales tales como el autómata celular, y las redes de clasificación. Aprendizaje máquina: Los algoritmos genéticos se han utilizado también en muchas de estas aplicaciones, tales como la predicción del tiempo o la estructura de una proteína. Han servido asimismo para desarro- llar determinados aspectos de sistemas particulares de aprendizaje, como pueda ser el de los pesos en una red neuronal, las reglas para sistemas de clasificación de aprendizaje o sistemas de producción simbólica, y los sensores para robots.(Poste, s.f.) Sistemas inmunes: A la hora de modelizar varios as- pectos de los sistemas inmunes naturales, incluyendo la mutación somática durante la vida de un individuo y el descubrimiento de familias de genes múltiples en tiempo evolutivo, ha resultado útil el empleo de esta técnica. Ecología: En la modelización de fenómenos ecológi- cos tales como las carreras de armamento biológico, UNIVERSIDAD NACIONAL DE LOJA jlmejiam@unl.edu.ec, rvfaicanc@unl.edu.ec 5
  • 6. Mejía Jorge- Faicán Rosa Tutor: Ing. Henry Paz la coevolución de parásito-huesped, la simbiosis, y el flujo de recursos. Genética de poblaciones: En el estudio de preguntas del tipo “¿Bajo qué condiciones será viable evolutiva- mente un gene para la recombinación?” Evolución y aprendizaje: Los Algoritmos Genéticos se han utilizado en el estudio de las relaciones entre el aprendizaje individual y la evolución de la especie. Sistemas sociales: En el estudio de aspectos evoluti- vos de los sistemas sociales, tales como la evolución del comportamiento social en colonias de insectos, y la evolución de la cooperación y la comunicación en sistemas multi-agentes.(Baker, s.f.) Ejemplo Práctico Se muestra un grupo de pantallas en las cuales se describe los datos a ingresar y las salidas que se tendrán como resultado a estos ingresos. Figura 7. Pantalla inicial al ejecutar el programa Código en Java CLASE FitnessFunction.java.(R, s.f.) public class MovieFitnessFunction extends FitnessFun- ction Figura 8. Pantalla donde se presentan los resultados List equipos = new ArrayList(); List ranking = new ArrayList(); public MovieFitnessFunction(List movies, List genres) this.equipos = movies; this.ranking = genres; @Override protected double evaluate(IChromosome chromosome) double score = 0; double imdbScore = 0; List dups = new ArrayList(); int badSolution = 1; for (int i = 0; i <chromosome.size(); i++) IntegerGene agene = (IntegerGene) chromosome .getGene(i); int index = (Integer) chromosome.getGene(i ).getAllele(); if (dups.contains(index)) badSolution = 0; else dups.add(index); RankingFifa equipo=(RankingFifa) equipos.get (index); UNIVERSIDAD NACIONAL DE LOJA jlmejiam@unl.edu.ec, rvfaicanc@unl.edu.ec 6
  • 7. Mejía Jorge- Faicán Rosa Tutor: Ing. Henry Paz double genreScore = getGenreScore(equipo); if (genreScore == 0) badSolution = 0; double a= Double.parseDouble(equipo.getPartido2()); double b= Double.parseDouble(equipo.getPartido3()); score = (score + equipo.getPartido1() + a + b) + (genreScore); return (score * badSolution); private int getGenreScore(RankingFifa equipo) int copas = 0; int Rankingc = 0; int partido3=0; int partido2=0; int partido1=0; int total = 0; int grupoA=0; int grupoB=0; int grupoC=0; int grupoD=0; int grupoE=0; int grupoF=0; int grupoG=0; int grupoH=0; int c= Integer.parseInt(equipo.getCopas()); int d= Integer.parseInt(equipo.getRanking()); int e= Integer.parseInt(equipo.getPartido2()); int f= Integer.parseInt(equipo.getPartido3()); int g= equipo.getPartido1(); String grupo=equipo.getGrupo(); if(grupo.equals(.A ")) grupoA=grupoA +4; if(grupo.equals("B")) grupoB=grupoB +3; if(grupo.equals(Ç")) grupoC=grupoC +3; if(grupo.equals("D")) grupoD=grupoD +2; if(grupo.equals(.E )) grupoE=grupoE +3; if(grupo.equals("F")) grupoF=grupoF +1; if(grupo.equals("G")) grupoG=grupoG +1; if(grupo.equals("H")) grupoH=grupoH +1; int grupitos=grupoA+grupoB+grupoC+grupoD+grupoE +grupoF+grupoG+grupoH; if(e == 1) partido2= partido2 +1; if(e == 0) partido2= partido2; if(e == -1) partido2= partido2 - 1; if(f == 1) partido3= partido3 +1; if(f == 0) partido3= partido3 + 0; if(f == -1) partido3= partido3 - 1; if(g == 1) partido1= partido1 +1; if(g == 0) partido1= partido1 + 0; if(g == -1) partido1= partido1 - 1; if (c >0) copas = c + c; if(c == 0) copas=0; if ((d >= 1) (d<=10)) Rankingc = Rankingc + 18; if ((d>= 11) (d<=20)) Rankingc = Rankingc + 15; if ((d>= 21) (d<=30)) Rankingc = Rankingc + 12; UNIVERSIDAD NACIONAL DE LOJA jlmejiam@unl.edu.ec, rvfaicanc@unl.edu.ec 7
  • 8. Mejía Jorge- Faicán Rosa Tutor: Ing. Henry Paz if ((d>= 31) ((d)<=40)) Rankingc = Rankingc + 9; if ((d>= 41) (d<=50)) Rankingc = Rankingc + 6; if ((d>= 51) (d<=60)) Rankingc = Rankingc + 3; total = copas + Rankingc + partido3 + partido2 + partido1+grupitos; return total; Clase TestFitness.java public class TestFitness private Configuration conf; private SwappingMutationOperator swapper; private MovieFitnessFunction fitnessFunction = null; public List equipos = new ArrayList(); public List ranking = new ArrayList(); private List resultado = new ArrayList(); private String solucion; private String solucion2; private static final int MAXALLOWEDEVOLUTIONS = 2000; privateChromosomeequipoChromosome = null; public void initialize(String tipoPelicula) throws Exception StringTokenizer st = new StringTokenizer( tipoPelicula); while (st.hasMoreElements()) String genre = st.nextToken(); ranking.add(genre); equipos = this.loadEquipos(); conf = new DefaultConfiguration(); Configuration.resetProperty(Configuration. PROPERTYF ITEVALI NS T); conf.setFitnessEvaluator( newDefaultFitnessEvaluator()); conf.getGeneticOperators().clear(); swapper = new SwappingMutationOperator(conf); conf.addGeneticOperator(swapper); conf.setPreservFittestIndividual(true); conf.setPopulationSize(1000); conf.setKeepPopulationSizeConstant(false); fitnessFunction = new MovieFitnessFunction(equipos, ranking); conf.setFitnessFunction(fitnessFunction); Gene[] equiposGenes = new Gene[4]; equiposGenes[0] = new IntegerGene(conf, 0, equipos.size() - 1); equiposGenes[1] = new IntegerGene(conf, 0, equipos.size() - 1); equiposGenes[2] = new IntegerGene(conf, 0, equipos.size() - 1); equiposGenes[3] = new IntegerGene(conf, 0, equipos.size() - 1); equipoChromosome = new Chromosome(conf, equiposGenes); equiposGenes[0].setAllele(new Integer(0)); equiposGenes[1].setAllele(new Integer(1)); equiposGenes[2].setAllele(new Integer(2)); equiposGenes[3].setAllele(new Integer(3)); conf.setSampleChromosome(equipoChromosome); public String getSolucion2() return solucion2; public void setSolucion2(String solucion2) this.solucion2 = solucion2; public List getResultado() return resultado; public void setResultado(List resultado) this.resultado = resultado; public String getSolucion() return solucion; UNIVERSIDAD NACIONAL DE LOJA jlmejiam@unl.edu.ec, rvfaicanc@unl.edu.ec 8
  • 9. Mejía Jorge- Faicán Rosa Tutor: Ing. Henry Paz public void setSolucion(String solucion) this.solucion = solucion; private List loadEquipos() equipoMundial em=new equipoMundial(); List list = new ArrayList(em.getList()); em.getEntityManager().getTransaction().commit(); em.getList(); list=em.getList(); return list; public void testSelectFittestMovies() throws Exception equipos = this.loadEquipos(); System.out.println(equipos); Genotype population = Genotype.randomInitial Genotype(conf); IChromosome bestSolutionSoFar = equipoChromosome; for (int i = 0; i <MAXALLOWEDEVOLUTIONS ; i + + ) population.evolve(); IChromosome candidateBestSolution = population.getFittestChromosome(); if (candidateBestSolution.getFitnessValue() > bestSolutionSoFar.getFitnessValue()) bestSolutionSoFar = candidateBestSolution; printSolution(bestSolutionSoFar, equipos); solucion2=String.valueOf(bestSolutionSoFar); public void printSolution(IChromosome solution, List equipos) System.out.println("Valor del Fitness: - solution.getFitnessValue()); solucion=String.valueOf(solution.getFitnessValue() ); System.out.println(solucion); for (int i = 0; i <solution.size(); i++) int index = (Integer) solution. getGene(i).getAllele(); RankingFifa equipo = (RankingFifa) equipos.get(index); resultado.add(equipo.getNombre().toString()); System.out.println(equipo.getNombre(). toString()); System.out.println(resultado); Conclusiones Se puede concluir que los algoritmos genéticos permi- ten la simulación por medios computacionales de la génetica del ser humano, así como tambien la selec- ción de los genes con mayor grado de adaptabilidad dentro de una población. No necesitan conocimientos específicos sobre el pro- blema que intentan resolver. Operan de forma simultá- nea con varias soluciones, en vez de trabajar de forma secuencial como las técnicas tradicionales. Recomendaciones Son fáciles de ejecutars en arquitecturas modernas, por lo que es recomendable realizar las funciones de adap- tación deacuerdo al problema que se intenta resolver. Usan operadores probabilísticos, en vez de los típicos operadores determinísticos de las otras técnicas. Referencias Baker, J. (s.f.). Algoritmos Genéticos. Coello, C. A. C. (s.f.). Algoritmos Genéticos y sus Aplicaciones. de la Peña, J. A. (s.f.). Algoritmos genéticos. Descargado de Universidad Carlos III Holland, J. H. (Septiembre 1992). Algoritmos Genéticos. LÓPEZ, M. H. (s.f.). Predicción económica con algoritmos genéti- cos: operadores genéticos versus matriz de transición. Martí, R. (s.f.). Algoritmos Genéticos. Poste, M. G. (s.f.). R, M. J. (s.f.). Código en Java. Descargado de http://mundial-ag.googlecode.com/svn/trunk/ PredicciC3B3nMundialAlgoritmosGenC3A9ticos/ Ramirez, J. C. C. (2011). Composición Musical usando Algoritmos Genéticos. Recalde, L. (s.f.). Esquemas Algorítmicos - Algoritmos Genéticos. Rodriguez, P. T. (s.f.). Introducción a los Algoritmos Genéticos y sus aplicaciones. Valencia, P. E. (s.f.). Optimización Mediante Algoritmos Genéti- UNIVERSIDAD NACIONAL DE LOJA jlmejiam@unl.edu.ec, rvfaicanc@unl.edu.ec 9