Introducción a la Computación Evolutiva

Texto completo

(1)

Introducci ´on a la Computaci ´on Evolutiva

Carlos A. Coello Coello

ccoello@cs.cinvestav.mx CINVESTAV-IPN

Evolutionary Computation Group (EVOCINV) Departamento de Computaci ´on Av. IPN No. 2508, Col. San Pedro Zacatenco

M ´exico, D.F. 07360, MEXICO

(2)

La propuesta de Koza fue la que se impuso a la larga, y m ´as tarde se denomin ´oProgramaci ´on Gen ´etica. Hoy en d´ıa es muy popular y cuenta

con una amplia gama de aplicaciones, as´ı como con un evento especializado (EuroGP).

(3)

Historia de la Computaci ´on Evolutiva

El bi ´ologo Thomas S. Ray desarroll ´o a principios de los 1990s un simulador muy original en el que evolucionaba programas en lenguaje ensamblador, los cuales compet´ıan por ciclos de CPU de una computadora, a la vez que intentaban reproducirse (o sea, copiarse a s´ı mismos) en la memoria de dicha computadora.

(4)

En este simulador, denominadoTierra, se part´ıa de un programa ´unico con la capacidad de auto-replicarse, al que se denominaba “ancestro”. Con base en este programa se generaban “criaturas” nuevas (segmentos de c ´odigo), las cuales a su vez se pod´ıan sub-dividir para dar origen a nuevas criaturas. Tierra es uno de los pocos intentos por simular un ecosistema con el prop ´osito expreso de observar los comportamientos que emergen de la din ´amica evolutiva del mismo.

(5)

Tipos de Algoritmos Evolutivos

Tres son los paradigmas principales que conforman la computaci ´on evolutiva:

Programaci ´on evolutiva Estrategias Evolutivas Algoritmos Gen ´eticos

(6)

Lawrence J. Fogel propuso en 1960 una t ´ecnica denominadaprogramaci ´on evolutiva, en la cual la inteligencia se ve como un comportamiento

(7)

Ejemplo de Programaci ´on Evolutiva

Aut ´omata finito de 3 estados. Los s´ımbolos a la izquierda del “/” son de entrada, y los de la derecha son de salida. El estado inicial esC.

Estado Actual C B C A A B

S´ımbolo de Entrada 0 1 1 1 0 0

Estado siguiente B C A A B B

(8)

Para este ejemplo, existen 5 tipos de mutadores: (1) cambiar un s´ımbolo de salida, (2) cambiar una transici ´on, (3) agregar un estado, (4) borrar un estado y (5) cambiar el estado inicial. El borrado de un estado y el cambio del estado inicial s ´olo se permiten en m ´aquinas de m ´as de un estado. Las mutaciones se eligen con respecto a una distribuci ´on probabil´ıstica, que es normalmente uniforme.

(9)

Programaci ´on Evolutiva

La programaci ´on evolutiva enfatiza los nexos de

comportamiento entre padres e hijos, en vez de buscar emular operadores gen ´eticos espec´ıficos (como en el caso de los algoritmos gen ´eticos).

(10)

Algoritmo B ´asico

1 Generar aleatoriamente una poblaci ´on inicial.

2 Aplicar mutaci ´on (normalmente hay varios operadores disponibles). 3 Calcular la aptitud de cada hijo y usar un proceso de selecci ´on

mediante torneo (normalmente estoc ´astico) para determinar cu ´ales ser ´an las soluciones que se retendr ´an.

4 Regresar al paso 2, a menos que se haya alcanzado un cierto criterio

(11)

Programaci ´on Evolutiva

La programaci ´on evolutiva es una abstracci ´on de la evoluci ´on al nivel de las especies, por lo que no se requiere el uso de un operador de recombinaci ´on ya que especies diferentes no se pueden cruzar entre s´ı. Asimismo, usa selecci ´on probabil´ıstica.

(12)

Aplicaciones de la Programaci ´on Evolutiva

Predicci ´on Generalizaci ´on Juegos

Control autom ´atico Problema del viajero Planeaci ´on de rutas

Dise ˜no y entrenamiento de redes neuronales Reconocimiento de patrones

(13)

Estrategias Evolutivas

Lasestrategias evolutivas fueron desarrolladas en 1964 por un grupo de estudiantes alemanes de ingenier´ıa encabezado por Ingo Rechenberg. Su objetivo era resolver problemas hidrodin ´amicos de alto grado de complejidad.

(14)

La versi ´on original (1+1)-EE usaba un solo padre y con ´el se generaba un solo hijo. Este hijo se manten´ıa si era mejor que el padre, o de lo contrario se eliminaba (a este tipo de

selecci ´on se le llamaextintiva, porque los peores individuos tienen una probabilidad de cero de ser seleccionados).

(15)

Estrategias Evolutivas

En la (1+1)-EE, un individuo nuevo es generado usando: ~

xt+1= ~xt +N(0, ~σ)

donde t se refiere a la generaci ´on (o iteraci ´on) en la que nos encontramos, y N(0, ~σ)es un vector de n ´umeros Gaussianos independientes con una media de cero y desviaci ´on est ´andar ~σ

(16)

Ejemplo de una (1+1)-EE

Supongamos que queremosmaximizar:

f (x1,x2) =100(x12− x2)2+ (1 − x1)2

donde -2.048 ≤ x1,x2≤ 2.048

Ahora, supongamos que nuestra poblaci ´on consiste del siguiente individuo (generado de forma aleatoria):

(17)

Estrategias Evolutivas

Ejemplo de una (1+1)-EE

Supongamos tambi ´en que las mutaciones producidas son las siguientes:

x1t+1 =x1t+N(0,1.0) = -1.0+0.61 = -0.39 x2t+1=x2t+N(0,1.0) = 1+0.57 = 1.57

(18)

Ejemplo de una (1+1)-EE

Ahora, comparamos al padre con el hijo: Padre: f (xt)= f(-1.0,1.0) = 4.0 Hijo: f (xt+1)= f(-0.39,1.57) = 201.416 Dado que: 201.416 > 4.0

(19)

Estrategias Evolutivas

Ingo Rechenberg (1973) introdujo el concepto de poblaci ´on, al proponer una estrategia evolutiva llamada (µ + 1) − EE , en la cual hay µ padres y se genera un solo hijo, el cual puede reemplazar al peor padre de la poblaci ´on (selecci ´on extintiva).

(20)

Schwefel (1975) introdujo el uso de m ´ultiples hijos en las denominadas (µ + λ) − EEs y (µ, λ) − EEs. La notaci ´on se refiere al mecanismo de selecci ´on utilizado:

(a) En el primer caso, los µ mejores individuos obtenidos de la uni ´on de padres e hijos sobreviven.

(b) En el segundo caso, s ´olo los µ mejores hijos de la siguiente generaci ´on sobreviven.

(21)

Estrategias Evolutivas

Convergencia

Rechenberg formul ´o una regla para ajustar la desviaci ´on est ´andar de forma determin´ıstica durante el proceso evolutivo de tal manera que el procedimiento convergiera hacia el ´optimo.

La denominada “regla de ´exito 1/5”, dice lo siguiente: “La raz ´on entre mutaciones exitosas y el total de mutaciones debe ser exactamente 15. Si es mayor, entonces debe incrementarse la desviaci ´on est ´andar. Si es menor, entonces debe decrementarse.”

(22)

Convergencia Formalmente: σ(t) =    σ(t − n)/c, si ps >1/5 σ(t − n) · c, si ps <1/5 σ(t − n), si ps =1/5 (1)

donde n es el n ´umero de dimensiones, t es la generaci ´on, ps

es la frecuencia relativa de mutaciones exitosas medida sobre intervalos de (por ejemplo) 10 · n individuos, y c=0.817 (este valor fue derivado te ´oricamente por Schwefel). σ(t) se ajusta cada n mutaciones.

(23)

Estrategias Evolutivas

Auto-Adaptaci ´on

En las estrategias evolutivas se evoluciona no s ´olo a las variables del problema, sino tambi ´en a los par ´ametros mismos de la t ´ecnica (es decir, las desviaciones est ´andar). A esto se le llama “auto-adaptaci ´on”.

Los padres se mutan usando las siguientes f ´ormulas:

σ0(i) = σ(i) × exp(τ0· N(0, 1) + τ · Ni(0, 1));

x0(i) = x (i) + N(0, σ0(i))

donde τ y τ0 son constantes de proporcionalidad que est ´an en funci ´on de n.

(24)

Recombinaci ´on

Los operadores de recombinaci ´on de las estrategias evolutivas pueden ser:

Sexuales: el operador act ´ua sobre 2 individuos elegidos aleatoriamente de la poblaci ´on de padres.

Panm´ıticos: se elige un solo padre al azar, y se mantiene fijo mientras se elige al azar un segundo padre (de entre toda la poblaci ´on) para cada componente de sus vectores.

(25)

Estrategias Evolutivas

Las estrategias evolutivas simulan el proceso evolutivo al nivel de los individuos, por lo que la recombinaci ´on es posible. Asimismo, usan normalmente selecci ´on determin´ıstica.

(26)

Aplicaciones

Problemas de ruteo y redes Bioqu´ımica

Optica

Dise ˜no en ingenier´ıa Magnetismo

(27)

Estrategias Evolutivas vs. Programaci ´on Evolutiva

La Programaci ´on Evolutiva usa normalmente selecci ´on estoc ´astica, mientras que las estrategias evolutivas usan selecci ´on determin´ıstica.

Ambas t ´ecnicas operan a nivel fenot´ıpico.

La programaci ´on evolutiva es una abstracci ´on de la evoluci ´on al nivel de las especies, por lo que no se requiere el uso de un operador de recombinaci ´on (diferentes especies no se pueden cruzar entre s´ı). En contraste, las estrategias evolutivas son una abstracci ´on de la evoluci ´on al nivel de un individuo, por lo que la recombinaci ´on es posible.

(28)

Los algoritmos gen ´eticos (denominados originalmente “planes reproductivos”) fueron desarrollados por John H. Holland a principios de los 1960s. Su motivaci ´on principal fue el aprendizaje de m ´aquina.

(29)

Algoritmos Gen ´eticos

El algoritmo gen ´etico enfatiza la importancia de la cruza sexual (operador principal) sobre el de la mutaci ´on (operador

(30)

Algoritmo B ´asico

Generar (aleatoriamente) una poblaci ´on inicial Calcular aptitud de cada individuo

Seleccionar (probabil´ısticamente) con base en aptitud Aplicar operadores gen ´eticos (cruza y mutaci ´on) para generar la siguiente poblaci ´on

(31)

Algoritmos Gen ´eticos

La representaci ´on tradicional es la cadena binaria del tipo: 0110 | {z } Cadena1 1101 | {z } Cadena2 0011 | {z } Cadena3 1001 | {z } Cadena4

A la cadena se le llamacromosoma. A cada posici ´on de la cadena se le denominagene y al valor dentro de esta posici ´on se le llamaalelo.

(32)

Para poder aplicar el Algoritmo Gen ´etico se requiere de los 5 componentes b ´asicos siguientes:

Una representaci ´on de las soluciones potenciales del problema. Una forma de crear una poblaci ´on inicial de posibles soluciones (normalmente, un proceso aleatorio).

Una funci ´on de evaluaci ´on que juegue el papel del ambiente, clasificando las soluciones en t ´erminos de su “aptitud”. Operadores gen ´eticos que alteren la composici ´on de los hijos que se producir ´an para las siguientes generaciones

(normalmente, cruza y mutaci ´on).

Valores para los diferentes par ´ametros que utiliza el Algoritmo Gen ´etico (tama ˜no de la poblaci ´on, probabilidad de cruza, probabilidad de mutaci ´on, n ´umero m ´aximo de generaciones, etc.)

(33)

Algoritmos Gen ´eticos vs. otros Algoritmos Evolutivos

El Algoritmo Gen ´etico usa selecci ´on probabil´ıstica al igual que la Programaci ´on Evolutiva, y en contraposici ´on a la selecci ´on determin´ıstica de las Estrategias Evolutivas.

El Algoritmo Gen ´etico usa representaci ´on binaria para codificar las soluciones a un problema, por lo cual se evoluciona el genotipo y no el fenotipo como en la Programaci ´on Evolutiva o las Estrategias Evolutivas.

(34)

El operador principal en el Algoritmo Gen ´etico es la cruza, y la mutaci ´on es un operador secundario. En la Programaci ´on Evolutiva, no hay cruza y en las Estrategias Evolutivas, la cruza es un operador secundario.

Los Algoritmos Gen ´eticos no son, en su versi ´on est ´andar,

auto-adaptativos, a diferencia de las Estrategias Evolutivas. Existe tambi ´en una versi ´on auto-adaptativa de la Programaci ´on Evolutiva.

(35)

Algoritmos Gen ´eticos vs. otros Algoritmos Evolutivos

Ha sido demostrado matem ´aticamente [Rudolph, 1994] que el Algoritmo Gen ´etico requiere de elitismo para poder converger al ´optimo.

G ¨unter Rudolph, “Convergence Analysis of Canonical Genetic Algorithms”, IEEE Transactions on Neural Networks, Vol. 5, pp. 96–101, January 1994.

(36)

Optimizaci ´on (estructural, de topolog´ıas, num ´erica, combinatoria, etc.) Aprendizaje de m ´aquina (sistemas de clasificadores).

Bases de datos (optimizaci ´on de consultas).

Reconocimiento de patrones (por ejemplo, procesamiento de im ´agenes).

Generaci ´on de gram ´aticas (regulares, libres de contexto, etc.) Planeaci ´on de movimientos de robots.

(37)

Algoritmos Evolutivos

Hoy en d´ıa, suele resultar dif´ıcil distinguir un algoritmo perteneciente a un paradigma, de otro, por lo cual es m ´as com ´un utilizar el t ´erminoAlgoritmo Evolutivo en un sentido gen ´erico para referirse a cualquier algoritmo estoc ´astico que selecciona soluciones con respecto a una funci ´on de aptitud.

(38)

En general, los algoritmos evolutivos requieren de 4 elementos b ´asicos:

Una codificaci ´on de las estructuras (o sea, los individuos) que ser ´an evolucionadas.

Operadores que act ´uen sobre los “individuos” (t´ıpicamente, cruza y mutaci ´on).

Una funci ´on de aptitud que nos indique qu ´e tan bueno es un individuo con respecto a los dem ´as.

Un mecanismo de selecci ´on para elegir a los padres que producir ´an nuevos individuos.

(39)

Algoritmos Evolutivos vs. T ´ecnicas Tradicionales

Los algoritmos evolutivos usan una poblaci ´on de soluciones potenciales en vez de buscar con un solo individuo a la vez, lo cual los hace menos sensibles a quedar atrapadas en

(40)

Los algoritmos evolutivos no necesitan conocimientos

espec´ıficos sobre el problema que intentan resolver, pero si tal conocimiento est ´a disponible, pueden aprovecharlo.

(41)

Algoritmos Evolutivos vs. T ´ecnicas Tradicionales

Los algoritmos evolutivos usan operadores probabil´ısticos, mientras que las t ´ecnicas tradicionales utilizan operadores determin´ısticos.

(42)

Simplicidad Conceptual. Amplia aplicabilidad.

Superiores a las t ´ecnicas tradicionales en muchos problemas del mundo real.

Tienen el potencial para incorporar conocimiento sobre el dominio y para hibridizarse con otras t ´ecnicas de b ´usqueda/optimizaci ´on. Pueden explotar f ´acilmente las arquitecturas en paralelo. Son robustos a los cambios din ´amicos.

(43)

Desventajas de los Algoritmos Evolutivos

No pueden garantizar convergencia al ´optimo global, excepto para casos muy particulares.

Debido a su naturaleza estoc ´astica, requieren muestrear el espacio de b ´usqueda, lo que implica un mayor costo computacional, el cual hace que no puedan ser utilizadas en ciertas aplicaciones del mundo real que requieren de c ´omputo intensivo (p.ej., problemas de ingenier´ıa aeron ´autica.

(44)

Estrategias Programaci ´on Algoritmo Evolutivas Evolutiva Gen ´etico Representaci ´on Real Real Binaria Funci ´on de Valor de la Valor de la Funci ´on Valor de la Funci ´on Aptitud Funci ´on Objetivo Objetivo ajustada Objetivo ajustada Auto-Adaptaci ´on Desviaciones Ninguna Ninguna

Est ´andar Varianzas (PE-est ´andar), y ´angulos de Coeficientes de correlaci ´on rotaci ´on (meta-PE)

Mutaci ´on Gaussiana, Gaussiana, Inversi ´on de bits, operador principal operador ´unico operador secundario Recombinaci ´on Discreta e intermedia, Ninguna Cruza de z-puntos,

sexual y panm´ıtica, cruza uniforme, importante para la ´unicamente sexual, auto-adaptaci ´on operador principal

(45)

Comparaciones entre T ´ecnicas

Estrategias Programaci ´on Algoritmo Evolutivas Evolutiva Gen ´etico Selecci ´on Determin´ıstica, extintiva o Probabil´ıstica, Probabil´ıstica,

basada en la preservaci ´on extintiva basada en la preservaci ´on Restricciones Restricciones Ninguna L´ımites simples

arbitrarias de desigualdad mediante el mecanismo de codificaci ´on Teor´ıa Velocidad de Convergencia Velocidad de Teor´ıa de los

para casos especiales, Convergencia Esquemas, (1+1)-ES, (1+λ)-ES, para casos especiales, Convergencia Convergencia Global (1+1)-PE, Global para la para (µ + λ)-ES Convegencia Global versi ´on elitista

(46)

Algunos algoritmos evolutivos fueron muy criticados en sus or´ıgenes (los 1960s) por los investigadores de la IA simb ´olica. Se cre´ıa que una simple b ´usqueda aleatoria pod´ıa superarlas.

(47)

Cr´ıticas a los Algoritmos Evolutivos

Sin embargo, con el paso de los a ˜nos, los algoritmos evolutivos lograron resolver al menos uno de los problemas originales de la Inteligencia Artificial cl ´asica: la evoluci ´on de programas de computadora (usando la Programaci ´on Gen ´etica).

(48)

En la actualidad, varios tipos de algoritmos evolutivos son considerados como m ´etodos de b ´usqueda directa, que son una herramienta muy poderosa para resolver problemas de optimizaci ´on de alta complejidad.

(49)

Conceptos Biol ´ogicos

ElAcido Desoxirribonucleico (ADN) es el material gen ´etico fundamental de todos los organismos vivos.

(50)

El ADN es una macro-mol ´ecula doblemente trenzada que tiene una estructura helicoidal. Ambos filamentos trenzados son mol ´eculas de ´acido nucleico lineales y sin ramificaciones, formadas de mol ´eculas alternadas de desoxirribosa (az ´ucar) y fosfato.

(51)

Conceptos Biol ´ogicos

Las 4 bases de nucle ´otido son: Adenina (A), Timina (T), Citosina (C) y

Guanina (G) y constituyen el alfabeto de informaci ´on gen ´etica. Las

secuencias de estas bases en la mol ´ecula de ADN determinan el plan constructor de cualquier organismo.

(52)

Ungene es una secci ´on de ADN que codifica una cierta funci ´on bioqu´ımica

definida (usualmente la producci ´on de una prote´ına). Es fundamentalmente una unidad de herencia.

ElADN de un organismo puede contener desde una docena de genes (como

(53)

Conceptos Biol ´ogicos

Se denominacromosoma a una de las cadenas de ADN que se encuentra

en el n ´ucleo de las c ´elulas.

Los cromosomas son responsables de la transmisi ´on de informaci ´on gen ´etica.

(54)

Cada gene es capaz de ocupar s ´olo una regi ´on en particular de un cromosoma (su “lugar” o “locus”).

En cada determinado lugar pueden existir, en la poblaci ´on, formas alternativas del gene. A estas formas alternativas se les llamaalelos.

Figure

Actualización...

Referencias

Actualización...

Related subjects :