Download Inteligencia Artificial - Departamento de Ingeniería de Sistemas e

Document related concepts

Algoritmo genético wikipedia , lookup

Algoritmo evolutivo wikipedia , lookup

Computación evolutiva wikipedia , lookup

Programación genética wikipedia , lookup

Inteligencia de enjambre wikipedia , lookup

Transcript
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