Matemáticas Evolutivas: Algoritmos Genéticos María Teresa Iglesias Otero Departamento de Matemáticas Universidade da Coruña ¿Cuál es la mejor forma de ...? ¿cuál es el camino más corto a ...? ¿cuál es la más barata entre ...? Problemas de Optimización Encontrar la mejor entre un conjunto de opciones (en un espacio de búsqueda) ¿cómo medir la idea de mejor? Problemas de Optimización Encontrar el elemento de D en el que f (≥0) es máxima D: Conjunto de posibles soluciones (finito/infinito) números, vectores, grafos, ... f: D R f: función objetivo (de coste) ¿Cómo proceder para encontrar el máximo? Métodos tradicionales f’ = 0 f’’< 0 {∂f/∂x = 0, ∂f/∂y = 0,...} f(x)=x²+exp(cos(x))-x, f’(x)=2x-sen(x)exp(cos(x))+1=0 ¿Cómo proceder para encontrar el máximo? Métodos “Alternativos” Método del alpinista (Hill-climbing) ¿Cómo proceder para encontrar el máximo? Métodos “Alternativos” Búsqueda aleatoria Búsqueda exhaustiva: Travelling Salesman Problem (TSP) a a • c •c b • • e • d b d e N=100→99!≈101⁵⁶ Átomos del universo ≈10⁷⁸ N=5 →4! Algoritmos Genéticos Se inspiran en la teoría de la evolución de Darwin y en las ideas de Mendel Definición (Koza, 1993) El AG es un algoritmo matemático altamente paralelo que transforma un conjunto (población) de objetos matemáticos individuales, cada uno de los cuales se asocia con una aptitud, en una población nueva (la siguiente generación) -usando operaciones modeladas de acuerdo con el principio Darwiniano de reproducción y supervivencia del más apto- y tras haberse utilizado de forma natural una serie de operaciones genéticas (sobre todo la recombinación sexual) Esquema general de un Algoritmo Genético 1. Generar aleatoriamente una población de posibles soluciones de un problema, representadas por una estructura de datos adecuada 2. Evaluar cada uno de los individuos de la población, asignándoles una puntuación 3. Escoger de la población aquella parte que tenga una mejor puntuación 4. Mutar (cambiar) y cruzar (combinar) las diferentes soluciones de la parte elegida para reconstruir la población 5. Repetir hasta que se encuentre la solución deseada ¿Cómo se modela el fenómeno de la evolución? Población no estática (P P(t)) Tamaño de la población es fijo (|P|=N) Se permiten individuos repetidos f: P R f: función de idoneidad Algoritmos Genéticos Individuos (cromosomas): datos codificados (cadenas binarias) f: P {0,1}l s P, s = sl-1sl-2...si...s1s0 R gen 0 1 2 3 ... 28 29 30 31 00000 00001 00010 00011 ... 11100 11101 11110 11111 si {0,1} alelos s = 11010(2 = 1·24+1·23+0·22+1·21+0·20(10 Representación del Problema del Viajante a • a •c • d b • d c b • e e a ➟ c ➟ e ➟ b ➟ d s = acebd 1 ➟ 3 ➟ 5 ➟ 2 ➟ 4 s = 13524 Esquema general de un Algoritmo Genético 1. Generar aleatoriamente una población de posibles soluciones de un problema, representadas por una estructura de datos adecuada 2. Evaluar cada uno de los individuos de la población, asignándoles una puntuación 3. Escoger de la población aquella parte que tenga una mejor puntuación 4. Mutar (cambiar) y cruzar (combinar) las diferentes soluciones de la parte elegida para reconstruir la población 5. Repetir hasta que se encuentre la solución deseada Algoritmos Genéticos selección mediante ruleta w s r t s=0101110 prob(s) = f(s)/∑r Pf(r) AG: Selección mediante torneo se baraja la población se escogen n individuos (normalmente 2) compiten entre sí: gana el más apto debe barajarse n(=2) veces para seleccionar N padres N=4 cadena calidad barajar ganador barajar ganador s1 254 s2 s2 47 s4 s3 456 s1 s4 195 s3 s4 s3 s4 s1 s2 s3 s1 s3 s4 s3 y y s1 s3 Operadores genéticos cruce p1=♣♣♣♣♣♣ p2=♤♤♤♤♤♤ mutación ✂ h1=♣♣♣♣♤♤ h2=♤♤♤♤♣♣ d1=♣♣♣♣♤♤ d2=♦♤♤♤♣♣ Cruce: s = 000|00 t = 111|11 s’ = 00011 t’ = 11100 Problema del viajante ¿cruce? ¿mutación? abc|de ace|db abcde abcdb acede ab_de Un cruce para el TSP p1 = 123|4567|89 p2 = 452|1876|93 h1 = ###|1876|## h2 = ###|4567|## h1 = #23|1876|#9 h2 = ##2|4567|93 5 h1 = 423|1876|#9 h2 = ##2|4567|93 ¿mutación? h2 = 182|4567|93 1 8 h’2 = 182|4567|39 Algoritmos Genéticos begin t←0 iniciar P(t) evaluar P(t) while (condición de parada) do t←t+1 seleccionar P(t-1)’ de P(t-1) aplicar cruce a P(t-1)’ aplicar mutación a P(t-1)’ P(t)←P(t-1)’ end end Algoritmos Genéticos f: D = {0, 1}⁵ s P(0) 01011 00001 00111 11110 10101 10100 00100 11100 11010 10011 f 121 1 49 900 441 400 16 784 676 361 R s² 11111(2=31(10 máximo (1/10)∑f(s) = 375 961 Algoritmos Genéticos P’(0) P(1) f 11110 10101 11100 00111 10011 11110 11100 11010 01011 11110 11101 10110 11111 00100 10110 11011 11110 11001 01110 11011 841 484 961 16 484 761 900 625 296 761 (1/10)∑f(s)=613 f(11111(2)=f(31)=961 ¡¡máximo!! Algoritmos Genéticos máximo media Poblaciones multiplicidad poblacional poblacional P(0) P(1) P(2) P(3) P(4) 900 961 1 1 375 613 Algoritmos Genéticos P(1) P’(1) P(2) 11101 111|11 11111 10110 110|11 11011 11111 1110|1 11100 00100 1111|0 11111 10110 111|11 11110 11011 101|10 10111 11110 1|1001 11011 11001 1|1011 11101 01110 1110|1 11100 11011 1111|0 11111 f 961 761 784 961 900 529 761 841 784 961 (1/10)∑f(s)=814 Algoritmos Genéticos máximo media Poblaciones multiplicidad poblacional poblacional P(0) P(1) P(2) P(3) P(4) 900 961 961 1 1 3 375 613 814 Algoritmos Genéticos máximo media Poblaciones multiplicidad poblacional poblacional P(0) P(1) P(2) P(3) P(4) 900 961 961 961 961 1 1 3 4 6 375 613 814 840 872 ¿Por qué funcionan estos algoritmos? P(0) f 01011 00001 00111 11110 1 01 01 10100 00100 11100 11010 10011 121 1 49 900 441 400 16 784 676 361 1#### es mejor que 0#### 593.66= ∑ f(1####) 6 ≥ ∑ f(s) =375 10 Biología: Individuos que presentan semejanzas están emparentados ¿Por qué funcionan estos algoritmos? Esquema: Conjunto de cromosomas que siguen un patrón H = 01##1 {01001, 01011, 01101, 01111} ☟ o(H) = 3 ☟ δ(H) = 4 |H| = 2l-o(H) = 25-3 = 4 Efecto del cruce sobre los esquemas δ(01##1)=4 0|1##1 01#|#1 δ(1####)=0 0____ _1##1 1|#### 1#### _#### 01#__ ___#1 δ(H)<< ➮ prob(destrucción) << Efecto de la mutación sobre los esquemas o(H)=3 H = 01##1 o(1####)=1 11##1 00##1 01##0 1#### pdestruc(01##1) o(H)<< ➮ > pdestruc(1####) prob(destrucción) << 0#### ¿Por qué funcionan estos Algoritmos? P(0) f 01011 00001 00111 11110 1 01 01 10100 00100 11100 11010 10011 121 1 49 900 441 400 16 784 676 361 1#### es mejor que 0#### 593.66= ∑ f(1####) 6 ≥ ∑ f(s) 10 (=375) 900+441+400+784+676+361 =593.66 6 ¿Por qué funcionan estos Algoritmos? valor medio de H P(t) valor medio de P(t) H buen esquema ☛ ☛ f(H,t) = f(P,t) = f(H,t) f(P,t) >1 ∑q H P(t)f(q) n(H,t) ∑r P(t)f(r) N ¿Por qué funcionan estos Algoritmos? Teorema de los esquemas (Holland 1975) f(H,t) n(H,t+1) ≥ n(H,t)· ·α(H,t) f(P,t) α(H,t) = 1- probmut·o(H) - probcruce·δ(H)/(l-1) Los buenas estructuras presentes en la población incrementan el nº de representantes generación a generación Algunas aplicaciones http://the-geek.org/docs/algen/ Adam Marczyk: Algoritmos genéticos y computación evolutiva (2004) Problema del viajante (NP completo ”NP hard problem”) Ingeniería aeroespacial: diseño de la forma del ala de un avión supersónico RoboCup: proyecto internacional para promocionar la robótica, la inteligencia artificial y campos relacionados. (Torneo internacional de fútbol cuyo reto es desarrollar un equipo de robots humanoides autónomos que ganen a los humanos en 2050!) www.robocup.org Ingeniería de sistemas: diseños de turbinas de molinos de parques eólicos Algunas aplicaciones Diseño de una sala de conciertos con propiedades acústicas óptimas, (2002) similar al Grosser Musikvereinsaal de Viena Reconocimiento de imágenes: Resonancia Magnética Radioterapia: Optimización de la forma, orientación e intensidad del haz de los emisores de rayos X Localización de puestos de urgencias John Deere & Co.: generar programas de montaje en la planta de Moline (Illinois) para la fabricación de maquinaria agrícola pesada Volvo: OptiFlex para el diseño del montaje de la planta de Dublín (Virginia) de un millón de metros cuadrados United Distillers and Vintners: para administrar su inventario y sus suministros Algunas aplicaciones: Elaboración de horarios (NP completo) - Juegos Paralímpicos de 1992 - Aterrizajes en London Heathrow, Toronto, Sydney, Las Vegas, ... - Horarios de centros de enseñanza Un conjunto de profesores {P1, ..., Pm} Un conjunto de clases {C1, ..., Ck} Un conjunto de intervalos de tiempo (horas) {H1, ...,Hn} Restricciones: R. severas Número predefinido de horas por profesor un sólo profesor por clase un profesor no puede estar en dos clases R. débiles Preferencias personales Mafalda: “La vida es linda, pero nadie confunda linda con fácil” Oscar Wilde: “La verdad rara vez es pura, y nunca simple”