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

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

Embed Size (px)

Citation preview

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

EVOLUCIÓN DE UNA POBLACIÓN DE

CURVAS EN EL TIEMPO Y EN EL ESPACIO

ALGORITMOS GENETICOS

Page 2: EVOLUCIÓN DE UNA POBLACIÓN DE CURVAS EN EL TIEMPO Y EN EL ESPACIO ALGORITMOS GENETICOS

¿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.

Page 3: EVOLUCIÓN DE UNA POBLACIÓN DE CURVAS EN EL TIEMPO Y EN EL ESPACIO ALGORITMOS GENETICOS

Índice1.

2. Curvas

3. Algoritmos Genéticos

4. Conclusiones

5. Aplicaciones

6. Bibliografía

Introducción

Page 4: EVOLUCIÓN DE UNA POBLACIÓN DE CURVAS EN EL TIEMPO Y EN EL ESPACIO ALGORITMOS GENETICOS

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.

Introducción

Page 5: EVOLUCIÓN DE UNA POBLACIÓN DE CURVAS EN EL TIEMPO Y EN EL ESPACIO ALGORITMOS GENETICOS

Conceptos Básicos De CurvasHemos 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”

Page 6: EVOLUCIÓN DE UNA POBLACIÓN DE CURVAS EN EL TIEMPO Y EN EL ESPACIO ALGORITMOS GENETICOS

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:

Page 7: EVOLUCIÓN DE UNA POBLACIÓN DE CURVAS EN EL TIEMPO Y EN EL ESPACIO ALGORITMOS GENETICOS

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.

Page 8: EVOLUCIÓN DE UNA POBLACIÓN DE CURVAS EN EL TIEMPO Y EN EL ESPACIO ALGORITMOS GENETICOS

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.

Page 9: EVOLUCIÓN DE UNA POBLACIÓN DE CURVAS EN EL TIEMPO Y EN EL ESPACIO ALGORITMOS GENETICOS

formalizar

codificar

Page 10: EVOLUCIÓN DE UNA POBLACIÓN DE CURVAS EN EL TIEMPO Y EN EL ESPACIO ALGORITMOS GENETICOS

"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".

Page 11: EVOLUCIÓN DE UNA POBLACIÓN DE CURVAS EN EL TIEMPO Y EN EL ESPACIO ALGORITMOS GENETICOS

Algunas diferencias en la habilidad para sobrevivir en el entorno están asociadas con esa variedad.

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.

Page 12: EVOLUCIÓN DE UNA POBLACIÓN DE CURVAS EN EL TIEMPO Y EN EL ESPACIO ALGORITMOS GENETICOS

¿En qué notamos la diversidad?Cambios en los cromosomas de los individuos de la población

Variación de estructura y comportamiento

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.

Page 13: EVOLUCIÓN DE UNA POBLACIÓN DE CURVAS EN EL TIEMPO Y EN EL ESPACIO ALGORITMOS GENETICOS

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.

Page 14: EVOLUCIÓN DE UNA POBLACIÓN DE CURVAS EN EL TIEMPO Y EN EL ESPACIO ALGORITMOS GENETICOS

Procedimiento: Algoritmo GenéticoProcedimiento 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

Page 15: EVOLUCIÓN DE UNA POBLACIÓN DE CURVAS EN EL TIEMPO Y EN EL ESPACIO ALGORITMOS GENETICOS

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, ...).

Page 16: EVOLUCIÓN DE UNA POBLACIÓN DE CURVAS EN EL TIEMPO Y EN EL ESPACIO ALGORITMOS GENETICOS

Función ObjetivoLlamamos 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, ...)

Page 17: EVOLUCIÓN DE UNA POBLACIÓN DE CURVAS EN EL TIEMPO Y EN EL ESPACIO ALGORITMOS GENETICOS

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.

Operadores Genéticos

Page 18: EVOLUCIÓN DE UNA POBLACIÓN DE CURVAS EN EL TIEMPO Y EN EL ESPACIO ALGORITMOS GENETICOS

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 1 Progenitor 2

Curva hija

Page 19: EVOLUCIÓN DE UNA POBLACIÓN DE CURVAS EN EL TIEMPO Y EN EL ESPACIO ALGORITMOS GENETICOS

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.

Reproducción

Page 20: EVOLUCIÓN DE UNA POBLACIÓN DE CURVAS EN EL TIEMPO Y EN EL ESPACIO ALGORITMOS GENETICOS

¿Cómo hacer que la curva cerrada y simple?

Reproducción

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.

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.

Page 21: EVOLUCIÓN DE UNA POBLACIÓN DE CURVAS EN EL TIEMPO Y EN EL ESPACIO ALGORITMOS GENETICOS

¿Cómo hacer que la curva cerrada y simple?

Reproducción

En primer lugar, eliminamos todos los puntos que tengan un sólo punto adyacente.

Luego hemos de hacer que la curva sea simple:

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.

Page 22: EVOLUCIÓN DE UNA POBLACIÓN DE CURVAS EN EL TIEMPO Y EN EL ESPACIO ALGORITMOS GENETICOS

CruceSe 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 1Original 2

Curva cruzada

[toma el color de uno de los originales]

Page 23: EVOLUCIÓN DE UNA POBLACIÓN DE CURVAS EN EL TIEMPO Y EN EL ESPACIO ALGORITMOS GENETICOS

¿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:

Cruce

a. 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).

Page 24: EVOLUCIÓN DE UNA POBLACIÓN DE CURVAS EN EL TIEMPO Y EN EL ESPACIO ALGORITMOS GENETICOS

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