Algoritmos Geneticos - Transparencias

26
ALGORITMOS GENÉTICOS Rene Jara Mitzi Omegna Luis Verdugo

Transcript of Algoritmos Geneticos - Transparencias

ALGORITMOS GENÉTICOS

Rene JaraMitzi OmegnaLuis Verdugo

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

Cruzamiento simple

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.