Inteligencia Artificial II
Unidad 3: Sistemas Evolutivos
Ingeniería en Mecatrónica Facultad de Ingeniería
Universidad Nacional de Cuyo
Dr. Ing. Martín G. Marchetta [email protected]
Introducción, motivación y aplicaciones recientes
Introducción, motivación y aplicaciones
●
Algoritmos Genéticos
●
Se originan en la primera mitad de los '70 (Hollstien, 1971;
Holland, 1975)
●
Son algoritmos de búsqueda local
●
Inspirados en la teoría de la evolución natural de las
especies
●
El algoritmo
–
mantiene un único estado (población)
–
la población evoluciona mediante operadores evolutivos
–de acuerdo a una función de idoneidad
Dr. Ing. Martín Marchetta – Inteligencia Artificial II – Ingeniería en Mecatrónica 4/28
Introducción, motivación y aplicaciones
●
La literatura relacionada con AG es muy extensa (ej: +80K
artículos en sciencedirect.com, +30K en los últimos 4 años).
●La mayoría de los trabajos se relacionan con aplicaciones de
los GA a diversos ámbitos
●
Algunas aplicaciones recientes
● Optimización de la ubicación de turbinas eólicas dentro de
parques eólicos (Emamia, 2010)
● Optimización de parámetros en controladores difusos (del Brío &
Molina, 2007)
● Optimización de parámetros de control en turbinas eólicas de
velocidad variable (Barrera-Cardenas, 2012)
● Minimización de setups en prensas de perforación con CNC
Introducción, motivación y aplicaciones
●
Algunas aplicaciones recientes (cont.)
● Planificación de procesos en líneas de manufactura para partes
múltiples (Musharavati, 2011)
● Planificación de rutas en UAV (Pehlivanoglu, 2012)
● Planificación de rutas y movimiento en AGV (Yun, 1996; Noguchi,
1997; Gemeinder, 2003; Davoodia, 2013; Tuncer, In Press)
● Planificación de fechas de liberación de órdenes en plantas de
ensamblado (Fallah-Jamshidia, 2011)
● Carga óptima de máquinas en celdas de FMS (Abazari, 2012) ● Control de manipuladores robóticos (Köker, In Press)
Dr. Ing. Martín Marchetta – Inteligencia Artificial II – Ingeniería en Mecatrónica 6/28
Introducción, motivación y aplicaciones
●
Las aplicaciones recorren distintos niveles de decisión de
acuerdo al horizonte de tiempo
●
Algunos tipos de aplicaciones observados en la literatura
● Optimización (ej: trazado de ductos, ubicación de plantas o
aerogeneradores, etc)
● Planificación deliberativa con horizonte de tiempo medio/largo (ej:
scheduling)
● Planificación deliberativa con horizonte de tiempo corto (ej: path
planning)
● Planificación/optimización en tiempo real (ej: control de
Introducción, motivación y aplicaciones
● Ventajas: por qué usar AG?
● Por ser algoritmos de búsqueda local, los AG requieren menos memoria
(usualmente una cantidad constante) que los algoritmos de búsqueda no local
● Combinan ventajas de una búsqueda ascendente (similar al hill climbing por
gradiente) con exploración aleatoria para escapar de óptimos locales (en este sentido son similares al temple simulado)
● Algunos operadores evolutivos (ej: cruzamiento o crossover) permiten aumentar
“la granularidad” de la búsqueda moviéndose a estados que están más alejados (“saltando” estados en el camino a la meta)
● Permiten el uso de esquemas en las soluciones (“plantillas”)
● Desventajas
● Si se dispone de una buena heurística, los algoritmos clásicos pueden dan
mejores soluciones y pueden ser más eficientes (AG son subóptimos en general)
Introducción a los Algoritmos Genéticos
Introducción a los Algoritmos Genéticos
●
Descripción intuitiva
● El algoritmo es iterativo
● Parte de una población (estado inicial) ● En cada iteración
– Se aplica una función de idoneidad (fitness) sobre los
individuos de esa población para asignarles un valor
– Se seleccionan “los más aptos” en base a la función de
idoneidad
– Se aplican operadores evolutivos sobre “los más aptos”
seleccionados, produciendo la nueva generación
– La nueva generación será la población de la siguiente iteración
● Este procedimiento iterativo se repite hasta que se cumple la
Dr. Ing. Martín Marchetta – Inteligencia Artificial II – Ingeniería en Mecatrónica 10/28
Introducción a los Algoritmos Genéticos
● Conceptos y analogía con la naturaleza
● Población
– Es el modelo de estado del algoritmo genético
– Está compuesta por individuos (es decir, soluciones)
– En cada iteración, se actualiza la población; es decir, partiendo de la
poblacióni se genera la poblacióni+1
● Individuo
– Es una posible solución al problema
– Cada individuo se representa como una instancia del genoma (también
llamado cromosoma)
● Genoma/Cromosoma
– Es el modelo de un individuo
– Define la forma en que se codifican los individuos (es decir, las
soluciones)
– Está compuesto por genes
Individuo 1
Población ...
G1 G2 ... Gm
Introducción a los Algoritmos Genéticos
● Conceptos y analogía con la naturaleza (cont.) ● Gen
– Cada uno de los parámetros o variables que
componen al genoma (cada uno de los parámetros que definen una solución)
● Genotipo
– Es una instancia del genoma: representa a un individuo en particular
(es decir, asigna valores a cada gen del genoma para el individuo en cuestión)
– Se suele utilizar los términos Genoma y Genotipo de manera
indistinta ● Fenotipo
– En el contexto biológico, es la “expresión observable” de un genotipo
(es decir, de un individuo)
– En el contexto de los AG, se representa con la función de idoneidad
que define “la calidad” de un individuo particular
Individuo 1
Población ...
G1 G2 ... Gm
Dr. Ing. Martín Marchetta – Inteligencia Artificial II – Ingeniería en Mecatrónica 12/28
Introducción a los Algoritmos Genéticos
●
Conceptos y analogía con la naturaleza (cont.)
● Operadores evolutivos
– Se aplican a los individuos de una población para generar la
siguiente generación
– En analogía con la naturaleza, son el mecanismo que hace
“evolucionar la especie” (mejorar las soluciones disponibles)
– Pueden involucrar
● un único individuo de la población (ej: mutación) ● Múltiples individuos (típicamente 2, ej: crossover o
Introducción a los Algoritmos Genéticos
●Procedimiento general
Población Individuo 1 Individuo n ... Parada? Inicialización Cálculo fitness Selección EvoluciónSelección del mejor Si
Dr. Ing. Martín Marchetta – Inteligencia Artificial II – Ingeniería en Mecatrónica 14/28
Introducción a los Algoritmos Genéticos
●
Procedimiento de selección
● La función de idoneidad debería devolver valores más altos para
individuos “más aptos”
● Alternativas de selección:
– Se selecciona solo el mejor (solo se aplican operadores de
mutación para generar la nueva generación)
– Se seleccionan los k mejores, donde k << n, y n es el tamaño
de la población
– Todos pueden seleccionarse de manera probabilística:
● El valor de idoneidad se utiliza como probabilidad del
individuo de ser seleccionado
● La selección entonces se hace de manera aleatoria
Introducción a los Algoritmos Genéticos
●
Procedimiento de evolución
● Cruzamiento (crossover):
– Se eligen pares n/2 pares de individuos, mediante el
procedimiento de selección descripto
– Por cada par, se genera aleatoriamente un punto de cruce – Se “cortan” los 2 individuos del par en el punto de cruce, y se
invierten sus partes
Fitness total
24+23+20+11 = 78
Ej. probabilidad I1
Dr. Ing. Martín Marchetta – Inteligencia Artificial II – Ingeniería en Mecatrónica 16/28
Introducción a los Algoritmos Genéticos
●
Procedimiento de evolución (cont.)
● Mutación
– En la naturaleza, en la reproducción, a veces se producen
“errores” en la copia del genoma de los padres
– Esto se modela mediante los operadores de mutación
– Una vez aplicado el operador de crossover, se selecciona un
elemento del genoma cada individuo y se lo modifica aleatoriamente de acuerdo a una probabilidad p (esta probabilidad es un parámetro del modelo)
Introducción a los Algoritmos Genéticos
● Condiciones de parada. Alternativas
● Convergencia
– La diferencia de “calidad” entre una población y la anterior es menor que un
determinado umbral
– La “calidad” puede medirse de distintas maneras, típicamente utilizando los
valores de idoneidad de los individuos de la población (ej: valor de idoneidad del mejor individuo, promedio de idoneidad de toda la poblacion, etc).
● Tiempo
– El algoritmo se para al cabo de un cierto tiempo de ejecución ● Cantidad de iteraciones
– El algoritmo se para luego de un cierto número de iteraciones ● Condiciones especiales e híbridas
– Pueden aplicarse condiciones especiales, ej: si hay restricciones duras,
aunque se cumpla el criterio de parada (ej: tiempo), puede continuarse con el algoritmo hasta que se hayan satisfecho estas restricciones
– Pueden combinarse los criterios anteriores con las condiciones especiales (ej:
Dr. Ing. Martín Marchetta – Inteligencia Artificial II – Ingeniería en Mecatrónica 18/28
Introducción a los Algoritmos Genéticos
●
Algoritmos genéticos desordenados (messy GA)
●
Los algoritmos genéticos clásicos
–
Codifican los genomas como cadenas de longitud fija con
genes en posiciones fijas
–
Esto trae problemas cuando los individuos son “ralos”:
pueden haber muchos genes que no estén presentes en
algunos individuos
●
Los algoritmos genéticos desordenados
–
Codifican los genomas como cadenas de longitud
variable
–
El orden de los genes también es variable
–
Cada instancia de un gen, además de contener su valor,
Introducción a los Algoritmos Genéticos
●
Algoritmos genéticos desordenados (cont.)
● Permiten además agrupar genes que tienen alta idoneidad,
permitiendo implementar eficientemente esquemas, en donde algunos genes se ubican de manera cercana para hacerlos evolucionar juntos
●
Implementación
● El procedimiento general es similar al de los algoritmos genéticos
clásicos (inicialización, selección, evolución, convergencia)
● Los cambios se relacionan con
– Codificación de individuos (formato de genes y genomas) – Implementación de operadores evolutivos
Dr. Ing. Martín Marchetta – Inteligencia Artificial II – Ingeniería en Mecatrónica 20/28
Introducción a los Algoritmos Genéticos
●
Algoritmos genéticos desordenados (cont.)
● Codificación
– Cada gen se codifica con un par de valores: (a) significado del gen; (b) valor
del gen
– Ej: en un AG para optimizar un controlador difuso, el genoma incluye genes
que representan las cláusulas difusas del controlador, en las cuales su orden no importa
● Operadores evolutivos
– El operador de mutación se mantiene
– El operador de crossover se reemplaza por una versión similar, llamada corte
y empalma (cut and splice)
– La diferencia es que el crossover utiliza el mismo punto de corte/empalme en
ambos individuos a combinar, mientras que en cut and splice se generan 2 puntos de corte/empalme aleatorios, uno para cada individuo que se combina
● Sobreespecificación y subespecificación
Introducción a los Algoritmos Genéticos
● Algoritmos genéticos contínuos ● Generalidades
– En ocasiones las variables a optimizar adoptan valores contínuos, por lo que los
algoritmos clásicos no se adecuan a este tipo de problemas
– Una variante, AG continuos, permite trabajar con variables (genes) que adopan
valores contínuos, los cuales se representan mediante punto flotante
– Usualmente los genes se normalizan para adoptar un valor en el intervalo [0, 1]
● Fitness: La función de fitness es ahora una función contínua de variable contínua, y
se utiliza de la misma manera que en los AG clásicos
● Selección: El procedimiento de selección también es similar en ambos casos (ej:
selección aleatoria con probabilidad proporcional a la idoneidad): se seleccionan los k mejores individuos, y se completa la población con n-k hijos (el tamaño de la
población permanece constante)
Dr. Ing. Martín Marchetta – Inteligencia Artificial II – Ingeniería en Mecatrónica 22/28
Introducción a los Algoritmos Genéticos
●
Algoritmos genéticos contínuos (cont.)
● Crossover: es donde radica la mayor diferencia
– En lugar de intercambiar 2 mitades de los genomas “padre”,
generando 2 hijos que pasan a la siguiente generación, se genera 1 solo hijo y los dos padres también pasan a la
siguiente generación
– La generación del hijo se realiza de la siguiente manera:
● Se seleccionan aleatoriamente 1 o más puntos de corte
● Se evolucionan los genes según alguna de estas opciones:
(a) a la derecha; (b) a la izquierda; (c) en medio; (d) sobre los puntos de corte
● Existen varias estrategias para evolucionar los genes, pero
la más utilizada es el promedio ponderado:
Introducción a los Algoritmos Genéticos
●
Algoritmos genéticos contínuos (cont.)
● Crossover (cont.):
– A fin de permitir que los valores de los genes puedan
evolucionar fuera del rango de los padres, se pueden seleccionar valores de α > 1 (extrapolación)
● Mutación:
– Se aplica de manera similar a los AG clásicos
– La diferencia es el dominio de la variable de la cual se toman
los valores aleatorios a reemplazar
● Ej: si los genes están normalizados a [0, 1], se selecciona
un gen aleatorio en el genoma a mutar, y se le asigna un valor aleatorio en [0, 1]
– El operador de mutación es muy importante para permitir al
Dr. Ing. Martín Marchetta – Inteligencia Artificial II – Ingeniería en Mecatrónica 24/28
Introducción a los Algoritmos Genéticos
● Evaluación del modelo: cómo saber si funciona?
● Generación de una cantidad razonable de casos de prueba (ej: 100,
1000, etc)
● Casos de prueba agrupados por tamaño y complejidad
● Los casos de prueba pueden ser reales (tomados de un log de un
sistema real) o simulados
● Se corre el algoritmo en las mismas condiciones en cada grupo de
casos de prueba
● Se toman medidas de ejecución. Típicamente
– Tiempo de ejecución
– Tiempo/iteraciones requeridas para converger – Calidad de la solución
● Se promedian estas mediciones por cada grupo, y se realiza un
Dr. Ing. Martín Marchetta – Inteligencia Artificial II – Ingeniería en Mecatrónica 26/28
Relación con otras técnicas de Soft Computing
●
Otras técnicas de soft computing relevantes para la cátedra son
Redes Neuronales y Lógica Difusa
●
Se pueden combinar AG con estas (y otras técnicas) de varias
maneras. Algunos ejemplos
● Combinación en paralelo o en serie para resolver distintas partes
de un problema.
– Ej: utilización de AG para planificación deliberativa con
horizonte de tiempo medio/largo + FLC para control directo de acciones indicadas por el AG
● Optimización de Fuzzy Logic Controllers (FLC)
– AG para selección/mutación de reglas simbólicas – Aprendizaje por BP para optimización de parámetros
Referencias
● [del Brío & Molina, 2007] B.M. del Brío y A. Sanz Molina, Redes Neuronales y Sistemas
Borrosos, 2da de., Alfaomega, 2007.
● [Emamia, 2010] A. Emamia and P. Noghrehb, New approach on optimization in placement
of wind turbines within wind farm by genetic algorithms, Renewable Energy 35 (7) (2010) 1559–1564.
● [Barrera-Cardenas, 2012] R. Barrera-Cardenas and M. Molinas, Optimal LQG Controller
for Variable Speed Wind Turbine Based on Genetic Algorithms, Energy Procedia 20 (2012) 207–216.
● [Marvizadeha, 2013] S. Zamiri Marvizadeha and F.F. Choobinehb, Reducing the number
of setups for CNC punch presses, Omega 41 (2)(2013) 226–235.
● [Musharavati, 2011] F. Musharavati, A.S.M. Hamouda, Modified genetic algorithms for
manufacturing process planning in multiple parts manufacturing lines, Expert Systems with Applications 38 (9) (2011) 10770–10779.
● [Pehlivanoglu, 2012] Y. Volkan Pehlivanoglu, A new vibrational genetic algorithm
enhanced with a Voronoi diagram for path planning of autonomous UAV, Aerospace Science and Technology 16 (1) (2012) 47–55.
● [Fallah-Jamshidia, 2011] S. Fallah-Jamshidia, N. Karimia, M. Zandiehb, A hybrid
multi-objective genetic algorithm for planning order release date in two-level assembly system with random lead times, Expert Systems with Applications 38 (11) (2011) 13549–13554.
Dr. Ing. Martín Marchetta – Inteligencia Artificial II – Ingeniería en Mecatrónica 28/28
Referencias
● [Tuncer, In Press] A. Tuncer, M. Yildirim, Dynamic path planning of mobile robots with improved genetic
algorithm, Computers & Electrical Engineering, In Press.
● [Abazari, 2012] A.M. Abazari, M. Solimanpur, H. Sattari, Optimum loading of machines in a flexible
manufacturing system using a mixed-integer linear mathematical programming model and genetic algorithm, Computers & Industrial Engineering 62 (2) (2012) 469–478.
● [Köker, In Press] R. Köker, A genetic algorithm approach to a neural-network-based inverse kinematics
solution of robotic manipulators based on error minimization, Information Sciences, In Press.
● [El-Mahdy, 2010] O.F.M. El-Mahdy, M.E.H. Ahmed, S. Metwalli, Computer aided optimization of natural gas
pipe networks using genetic algorithm, Applied Soft Computing 10 (4) (2010) 1141–1150.
● [Noguchi, 1997] N. Noguchi, H. Terao, Path planning of an agricultural mobile robot by neural network and
genetic algorithm, Computers and Electronics in Agriculture 18 (2–3) (1997) 187–204.
● [Yun, 1996] Wei-Min Yun, Yu-Geng Xi, Optimum motion planning in joint space for robots using genetic
algorithms, Robotics and Autonomous Systems 18 (4) (1996) 373–393.
● [Gemeinder, 2003] M. Gemeinder, M. Gerke, GA-based path planning for mobile robot systems employing
an active search algorithm, Applied Soft Computing 3 (2) (2003) 149–158.
● [Davoodia, 2013] M. Davoodia, F. Panahib, A. Mohadesc, S.N. Hashemi, Multi-objective path planning in
discrete space, Applied Soft Computing 13 (1) (2013) 709–720.
● [Hollstien, 1971] R.B. Hollstien, Artificial Genetic Adaptation in Computer Control Systems, PhD thesis,
University of Michingan, 1971
● [Holland, 1975] J.H. Holland, Adaptation in Natural and Artificial Systems, University of Michingan Press,