Algoritmo Genetico

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 44

ALGORITMOS GENÉTICOS

Ing. Tonny Jimenez Marquez


Algoritmos
Genéticos
Algoritmos Genéticos

Descripción

• Encuentran soluciones “buenas” en un tiempo


razonable.
• Representan las posibles soluciones de un
problema como genes.
• Los algorítmos genéticos generan una población
de genes (posibles soluciones) y los hacen
evolucionar para obtener genes mas aptos
(mejores soluciones).
Algoritmos Genéticos

Inspiración

• En la naturaleza los individuos compiten por los recursos


del medio ambiente. Algunos son mejores que otros, esos
son los que tienen mas posibilidades de sobrevivir y
propagar su material genético.

• En un AG los genes son evaluados según una función


llamada Fitness function y los mejores son los que pasarán
a la próxima iteración.
Algoritmos Genéticos

•En la naturaleza:

Una secuencia de nucleótidos

A C C T G C A G G

•En un algoritmo genético (ejemplos):

Un valor numérico (178) expresado en binario

1 0 1 1 0 0 1 0

Una secuencia de movimientos


Adelante Izquierda Izquierda Atras
Algoritmos Genéticos

Pasos de un algoritmo genético


1. Generar una población de n genes aleatoreos.
2. Evaluar a todos los individuos según la función de
aptitud (fitness function).
3. Generar nuevos individuos utilizando funciones como
Mutar, Cruzar (crossover), Variar, etc.
4. Seleccionar a los individuos que formarán la próxima
generación. (Seleccionar a los hijos (offsprings) o
seleccionar a los n mejores)
5. Volver a 2 hasta que se encuentre un valor predefinido
o se hallan cumplido una cantidad predeterminada de
iteraciones.
Algoritmos Genéticos

Mutación
1. Se decide con alguna probabilidad si se aplica la
mutación o no.
2. De aplicarse se selecciona con alguna probabilidad el bit
(o item del arreglo) a mutar.
3. De no ser un bit (que sería negado) se elije con alguna
probabilidad en que muta.
1 0 1 1 0 0 1 0

1 0 1 1 1 0 1 0
Algoritmos Genéticos

Cruza
1. Se decide con alguna probabilidad si se aplica la cruza o no.
2. De aplicarse se selecciona con alguna probabilidad la posición del
arreglo donde se aplica.

Gen A 1 0 1 1 0 0 1 0

Gen B 0 0 1 1 1 0 0 1

Gen AB 1 0 1 1 1 0 0 1

Gen BA 0 0 1 1 0 0 1 0
Algoritmos Genéticos

Selección de la pareja

Existen dos formas de seleccionar la pareja con la


cual se va a cruzar un gen:

• En función de la función de aptitud.

• Seleccionar de un grupo aleatorio el mas apto.


Algoritmos Genéticos

Algoritmos Genéticos

• ¿Qué es un Algoritmo Genético (AG)?


• Conceptos biológicos
• Algoritmo Genético Simple (AGS)
• Implementación de un AG
• Conceptos finales y conclusiones
Algoritmos Genéticos

¿Qué es un AG?
• Marco de desarrollo, Computación Evolutiva: estudio de
los fundamentos y aplicaciones de ciertas técnicas
heurísticas de búsqueda basadas en los principios naturales
de la evolución.

• Computación Evolutiva:
• Estrategias Evolutivas
• Programación Evolutiva
• Algoritmos Genéticos
Algoritmos Genéticos

¿Qué es un AG? (II)


• John Holland (60-70)
• abstraer y explicar rigurosamente el proceso adaptativo
de los sistemas naturales, y
• diseñar sistemas artificiales que retuvieran los
mecanismos más importantes de los sistemas
naturales.
• AG
• Técnica de búsqueda heurística y estocástica en
espacios de soluciones
• Inspirados en los mecanismos de evolución natural (C.
Darwin)
Algoritmos Genéticos

¿Qué es un AG? (III)

• Por qué AGs


• Búsqueda en espacios “enormes” de soluciones
• Algoritmos paralelizables con estrategias adecuadas de
búsqueda
• Algoritmos adaptativos
Algoritmos Genéticos

Conceptos biológicos
• Fundamentos biológicos
• Cromosomas, “anteproyecto” del individuo (cadenas de
ADN)
• Están compuestos de Genes, bloques funcionales
responsables de determinar los rasgos de un individuo
• Las posibilidades de escoger un rasgo son los Alelos
• Cada gen tiene una posición en el cromosoma o Locus
• El conjunto del material genético es el Genoma
• El conjunto de genes es el Genotipo
• El conjunto de características finales físicas y mentales del
individuo es el Fenotipo
Algoritmos Genéticos

Conceptos previos (II)


Naturaleza Algoritmos Genéticos
Cromosoma (Individuo) Palabra binaria, vector,...
(Solución)
Gen Característica del problema
(parámetro)
Alelo Alfabeto de representación
Locus Posición en la cromosoma de los
bits
Genotipo Configuración de bits concreta
Generación Ciclo
Algoritmos Genéticos

Conceptos previos (III)


• En términos generales, para simular el proceso
evolutivo en una computadora mediante un AG se
requiere:
• Codificar el espacio de soluciones.
• Un mecanismo de selección.
• Operaciones que afecten a los “individuos” (operadores
genéticos).
• Recombinación
• Mutación
• Una función de aptitud (función de fitness)
Algoritmos Genéticos

Algoritmo Genético Simple

• Características para poder aplicar un AG


• Espacio de búsqueda en un rango conocido
• Codificación de soluciones “fácil”
• Generalmente un codificación correcta es la clave de una
buena resolución del problema.
• Se debe poder definir la función de aptitud o fitness
Algoritmos Genéticos

AGS (I)

• Algoritmo Genético Simple (AGS)


• Propuesto inicialmente por John Holland
• Constituye la base del resto de algoritmos
• Parámetros del AGS (de ellos dependerá la eficiencia y
convergencia)
• Parámetros de codificación
• a = Número de alelos ( normalmente {0, 1} )
• w = Longitud de los cromosomas
• Parámetros de funcionamiento
• n = Tamaño de la población.
• m = Número de generaciones
Algoritmos Genéticos

AGS (II)

• Parámetros probabilísticos
• Pr = Probabilidad de recombinación o cruce
• Pm = Probabilidad de mutación de un alelo

• Función de aptitud o fitness de cada individuo, f(x)


Algoritmos Genéticos

AGS (III)
• Obtener aleatoriamente la primera generación P1
• Para 1 ≤ i < m
– Aplicar f() a todos los individuos de Pi

• Pintermedia = 

– Mientras tam(Pintermedia) < n

– Elegir en Pi una pareja de individuos (en función de f())

– Recombinarlos con probabilidad Pr


– Mutar sus alelos con probabilidad Pm
– Incluirlos en la población Pintermedia
• Hacer Pi + 1 = Pintermedia
• Devolver el individuo más apto de Pm
Algoritmos Genéticos

Introducción al teorema de los


esquemas
• Formalizado por Holland, 1975
• Los AG trabajan descubriendo, enfatizando y
recombinando buenos “bloques constructores” de
soluciones en una manera altamente paralelizada.
• Noción de esquema, ej: H=1****1
• Instancias del esquema, soluciones, ej: 100101,
111011,...
Algoritmos Genéticos

Implementación de un AG

• ¿Cuando debe ser usado un AG?


• Codificación de un problema para un AG
• Adaptando la codificación
• Métodos de selección
• Operadores genéticos
• Ejemplo del viajante
Algoritmos Genéticos

¿Cuándo debe ser usado un AG?


• No hay una forma rigurosa de determinar si un método es
bueno o no.
• Si el espacio de soluciones no es muy grande, se puede
realizar una busque exhaustiva en lugar de AG.
• Si el espacio es continuo, se podría emplear un algoritmo
de gradiente-ascendente, ya que son más eficiente que
un AG.
• Si la función fitness tiene ruido, la estrategia de seguir el
gradiente puede ir desencaminada con la imposibilidad
de vuelta atrás, mientras que los AG´s acumulan una
estadística de fitness sobre varias generaciones.
Algoritmos Genéticos

Codificación de un problema para


un AG.
• Para los métodos de búsqueda y aprendizaje el punto
principal es la codificación de las soluciones
candidatas:

Tipos:
-Codificación binaria.
-Codificación mediante valores reales y caracteres.
Algoritmos Genéticos

“Rueda-ruleta”
Holland utiliza la selección proporcional a la aptitud (fitness) , en la cual el
“valor esperado” se calcula dividiendo la aptitud del individuo entre el
promedio de la aptitud de toda la población.

Elemento i Cadena f(i) % del total Acumulado


1 01101 169 14.4 14.4
2 11000 576 49.2 63.6
3 01000 61 5.5 69.1
4 10111 361 30.9 100
Total 100.0
Algoritmos Genéticos

Selección por rango


• Cada individuo en la población es clasificado en
incrementos de su aptitud desde 1 hasta N.
• El valor esperado de cada individuo en la población en el
instante t viene dado por
ExpVal(i, t ) = Min + ( Max − Min) rankN(−i ,1t )−1
-Min es el valor esperado del individuo con rango1
-Max es el valor esperado del individuo con rangoN
Elemento i Cadena f(i) % del total Rango
1 01101 169 14.4 2
2 11000 576 49.2 4
3 01000 61 5.5 1
4 10111 361 30.9 3
Total 100.0
Algoritmos Genéticos

Operadores genéticos

• La tercera decisión para realizar la implementación de un


AG es elegir que operadores aritméticos utilizar.

-Cruzamiento
* Cruzamiento simple
* Cruzamiento de dos puntos
* Cruzamiento de parametrización uniforme
-Mutación
Algoritmos Genéticos

Cruzamiento simple
• Consiste en elegir un número aleatorio entre cero y el
tamaño de la cadena de bits, que será el punto de cruce.
• A continuación se intercambia la parte de los dos padres
posterior al punto de cruce para formar dos
descendientes.
• Un problema, es que este método no permite combinar
todos los posibles esquemas.
• Los esquemas que pueden ser creados o destruidos por el
cruzamiento dependen fuertemente de la localización de
los bits en el cromosoma (individuo). “bias posicional”.
• el segmento intercambiado entre los dos padres siempre
contienen el “punto final” de la cadena.
Algoritmos Genéticos

Cruzamiento simple
Algoritmos Genéticos

Cruzamiento de dos puntos


• En el cual dos posiciones son elegidas al azar y entre
ambas se intercambian los valores de la cadena.
• Permite combinar mas esquemas que el anterior.
• Reduce el problema del “bias posicional”.
• Además el segmento que es intercambiado no tiene por
que tener la parte final de la cadena (problema del punto
final).
• De nuevo hay esquemas que el cruzamiento de dos
puntos no puede combinar.
Algoritmos Genéticos

Cruzamiento de dos puntos


Algoritmos Genéticos

Cruzamiento de parametrización uniforme

• Un intercambio ocurre en cada posición de la cadena con


probabilidad p (tipicamente 0.5<p<0.8).
• La parametrización uniforme no presenta el “bias
posicional”.
• Y esquemas contenidos en diferentes posiciones en los
padres pueden potencialmente ser recombinados en los
hijos.
Algoritmos Genéticos

Cruzamiento de parametrización uniforme


Algoritmos Genéticos

Mutación
• Consiste en examinar cada bit de cada cadena cuando se
vaya a crear el nuevo descendiente a partir de sus padres
• Si un número generado aleatoriamente está por debajo de
la probabilidad de cruce, se cambiará el bit
• La mutación aseguramos la población contra la fijación
permanente en alguna posición particular
• El cruzamiento es más robusto a la hora de construir
nuevos esquemas que la mutación.
• No se trata de elegir entre cruzamiento o mutación, sino
que es mas bien un balance entre cruzamiento y
mutación.
Algoritmos Genéticos

Conceptos finales

• Diferencias con métodos tradicionales de


búsqueda y optimización
• Trabajan con poblaciones de soluciones en lugar de un
individuo
• Usan una función de aptitud como único conocimiento
• Reglas de transición probabilísticas y no determinísticas
• El hecho de que usen operadores probabilísticas no
significa que operen de manera análoga a una simple
búsqueda aleatoria.
Algoritmos Genéticos

Conceptos finales (II)

• Ventajas
• No se necesita “conocimiento” específico
• Simplicidad Conceptual.
• Amplia aplicabilidad, Tienen el potencial para incorporar
conocimiento sobre el dominio y para hibridizarse con otras
técnicas de búsqueda/optimización.
• Pueden explotar fácilmente las arquitecturas en
paralelo.
• Son robustas a los cambios dinámicos, resultan menos
afectados por los máximos locales
Algoritmos Genéticos

Conceptos finales (III)

• Ventajas
• Capaces de resolver problemas para los cuales no se
conoce solución alguna.
• Inconvenientes
• Dificultad en el ajuste de los parámetros
• Operadores probabilísticos
• Problemas de convergencia
• Principio básico: Los parámetros de un AG deben ajustarse de
modo que no se produzca una convergencia rápida de la
población
Algoritmos Genéticos

Conceptos finales (IV)

• ¿Cuándo usar algoritmos genéticos?


• Espacios “grandes”, “accidentados”, o “poco
comprendidos”
• Si espacio pequeño -> búsqueda exhaustiva
• Si espacio no accidentado -> técnicas de gradiente
• Si espacio conocido -> técnicas con conocimiento
específico
• No hay reglas universales
Algoritmos Genéticos

Conceptos finales (V)

• Algunas aplicaciones
• Optimización (estructural, de topologías, numérica,
combinatoria, etc.)
• Aprendizaje de máquina (sistemas clasificadores)
• Bases de datos (optimización de consultas)
• Reconocimiento de patrones (por ejemplo, imágenes)
• Generación de gramáticas (regulares, libres de
contexto, etc.)
• Planeación de movimientos de robots
• Predicción,...
Algoritmos Genéticos

Conceptos finales (VI)

• Ejemplos reales:
• Laboratorios KanGAL, Sistema de suspensión de un
automóvil.
• Modelo tridimensional para optimizar el diseño de los
amortiguadores y los resortes de rigidez del vehículo.
• Optimal Solutions, Diseño de una red de agua potable
• Extender y reforzar la infraestructura de su red de suministro
de agua potable, en previsión de un incremento de la
población.
Algoritmos Genéticos

Conclusiones

• Los algoritmos genéticos prometen ser:


• métodos de resolución de problemas tecnológicamente
complejos o para el aprendizaje máquina.
• métodos para la simulación de sistemas (naturales) no
fácilmente describibles.
• Sin embargo, aún están lejos de establecerse como
técnicas completamente conocidas y formales.
Algoritmos Genéticos

Conclusiones
• Los AGs probaron ser una herramienta de busqueda eficiente para
la representacion tridimensional de las proteinas.
• Utilzando Campos de fuerza como función de aptitud y una
pequeña población el algoritmo genera diversos individuos pero
con una funcion de aptitud bastante optima.
• El mayor problema recae en la función de aptitud, ya que no se
puede encontrar una lo suficientemente precisa se encuentran
soluciones sub-optimas diversas alejadas de la solucion óptima

También podría gustarte