Inteligencia Artificial Inteligencia Artificial Algoritmos genéticos Inteligencia Artificial Bases En la naturaleza todos los seres vivos se enfrentan a problemas que deben resolver con éxito, como conseguir más luz solar o conseguir comida. La Computación Evolutiva interpreta la naturaleza como una inmensa máquina de resolver problemas y trata de encontrar el origen de dicha potencialidad para utilizarla en programas de computador. Computación evolutiva: ciencia computacional cuyos algoritmos imitan el proceso evolutivo de la naturaleza. Inteligencia Artificial Existen problemas que no pueden solucionarse por métodos matemáticos o analíticos; quizás la única forma de resolverlos es a través de métodos de prueba y error dirigidos. Buscar donde se cree que hay un posible resultado, podría ser similar al proceso que sigue la naturaleza. Copiar la manera como opera la naturaleza se crean algoritmos que utilizan los operadores que reproducen los procesos genéticos. Inteligencia Artificial Introducción Un Algoritmo Genético (AG) [Goldberg, 1989] es una clase de algoritmo de búsqueda estocástica, basado en los mecanismos de selección natural. Combinan la supervivencia de los mejores individuos, intercambiando información estructurada, de manera aleatoria e imitando los procesos de evolución biológica. Los AG son una original técnica de resolución de problemas empleando procesos evolutivos. Introducción La Computación Evolutiva (o Algoritmos Evolutivos) agrupa a los Algoritmos Genéticos, las Estrategias Evolutivas y la Programación Evolutiva. Inteligencia Artificial Estas técnicas son muy parecidas y comparten muchos aspectos. Un Algoritmo Evolutivo es una técnica de resolución de problemas utilizando métodos inspirados en la evolución de los seres vivos. Inteligencia Artificial Introducción En un Algoritmo Evolutivo se define una estructura de datos que admita las posibles soluciones a un problema. Cada uno de los posibles conjuntos de datos admitidos por esa estructura será una solución al problema. Unas soluciones serán mejores que otras. Solucionar un problema consiste en hallar una solución óptima, y por tanto, los Algoritmos Evolutivos son en realidad un método de búsqueda para encontrar una posible solución. Introducción Inteligencia Artificial En cada generación se crea un nuevo conjunto de criaturas artificiales con las partes más aptas de las generaciones anteriores. Los AG son evolutivos. Explotan la información histórica. Exploran con nuevos puntos de búsqueda esperando un mejor comportamiento. Introducción Técnicas de Búsqueda Basadas en el Cálculo Inteligencia Artificial Directos Indirectos Búsqueda Aleatoria Reconocido Simulado Técnicas Enumerativas Algoritmos Evolutivos Algoritmos Genéticos Paralelos Secuenciales Programación Dinámica El objetivo de los AG es: 1. Explicar rigurosamente los procesos adaptativos de los sistemas naturales. 2. Inteligencia Artificial Diseñar software de sistemas artificiales, que contenga los mecanismos principales de los sistemas naturales. 3. Aplicar los procesos evolutivos de los seres a la programación. Inteligencia Artificial ¿Por qué utilizar AG en optimización y búsqueda? Los métodos tradicionales, pueden encontrar soluciones óptimas a problemas específicos, que se presentan en casos especiales. No son robustos. Los métodos indirectos buscan extremos locales, solucionando las ecuaciones al definir el gradiente de la función objetivo igual a cero. Es la generalización multidimensional de la noción del cálculo elemental de puntos extremos. El concepto de optimización es un problema relativo a la cantidad de información que se tenga en un momento dado. Inteligencia Artificial Inteligencia Artificial Inteligencia Artificial Inteligencia Artificial La naturaleza contiene muchos ejemplos de uso de escogencia aleatoria, como herramienta en un proceso de búsqueda directa. El recocido simulado usa procesos aleatorios para ayudar a guiar su búsqueda para estados de energía mínimos. Los métodos convencionales no cumplen requerimientos de robustez que requiere el mundo real. Los AG no quedan recluidos en mínimos o máximos locales. Inteligencia Artificial Usan la aptitud de las cadenas para dirigir la búsqueda; por lo que no se requiere amplio conocimiento específico del problema. Operan adecuadamente sobre espacios de búsqueda que tienen saltos o ruido. Diferencia de los AG con los métodos tradicionales Q Q Inteligencia Artificial Q Q Utilizan reglas de transición probabilísticas, no determinísticas. Trabajan con una codificación del conjunto de parámetros, no con los parámetros. Buscan en una población de puntos, no en un solo punto. Usan la información que resulta de cada evaluación, no la derivada. Q Inteligencia Artificial Q Generan poblaciones sucesivas utilizando operadores genéticos artificiales similares a los biológicos. La búsqueda en paralelo sobre los individuos de la población, contribuye a la robustez que demuestran los AG. Los mecanismos de un AG simple son sorprendentemente sencillos. Q Lo más complejo que incluyen es la copia de cadenas y el intercambio parcial de cadenas. Q La simplicidad de operación y el poder de efectividad son las principales atracciones del enfoque utilizado por los AG. Inteligencia Artificial Q Inteligencia Artificial Algoritmo Genético Simple AGs Q Inteligencia Artificial Q El objetivo principal de un Algoritmo genético es el de evolucionar a partir de una población de soluciones para un determinado problema, intentando producir nuevas generaciones que sean mejores que las anteriores. Estos algoritmos operan en un ciclo simple: Creación de la población inicial, selección y reproducción, éste último implicando una recombinación y mutación del material genético de las soluciones. El AG procesa sucesivamente. poblaciones de cromosomas Inteligencia Artificial Los cromosomas de la población tienen la forma de una cadena de bits. Cada gen, posición, en el cromosoma tiene dos posibles valores: 0 y 1. Cada cromosoma es un punto en el espacio de búsqueda. Remplazan una población por otra a medida que avanzan las generaciones. Inteligencia Artificial La aptitud de un cromosoma depende de que tan bien la solución resuelva el problema. Un AG involucra tres tipos de operadores: Selección, Cruce y Mutación. Inteligencia Artificial Selección. Selecciona cromosomas de la población para su reproducción basado en la aptitud. Cruce. Realiza la recombinación de dos cromosomas (organismos) para generar nuevos cromosomas. 100 001001 Inteligencia Artificial Padres 1 1 1 1 1 1 1 1 0 100 111110 Hijo 1 Inteligencia Artificial Padres 100 001001 111 111110 111 001001 Hijo 2 Mutación Q Inteligencia Artificial Q Q Cambia aleatoriamente bits en un cromosoma de acuerdo a una probabilidad. Por ejemplo, la cadena 00000100 puede ser mutada en su segunda posición y producir 01000100. Facilita hacer una exploración completa para evitar concentración de los genes más aptos en máximos locales. AG Q Q Dada una definición del problema a resolver, se representa en cadenas de símbolos las soluciones candidatas. Un AG simple trabaja así: Inteligencia Artificial Generación de población inicial. Aleatoriamente: k cromosomas de l bits (soluciones candidatas para la solución del problema). Repetir hasta que m hijos hayan sido creados. 1. Calcular la aptitud f(x) de cada cromosoma x en la población. 2. Seleccionar pares de cromosomas de la población. Inteligencia Artificial 3. Con probabilidad pc, se cruza un par de cromosomas en un punto escogido al azar, para formar dos hijos. 4. Con probabilidad pm se elige sustituir el dígito en posiciones de la cadena de unos hijos. 5. Reemplazar los nuevos cromosomas para una nueva población (actual). Regresar al paso 1. Inteligencia Artificial Cada iteración se llama generación. La probabilidad de selección está dada de acuerdo a la aptitud de cada cromosoma. La selección es un proceso en que los cromosomas se llevan a la siguiente generación, con base en los valores de su función objetivo f . La selección se hace sin reemplazo o con reemplazo. Un cromosoma puede seleccionarse más de una vez para ser padre. Inteligencia Artificial Al final del proceso se encuentran usualmente uno o más cromosomas con una muy buena aptitud en la población. Debido a la aleatoriedad, dos ejecuciones producen diferentes comportamientos. La estructura del cromosoma podría ser variable. Las rutinas de selección, cruce y mutación se realizan tan sofisticadas como se desean. Inteligencia Artificial La copia de cadenas, con base en el valor promedio de aptitud, permite que cadenas con un valor mayor de aptitud, tengan mayor probabilidad de contribuir con uno o más descendientes en la siguiente generación. En la naturaleza la aptitud esta determinada por la habilidad para sobrevivir a depredadores, pestes, etc., para llegar a adultos y reproducirse. Conclusiones Q Inteligencia Artificial Q Los AG representan un nuevo método de búsqueda en espacios de solución intrincados. Se basan en un proceso evolutivo artificial, en el cual una población de individuos se modifica en función del tiempo por la aplicación de un conjunto de operadores simples. Conclusiones Q Inteligencia Artificial Q Q Son un nuevo método de solución a problemas de ingeniería. La capacidad que tienen para encontrar un balance entre la explotación y la exploración de soluciones a lo largo de su evolución es su gran atractivo. La estructura general del algoritmo usualmente es la misma para cualquier aplicación práctica. Conclusiones Q Inteligencia Artificial Q Garantizan la búsqueda de un mejor óptimo para las condiciones particulares del problema a través de un procedimiento aleatorio de ensayo y error. Aunque la tarea es buscar una representación adecuada del dominio del problema mediante cadenas de bits, la función de aptitud, las restricciones que deben tener los operadores genéticos para que las soluciones propuestas sean factibles; son algoritmos fáciles de implementar. Inteligencia Artificial