Algoritmos genéticos

Documentos relacionados
1. Introducción 2. Esquema básico 3. Codificación 4. Evaluación 5. Selección 6. Operadores 7. Ejemplo. Algoritmos genéticos

Son una clase particular de los algoritmos evolutivos.

Tema 5: Algoritmos Genéticos

Inteligencia Artificial

Algoritmos Genéticos. Introducción a la Robótica Inteligente. Álvaro Gutiérrez 20 de abril de

Parte de Algoritmos de la asignatura de Programación Master de Bioinformática. Búsqueda exhaustiva

Tema 1. Heurísticos en Optimización Combinatorial

ALGORITMOS GENÉTICOS

ALGORÍTMICA

1. Método general. 2. Análisis de tiempos de ejecución. 3. Ejemplos de aplicación Problema de las 8 reinas Problema de la mochila 0/1.

Tema 2: Algoritmos Genéticos

ALGORITMOS GENÉTICOS: ALGUNOS RESULTADOS DE CONVERGENCIA

BÚSQUEDA DE RUTAS DE METRO

Programación Evolutiva

1. Diseñe algoritmos que permitan resolver eficientemente el problema de la mochila 0/1 para los siguientes casos:

Tema 6: Búsqueda local y algoritmos genéticos

ALGORÍTMICA

NUEVO METODO DE OPTIMIZACION: BIG BANG BIG CRUNCH

Algoritmos genéticos: Aplicación al problema de la mochila.

Teniendo en cuenta los valores de las variables se tienen 3 tipos de modelos lineales enteros:

3. Algoritmo genético

Ampliación de Algoritmos y Estructura de Datos Curso 02/03. Ejercicios

OPTIMIZACIÓN Y SIMULACIÓN PARA LA EMPRESA. Tema 3 Programación Entera

Metaheurísticas y heurísticas. Algoritmos y Estructuras de Datos III

Búsqueda Informada. Algoritmos primero el mejor Algoritmos de búsqueda local

Ejemplo: El problema de la mochila. Algoritmos golosos. Algoritmos y Estructuras de Datos III. Segundo cuatrimestre 2013

Tema 4y 5. Algoritmos voraces. Algoritmos sobre grafos

El problema de selección de carteras: modelos y algoritmos

Métodos para escribir algoritmos: Diagramas de Flujo y pseudocódigo

Análisis y Diseño de Algoritmos

Algoritmos y Estructuras de Datos Curso 06/07. Ejercicios

Programación entera 1

ALGORITMOS GENÉTICOS EN LA SOLUCIÓN DE ECUACIONES DIOFÁNTICAS LINEALES

Apuntes de Teórico de Programación 3. Apuntes de Teórico PROGRAMACIÓN 3. Greedy. Versión 1.1

Se nos plantean las siguientes alternativas:

2. Distribuciones de Muestreo

Curso: Métodos de Monte Carlo Unidad 3, Sesión 7: Problemas de conteo

Programa de teoría. Algoritmos y Estructuras de Datos II. 3. Algoritmos voraces. 1. Análisis de algoritmos 2. Divide y vencerás

greedy (adj): avaricioso, voraz, ávido, codicioso, glotón

INSTITUTO TECNOLOGICO DE NUEVO LAREDO ING. BRUNO LÓPEZ TAKEYAS INTELIGENCIA ARTIFICIAL ALGORITMOS GENETICOS

Introducción a la Teoría de la Información

Análisis de algoritmos

Tema 4: Gramáticas independientes del contexto. Teoría de autómatas y lenguajes formales I

Práctica 5. Códigos Huffman y Run-Length

Tema 7: Problemas clásicos de Programación Lineal

Complejidad computacional (Análisis de Algoritmos)

Control de Flujo. Estructuras de Control! Experiencia Educativa de Algorítmica CONTROL DE FLUJO

Grafos Eulerianos y Hamiltonianos. Algoritmos y Estructuras de Datos III

Algoritmos de búsqueda exhaustiva

Estructura de datos y de la información Boletín de problemas - Tema 10

ALGORITMOS GENÉTICOS EN EL CÁLCULO DIFERENCIAL

Algoritmos glotones 2 (código de Huffman) mat-151

El método simplex 1. 1 Forma estándar y cambios en el modelo. 2 Definiciones. 3 Puntos extremos y soluciones factibles básicas. 4 El método simplex.

Departamento de Tecnologías de la Información. Tema 4. Máquinas de Turing. Ciencias de la Computación e Inteligencia Artificial

Optimización de la distribución de mercadería a las distintas sucursales de una empresa dedicada a la venta de aceites para autos

Estimar la adecuación de un nodo para ser expandido.

IN34A - Optimización

Cabrera Hernández Elizabeth Ramírez Bustos Fabián GENERACION DE NUMEROS ALEATORIOS

Redes Bayesianas (3) Carlos Hurtado L. Depto. de Ciencias de la Computación, Universidad de Chile

En el siguiente capítulo se hablará del uso del método de generación de columnas para resolver el problema de corte ( cutting stock ).

Sistemas de numeración

Modelos de probabilidad. Modelos de probabilidad. Modelos de probabilidad. Proceso de Bernoulli. Objetivos del tema:

Lección 1: Umbralización. 2. Umbralización utilizando el histograma

Algoritmos Voraces. Introducción. Andrés Becerra Sandoval. Lenguajes III. Ponticia Universidad Javeriana

ÁRBOLES CRISTIAN ALFREDO MUÑOZ ÁLVAREZ JUAN DAVID LONDOÑO CASTRO JUAN PABLO CHACÓN PEÑA EDUARDO GONZALES

Ramificación y poda. Algoritmia básica - Javier Campos (Universidad de Zaragoza)

Tema 5: Muestreo sistemático

5 centenas + 2 decenas + 8 unidades, es decir: = 528

1. (F, +) es un grupo abeliano, denominado el grupo aditivo del campo.

Se puede dibujar la siguiente figura, empezando y terminando en el mismo punto, sin levantar e lápiz del papel?

Se puede dibujar la siguiente figura, empezando y terminando en el mismo punto, sin levantar e lápiz del papel?

1.1 Sistemas de numeración. Ejemplos de sistemas de numeración posicionales. Base numérica. Circuitos Digitales

Muestreo y Distribuciones en el Muestreo

PARTE II: ALGORÍTMICA

Técnicas de planificación y control de proyectos Andrés Ramos Universidad Pontificia Comillas

obtenido de la fusión de dos rutas y la posterior asignación a un vehículo con capacidad disponible.

Generación de variables aleatorias discretas Método de la Transformada Inversa

MÁQUINAS DE TURING Y LENGUAJES ESTRUCTURADOS POR FRASES

Ordenamiento (Sorting)

MODELO DE ASIGNACIÓN DE CARGA ACADÉMICA USANDO ALGORITMOS GENÉTICOS

Los grafos son estructuras de datos Representan relaciones entre objetos. Son aplicables en. Relaciones arbitrarias, es decir No jerárquicas.

ESTRUCTURA Y TECNOLOGÍA DE COMPUTADORES I CAPÍTULO III ARITMÉTICA Y CODIFICACIÓN

Introducción a los Algoritmos Genéticos

Métodos Constructivos. Empiezan desde una solución vacía (a veces pequeña)

Estrategias de pivoteo

OPERADORES GENETICOS SOBRE PERMUTACIONES APLICADOS A LA RESOLUCIÓN DEL SUDOKU

Transcripción:

Algoritmos genéticos Introducción 2 Esquema básico 3 El problema de la mochila 7 Asignación de recursos 0 El problema del viajante 3 Variantes del esquema básico 5 Por qué funciona? 9 Observaciones finales 20 L. Recalde - C.P.S. Esquemas algorítmicos - Algoritmos genéticos Pág.

Algoritmos genéticos: Introducción Inventados por John Holland a mitades de los 70. Inspirados en el modelo de evolución biológica. Utilizan el principio de selección natural para resolver problemas de optimización complicados. Idea: Partiendo de una población inicial (soluciones factibles) Seleccionar individuos (favorecer a los de mayor calidad) Recombinarlos Introducir mutaciones en sus descendientes Insertarlos en la siguiente generación L. Recalde - C.P.S. Esquemas algorítmicos - Algoritmos genéticos Pág. 2

Algoritmos genéticos Esquema básico algoritmo genético principio t:=0; t:=0; inicializa P(t); P(t); evalúa P(t); P(t); mq mq not nottermina hacer hacer t:=t+; P(t):=selecciona P(t-); recombina P(t); P(t); muta mutap(t); evalúa P(t) P(t) fmq; fmq; fin fin L. Recalde - C.P.S. Esquemas algorítmicos - Algoritmos genéticos Pág. 3

Algoritmos genéticos Esquema básico Maximizar f(x) = x 2 con x entero entre 0 y 3 Representación en binario 0 0 Población inicial generada aleatoriamente, tamaño 4 00 000 0000 00 Función de calidad f(x) = x 2 Selección: Seleccionar (Duplicar) Recombinar (Cruce) Individuo Individuo 2 Individuo 3.. Individuo Individuo 2 Individuo 3.. Descendiente Descendiente 2 Descendiente 3.. Generación actual Generación intermedia Generación siguiente L. Recalde - C.P.S. Esquemas algorítmicos - Algoritmos genéticos Pág. 4

Algoritmos genéticos Esquema básico Generar una población intermedia. Para ello asignar a cada individuo una probabilidad de ser seleccionado directamente proporcional a su función de calidad. Cromosoma x f( x) prob. copias 00 3 69 0.4 000 24 576 0.49 2 0000 8 64 0.06 0 00 9 36 0.3 De la población intermedia se seleccionan parejas de forma aleatoria. Cruce: elegir un punto intermedio e intercambiar los genes de los padres a partir de ese punto. 0 0 0 0 0 0 0 0 0 0 Mutación: cambio de un bit elegido aleatoriamente (probabilidad pequeña). Cromosoma x f(x) 0 27 729 0000 6 256 000 2 44 00 25 625 L. Recalde - C.P.S. Esquemas algorítmicos - Algoritmos genéticos Pág. 5

Algoritmos genéticos Esquema básico Codificación: Utilizar cadenas de bits para representar las soluciones Los bits pueden codificar números enteros, reales, conjuntos, Ventaja: los operadores de cruce y mutación son simples. Inconveniente: no siempre resulta natural. Selección: Asignar una probabilidad de supervivencia proporcional a la calidad Generar una población intermedia Elegir parejas de forma aleatoria No se pueden cruzar elementos de dos generaciones distintas. Operador de cruce de un punto Mutación: Hay una pequeña probabilidad de cambio de un bit. L. Recalde - C.P.S. Esquemas algorítmicos - Algoritmos genéticos Pág. 6

El problema de la mochila Recordar... Se tienen n objetos y una mochila El objeto i tiene peso p i y la inclusión del objeto i en la mochila produce un beneficio b i El objetivo es llenar la mochila, de capacidad C, de manera que se maximice el beneficio. maximizar sujeto a con b i x i i n p i x i C i n x i {0,}, b i > 0, p i > 0, i n Problemas: Codificación genética: cómo representar las soluciones Calidad de las soluciones: cómo se mide L. Recalde - C.P.S. Esquemas algorítmicos - Algoritmos genéticos Pág. 7

El problema de la mochila Representación: x = (x,,x n ), x i {0,} Observar que no se garantiza factibilidad Función de calidad: C b i x i si b i x i >C i n i n f (x) = b i x i en otro caso i n Penalizar la no factibilidad. Obliga al algoritmo a elegir soluciones factibles porque son mejores. Inicialización: Generar secuencias de ceros y unos Operador de cruce de un punto L. Recalde - C.P.S. Esquemas algorítmicos - Algoritmos genéticos Pág. 8

El problema de la mochila Otra posible representación: Una lista con los elementos que metemos en la mochila. Problema: qué operador de cruce utilizamos? Observar que el operador de un punto no sirve, es necesario adaptarlo. (2,3,4) (2,3,5) (,4,5) (,4,4) Por ejemplo, eliminar los elementos repetidos L. Recalde - C.P.S. Esquemas algorítmicos - Algoritmos genéticos Pág. 9

Asignación de recursos Hay m recursos de capacidades c,c 2,,c m y n tareas a ejecutar que consumen parte de los recursos. La tarea i-ésima consume w ij partes del recurso j. La ejecución de la tarea i-ésima produce un beneficio b i. Se trata de decidir qué tareas se ejecutan de manera que se maximice el beneficio total. L. Recalde - C.P.S. Esquemas algorítmicos - Algoritmos genéticos Pág. 0

Asignación de recursos Representación de un individuo: x = (x,x 2,,x n ), con x i {0,} (x i = significa ejecutar la tarea i-ésima) para ser factible debe verificar: Σ i= w ij x i c j, para j=,2,,n y para ser óptima debe maximizar: B(x) = Σ i= x i b i La función de calidad: f(x) = Σ i= b i x i - s max{b i } donde s = {j Σ i= w ij x i > c j }, es decir, el número de recursos agotados. El tamaño de la población elegido es µ=50, la tasa de mutación p m =/n, y la tasa de recombinación p c =0 6. L. Recalde - C.P.S. Esquemas algorítmicos - Algoritmos genéticos Pág.

Asignación de recursos Resultados obtenidos tras 00 ejecuciones de 6 casos distintos: n=5, m=0 n=20, m=0 n=28, m=0 n=50, m=5 n=60, m=30 n=05, m=2 f 5 0 3(x) N f 0 4(x) N f 5 0 4(x) N f 0 5(x) N f 0 5(x) N f 2 0 5(x) N 405 83 620 33 2400 33 6537 7772 5 095445 4005 6 60 20 2390 30 6524 776 4 095382 0 3955 600 29 2380 0 659 2 7758 095357 3 6090 2370 658 5 774 7 095266 6060 3 2360 9 6499 7739 095264 9 6050 2330 5 6497 7738 3 095206 3 6040 3 960 6494 7725 09557 2 950 6473 779 09508 6472 775 095035 2 6467 77 2 095035 8 6463 7706 094965 f=402 7 f=602 3 f=2374 7 f=6378 f=7626 f=093897 L. Recalde - C.P.S. Esquemas algorítmicos - Algoritmos genéticos Pág. 2

El problema del viajante Recordar Si otra vez yo, y qué! Encontrar un recorrido de longitud mínima para un viajante que tiene que visitar varias ciudades y volver al punto de partida, conocida la distancia existente entre cada dos ciudades. Codificación: en forma de vector siguiendo el orden del recorrido Ejemplo: Cruce: De un punto: [3, 2, 5, 4, ] 3 2 5 4 [3, 2, 5, 4, ] [3, 2,, 4, 2] [3, 5,, 4, 2] [3, 5, 5, 4, ] Pueden aparecer ciudades repetidas No siempre visitamos todas. L. Recalde - C.P.S. Esquemas algorítmicos - Algoritmos genéticos Pág. 3

El problema del viajante Heurística: Elegir una ciudad, i, aleatoriamente Suponer que en el padre de la ciudad i vamos a la j y en el padre 2 de i vamos a k Si j,k ya están incluidos, elegir una nueva ciudad. Si no, añadir la ciudad que no esté incluida más próxima a i. Repetir mientras queden ciudades sin recorrer Otra codificación: Cruce: Asignar a cada ciudad un valor entre 0 y aleatoriamente. El recorrido se obtiene al ordenar estos números de mayor a menor. Ejemplo: [0.2, 0.8, 0.4, 0.7, 0.9] 5 2 4 3 Cualquiera de los habituales, de un punto por ejemplo. L. Recalde - C.P.S. Esquemas algorítmicos - Algoritmos genéticos Pág. 4

Variantes del esquema básico Codificación: cómo se representan las soluciones en forma de cromosomas? Cadenas de 0 s y s (algoritmos clásicos) Números enteros y reales Otros Cuestiones a tener en cuenta: Factibilidad: los cromosomas pueden codificar soluciones no factibles del problema. Solución: penalizar en la función de calidad descartar reparar Legalidad: los cromosomas pueden no ser decodificables a una solución. Ejemplo: problema de la mochila (2,3,4) (2,3,5) (,4,5) (,4,4) Unicidad de la codificación: Uno a uno Uno a N N a uno L. Recalde - C.P.S. Esquemas algorítmicos - Algoritmos genéticos Pág. 5

Variantes del esquema básico Cambio de generación: Manteniendo el tamaño de la población Reemplazar padres por hijos Reemplazar un par de individuos elegidos aleatoriamente por los hijos Otros Aumentando el tamaño de la población Selección: Crear una población temporal formada por los padres y los hijos y seleccionar de ahí los mejores para formar la nueva generación Dados n padres generar m hijos (m>n) y de ahí seleccionar los n mejores. Asignar a cada individuo una probabilidad de ser elegido definida como donde f puede ser f (x i ) f (x j ) población la función de calidad (quizás escalada o centrada) la posición de la solución si se ordenan según su calidad L. Recalde - C.P.S. Esquemas algorítmicos - Algoritmos genéticos Pág. 6

Variantes del esquema básico Cruce De un punto: seleccionar aleatoriamente un punto en el cromosoma e intercambiar el final de cada cromosoma a partir de dicho punto. padre madre hijo hijo 2 De dos puntos: padre madre hijo hijo 2 L. Recalde - C.P.S. Esquemas algorítmicos - Algoritmos genéticos Pág. 7

Variantes del algoritmo básico Uniforme: cada gen se hereda de un padre elegido aleatoriamente. padre madre hijo hijo 2 Mutación Evita que solo se considere un subconjunto de las posibles soluciones L. Recalde - C.P.S. Esquemas algorítmicos - Algoritmos genéticos Pág. 8

Por qué funciona? Un esquema es el conjunto de cromosomas que siguen un patrón. Ejemplo: 00**0={00000, 0000, 0000, 000} Teorema del esquema: Relaciona la calidad de los miembros de un esquema en una generación con el número esperado de miembros en la siguiente generación. <Ns(g+)>= Ns(g)* ms(g)/m(g) Ns(g) es el número de elementos del esquema s en la generación g m(g) la calidad media de los cromosomas en la generación g ms(g) una estimación de la calidad media de los cromosomas de la generación s que pertenecen al esquema s <x> es el valor esperado L. Recalde - C.P.S. Esquemas algorítmicos - Algoritmos genéticos Pág. 9

Observaciones finales Observaciones: La evolución está dirigida por la calidad relativa Existe un paralelismo implícito, las operaciones se hacen implícitamente sobre todo un esquema. Encontrar un equilibrio entre explotación/exploración Los algoritmos genéticos funcionan mejor cuando: Las soluciones potenciales pueden representarse de forma que quede explícita la composición Existen operadores para mutar y recombinar estas representaciones Los algoritmos genéticos funcionan peor cuando: La representación no recoge las características de las soluciones Los operadores no generan candidatos interesantes L. Recalde - C.P.S. Esquemas algorítmicos - Algoritmos genéticos Pág. 20