La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Algoritmo genético simple UMSNH FIE Algoritmos Genéticos  Programas evolutivos que emplean exclusivamente la representación binaria.  Un algoritmo.

Presentaciones similares


Presentación del tema: "Algoritmo genético simple UMSNH FIE Algoritmos Genéticos  Programas evolutivos que emplean exclusivamente la representación binaria.  Un algoritmo."— Transcripción de la presentación:

1

2 Algoritmo genético simple UMSNH FIE

3 Algoritmos Genéticos  Programas evolutivos que emplean exclusivamente la representación binaria.  Un algoritmo genético simula la evolución de los procesos y los cambios genéticos en las estructuras de los cromosomas.

4 ESTRUCTURA DE UN ALGORITMO GENÉTICO SIMPLE (AGS) Soluciones 1100101010 1011101110 0011011001 1100110001 Cromosomas 1100101010 1011101110 1100101110 0011011001 0011001001 1100101110 1011101010 0011001001 Soluciones Cálculo Aptitud Selección Cruce Mutación Evaluación Decodificación Codificación Método de selección aleatoria pesada

5 ESTRUCTURA GENERAL DE UN A.G. SIMPLE t :=0; Inicializar P(t); Evaluar P(t) While no se termine do recombinación P(t) => C(t) evaluar C(t) seleccionar[P (t+1) de P(t) y C(t) t:=t+1; end  Individuo=>Cromosoma=>población=> desarrolla en iteraciones:Generación => evaluación aptitud.  Nueva Generación => producto de cruce- mutación => hijos (offspring) y /o padres mejor aptitud _ eliminar resto => tamaño población constante.  Después de varias generaciones => el algoritmo converge hacia el mejor cromosoma => representa la solución óptima o subóptima.  Individuo=>Cromosoma=>población=> desarrolla en iteraciones:Generación => evaluación aptitud.  Nueva Generación => producto de cruce- mutación => hijos (offspring) y /o padres mejor aptitud _ eliminar resto => tamaño población constante.  Después de varias generaciones => el algoritmo converge hacia el mejor cromosoma => representa la solución óptima o subóptima.

6 ESTRUCTURA GENERAL DE UN A.G. SIMPLE 1.[Inicio]:Generar población aleatoria de n cromosomas (soluciones apropiadas al problema) 2.[Aptitud]: Evaluar la aptitud f(x) de cada cromosoma x en la población. 3.[Nueva población] Crear una nueva población repitiendo los pasos siguientes hasta completar la nueva población: 1. [Selección] Seleccionar dos padres cromosomas de la población de acuerdo a su aptitud. 2. [Cruce] Con una probabilidad de cruce combinar dos padres para obtener un nuevo hijo. Si no se realiza => el hijo es copia exacta del padre. 3. [Mutación] Con una probabilidad de mutación mutar un bit en cada locus. 4.[Aceptación] Colocar el nuevo hijo en la población nueva. 5.[Reemplazo] Usar la nueva población para otra corrida del algoritmo. 6.[Verificar] Condición final satisfecha => parar, y retornar el mejor cromosoma. 7.[Ciclo] Ir al paso 2

7 ASPECTOS A EMULAR EN LOS ALGORITMOS GENÉTICOS * Idear genética de la información. * Idear una aplicación selectiva, emulando el Darwinismo. * Idear mecanismos de reproducción

8 ANATOMÍA DE LOS ALGORITMOS GENÉTICOS REPRESENTACIÓN (GENÉTICA) Problema (Aspecto emular 1) POBLACIÓN INICIAL Problema y/o (Aspecto emular1) Dinámica evolutiva FUNCIÓN DE APTITUD Problema (Aspecto emular 2) MECANISMO DE SELECCIÓN Dinámica evolutiva (Aspecto emular 2) OPERADORES EVOLUTIVOS Dinámica evolutiva (Aspecto emular 3) PARÁMETROS DE CONTROL Dinámica evolutiva (Aspecto control) COMPONENTES BÁSICAS:

9 ESTRUCTURA GENERAL DE UN A.G.S Representación 1. Se refiere a la manera de representar una solución o individuo. 2. Depende en general del problema a tratar. 3. Cromosoma: Cadena de símbolos => representa una solución => puede ser un número real / entero. 4. Los símbolos son cadenas de bits => representación binaria. Cromosoma 1 000001010100101 Cromosoma 2 101111011111110

10 ESTRUCTURA GENERAL DE UN A.G.S Representación  La longitud de la cadena depende de la precisión deseada => si el dominio de la variable x j es [a j, b j ] y la precisión requerida es n dígitos después del punto decimal => longitud del dominio debe ser dividido en al menos (b j - a j )*10 5 rangos de igual tamaño. Los bits requeridos (m j ) serán:

11 ESTRUCTURA GENERAL DE UN A.G.S Representación Cambios Notación Decimal y Binaria 53.095 => 5. 10 4 +3. 10 3 + 0. 10 2 + 9. 10 1 + 5. 1 10011 => 1.2 4 +0.2 3 + 0.2 2 +1.2 1 +1.2 0 = 16+2+1 = 19 = > 10011 => 1.2 0 +1.2 1 + 0.2 2 +0.2 3 +1.2 4 = 19 = Una cadena de 5 bits => representa números decimales entre [0..31] => [00000...11111] Cambios Notación Decimal y Binaria 53.095 => 5. 10 4 +3. 10 3 + 0. 10 2 + 9. 10 1 + 5. 1 10011 => 1.2 4 +0.2 3 + 0.2 2 +1.2 1 +1.2 0 = 16+2+1 = 19 = > 10011 => 1.2 0 +1.2 1 + 0.2 2 +0.2 3 +1.2 4 = 19 = Una cadena de 5 bits => representa números decimales entre [0..31] => [00000...11111]

12 ESTRUCTURA GENERAL DE UN A.G.S Representación  Conversión de string => número real: Convertir el string binario => de la base 2 a la base 10 => substring:

13 ESTRUCTURA GENERAL DE UN A.G.S Representación Ejemplo  Hallar el valor de x que maximiza la función: f(x) = x. Sen (10 .x) +1.0 en el rango x  [-1..2]. Trabajar con una precisión de 6 dígitos. Codificación : Cálculo de los bits requeridos para representar a x: 1000101110110101000111

14 ESTRUCTURA GENERAL DE UN A.G.S Representación  Decodificación :convertir el string => número real 1000101110110101000111 2288967 Substring

15 ESTRUCTURA GENERAL DE UN A.G.S Representación 0000000000000000000000 1111111111111111111111 2 2 COTAS DEL DOMINIO Los cromosomas:

16 EJEMPLO CON UN ALGORITMO GENÉTICO SIMPLE Problema de Optimización: (Dos Variables) Max f(x 1,x 2 ) = 21.5+ x 1 sen(4  x 1 ) + sen(20  x 2 ) -3.0  x 1  12.1 4.1  x 2  5.8

17 EJEMPLO CON UN ALGORITMO GENÉTICO SIMPLE Bits necesarios para x 1 y x 2 : X 1 : (12.1-(-3.0))*10.000=151.000 => 2 17 m 1 =18 X 2 : (5.8 - 4.1)*10.000=17.000 => 2 14 m 2 =15 => Longitud Total del cromosoma : m 1 +m 2 = 33 bits. 33 000001010100101001 101111011111110 18 15

18 EJEMPLO CON UN ALGORITMO GENÉTICO SIMPLE  Conversión de string => número real: Número Binario Número Decimal X 1 000001010100101001 5417 X 2 101111011111110 24318 X 1 = -3.0+5417*[12.1-(-3.0)]/ [2 18 -1] = -2.687969 X 2 = 4.1+24318*[5.8 –4.1]/ [2 15 -1] = 5.361653

19 ESTRUCTURA GENERAL DE UN A.G.S Población Inicial  En general los Algoritmos Genéticos trabajan sobre una población fija de n individuos inicializada aleatoriamente.  El tamaño n de la población afecta al programa evolutivo.  n debe ser un número tal que permita tener diversidad de individuos, sin sacrificar la eficiencia en la búsqueda.

20 ESTRUCTURA GENERAL DE UN A.G.S Población Inicial Consiste en la creación aleatoria de una población de cromosomas (individuos). Los bits de cada cromosoma son inicializados aleatoriamente. Consiste en la creación aleatoria de una población de cromosomas (individuos). Los bits de cada cromosoma son inicializados aleatoriamente. Cada cromosoma tiene 22 bits. Cada bit generado aleatoriamente. Cada cromosoma tiene 22 bits. Cada bit generado aleatoriamente. Ejemplo 1 1000101110110101000111 0000001110000000010000 1110000000111111000101 V 1 = (x 1 ) = 0.637197 V 2 = (x 2 ) = - 0.958973 V 3 = (x 3 ) = 1.627888 V 1 = (x 1 ) = 0.637197 V 2 = (x 2 ) = - 0.958973 V 3 = (x 3 ) = 1.627888

21 EJEMPLO CON UN ALGORITMO GENÉTICO SIMPLE  Población Inicial: V 1 = [000001010100101001101111011111110] V 2 = [001110101110011000000010101001000] V 3 = [111000111000001000010101001000110] Lo que corresponde a: V 1 = [x 1,x 2 ]= [-2.687969, 5.361653] V 2 = [x 1,x 2 ]= [0.474101, 4.170144] V 3 = [x 1,x 2 ]= [10.419457, 4.661461] Ejemplo 2

22 ESTRUCTURA GENERAL DE UN A.G.S Función de Evaluación de Aptitud Es una función que aplicada sobre un individuo (cromosoma) produce como resultado un rango que mide la calidad del individuo como solución del problema. Determina la conexión entre el programa evolutivo y el problema considerado. Emula al ambiente. Influye en la complejidad en tiempo del Algoritmo Genético. Es una función que aplicada sobre un individuo (cromosoma) produce como resultado un rango que mide la calidad del individuo como solución del problema. Determina la conexión entre el programa evolutivo y el problema considerado. Emula al ambiente. Influye en la complejidad en tiempo del Algoritmo Genético. Maximizar f(x) = x. Sen (10 .x) +1.0 ~ función de aptitud Maximizar f(x) = x. Sen (10 .x) +1.0 ~ función de aptitud Max f(x 1,x 2 ) = 21.5+ x 1 sen(4  x 1 ) + sen(20  x 2 ) ~ función de aptitud Max f(x 1,x 2 ) = 21.5+ x 1 sen(4  x 1 ) + sen(20  x 2 ) ~ función de aptitud Minimizar f(x) = x. Sen (10 .x) +1.0 función de aptitud = Minimizar f(x) = x. Sen (10 .x) +1.0 función de aptitud =

23 ESTRUCTURA GENERAL DE UN A.G.S Función de Evaluación de Aptitud Maximizar f(x) = x. Sen (10 .x) +1.0 Eval (v 1 ) = f(x 1 ) = 1.586345 Eval (v 2 ) = f(x 2 ) = 0.078878 Eval (v 3 ) = f(x 3 ) = 2.250650 Maximizar f(x) = x. Sen (10 .x) +1.0 Eval (v 1 ) = f(x 1 ) = 1.586345 Eval (v 2 ) = f(x 2 ) = 0.078878 Eval (v 3 ) = f(x 3 ) = 2.250650 Max f(x 1,x 2 ) = 21.5+ x 1 sen(4  x 1 ) + sen(20  x 2 ) Eval(v 1 ) = f(-2.687969, 5.361653) = 19.805119 Eval(v 2 ) = f(0.474101, 4.170144) = 17.370896 Eval(v 3 ) = f(10.419457, 4.661461) = 9.590546 Max f(x 1,x 2 ) = 21.5+ x 1 sen(4  x 1 ) + sen(20  x 2 ) Eval(v 1 ) = f(-2.687969, 5.361653) = 19.805119 Eval(v 2 ) = f(0.474101, 4.170144) = 17.370896 Eval(v 3 ) = f(10.419457, 4.661461) = 9.590546 1.Convertir Genotipo en Fenotipo 2.Evaluar la función objetivo 3.Convertir el valor de la función objetivo en aptitud.

24 ESTRUCTURA GENERAL DE UN A.G.S Función de Evaluación de Aptitud  Sus propiedades son determinantes en la eficiencia y eficacia del método.  Es importante tratar de incorporar en ella las restricciones del problema.  El número(los números) que produce(n) en general se traducen en probabilidades.  En general no es relevante la forma como se evalúa esta función, lo que permite incorporar la mayor cantidad de información posible.  Llamada también => Función de Adaptación

25 ESTRUCTURA GENERAL DE UN A.G.S Función de Evaluación de Aptitud SUPERINDIVIDUO Es un cromosoma que tiene una adaptación muy alta en comparación con el resto de los cromosomas de la población. Individuo N° 1 2 3 4 5 6 Adaptación f i 200 30 10 8 2 1 Pro. De Selección p i = f i / F total 0.797 0.119 0.040 0.032 0.008 0.004

26 ESTRUCTURA GENERAL DE UN A.G.S Función de Evaluación de Aptitud Renormalización  Técnicas para evitar los efectos de convergencia prematura => superindividuos.  Existen diversas técnicas, más empleadas:  Ventana de renormalización (1 Parámetro). Ventana de renormalización  Renormalización lineal (2 Parámetros)Renormalización lineal

27 ESTRUCTURA GENERAL DE UN A.G.S Función de Evaluación de Aptitud Renormalización Ventana de Renormalización Determinar un mínimo para la ventana. Asignar a cada individuo una nueva adaptación igual a la adaptación actual menos mínimo, si da positivo; o mínimo si da negativo. Ejemplo: F. Adapt.: 50020011080205 Min. 10: 490190100701010 Min. 100:400100100100100100 Min. 250:250250250250250250

28 ESTRUCTURA GENERAL DE UN A.G.S Función de Evaluación de Aptitud Renormalización Ordenar los cromosomas en adaptación decreciente. Asignar un valor máximo a la máxima adaptación, fijar un decremento el cual se resta sucesivamente asignando este valor como adaptación renormalizada a cada individuo sucesivo en el orden. F. Adapt.: 50020011080205 Max. 100 Dec. 5: 1009590858075 Max. 100 Dec. 20: 1008060402000

29 ESTRUCTURA GENERAL DE UN A.G.S Operadores Genéticos Cruce / Recombinación  Procedimiento de Cruce Begin k<= 0; While (k  n) do begin r k <= número aleatorio en [0,1]; if (r k < p c ) then seleccione v k como un padre; end K<= k+1; end Cruce de un Punto Establecer la probabilidad de cruce p c => se espera que en promedio p c *100 cromosomas sean cruzados. Para cada individuo se genera un número aleatorio r k. Si r k se selecciona el individuo para ser cruzado. Generar número aleatorio entero entre [2,n° de bit-1] para determinar el punto de cruce para cada par de padres a cruzar. Cruce de un Punto Establecer la probabilidad de cruce p c => se espera que en promedio p c *100 cromosomas sean cruzados. Para cada individuo se genera un número aleatorio r k. Si r k se selecciona el individuo para ser cruzado. Generar número aleatorio entero entre [2,n° de bit-1] para determinar el punto de cruce para cada par de padres a cruzar.

30 ESTRUCTURA GENERAL DE UN A.G.S Operadores Genéticos Cruce / Recombinación En el ejemplo 2 si punto de cruce = 9 y se cruzan los cromosomas v 1 ’ y v 3 ’ quedan los hijos: V 1 ’ = [001110101| 110011000000010101001000] V 3 ’ = [000001010 | 100101001101111011111110] V 1 ’’= [001110101100101001101111011111110] V 3 ’’= [000001010 110011000000010101001000] V 2 ’’= [001110101110011000000010101001000] =V 2 ’ En el ejemplo 2 si punto de cruce = 9 y se cruzan los cromosomas v 1 ’ y v 3 ’ quedan los hijos: V 1 ’ = [001110101| 110011000000010101001000] V 3 ’ = [000001010 | 100101001101111011111110] V 1 ’’= [001110101100101001101111011111110] V 3 ’’= [000001010 110011000000010101001000] V 2 ’’= [001110101110011000000010101001000] =V 2 ’ Nueva Población (Actual)

31 ESTRUCTURA GENERAL DE UN A.G.S Operadores Genéticos Cruce / Recombinación Si la cantidad de padres seleccionados para el cruce es par => se cruzan los padres tomados de dos en dos aleatoriamente. Impar => Se añade otro tomado al azar o se elimina uno de los seleccionados. La selección del método es aleatoria. Los dos hijos generados => reemplazan a los padres en la población actual. El cruce => normalmente genera dos hijos. Dependiendo del método de cruce => se puede obtener un solo hijo. Si la cantidad de padres seleccionados para el cruce es par => se cruzan los padres tomados de dos en dos aleatoriamente. Impar => Se añade otro tomado al azar o se elimina uno de los seleccionados. La selección del método es aleatoria. Los dos hijos generados => reemplazan a los padres en la población actual. El cruce => normalmente genera dos hijos. Dependiendo del método de cruce => se puede obtener un solo hijo.

32 ESTRUCTURA GENERAL DE UN A.G.S Operadores Genéticos Cruce / Recombinación Existen otras formas de realizar cruce: dos puntos, uniforme, aritmético y otros. Puede resultar complicado y dependiente => codificación. Cruces específicos para un problema => mejoran desempeño de los AG. Existen otras formas de realizar cruce: dos puntos, uniforme, aritmético y otros. Puede resultar complicado y dependiente => codificación. Cruces específicos para un problema => mejoran desempeño de los AG. Cromosoma 1 11011 | 00100110110 Cromosoma 2 11011 | 11000011110 Descendiente 1 11011 | 11000011110 Descendiente 2 11011 | 00100110110 ¿Implementación?

33 ESTRUCTURA GENERAL DE UN A.G.S Operadores Genéticos Mutación Procedimiento de Mutación 1.Total de bits = n (tamaño población)*número de bits por cromosoma. 2.Generar una secuencia de números aleatorios r k (k=1... Total bits) en [0,1]. 3.Si r k mutar bit k. Establecer la probabilidad de mutación p m => se espera que en promedio p m *100 cromosomas sean mutados.

34 ESTRUCTURA GENERAL DE UN A.G.S Operadores Genéticos Mutación Para el ejemplo # 2 es necesario generar 3*33 números aleatorios => 99 para cada cromosoma de la población; suponiendo que luego de hacerlo queda: pos. Bit N° Crom. N° bit en na el cromosoma 39 2 6 0.009857 =>Mutar bit 6 del cromosoma 2: V 2 ’’’= [ 001110101110011000000010101001000 ] 1 Para el ejemplo # 2 es necesario generar 3*33 números aleatorios => 99 para cada cromosoma de la población; suponiendo que luego de hacerlo queda: pos. Bit N° Crom. N° bit en na el cromosoma 39 2 6 0.009857 =>Mutar bit 6 del cromosoma 2: V 2 ’’’= [ 001110101110011000000010101001000 ] 1

35 ESTRUCTURA GENERAL DE UN A.G.S Mutación Hijo 1 Original 1101111000011110 Hijo 2 Original 1101100100110110 Hijo 1 Mutado 1100111000011110 Hijo 2 Mutado 1101101100110110 Previene que la población => caiga en un óptimo local. Depende => codificación individuo. Existen diversas formas de realizarla Previene que la población => caiga en un óptimo local. Depende => codificación individuo. Existen diversas formas de realizarla ¿Implementación?


Descargar ppt "Algoritmo genético simple UMSNH FIE Algoritmos Genéticos  Programas evolutivos que emplean exclusivamente la representación binaria.  Un algoritmo."

Presentaciones similares


Anuncios Google