algoritmos geneticos - transparencias
TRANSCRIPT
Algoritmos Genéticos
– Historia– ¿Qué es un Algoritmo Genético (AG)?– Conceptos biológicos– Implementacion de un AG– Ejemplo, problema del viajero– Conceptos finales y conclusiones
¿Qué es un AG?
– Los algoritmos genéticos son una rama de la computación evolutiva, que es el área de la ciencia computacional cuyos algoritmos imitan el proceso evolutivo de la naturaleza.
– Según Holland, los algoritmos genéticos son programas que evolucionan, simulando en cierto grado la selección natural, quealcanzan a resolver problemas complejos que ni siquiera quienes lo crearon comprenden.
Conceptos biológicos
l 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
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
Conceptos previos (III)
l 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 (Crossover)– Mutación
– Una función de aptitud (función de fitness)
Algoritmo Genético Simple
l Características para poder aplicar un AG– Espacio de búsqueda en un rango conocido– Codificación de soluciones “fácil”
l 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
AGS (I)
l Algoritmo Genético Simple (AGS)– Propuesto inicialmente por John Holland– Constituye la base del resto de algoritmos
l Parámetros del AGS (de ellos dependerá la eficiencia y convergencia)
– Parámetros de codificaciónl a = Número de alelos ( normalmente {0, 1} )l w = Longitud de los cromosomas
– Parámetros de funcionamientol n = Tamaño de la población. l m = Número de generaciones
AGS (II)
– Parámetros probabilísticosl Pr = Probabilidad de recombinación o cruce
l Pm = Probabilidad de mutación de un alelo
– Función de aptitud o fitness de cada individuo, f(x)
¿Cuándo debe ser usado un AG?
l No hay una forma rigurosa de determinar si un método es bueno o no.
l Si el espacio de soluciones no es muy grande, se puede realizar una busque exhaustiva en lugar de AG.
l Si el espacio es continuo, se podría emplear un algoritmo de gradiente-ascendente, ya que son más eficiente que un AG.
l 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.
Métodos de selección
l Elitistal “Rueda-ruleta” l Escalamiento Sigmal Selección por rangol Selección por torneol Selección de Vasconcelos
Ejemplo del viajante
l Enunciado: “Una persona debe recorrer varias ciudades distintas, con la condición de que debe pasar solamente una vez por cada una de ellas y volver a la ciudad de origen, recorriendo la menor distancia posible.” En este ejemplo se han considerado 4 ciudades
Ejemplo del viajante (II)
l Para resolver este problema con un algoritmo genético, lo primero que se debe realizar es la codificación de los individuos
Para ver cómo evoluciona la población es necesario definir una función de evaluación:
Fitness(w) = Fitness(w)1 – 0.1 * Fitness(w)2
-C es el número de ciudades -L es la longitud de la cadena de bits -bi es el bit i-ésimo-Ti es la distancia del tramo i
Ejemplo del viajante (IV)
1.0000000.1472460.636193010110
0.8527540.0877860.379290011000
0.7649680.2059070.889645011101
0.5590610.2059070.889645010111
0.3531530.2059070.889645011011
0.1472460.1472460.636193011001
Aptitud AcumuladaValor esperadofitness(x)Individuo
-Fitness(w).- Valor devuelto por la función de aptitud al aplicar sobre ella el individuo w.-FitTOT.- Es la aptitud total de la población actual.
-Aptitud(w).- Aptitud del individuo w respecto del resto de individuosAppt(w3) = Fitness(w3)/FitTOT
-Aptitud acumulada(w).-
Ejemplo del viajante (VI)
l Los descendientes obtenidos del cruzamiento se añaden a la población intermedia y se realiza la mutación.
l De la población intermedia elegimos aquellos individuos que recorren 4 tramos y los pasamos a la nueva generación.
1.0000000.1666670.889645010111
0.8333330.1666670.889645010111
0.7649680.1666670.889645011101
0.5000000.1666670.889645011101
0.3333330.1666670.889645011101
0.1666670.1666670.889645011101
Aptitud AcumuladaAptitudfitness(x)Individuo
Se llega a la conclusión de que esta generación es más apta que la anterior puesto que el valor de FitTOT actual (5.337868 ) es mayor que el inicial (4.320610 ).
Conceptos finales
l 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.
Conceptos finales (II)
l Ventajas– No se necesita “conocimiento” específico
l Simplicidad Conceptual.l 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
Conceptos finales (III)
l Ventajas– Capaces de resolver problemas para los cuales no se
conoce solución alguna.
l Inconvenientes– Dificultad en el ajuste de los parámetros
l Operadores probabilísticosl 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
Conceptos finales (V)
l 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,...
Conclusiones
l 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.
l Sin embargo, aún están lejos de establecerse como técnicas completamente conocidas y formales.