La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

ALGORITMOS GENETICOS EVOLUCIÓN DE UNA POBLACIÓN DE

Presentaciones similares


Presentación del tema: "ALGORITMOS GENETICOS EVOLUCIÓN DE UNA POBLACIÓN DE"— Transcripción de la presentación:

1 ALGORITMOS GENETICOS EVOLUCIÓN DE UNA POBLACIÓN DE
CURVAS EN EL TIEMPO Y EN EL ESPACIO

2 ¿En qué consiste la práctica?
Se trata de simular la evolución de una población de curvas cerradas y simples mediante Algoritmos Genéticos.

3 Índice Introducción Curvas Algoritmos Genéticos Conclusiones
Aplicaciones Bibliografía Introducción

4 Introducción La idea es partir de una población inicial de curvas, como hemos dicho, cerradas y simples y hacerlas evolucionar en el tiempo, estableciendo unos parámetros que queremos primar en las curvas, y viendo el resultado obtenido tras un número determinado de generaciones.

5 Conceptos Básicos De Curvas
Hemos dicho que trabajaremos con curvas cerradas y simples. Pero, ... ¿qué significa esto? ¿Qué restricciones nos impone? Dificultad de modelar un concepto analógico, la curva, mediante una máquina digital. Representamos la curva por una malla binaria, donde cada posición puede estar rellena o no. Trabajaremos en 4-adyacencia en blanco y 8-adyacencia en “negro”

6 Además de la malla comentada, usaremos como forma de codificación de las curvas su código de cadena.
Aquí se muestra el código de cadena correspondiente a cada movimiento relativo desde un punto de la curva al siguiente: Y he aquí una muestra en un ejemplo concreto de la extracción del código de cadena de una curva:

7 Entendemos por curva cerrada a la curva que cumple que todos sus puntos son adyacentes al menos a otros dos puntos de la misma. Además, se debe cumplir que, si recorremos el código de cadena de la curva cuando hayamos terminado de recorrerlo, debemos haber llegado de nuevo al punto de partida. Esta curva no es cerrada!!! Aquí se corta el código de cadena  La curva no es cerrada.

8 Entendemos por curva simple a la curva que cumple que todos sus puntos son adyacentes como máximo a dos puntos de la misma. Así, la siguiente curva no sería simple: Este punto es adyacente a otros tres  La curva no es simple.

9 Problema codificar Modelo Evolutivo formalizar Algoritmo genético

10 "Los algoritmos genéticos son procedimientos adaptativos para la búsqueda de soluciones en espacios complejos inspirados en la evolución biológica, con patrones de operaciones basados en el principio darwiniano de reproducción y supervivencia de los individuos que mejor se adaptan al entorno en el que viven".

11 Tratamos de simular el proceso evolutivo.
Los procesos evolutivos en la naturaleza se producen si se dan cuatro condiciones: Un individuo tiene la habilidad de reproducirse. Una población de ese tipo de individuos es capaz de reproducirse. Existen alguna variedad, diferencia, entre los individuos que se reproducen. Algunas diferencias en la habilidad para sobrevivir en el entorno están asociadas con esa variedad.

12 ¿En qué notamos la diversidad?
Variación de estructura y comportamiento Cambios en los cromosomas de los individuos de la población Se refleja en: Grado de supervivencia Adaptación (función objetivo) Nivel de reproducción Los individuos que mejor se adaptan a su entorno son los que más sobreviven y más se reproducen.

13 Los AG simulan el proceso evolutivo darwiniano y naturalmente utilizan operadores genéticos sobre los cromosomas. No hay una uniformidad en el terreno de los Algoritmos Genéticos, sino que se presentan múltiples variantes y, dependiendo del problema concreto que tratemos, nos convendrá acercarnos más a una postura o a otra. En cada caso hemos optado por la opción que consideramos que es más natural, más respetuosa con el propósito inicial que pretendemos.

14 Procedimiento: Algoritmo Genético
Inicializar población P(0) Evaluar población inicial Mientras no se cumpla la condición de parada, para cada generación t, hacer: Seleccionar la población P(t) desde P(t-1) Recombinar P(t) Evaluar P(t) Fin Mientras Fin Procedimiento Inicializar población P(0) Evaluar población inicial Mientras no se cumpla la condición de parada, para cada generación t, hacer: Seleccionar la población P(t) desde P(t-1) Recombinar P(t) Evaluar P(t) Fin Mientras Fin Procedimiento

15 Generalmente se acepta que un Algoritmo Genético debe tener 5 componentes:
1. Una representación genética de las soluciones del problema, es decir, representación de las variables que intervienen en cadenas de bits. 2. Una forma de crear una población inicial de soluciones. 3. Una función de evaluación en términos de conveniencia o adaptación de la solución evaluada. 4. Operadores genéticos que cambien la composición de los descendientes. 5. Valores para los parámetros utilizados por los Algoritmos Genéticos (N, Pc, Pm, ...).

16 Función Objetivo Llamamos así a la función que evalúa la adaptación al medio de los individuos de la población, y es la que nos delimita el criterio a la hora de reproducir y seleccionar unos individuos de la población en lugar de otros. En nuestro caso damos la posibilidad al usuario de elegir entre unos 28 tipos de función objetivo, bien sea primando la mayor o menor aparición de cierto número en el código de cadena, primando unas direcciones por encima de otras (horizontal, vertical, diagonales, ...), o favoreciendo estructuras morfológicas o topológicas (tomar las curvas más o menos redondas, aparición de huecos, ...)

17 Operadores Genéticos Para efectuar los cambios pertinentes en la población, se emplean los Operadores Genéticos: Reproducción Cruce Mutación Asociadas a los operadores genéticos de cruce y mutación existen: La probabilidad de cruce: Pc La probabilidad de mutación: Pm La primera es la probabilidad de aplicar el operador de cruce sobre parejas de cadenas de "ADN" obtenidas en la reproducción; la segunda es la probabilidad de aplicar el operador de mutación sobre los caracteres de la cadena.

18 Reproducción ¿En qué consiste?
Se trata de simular la reproducción de dos individuos de la población, obteniendo como resultado un nuevo individuo intermedio entre sus dos progenitores. Progenitor 2 Progenitor 1 Curva hija

19 Reproducción Escalar las dos curvas progenitoras al tamaño medio de las dos curvas (número medio de elementos en el código de cadena). Centrar de las dos curvas, mediante su centroide o centro de masas. Hacer que sus dos códigos de cadena comiencen en el punto de coordenada y=0. Avanzamos a lo largo de las dos curvas, y efectuamos lo siguiente: Calculamos el punto medio entre los puntos actuales (por el que vamos recorriendo) de ambas curvas. Calculamos el código de cadena del movimiento producido al pasar del punto anteriormente recorrido al que ahora estamos recorriendo (observando el movimiento relativo que se ha llevado a cabo). Realizamos el proceso necesario para asegurarnos de que nuestra nueva curva sea cerrada y simple.

20 Reproducción ¿Cómo hacer que la curva cerrada y simple?
Primero hemos de hacer que la curva sea cerrada: Calculamos, recorriendo el código de cadena desde el punto inicial de la curva, cuál sería su punto final. Si la curva no es cerrada, es decir, si su punto inicial no coincide con el final en el código de cadena, iteramos hasta que el final llegue al principio: en función del movimiento relativo que habría que efectuar en la malla para llegar desde el punto final hasta el principio del código de cadena, vamos completando el mismo eligiendo en cada caso el código correspondiente a ese movimiento relativo.

21 Reproducción ¿Cómo hacer que la curva cerrada y simple?
Luego hemos de hacer que la curva sea simple: En primer lugar, eliminamos todos los puntos que tengan un sólo punto adyacente. Realizamos un recorrido interior al código de cadena, para eliminar posibles puntos exteriores que hagan que la curva no sea simple. Ídem del paso anterior pero efectuando un recorrido exterior para eliminar los posible puntos interiores que hagan que la curva no sea simple.

22 Cruce Se trata de generar un nuevo individuo como resultado del cruce de dos individuos “originales”, dividiendo en un cierto punto el código genético de éstos y siendo el nuevo individuo el resultado de concatenar la primera parte del código genético del primer original con la segunda parte del código del segundo original. Original 2 Original 1 Curva cruzada [toma el color de uno de los originales]

23 Cruce ¿Cómo lo llevamos a cabo en nuestro caso?
Asignamos de manera aleatoria al nuevo individuo el color y la velocidad de uno de los originales, tomando la dirección del otro. Colocamos ambas curvas centradas en la codificación de malla. Hacemos la mezcla de las dos curvas en la malla, ocupando cada una de ellas la mitad superior e inferior de la malla, respectivamente, y mezclándose ambas en las dos filas más centrales. Tratamos de lograr que nuestra curva sea cerrada y simple: Realizamos el recorrido exterior del código de cadena (ver reproducción). b. Realizamos el recorrido interior del código de cadena (ver reproducción).

24 Mutación ¿En qué consiste?
Se trata de producir una leve modificación en el código genético de un individuo, con vistas a diversificar la población, y a la salida de un eventual estado estable en el cuál la similitud de todos los individuos coarten en gran medida la evolución hacia individuos con mayor función objetivo. mutación


Descargar ppt "ALGORITMOS GENETICOS EVOLUCIÓN DE UNA POBLACIÓN DE"

Presentaciones similares


Anuncios Google