METAHEURÍSTICAS Y ALGORITMOS
EVOLUTIVOS PARALELOS
Seminario de investigación
Universidad Autónoma del Estado de Morelos
Cuernavaca, Morelos, México, 2015
Sergio Nesmachnow (sergion@fing.edu.uy)
Centro de Cálculo, Facultad de Ingeniería
La universidad pública, líder en educación
superior e investigación en Uruguay.
Pública, autónoma y cogobernada por
profesores, estudiantes y egresados.
Facultad de Ingeniería:
10.000 estudiantes, 750 profesores
Nuestro grupo de investigación:
Centro de Cálculo (CeCal)
En 2013 tiene 120.000 estudiantes (3.6% de la población del país,
el más alto
registro relativo para una universidad en Latinoamerica
), y 10.000 profesores
1.
Problemas computacionales y complejidad algorítmica
2.
Problemas de optimización
3.
Heurísticas y metaheurísticas
4.
Computación evolutiva
5.
Algoritmos genéticos
6.
Algoritmos evolutivos paralelos
CONTACTOS
PROYECTOS
SOBRE EL CURSO
(años anteriores)
1 - Introducción
Contenido
•
Problemas “sencillos” y problemas “difíciles”
•
Sencillos: ordenamiento de valores, operaciones con matrices
•
Difíciles: problemas combinatorios
•
¿ Cómo evaluar la complejidad computacional ?
•
Comportamiento en caso promedio y peor caso
•
Independiente de la arquitectura y lenguaje de programación
•
Se analiza el
orden de magnitud
del número de instrucciones de un
algoritmo, en función del
tamaño de la entrada
•
Un algoritmo de complejidad O(g(n)) ejecutado con datos de
tamaño n, tendrá un tiempo de ejecución menor a |g(n)|
CONTACTOS
PROYECTOS
SOBRE EL CURSO
(años anteriores)
1 - Introducción
CONTACTOS
PROYECTOS
SOBRE EL CURSO
(años anteriores)
1 - Introducción
Complejidad algorítmica
IN STRUCTION S LOGARÍTMICO LINEAL CUADRÁTICO EXPONENCIAL CÚBICOHARD
EASY
}
POLINÓMICO
O(n
p)
IN STRUCCI ONE S / TIEMP O TAMAÑO de ENTRADA•
Clase P
•
Un problema pertenece a la clase P si puede ser resuelto en tiempo
polinomial
en una computadora
determinista
•
Ejemplos: ordenamiento, búsqueda binaria, operaciones matriciales
•
Clase NP
•
Un problema pertenece a la clase NP si puede ser resuelto en
tiempo polinomial, pero usando una computadora
no determinista
•
Fácil de
verificar
una solución, pero difícil
hallarla
CONTACTOS
PROYECTOS
SOBRE EL CURSO
(años anteriores)
1 - Introducción
P y NP
•
La clase P contiene problemas que pueden resolverse de modo
eficiente (rápidamente)
•
La clase NP contiene problemas cuya solución puede verificarse
de modo eficiente
•
En 1971 se planteó la pregunta: ¿Es P = NP?
•
Sigue siendo una pregunta abierta (es la
principal conjetura
de la teoría de la computación)
•
Se cree que P ≠ NP
, pero no ha podido ser demostrado
CONTACTOS
PROYECTOS
SOBRE EL CURSO
(años anteriores)
1 - Introducción
Clases P y NP
PROBLEMAS NP
•
Es la clase de los problemas difíciles de resolver
•
Ejemplos: ciclo hamiltoniano, SAT
•
TSP (Travelling Salesman Problem)
“Encontrar una permutación que
represente el recorrido de una serie
de ciudades de tal forma que todas
sean visitadas (sólo una vez),
minimizando la distancia total
viajada”
CONTACTOS
PROYECTOS
SOBRE EL CURSO
(años anteriores)
1 - Introducción
Problemas NP
•
¿ Es realmente difícil de resolver ?
Considerando n ciudades (tamaño de la entrada = n), la dimensión del
espacio de búsqueda (permutaciones) es: (n-1)!/2
• Para n=10, hay 181.440 permutaciones posibles
• Para n=12 (caso del ejemplo para Alemania) hay 19.958.400
permutaciones posibles
• Para n=20 hay
60.822.550.204.416.000
permutaciones posibles
•
Explorando 1.000 permutaciones por segundo, una búsqueda
exhaustiva demandaría un tiempo estimado de:
n=10
3 m
n=12
5h 30 m
n=20
1.928.670 años !
CONTACTOS
PROYECTOS
SOBRE EL CURSO
(años anteriores)
1 - Introducción
TSP
SE NECESITAN
ALGORITMOS
MÁS EFICIENTES
Hallar métodos
inteligentes para
1 - Introducción
•
Es necesario utilizar algoritmos de resolución
más eficientes
que la búsqueda exhaustiva, a medida que se incrementa el
tamaño del problema
•
La complejidad del algoritmo de resolución del problema se
incrementa de manera superpolinomial con el tamaño de la
entrada. Ejemplo: TSP O(n
2
2
n
)
•
Una clase particular de problemas NP son los
problemas de
optimización
•
Objetivo: hallar las soluciones óptimas de un problema
(de acuerdo a una función objetivo determinada)
CONTACTOS
PROYECTOS
SOBRE EL CURSO
(años anteriores)
1 - Introducción
Problemas NP
PROBLEMAS de OPTIMIZACIÓN
•
Optimización numérica
r
j
x
h
p
i
x
g
x
f
Max
Min
j i,
,...
1
0
)
(
,...,
1
0
)
(
a
sujeto
)
(
/
son
las variables de decisión
del problema
,
y
son las
restricciones
(de desigualdad y de igualdad,
respectivamente)
es la función a optimizar
x
(
,...,
)
1
x
k
x
x
)
(x
g
i
h
j(x
)
)
(x
f
CONTACTOS
PROYECTOS
SOBRE EL CURSO
(años anteriores)
2 - Optimización
•
Optimización combinatoria
•
Variables de decisión
discretas
(dominio discreto)
•
Soluciones se representan como
permutaciones
o
combinaciones
•
Ejemplo: TSP
•
Problemas de búsqueda
•
Encontrar un elemento que cumple un conjunto de propiedades,
entre un conjunto finito de elementos
•
Pueden formularse como problemas de optimización
(minimizar la distancia al elemento buscado)
PROBLEMAS de OPTIMIZACIÓN
PROYECTOS
SOBRE EL CURSO
CONTACTOS
(años anteriores)
2 - Optimización
•
Técnicas analíticas
•
Aplicables a un número muy reducido de problemas
•
Métodos exactos
•
Utilizan técnicas de enumeración total o parcial:
•
Backtracking
•
Programación dinámica
•
Branch & Bound
•
Basados en Programación Matemática:
•
Método Simplex
•
Método del punto interior
•
Únicos errores: redondeo, y eventualmente truncamiento
PROBLEMAS de OPTIMIZACIÓN
PROYECTOS
SOBRE EL CURSO
CONTACTOS
(años anteriores)
2 - Optimización
•
Métodos de aproximación
•
Encuentran una solución con error conocido a priori
•
Compromiso con el esfuerzo computacional requerido
(mayor esfuerzo, menor error)
•
Ejemplos: métodos markovianos, inferencia probabilística
•
Métodos aleatorios
•
Con cierta probabilidad, encuentran una solución con un error
máximo dado:
•
Método Monte Carlo
•
Método Las Vegas
•
Heurísticas y metaheurísticas
PROBLEMAS de OPTIMIZACIÓN
PROYECTOS
SOBRE EL CURSO
CONTACTOS
(años anteriores)
2 - Optimización
•
Métodos de resolución basados en procedimientos
conceptualmente simples para encontrar soluciones de
buena calidad (no necesariamente el óptimo) a problemas
difíciles, de un modo sencillo y eficiente
•
Los procedimientos de búsqueda a menudo están basados en
el sentido común o en emular fenómenos bien conocidos
•
“Heurística”: del griego heuriskein (υρισκειν), que significa
“encontrar” o “descubrir”
PROBLEMAS de OPTIMIZACIÓN
PROYECTOS
SOBRE EL CURSO
CONTACTOS
(años anteriores)
3 - Heurísticas
Conceptos
•
Agregar iterativamente elementos para construir una solución
•
El criterio de construcción es clave !
•
Ejemplo: métodos greedy (“ávido” o “goloso”)
•
Idea: construir una solución seleccionando
iterativamente los componentes de menor costo
PROBLEMAS de OPTIMIZACIÓN
PROYECTOS
SOBRE EL CURSO
CONTACTOS
(años anteriores)
3 - Heurísticas
Heurísticas constructivas
•
Para algunos problemas con estructura
particular, la solución construida es óptima
(en general, NO es el caso)
o
7
2
3
3
10
7
5
3
5
•
Método greedy para la instancia del TSP definida por el
grafo:
Origen del ciclo
PROBLEMAS de OPTIMIZACIÓN
PROYECTOS
SOBRE EL CURSO
CONTACTOS
(años anteriores)
3 - Heurísticas
o
7
2
3
3
10
7
5
3
5
•
Greedy - Paso 1:
PROBLEMAS de OPTIMIZACIÓN
PROYECTOS
SOBRE EL CURSO
CONTACTOS
(años anteriores)
3 - Heurísticas
o
7
2
3
3
10
7
5
3
5
•
Greedy - Paso 2:
PROBLEMAS de OPTIMIZACIÓN
PROYECTOS
SOBRE EL CURSO
CONTACTOS
(años anteriores)
3 - Heurísticas
o
7
2
3
3
10
7
5
3
5
•
Greedy - Paso 3:
Arista no
admitida
×
PROBLEMAS de OPTIMIZACIÓN
PROYECTOS
SOBRE EL CURSO
CONTACTOS
(años anteriores)
3 - Heurísticas
o
7
2
3
3
10
7
5
3
5
•
Greedy - Paso 3:
PROBLEMAS de OPTIMIZACIÓN
PROYECTOS
SOBRE EL CURSO
CONTACTOS
(años anteriores)
3 - Heurísticas
o
7
2
3
3
10
7
5
3
5
•
Greedy - Paso 4:
PROBLEMAS de OPTIMIZACIÓN
PROYECTOS
SOBRE EL CURSO
CONTACTOS
(años anteriores)
3 - Heurísticas
o
7
2
3
3
10
7
5
3
5
•
Greedy - Paso 5:
Solución construida:
costo 22
PROBLEMAS de OPTIMIZACIÓN
PROYECTOS
SOBRE EL CURSO
CONTACTOS
(años anteriores)
3 - Heurísticas
o
7
2
3
3
10
7
5
3
5
•
Sin embargo, es posible obtener:
Solución alternativa:
costo 20
PROBLEMAS de OPTIMIZACIÓN
PROYECTOS
SOBRE EL CURSO
CONTACTOS
(años anteriores)
3 - Heurísticas
•
Mejor alternativa para optimización. Obtiene mejores
resultados que los métodos greedy
•
Como contrapartida, requiere mayor esfuerzo computacional
•
Vecindad: a cada solución s se le asigna un conjunto
de vecinos
•
En general, se define especificando los cambios sobre
s para obtener sus vecinos (movimiento)
•
Idea: reemplazar la solución inicial por una mejor solución
definida en una vecindad
S
S
N
:
2
S
s
N
(
)
)
(s
N
3 - Heurísticas
•
Búsqueda iterativa de mejores soluciones en una estructura de
vecindades N(s)
•
El algoritmo se detiene luego de encontrar un óptimo local o
global o luego de un número de iteraciones
3 - Heurísticas
Búsqueda Local Iterada (IILS)
óptimo
s
dirección
de la búsqueda
N(s*)
f(x)
x
•
Qué tan efectiva es la Búsqueda Local Iterada ?
3 - Heurísticas
Búsqueda Local Iterada (IILS)
a – función unimodal
s
dirección
de la búsqueda
N(s)
f(X)
x
óptimo globalb – función multimodal
s
dirección
de la búsqueda
N(s)
f(x)
x
óptimo local óptimo global•
Métodos eficientes y precisos para hallar soluciones
de calidad a problemas de optimización complejos
•
“High-level strategy that combines a set of underlying simpler
operation techniques (usually heuristics) aimed at obtaining a
more powerful procedure” (Glover, 1986)
•
Principales características:
1.
Estrategias
que
guían la búsqueda,
emplean
heurísticas subordinadas
2.
Admiten una descripción abstracta
de alto nivel
3.
Utilización genérica
(no específica para una clase de problemas)
4.
Deben ser
instanciadas
para clase concreta de problemas a resolver
3 – Metaheurísticas
•
Hallar eficientemente (rápidamente) soluciones de calidad
(con valores de la función objetivo cercanos al óptimo)
•
Cubrir el espacio de soluciones sin quedar atrapadas
en zonas específicas (óptimos locales)
3 - Metaheurísticas
mejorar soluciones de calidad
explotación
•
Principales objetivos:
1.
Hallar
soluciones de buena calidad
para problemas de optimización
2.
Cubrir el espacio de búsqueda
sin quedar atrapadas
•
Dos conceptos fundamentales
1.
Exploración
del espacio de búsqueda o
diversificación
2.
Explotación
de buenas soluciones o
intensificación
3 - Metaheurísticas
Objetivos y conceptos
cubrir el espacio de búsqueda
exploración
•
Lista de ejemplos (no exhaustiva)
•
Simulated Annealing
•
Tabu Search
•
Greedy Randomized Adaptive
Search Procedure
•
Variable Neighborhood Search
•
Guided Local Search
•
Ant Colony Optimization
•
Particle Swarm Optimization
•
Evolutionary Algorithms
3 - Metaheurísticas
Metaheurísticas y clasificación
•
Varios criterios de clasificación
•
Considerando el número
de soluciones tentativas:
basadas en trayectoria
(una única solución) vs.
basadas en población
•
La mayoría de los problemas complejos del mundo real no pueden
resolverse usando algoritmos polinomiales
•
Para muchos problemas el mejor algoritmo conocido requiere
tiempo exponencial
•
En muchas aplicaciones prácticas, no es posible siquiera
determinar si existe una solución eficiente
3 - Metaheurísticas
Aplicaciones
HEURÍSTICAS Y METAHEURÍSTICAS CONSTITUYEN ALTERNATIVAS PARA
HALLAR SOLUCIONES DE BUENA CALIDAD EN TIEMPOS RAZONABLES
"Evolution is cleverer than you are"
FRANCIS CRICK
Elbow Room: the varieties of free will worth wanting
D. Dennett, 1984
•
Es una de las teorías científicas FORMIDABLES (Penrose, 2000)
•
Soportada por los hechos y las evidencias
•
Nunca refutada por ningún argumento o evidencia
“Revolución científica”
1500
1700
1800
1900
2000
Astronomía, Física
1600
Copérnico, Kepler, Galileo, Newton
Evolución
Ciencias Naturales
Lamarck, Darwin, Wallace
Revolución de la física
Física
Einstein, Bohr, Schrodinger
SOBRE EL CURSO
4 – Computación evolutiva
Teoría de la evolución
“On the Origin of Species by Means
of Natural Selection, or the
Preservation of Favoured Races in
the Struggle for Life”
Charles Darwin, 1859
SOBRE EL CURSO
4 – Computación evolutiva
Teoría de la evolución
•
Teoría evolutiva que plantea el concepto de evolución de las
especies a través de un proceso de selección natural
•
Conceptos clave:
•
Competencia entre individuos
•
Selección natural
•
Transmisión hereditaria
•
Reproducción y mutación
SOBRE EL CURSO
4 – Computación evolutiva
Neo-darwinismo
Alfred
Wallace
•
Metaheurísticas que emulan la evolución biológica
•
Interpretan la naturaleza como una formidable maquinaria de
resolver problemas
•
Aplican
una analogía de los procesos evolutivos naturales
para
resolver problemas de búsqueda y optimización
•
Trabajan con una población (de representaciones) de soluciones
•
Principios:
selección natural
(aptitud), reproducción
(
recombinación
;
mutación
) y
diversidad genética
SOBRE EL CURSO
4 – Computación evolutiva
Conceptos
•
Siguen la idea de la
supervivencia de los
individuos más aptos
, evaluando la aptitud
de acuerdo al problema a resolver,
•
Un AE trabaja sobre una población de
individuos
que representan
soluciones potenciales al problema a resolver
•
Una
función de fitness
evalúa los individuos de acuerdo a su
adecuacion para la resolución del problema
•
La evolución es un ciclo con cuatro etapas:
1.
Evaluación
: se asigna un valor de fitness a cada individuo
2.
Selección
: se determinan individuos adecuados para crear la nueva
generación
3.
Aplicación de los operadores evolutivos
: se genera un conjunto de
descendientes a partir de los individuos seleccionados, mediante
operadores que emulan la evolución natural
4.
Reemplazo
: mecanismo que realiza el recambio generacional
SOBRE EL CURSO
4 – Computación evolutiva
Algoritmos evolutivos (AE)
•
Esquema genérico de un algoritmo evolutivo (AE) trabajando
sobre una población P
Inicializar(P(0));
generacion = 0;
mientras (no CriterioParada) hacer
Evaluar(P(generacion));
Padres = Seleccionar(P(generacion));
Hijos = Aplicar Operadores Evolutivos(Padres);
NuevaPoblacion = Remplazar(Hijos,P(generacion));
generacion++;
P(generacion) = NuevaPoblacion;
fin
retornar Mejor Solución Encontrada
SOBRE EL CURSO
4 – Computación evolutiva
Definición y conceptos
•
Esquema genérico de un algoritmo evolutivo (AE) trabajando
sobre una población P
Inicializar(P(0));
generacion = 0;
mientras (no CriterioParada) hacer
Evaluar(P(generacion));
Padres = Seleccionar(P(generacion));
Hijos = Aplicar Operadores Evolutivos(Padres);
NuevaPoblacion = Remplazar(Hijos,P(generacion));
generacion++;
P(generacion) = NuevaPoblacion;
fin
retornar Mejor Solución Encontrada
SOBRE EL CURSO
4 – Computación evolutiva
Definición y conceptos
La población se inicializa mediante
un mecanismo aleatorio o guiado por
heurísticas específicas
•
Esquema genérico de un algoritmo evolutivo (AE) trabajando
sobre una población P
Inicializar(P(0));
generacion = 0;
mientras (no
CriterioParada
) hacer
Evaluar(P(generacion));
Padres = Seleccionar(P(generacion));
Hijos = Aplicar Operadores Evolutivos(Padres);
NuevaPoblacion = Remplazar(Hijos,P(generacion));
generacion++;
P(generacion) = NuevaPoblacion;
fin
retornar Mejor Solución Encontrada
SOBRE EL CURSO
4 – Computación evolutiva
Definición y conceptos
determina el fin del ciclo evolutivo
(# generaciones, variación del fitness,
estimaciones del error, etc.)
•
Esquema genérico de un algoritmo evolutivo (AE) trabajando
sobre una población P
Inicializar(P(0));
generacion = 0;
mientras (no CriterioParada) hacer
Evaluar
(P(generacion));
Padres = Seleccionar(P(generacion));
Hijos = Aplicar Operadores Evolutivos(Padres);
NuevaPoblacion = Remplazar(Hijos,P(generacion));
generacion++;
P(generacion) = NuevaPoblacion;
fin
retornar Mejor Solución Encontrada
SOBRE EL CURSO
4 – Computación evolutiva
Definición y conceptos
•
Esquema genérico de un algoritmo evolutivo (AE) trabajando
sobre una población P
Inicializar(P(0));
generacion = 0;
mientras (no CriterioParada) hacer
Evaluar(P(generacion));
Padres =
Seleccionar
(P(generacion));
Hijos = Aplicar Operadores Evolutivos(Padres);
NuevaPoblacion =
Remplazar
(Hijos,P(generacion));
generacion++;
P(generacion) = NuevaPoblacion;
fin
retornar Mejor Solución Encontrada
SOBRE EL CURSO
4 – Computación evolutiva
Definición y conceptos
seleccción y reemplazo definen las
características del AE
•
Esquema genérico de un algoritmo evolutivo (AE) trabajando
sobre una población P
Inicializar(P(0));
generacion = 0;
mientras (no CriterioParada) hacer
Evaluar(P(generacion));
Padres = Seleccionar(P(generacion));
Hijos =
Aplicar Operadores Evolutivos
(Padres);
NuevaPoblacion = Remplazar(Hijos,P(generacion));
generacion++;
P(generacion) = NuevaPoblacion;
fin
retornar Mejor Solución Encontrada
SOBRE EL CURSO
4 – Computación evolutiva
Definición y conceptos
Los operadores evolutivos definen la
exploración del espacio de búsqueda
•
Tres paradigmas fundamentales:
•
•
Algoritmos genéticos (Genetic algorithms – GA)
•
Programación genética (Genetic programming – GP)
•
Evolución de programas (estucturas con contenido semántico).
•
Evolución basada en selección estocástica y mutación.
•
Estrategias de evolución (Evolution strategies – ES )
•
Evoluciona variables (en general números reales), del problema y
de la propia técnica
•
Operadores específicos para el trabajo con números reales
SOBRE EL CURSO
4 – Computación evolutiva
Paradigmas
•
Robustos y muy versátiles para problemas en múltiples áreas
•
La búsqueda evolutiva define un esquema genérico
•
Se aplica sobre representaciones, es útil para cualquier problema
codificable
•
Problemas con espacio de soluciones de gran dimensión y
complejos, donde fallan los métodos de hill-climbing
•
La
población
de soluciones los hace menos sensibles a quedar
atrapados en óptimos locales
•
No requieren conocimientos específicos sobre el problema
•
Enfoque de caja negra (fitness para evaluar a los individuos)
SOBRE EL CURSO
4 – Computación evolutiva
Ventajas
•
Sin incorporar conocimiento del problema, pueden tener
problema para hallar los óptimos globales
•
Su eficiencia computacional puede ser baja, demandando
grandes recursos de cómputo para problemas complejos
•
Solución: AE paralelos
SOBRE EL CURSO
4 – Computación evolutiva
Desventajas
•
Sugeridos por John Holland en la década de 1970
•
Formalizados y sistematizados por David Goldberg
en la década de 1980
•
Características
•
Técnica estocástica (probabilística)
•
Representación de soluciones (usualmente binaria)
•
Operadores evolutivos:
•
Cruzamiento (operador de explotación,
principal
)
•
Mutación (operador de exploración,
secundario
)
•
Selección basada en aptitud (fitness, adecuación
al problema)
John Holland
David Goldberg
Algoritmos genéticos
Conceptos
1.
Una representación de las soluciones candidatas
2.
Un procedimiento para crear una población inicial de
posibles soluciones (normalmente es un proceso aleatorio)
3.
Una función de evaluación que representa al “ambiente”,
clasificando las soluciones en términos de su aptitud
4.
Un conjunto de operadores de evolución que alteran la
composición de los individuos de la población a través de
las generaciones
5.
Una configuración paramétrica (tamaño de la población,
probabilidad de cruzamiento, probabilidad de mutación,
criterio de parada, etc.)
Algoritmos genéticos
Componentes básicos
•
En general trabajan sobre una población de tamaño fijo
•
El tamaño de la población debe permitir mantener
diversidad en las soluciones, sin sacrificar la eficiencia
computacional de la búsqueda
•
Las probabilidades de aplicación de los operadores
evolutivos definen el balance entre exploración del espacio
de búsqueda y explotación de buenas soluciones
•
El criterio de parada puede especificar un esfuerzo
prefijado (#generaciones) o aspectos de la evolución
(variaciones en los valores de fitness)
•
Se determinan los valores apropiados mediante análisis
Algoritmos genéticos
•
Existen múltiples propuestas y variantes de algoritmos
genéticos
•
Se presentará la propuesta original de Goldberg (1989),
conocida como ALGORITMO GENÉTICO SIMPLE (AGS)
•
Características:
•
Representación binaria
•
Selección proporcional (rueda de ruleta)
•
Cruzamiento de un punto
•
Mutación de inversión de valor de bit
Algoritmos genéticos
•
Habitualmente se utiliza la representación binaria
•
A la cadena se le llama cromosoma
•
Existen subcadenas (en la cadena general), que se
denominan genes
•
Al valor en cada posición se le llama alelo
1
0
1
1
0
0
1
0
1
cromosoma
gen
1
0
1
0
Algoritmo Genético Simple
•
La representación es el
genotipo
que se corresponde con una
solución al problema (
fenotipo
)
•
Existe un proceso de
codificación
(y su inverso,
decodificación
)
que permite pasar de fenotipo a genotipo y viceversa
• Codificación
: función de correspondencia f
C: S
{0,1}*
(siendo S el espacio de soluciones del problema)
• Decodificación
: función inversa f
D: {0,1}*
S, puede ser parcial
•
La complejidad de f
C
y de f
D
depende de las características del
problema y de las variables a codificar
•
La longitud de la representación depende del problema (número
de variables, funciones objetivo, dimensión del dominio), y de
características de la solución (precisión, etc.)
Algoritmo Genético Simple
Representación
•
Problema estilo TSP: codificación binaria basada en representar
aristas presentes en una solución
e
12nodo 0
nodo 2
nodo 4
nodo 1
nodo 3
e
13e
03e
01e
14e
24e
34e
23e
041
0
1
1
0
0
1
0
1
Codificación binaria
Grafo G=(V,E,C)
Algoritmo Genético Simple
•
En cada generación se aplican los
operadores evolutivos
–
Se
seleccionan
padres de acuerdo a su valor de fitness
–
Se
cruzan
los padres para producir descendientes
–
Se
mutan
aleatoriamente los nuevos descendientes
–
Se insertan los nuevos individuos creados, que
reemplazan
a
algunos de la generación anterior
•
Son operadores probabilísticos
–
Se aplican de acuerdo a probabilidades
•
Actúan sobre los
genotipos
y no sobre los fenotipos de los
individuos
Algoritmo Genético Simple
Operadores evolutivos
esquema de
selección
(aptitud)
•
Objetivo: mantener las características de los individuos
mejor adaptados
Algoritmo Genético Simple
Selección
buenas características
malas características
•
Selección proporcional
•
Implementada por la técnica de
rueda de ruleta
•
Asigna una probabilidad de selección proporcional
al fitness relativo
•
Selección por rango (parámetro k)
•
Se ordenan los individuos según su fitness y se seleccionan
los k mejores
•
Selección por torneo (parámetros k y r)
•
Se eligen k individuos y se seleccionan los r de mejor fitness
P j j if
i
f
ps
(
)
Algoritmo Genético Simple
Operadores de selección
punto de cruce
(cruzamiento de
un punto)
progenitores
descendientes
operador de
cruzamiento
•
Objetivo: garantizar la explotación de buenas regiones del
espacio de búsqueda
Algoritmo Genético Simple
Cruzamiento
buenas características
malas características
(
SPX
)
(
2PX
)
Algoritmo Genético Simple
Cruzamiento de n puntos
•
Puede generalizarse utilizando probabilidades para cada punto de
intercambio
(
UX
)
Algoritmo Genético Simple
Cruzamiento uniforme
•
Ciertas representaciones requieren cruzamientos específicos
•
Para conservar las características de las soluciones del problema
•
TSP
solución debe ser un ciclo, representado por una
permutación,
no es posible cruzar soluciones directamente
•
Otras codificaciones admiten operadores de cruzamiento con
operaciones específicas
•
La codificación con números reales admite cruzamientos
aritméticos (promedio, combinación lineal, etc)
•
En otros casos deben implementarse operadores de cruzamiento
dependientes del problema
•
Para asegurar factibilidad de soluciones
•
Para conservar significado semántico
Algoritmo Genético Simple
operador
de mutación
descendientes
descendientes mutados
•
Objetivo: introducir diversidad (aleatoriamente) en los
individuos de la población, posibilitando la exploración de
diferentes secciones del espacio de búsqueda
Algoritmo Genético Simple
Mutación
•
Simple modificación de la codificación en una posición
determinada aleatoriamente
•
Sigue la analogía con la mutación en la evolución natural
Algoritmo Genético Simple
•
Ciertas representaciones no admiten mutar un solo valor, y
requieren operadores específicos
•
Para conservar las características de las soluciones del problema
•
TSP
solución debe ser un ciclo, representado por una
permutación,
no es posible mutar un alelo (ciudad) en la
permutación, pues un valor quedaría repetido
•
Otras codificaciones admiten operadores de mutación con
operaciones específicas
•
La codificación con números reales admite mutación gaussiana
(o utilizando otras distribuciones)
•
En otros casos deben implementarse operadores de mutación
dependientes del problema
Algoritmo Genético Simple
Operadores de mutación
•
Fase temprana:
•
Distribución de individuos
cuasi-aleatoria
•
Fase intermedia:
•
La poblacion comienza a concentarse
sobre/alrededor de las colinas
•
Fase final:
•
La población se concentra sobre los óptimos
locales
Algoritmos evolutivos
Comportamiento típico de un AE
Algoritmos evolutivos
•
Son beneficiosas las ejecuciones largas?
•
Depende de cuanto valor se le asigna a los últimos progresos
•
Puede ser más beneficioso hacer muchas ejecuciones cortas
Algoritmos evolutivos
•
Vale la pena invertir esfuerzo en inicializaciones inteligentes?
•
Enfoque útil si se conocen buenos métodos de inicialización
para el problema (heurísticas que funcionen como “semilla”
para la población inicial)
Algoritmos evolutivos
Goldberg presentó esta vista de aplicabilidad genérica en 1989
Algoritmos evolutivos
Algoritmos evolutivos
Resolución de problemas (Michalewicz, 2002)
Diversos AE proporcionarán diversos patrones de
Más específico,
menos aplicable
• One-Max: problema de maximización de función contínua o
discreta, monótona creciente en un intervalo
•
Caso de estudio: maximización de la función cuadrática
f(x) = x
2
para x
Z, en el intervalo D=[0,31]
•
Algoritmo:
–
Representación binaria de enteros
–
Tamaño de población (ejemplo para el análisis gráfico): 4 individuos
–
Operadores:
•
Selección proporcional
•
Cruzamiento de un punto
•
Mutación de inversión de bit
Algoritmo Genético Simple
Algoritmo Genético Simple
Ejemplo: maximizar f(x) = x
2
1. Representación de soluciones
•
Código binario, representación de enteros
•
Dominio del problema: intervalo D=[0,31]
•
Se utilizan 5 bits para la representación de soluciones
0
1
0
1
1
codificación
decodificación
5
0
11
29
15
00000
11101
00101
01011
01111
Algoritmo Genético Simple
Ejemplo: maximizar f(x) = x
2
2. Evaluación de individuos
•
En este caso, se optimiza una función matemática, por lo cual la
función de fitness es la propia función a optimizar
•
No es el caso general en problemas más complejos
individuo
índice
fitness
% del total
Algoritmo Genético Simple
Ejemplo: maximizar f(x) = x
2
3. Selección proporcional
•
Slots proporcionales a los valores de fitness relativo
•
Individuos mejor adaptados tendrán más posibilidades de obtener
copias en la siguiente generación
P j j if
i
f
ps
(
)
Algoritmo Genético Simple
Ejemplo: maximizar f(x) = x
2
4. Recombinación
•
Combina características de los individuos seleccionados
en la etapa anterior
•
Aplicado con una probabilidad p
C
[0.6, 1.0]
•
Ejemplo: cruzamiento de un punto (SPX)
•
Selecciona uniformemente un punto de corte l
[1, #i - 1]
padres
01
|
101
(fitness
169
)
11
|
000
(fitness
576
)
hijos
01000
(fitness
64
)
11101
(fitness
841
)
Algoritmo Genético Simple
Ejemplo: maximizar f(x) = x
2
5. Mutación
•
Modifica aleatoriamente
(unos pocos componentes)
de un
individuo
•
Aplicado con una probabilidad p
M
[1×10
-3, 0.1]
•
Mutación de inversión de bit
•
Muta un alelo con probabilidad p
M01000
(fitness
64
)
11000
(fitness
576
)
Resolviendo un problema real
1 – Diseño de redes confiables
•
Problema de Steiner generalizado (GSP)
– G=(V,E,C), no dirigido. V: conjunto de nodos, E: conjunto de aristas,
C: costos asociados a las aristas de G
– Subconjunto fijo T
V (
nodos terminales
), 2
n
T= |T|
n = |V|
– Matriz n
Tx n
T,simétrica R=r
ij
Z
+de
requisitos de conectividad
(caminos disjuntos entre todo par de nodos terminales i,j
T)
•
Hallar subgrafo de costo mínimo G
T
G tal que entre i,j
T
existan r
ij
caminos disjuntos en G
T
•
Sobre nodos de Steiner no se plantean requisitos de conectividad
–
Opcionalmente pueden ser utilizados para asegurar conectividad o
Resolviendo un problema real
1 – Diseño de redes confiables
•
Representación:
–
Binaria de aristas, indexada en 0,|E|-1
–
Operadores sencillos de implementar,
pueden generar soluciones no factibles
–
Descartar o penalizar soluciones no
factibles (Esbensen, 1994)
•
Chequeo de factibilidad:
1.
Verificar grados de nodos terminales
Resolviendo un problema real
1 – Diseño de redes confiables
•
Operadores tradicionales:
–
Selección proporcional
–
Cruzamiento de dos puntos o uniforme
–
Mutación de inversión de bit
–
Ford-Fulkerson para corrección de soluciones no factibles
•
Función de fitness
–
Evalúa el costo del grafo (red) representado por una solución
1 0)
(
*
)
(
E i ORIGEDGE
i
C
i
C
f
C
ORIG: costo del grafo original (todas las aristas presentes)
C: N
R : costo de una arista
•
Heterogeneous computing scheduling problem (HCSP)
– Conjunto de computadores heterogéneos P = {m
1, m
2, ..., m
M}
– Conjunto de tareas T = {t
1, t
2, ..., t
N} a ser ejecutadas en P
– Tiempo de ejecución de tareas ET: P
T
R
•
Tiempo requerido para ejecutar la tarea t
ien la máquina m
j– Objetivo: encontrar una planificación (función f: T
N
S
M) que
minimiza el
makespan
Resolviendo un problema real
2 – Planificación de sistemas heterogéneos
ti
em
po