SISTEMAS INTELIGENTES

Documentos relacionados
Son una clase particular de los algoritmos evolutivos.

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

Minería de datos (Algoritmos evolutivos)

RECONOCIMIENTO DE PATRONES DRA. LETICIA FLORES PULIDO

Inteligencia Artificial

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

3. Algoritmo genético

Introducción a la Computación Evolutiva

Algoritmos genéticos

II Unidad EL ALGORITMO GENETICO BINARIO. Rafael Vazquez Perez

Tema 2: Algoritmos Genéticos

Programación Evolutiva

ALGORITMOS GENÉTICOS: ALGUNOS RESULTADOS DE CONVERGENCIA

Análisis de algoritmos

Computación Evolutiva Algoritmos Genéticos

Algoritmos Genéticos Y

CONSTRUCCIÓN AUTOMÁTICA DE REGLAS DE INVERSIÓN UTILIZANDO PROGRAMACIÓN GENÉTICA

Tema 5: Algoritmos Genéticos

Algoritmos Genéticos. Introduccion a la Robótica Inteligente

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

UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO FACULTAD DE ESTUDIOS SUPERIORES CUAUTITLÁN PLAN DE ESTUDIOS DE LA LICENCIATURA EN INGENIERÍA QUÍMICA

Algunas ventajas asociados comúnmente a ellos son:

Introducción a los Algoritmos Genéticos

BIOINFORMÁTICA

Conceptos de Inteligencia Artificial & Sistemas Inteligentes Artificiales. Clase 12 CIA Clase 5 SIA Algoritmos genéticos Búsqueda adversaria

BIOINFORMÁTICA

A veces queremos almacenar algún elemento que es Verdadero o Falso. Este tipo de dato se llama Booleano y su representación es sencilla, para cada

Tema 1. Heurísticos en Optimización Combinatorial

Análisis y Diseño de Algoritmos Tablas de Hash

ALGORITMOS GENÉTICOS

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

Procesadores de lenguaje Tema 7 Generación de código intermedio

FUNDAMENTOS DE PROGRAMACIÓN ENTERA

Aritmética finita y análisis de error

Capítulo III ALGORITMOS EVOLUTIVOS

Tipos de datos y Operadores Básicos

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

Introducción a la Computación Evolutiva

LÓGICA SECUENCIAL Y COMBINATORIA

Posibles trabajos HIA

Java. Introducción a la Programación Orientada a Objetos

Introducción a los Algoritmos Genéticos. Tomás Arredondo Vidal 17/4/09

VARIABLES, CONSTANTES Y EXPRESIONES ASIGNACIÓN. TIPOS ELEMENTALES. PRECEDENCIA DE LOS ESTRUCTURAS DE CONTROL. CONDICIONAL E

Inteligencia Artificial II Unidad Plan 2010-Ingeniería en Sistemas Computacionales

Tema 1 INTRODUCCIÓN A LOS LENGUAJES DE PROGRAMACIÓN

Agenda. 0 Operaciones aritméticas 0 ASCII 0 UTF-8 0 Código Gray. 0 Números de punto flotante

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

Tipos De Datos. Numéricos. Alfanuméricos (string) Arreglos (Vectores, Matrices) Estructurados Registros (Def. Por el Archivos Usuario) Apuntadores

Tema 2. Concepto de Algoritmo

NUEVO METODO DE OPTIMIZACION: BIG BANG BIG CRUNCH

MODELOS DE INVESTIGACION DE OPERACIONES

EXPOSICIÓN UNIDAD II

Métodos de Investigación en Psicología (7) Dra. Lucy Reidl Martínez Dra. Corina Cuevas Reynaud Dra. Renata López Hernández

Códigos IRA. Máster en Multimedia y Comunicaciones Comunicaciones Digitales. Luca Martino

GLOSARIO 1. Qué es bit y byte? Bit: Es la unidad mínima de información. Puede ser 0 o 1. Byte: Es el conjunto de 8 bits. Ejemplo:

Introducción a la Computación Evolutiva

Algoritmos genéticos. Inteligencia Computacional TC3023

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

Tema 1: Conceptos generales del Análisis

Tema 4 Ampliaciones de la Genética Mendeliana I: T ma m a 5 5 Ampliaciones de la Genética Mendeliana II: Ampliaciones de la Genética

Tema 2: Desarrollo de Algoritmos. E.E. de Algorítmica

Árboles de Decisión Árboles de Sintaxis

Diseño de Compiladores I. Estructura General de un Compilador

Estrategias de optimización con algoritmos genéticos complejos en la resolución de problemas de asignación de canales en redes celulares

Organización de Computadoras

TECNICO SUPERIOR EN INFORMÁTICA EMPRESARIAL MÓDULO INTRUCCIONAL

Área: INFORMÁTICA. Saber- Saber: Identificar DFD como herramienta para escribir los algoritmos de forma lógica.

Algoritmos genéticos como métodos de aproximación analítica y búsqueda de óptimos locales

2.3 Clasificación de modelos matemáticos.

4. NÚMEROS PSEUDOALEATORIOS.

Carrera: SCB Participantes. Representantes de la academia de sistemas y computación de los Institutos Tecnológicos.

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

Backtracking: Esquema General

Aplicaciones con. Eduardo Herrera Lana

Búsqueda Local. cbea (LSI-FIB-UPC) Inteligencia Artificial Curso 2011/ / 33

Procesos estocásticos Cadenas de Márkov

Unidad III: Introducción a la Programación

Ingeniería en Sistemas Computacionales. Inteligencia Artificial. Ing. Bruno López Takeyas. Algoritmo Hill Climbing

Conceptos Básicos. En la vida siempre se enfrentan problemas en donde se deben tomar decisiones,

LOGICA DIGITAL ARITMETICA DE COMPUTADORAS ASPECTOS FUNDAMENTALES 1. FORMA DE REPRESENTAR LOS NUMEROS ( FORMATO BINARIO)

BÚSQUEDA DE RUTAS DE METRO

Unidad II: Análisis semántico

+- S x B +-E. Este estándar presupone una representación normalizada. Es decir, los números a representar obedecen a la siguiente forma:

Teoría del valor extremo como criterio de parada en la optimización heurística de bóvedas de hormigón estructural

Seguimiento i de objetos

LA HIPÓTESIS DEL TEOSINTE

Algoritmos Genéticos

INTRODUCCION A LA SIMULACION DE MODELOS. Simulación es la descripción de un sistema a través de modelos que se pueden aplicar a varias disciplinas.

NÚMERO Y OPERACIONES (Aritmética y Estadística)

GENÉTICA DE POBLACIONES Dra. Blanca Urzúa Orellana Departamento de Ciencias Básicas y Comunitarias. Facultad de Odontología, U. De Chile.

Algoritmos Genéticos. Algoritmos Genéticos. Introducción a la Computación Evolutiva. Tercera Clase: Algoritmos Genéticos

4. Operadores Operador asignación

LA HIPÓTESIS DEL TEOSINTE

ALGORITMOS GENÉTICOS EN EL CÁLCULO DIFERENCIAL

Algoritmos Genéticos y sus Aplicaciones

Práctica 1: Representación de números

Primera aproximación al aprendizaje automático.

ALGORÍTMICA

Tema#2. Tipos de Datos 10

Genética Cuantitativa y Estimación de Heredabilidad

Transcripción:

SISTEMAS INTELIGENTES T4: Algoritmos Genéticos {jdiez, juanjo} @ aic.uniovi.es

La idea es Qué pretende la IA? Producir agentes inteligentes Cuál es el mejor ejemplo de agente inteligente? El Hombre Cómo ha logrado ser inteligente? Gracias a la EVOLUCIÓN!!! La evolución se ha mostrado como una solución exitosa dentro de los sistemas biológicos La inteligencia humana es el mejor ejemplo del poder de la evolución Idea: seguir la teorías neo-darwinistas para hacer evolucionar los agentes inteligentes de un problema

Cómo funcionan? Simulan vagamente la evolución biológica Parten de una población de agentes (hipótesis) diseñados para realizar una determinada tarea La población evoluciona cómo? Sobreviven los mejores agentes: SELECCIÓN! Combinamos dos agentes: REPRODUCCIÓN! Alteramos agentes: MUTACIÓN! Tras cada generación, la población resuelve mejor la tarea para la que se diseñó Al final nos quedaremos con el mejor agente

El Ciclo Evolutivo Selección Padres Población Mutación Cruce Descendencia

Desmitificando un poco No producen hombres, ni nada parecido (de momento) Son sistemas de búsqueda Es una búsqueda informada, similar a la búsqueda por haz local (con cruce) Cuándo dejamos de evolucionar? A pesar de todo, tienen ventajas: Trabajan en espacios de búsqueda complejos Fácilmente paralelizables Éxito indudable en ciertas tareas

Técnicas evolutivas Programación evolutiva [Fogel, 60] Evolución al nivel de las especies Usa la mutación y la selección es probabilística No usan el cruce Estrategias Evolutivas [Alemania, 64] Evolución al nivel de los individuos Usan operadores de recombinación La selección es determinista Algoritmos Genéticos [Holland, 60] Programación Genética

Algoritmos Genéticos John Holland, 60s, y 70s, Univ. Michigan Idea original estudio teórico de la adaptación y los planes reproductivos (nombre original) Se evoluciona el genotipo y no el fenotipo Representación genética independiente del dominio: cadenas binarias Selección probabilística Operación principal: cruce La mutación desempeña un papel secundario

Qué necesitamos para definir un GA? Representación de las soluciones (genotipos) Función de evaluación Estrategia de selección Operadores genéticos (cruce, mutación, ) Parámetros: Tamaño de la población Porcentaje de elitismo/cruce Probabilidad de mutación Criterio de parada (calidad de la solución, nº máximo de generaciones, )

Algoritmo genérico (genético) GA ( F, F_T, p, r, m) F: función de evaluación, valora cada genotipo F_T: nivel de aceptación p: número de individuos (hipótesis) en la población r: porcentaje de la población reemplazada por cruce m: probabilidad de mutación P = generar p hipótesis (aleatoriamente) (Población inicial) Para cada h P, evaluar F(h) Mientras ( max h P F(h) < F_T ) hacer Crear una nueva población Ps 1) Ps = Selección probabilística de (1-r)*p miembros de P Cada hipótesis tiene Pr(h)=F(h)/ΣF(h) de ser elegida 2) Cruce: seleccionar r*p/2 parejas de individuos de P Cada pareja genera 2 descendientes Ps 3) Mutación: selección uniforme de m*p miembros de Ps Se actualiza P: P = Ps Para cada h p, evaluar F(h) Fin Mientras Retornar el mejor individuo: h, tal que F(h)=max h P F(h) Fin GA

Representación de los genotipos Hay que definir cómo se representan las características genéticas de los individuos (soluciones, hipótesis) de la población Aspecto muy importante en la definición de GA La representación afecta a la definición de los operadores genéticos (selección, cruce, mutación) Muchos tipos de representación: Cadenas de bits (la más típica) Código Gray (mantiene la adyacencia) Punto Flotante (Binaria, Real) Entera LISP, Expresiones, (Programación Genética)

Representación: Cadenas de bits (I) Se utilizan cadenas de bits para representar los distintos genotipos existentes Es un tipo de representación que se adapta a casi cualquier problema Ej. Problema n-reinas: Podemos usar una matriz de bits 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 1 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 1 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 Demasiadas reinas

Representación: Cadenas de bits (II) Ej. Optimizar la función x*sen(10*pi*x)+2 en [-1,2] Para 6 decimales de precisión habrá 3.000.000 valores (long. intervalo 3) 2097152 = 2 21 < 3000000 < 2 22 = 4194304 (1000101110110101000111) representa al número 0.637197 (fenotipo) En esta caso: cada genotipo representa un fenotipo (OK!)

Representación: Cadenas de bits (III) Ej. Problema Nadar, atributos: Pronóstico: Soleado, Nublado, Lluvia Temperatura: Baja, Moderada, Alta Humedad: Normal, Alta Viento: Flojo, Fuerte Nadar: Si, No (Clase) Cada individuo representa una regla: Pronóstico Temperatura Humedad Viento Nadar 0 0 1 0 0 0 0 0 0 1 0 1 SI Pronóstico = Lluvia Y Viento = Fuerte ENTONCES Nadar = No

Interpretación biológica Cromosoma: cadena de ADN que contiene la información genética de un individuo Gen: sección de ADN que codifica una cierta función bioquímica (p.e. producir una proteína) Alelo: cada valor posible para una cierta posición genética Pronóstico Temperatura Humedad Viento Nadar 0 0 1 0 0 0 0 0 0 1 0 1 Gen#1 Gen#2 Gen#3 Gen#4 Gen#5 Cromosoma

Representación: otros aspectos Cromosomas de longitud variable Nadar: cada individuo es un conjunto de reglas 100 000 10 00 10 100 000 01 00 01 SI (Pronóstico = Soleado ) Y (Humedad = Normal) ENTONCES Nadar = Si SI (Pronóstico = Soleado ) Y (Humedad = Alta) ENTONCES Nadar = No Individuos correctos La representación de los individuos y los operadores genéticos deben diseñarse para producir siempre individuos correctos 100 000 10 00 10 100 000 Faltan genes!!!

Cadenas de bits: Ventajas Representación universal Es la que usan los ordenadores Justificación teórica (y biológica): Representación con muchos genes y con pocos alelos posibles Es lo habitual en los cromosomas naturales Se favorece la diversidad y la formación de buenos bloques constructores Bloque constructor: grupo pequeño de genes que ha coevolucionado y que si se introdujera en un cromosoma incrementaría probablemente su aptitud

Cadenas de bits: Problemas Escalabilidad, cromosomas demasiado grandes Precisión limitada Diferencias entre el espacio genotípico y el fenotípico Pero: 5 (entero) = 101 6 (entero) = 110 Distancia 1 en el espacio fenotípico, y 2 en el genotípico Posible solución: usar código Gray Todas las representaciones tienen inconvenientes Es la representación más usada

Otras representaciones: enteros n-reinas: un entero por cada columna indicando en qué fila está la reina Individuo: 1 6 2 5 7 4 8 3 TSP: se representa cada ciudad con un número {1,,n} y cada individuo será una permutación de esos números indicando el orden de recorrido Individuo: 1 8 4 5 2 7 6 10 3 9

Cómo diseñar buenas representaciones? La representación no debe tener sesgos, todos los individuos se deben encontrar representados de manera equitativa en el conjunto de genotipos posibles. Es decir, los genotipos deben representar bien los fenotipos La representación no debería permitir soluciones no factibles La función de evaluación debe aplicarse fácilmente (de forma rápida) sobre los genotipos de los individuos La representación debe poseer localidad (cambios pequeños en el genotipo resultan en cambios pequeños en el fenotipo) La representación debe ajustarse a un conjunto de operadores genéticos de tal forma que se transmitan los bloques constructores de padres a hijos Una buena representación debe minimizar la epístasis (la medida en que la contribución de aptitud de un gen depende de los valores de los otros genes)

Función de evaluación (o de fitness) Mide la aptitud de cada individuo. Nos permiten evaluar la calidad de los genotipos Hay muchas posibles: Precisión de la hipótesis Coste de la solución (TSP) Nivel de complejidad: se prefiere la más simple (Occam) Híbridas Es dependiente del problema Debe ser rápida, se ejecuta muchísimas veces Es clave en el algoritmo, en base a ella se decide la selección de individuos, y de ella depende en gran medida la velocidad de ejecución (y por tanto las soluciones que se pueden alcanzar)

Selección de individuos Permite que las poblaciones mejoren sucesivamente Normalmente siempre se suele incluir el mejor individuo en la siguiente generación (elitismo) La selección no se debe basar en elegir sólo a los mejores individuos (problema de crowding) Aunque los mejores deben tener siempre más probabilidad de ser elegidos (convergencia) Hay muchísimas técnicas de selección Proporcional Por torneo Ranking

Selección Proporcional Este nombre describe un grupo de esquemas de selección originalmente propuestos por Holland Eligen individuos de acuerdo a su contribución de aptitud con respecto al total de la población Pueden provocar poca diversidad, propiciando que predominen los mejores individuos (crowding) Variantes: Ruleta Sobrante Estocástico Universal Estocástica P ( h ) i f = p j = 1 [ hi ] f [ h ] j

Selección por torneo y ranking Torneo: Ranking Se seleccionan uniformemente un grupo de individuos k Con probabilidad p se selecciona el mejor individuo El parámetro p permite controlar el crowding Similar al proporcional Se ordenan los individuos de acuerdo a su aptitud La probabilidad de selección es proporcional a la posición en el ranking

Operador de cruce Combina individuos (típicamente 2) para generar descendientes (usualmente 2) Máscara de cruce: máscara de bits que indica los miembros del primer y del segundo padres que se transmiten a la descendencia Single-Point Padres: 11101001000 00001010101 Máscara: 11111000000 Descendientes: 11101010101 00001001000 Two-Point Padres: 11101001000 00001010101 Máscara: 00111110000 Descendientes: 11001011000 00101000101 Uniform (bit aleatoriamente elegidos) Padres: 11101001000 00001010101 Máscara: 10011010011 Descendientes: 10001000100 01101011001

Operador de mutación Idea: introducir cambios aleatorios en las estructuras (genes) Provoca: una búsqueda estocástica por el espacio de hipótesis Single-Point Individuo: 11101001000 Individuo mutado: 11101011000 (bit aleatorio) Multi-Point Se invierten múltiples bits (elegidos aleatoriamente)

Ejemplo: las n reinas (I) Representación: entera, cada dígito indica la fila dentro de la columna i-ésima donde está situada la reina i Fitness: pares de reinas no atacadas Selección: proporcional Cruce y mutación: single-point Ejemplo: 32752411

Ejemplo: las n reinas (II)

Esquemas Objetivo: identificar bloques constructores Describen familias de individuos Definición: cadena contiene tres símbolos, 0, 1, *. El * representa que en esa posición da igual un 1 ó un 0 Ejemplo: ***010*** Caracterizan las poblaciones de acuerdo al número de individuos que representan cada esquema m(s,t)= nº de individuos con el esquema s en la población del instante t

Programación Genética Uso de estructuras de árboles para representar programas de computadora Se predetermina la máxima profundidad de los árboles, pero no su topología precisa El tamaño, forma y contenido de los árboles puede cambiar dinámicamente durante el proceso evolutivo

Funciones más utilizadas Operaciones aritméticas: +,-,*, Funciones matemáticas: seno, exp, Operaciones Booleanas: AND, OR,.. Operadores condicionales: IF Iteraciones: DO-UNTIL Recursión Cualquier función específica

Cruce

Aplicaciones Problemas de optimización combinatoria Problemas de ajuste de parámetros Problemas de satisfacción de restricciones, planificación y asignación de recursos espaciales y temporales Optimización (estructural, de topologías, numérica, combinatoria, etc.) Reconocimiento de patrones Generación de gramáticas (regulares, libres de contexto)