Вы находитесь на странице: 1из 3

Apuntes de Algoritmos Genéticos (Evolutivos)

Los AG se basan en la Teoría de Charles Darwin (evolución), en donde se tiene una población,
donde cada individuo posee diferentes características, las mismas que son favorables o no frente a
un método de selección al que se enfrentan los individuos, así se identifica a los que poseen mejores
características.

Las características de los individuos están dados por los cromosomas. Un cromosoma es un
conjunto de genes. Cada gen es responsable de indicar el tipo de una sola característica del
individuo. El valor que toma el gen se llama alelo.

En la TE, los individuos mejor adaptados al medio donde se encuentran son los que sobreviven, de
esta manera se reproducen, dando lugar a una descendencia que hereda sus mejores características.
También se presentan variaciones en los genes por medio de la combinación(reproducción sexual)
o por cambios aleatorios(mutaciones). Así surgen de forma natural mas características que a su vez
son puestas a prueba y permiten a sus portadores sobrevivir y reproducirse si son las mas adecuadas
para el ambiente que les rodea.

Los AG son la analogía a lo que ocurre biológicamente, pero aplicada a encontrar la mejor solución
lo que se conoce como problemas de optimización. Cada solución es un individuo. El método de
selección se llama función de ajuste(fitness) e indica la aptitud(valor) de cada individuo para
resolver el problema. Existen cromosomas con sus genes y sus respectivos alelos. A los
cromosomas se les aplican operadores genéticos, equivalentes a la mutación y reproducción sexual
de manera que se generan y ponen a prueba nuevas soluciones. Los AG es un método para probar
múltiples soluciones autogeneradas a un problema.

Que ofrece JGAP ?

Clases e Interfaces:
• Genes (Gene)
• Cromosomas (Chromosome)
• Individuos (IChromosome)
• Población (Genotype)
• Funcion de ajuste (FitnessFunction)
• Operadores Genéticos
Son soluciones genéricas, por lo que se deben de crear nuevas clases que heredan o implementan
las clases e interfaces antes mencionadas, así lo adaptamos a un problema especifico que se quiera
solucionar.

Motor Genético: crea varias soluciones (individuos) aleatoriamente con el método


randomInitialGenotype(), aplica operadores genéticos (mutación y combinación) para que surjan
nuevas soluciones con el método evolve(). Pone a prueba cada solución con la función de ajuste
evaluate(). Y por ultimo retorna el cromosoma del mejor individuo adaptado con
getFittestChromosome().
Los AG buscan imitar los procesos evolutivos de la naturaleza para resolver problemas. En la
naturaleza los individuos de una población se reproducen entre si y de esta manera nacen nuevos
individuos. Todos se someten a una selección natural durante sus vidas en las que los mas aptos
tienen mas probabilidades de sobrevivir, de esta manera las poblaciones evolucionan, mejoran
constantemente y se adaptan a los nuevo medios.
Para los AG los individuos se denominan cromosomas, cada cromosoma es una solución a un
problema especifico. Las características de un cromosoma se denominan genes. Existe una función
de aptitud, la cual aplicada a cada cromosoma devuelve un valor que indica cuan apto es y permite
compararlos entre ellos.

Antes de iniciar es necesario contar con una población inicial, lo que se hace es crear una población
de cromosomas al azar. Una vez con la población se reproducen los individuos para obtener mayor
variedad como en la naturaleza, luego es necesario elegir los mejores para ir evolucionando, hay
varios métodos de selección pero en general lo que se busca es que los mejores pasen a la próxima
generación y algunos no tan aptos también ya que la variedad ayuda a que en la reproducción se
generen cromosomas mas aptos aun que sus padres. Puede de que la cruza de un cromosoma muy
apto y otro no tanto resulte uno mucho mejor a sus padres.

En la naturaleza sucede un fenómeno llamado mutación, este es un pequeño cambio en la


información genética producido esporádicamente que provoca un cambio en un individuo. Este
cambio asegura mas variedad y provoca cambios positivos y negativos, los cambios negativos
deben quedar en el olvido gracias a la selección natural y los positivos perdurar haciendo
evolucionar a la población. Para los algoritmos se puede utilizar mutación para agregar variedad y
obtener mejor soluciones.

Para obtener buenos resultados es necesario recorrer varias generaciones, esto es reproducir varias
veces los individuos y hacer varias selecciones y algunas pocas mutaciones. También es necesario
determinar cuando una solución es suficientemente apta como para aceptarla. Para ello se puede
medir cuanto aumenta la aptitud del mejor cromosoma y si después de varias generaciones no
mejora aun introduciendo mutaciones o aumentando el numero de cromosomas podemos decidir
dejar de evolucionar y utilizar esa solución, otra técnica consiste en establecer de antemano cuantas
generaciones se van a considerar.

Métodos de selección
Rueda de Ruleta: consiste en crear un ruleta partida en ranuras de igual tamaño las cuales son
numeradas. A cada individuo de la población se le asigna una cantidad de ranuras proporcional a su
aptitud. El proceso se repite hasta completar la cantidad de individuos deseados, este método otorga
mayor probabilidad de contribuir a la siguiente generación a los individuos con mayor aptitud.
Selección por torneo: dos individuos son elegidos al azar de la población actual y el mejor o mas
apto de los dos se coloca en la generación siguiente, este proceso se realiza hasta que se completa la
nueva población.
Basado en el rango: se mantiene un porcentaje de la población, generalmente la mayoría para la
siguiente generación, se coloca la población por orden de aptitud y los M menos dignos son
eliminados y sustituidos por la descendencia de los M mejores con algún otro individuo de la
población.
Método estocástico: por cada individuo se calcula la aptitud relativa al promedio de aptitudes de la
población y en función de eso se asignan las copias.
Métodos de reproducción
Cruza simple: los dos cromosomas padres se cortan en un punto, y el material genético situado entre
ellos se intercambia.
Longitud = 8
Punto de cruzamiento = 3
Se intercambian los segmentos de cromosomas separados por el punto de cruzamiento.
XYX XYYYX XYX YYX XY
YYXYYX XY YYX XYYYX

Cruza de dos puntos: se seleccionan dos puntos aleatoriamente a lo largo de la longitud de los
cromosomas y los dos padres intercambian los segmentos entre estos puntos.

Cruza multipunto: el cromosoma es considerado un anillo y se eligen n puntos de cruza de forma


aleatoria, si la cantidad de cruza es par se intercambian las porciones de cromosomas definidas entre
cada par de puntos consecutivos, si es impar se asume un punto de cruza adicional en la posición 0
y se procede de igual modo.
Longitud = 8
Puntos de cruzamiento (n) = 4
Intercambiando los segmentos de la posición 2,4,6 y 7 se tiene:
XYX XYYYX XYXYYXXX
YYXYYX XY Y YX X Y YY Y

Cruza binomial: se define la probabilidad p0 como la probabilidad de que el alelo de cualquier


posición del descendiente se herede del padre, y l-p0 como la probabilidad de que lo herede de la
madre. Se puede construir un único hijo por cada aplicación del operador, o bien generar un
segundo hijo como complemento del primero. Cuando existe igual probabilidad de heredar del
padre como de la madre, p0 = 0.5 la cruza se denomina uniforme. Para estructuras de longitud l la
cruza uniforme implica un promedio de l/2 puntos de cruza.

Mutación
En la evolución, una mutación es un suceso bastante común, en la mayoría de los casos las
mutaciones son letales, pero en promedio contribuyen a la diversidad genética de la especie. En un
AG tendrán el mismo objetivo y la misma frecuencia (muy baja).
Una vez establecida la frecuencia de mutación, por ejemplo uno por mil, se examina cada bit de
cada cadena. Si un numero generado aleatoriamente esta por debajo de esa probabilidad, se
cambiara el bit (es decir, de 0 a 1 o de 1 a 0). Si no se dejara como esta. Dependiendo del numero de
individuos que exista y del numero de bits por individuo, puede resultar que las mutaciones sean
extremadamente raras en una sola generación.
No hace falta decir que no conviene abusar de la mutación, ya que la mutación reduce al AG a una
búsqueda aleatoria. Siempre es conveniente usar otros mecanismos de generación de diversidad,
como aumentar el tamaño de la población, o garantizar la aleatoriedad de la población inicial.

Bibliografía:

• Algoritmos Genéticos JGAP. Aplicaciones Informáticas. Veloso Gabriel Alejandro and Arce
Rubén.

• Laboratorio de Inteligencia Artificial. Practica 1: Algoritmos Genéticos. Jorge Raúl Lu


Hernández. Universidad de San Carlos de Guatemala. 2010.

Вам также может понравиться