• No se han encontrado resultados

METAHEURÍSTICAS Y ALGORITMOS EVOLUTIVOS PARALELOS

N/A
N/A
Protected

Academic year: 2021

Share "METAHEURÍSTICAS Y ALGORITMOS EVOLUTIVOS PARALELOS"

Copied!
105
0
0

Texto completo

(1)

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

(2)
(3)

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

(4)

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

(5)
(6)

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

(7)

CONTACTOS

PROYECTOS

SOBRE EL CURSO

(años anteriores)

1 - Introducción

Complejidad algorítmica

IN STRUCTION S LOGARÍTMICO LINEAL CUADRÁTICO EXPONENCIAL CÚBICO

HARD

EASY

}

POLINÓMICO

O(n

p

)

IN STRUCCI ONE S / TIEMP O TAMAÑO de ENTRADA

(8)

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

(9)

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

(10)

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

(11)

¿ 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

(12)

Hallar métodos

inteligentes para

1 - Introducción

(13)

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

(14)
(15)

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

(16)

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

(17)

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

(18)

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

(19)
(20)

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

(21)

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)

(22)

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

(23)

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

(24)

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

(25)

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

(26)

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

(27)

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

(28)

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

(29)

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

(30)

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

(31)

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

(32)

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 global

b – función multimodal

s

dirección

de la búsqueda

N(s)

f(x)

x

óptimo local óptimo global

(33)

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

(34)

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

(35)

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

(36)

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

(37)

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

(38)

"Evolution is cleverer than you are"

FRANCIS CRICK

Elbow Room: the varieties of free will worth wanting

D. Dennett, 1984

(39)

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

(40)

“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

(41)

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

(42)

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,

(43)

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)

(44)

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

(45)

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

(46)

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.)

(47)

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

(48)

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

(49)

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

(50)

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

(51)

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

(52)

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

(53)
(54)

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

(55)

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

(56)

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

(57)

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

(58)

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

(59)

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

(60)

Problema estilo TSP: codificación binaria basada en representar

aristas presentes en una solución

e

12

nodo 0

nodo 2

nodo 4

nodo 1

nodo 3

e

13

e

03

e

01

e

14

e

24

e

34

e

23

e

04

1

0

1

1

0

0

1

0

1

Codificación binaria

Grafo G=(V,E,C)

Algoritmo Genético Simple

(61)

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

(62)

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

(63)

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 i

f

i

f

ps

(

)

Algoritmo Genético Simple

Operadores de selección

(64)

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

(65)

(

SPX

)

(

2PX

)

Algoritmo Genético Simple

Cruzamiento de n puntos

(66)

Puede generalizarse utilizando probabilidades para cada punto de

intercambio

(

UX

)

Algoritmo Genético Simple

Cruzamiento uniforme

(67)

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

(68)

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

(69)

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

(70)

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

(71)

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

(72)

Comportamiento típico de un AE

Algoritmos evolutivos

(73)

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

(74)

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

(75)

Goldberg presentó esta vista de aplicabilidad genérica en 1989

Algoritmos evolutivos

(76)

Algoritmos evolutivos

Resolución de problemas (Michalewicz, 2002)

Diversos AE proporcionarán diversos patrones de

Más específico,

menos aplicable

(77)

• 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

(78)

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

(79)

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

(80)

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 i

f

i

f

ps

(

)

(81)

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

)

(82)

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

M

01000

(fitness

64

)

11000

(fitness

576

)

(83)

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

T

x 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

(84)

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

(85)

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 ORIG

EDGE

i

C

i

C

f

C

ORIG

: costo del grafo original (todas las aristas presentes)

C: N

R : costo de una arista

(86)

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

i

en 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

(87)

Resolviendo un problema real

2 - Planificación de sistemas heterogéneos

Representación: enteros representan tareas

– Orientada a tareas (simple, 1D)

Función de fitness

– fitness = (-1)

makespan

Inicialización de la población

• Pueden utilizarse heurísticas simples de asignación de recursos

– Orientada a máquinas (matricial, 2D)

(88)

Resolviendo un problema real

2 - Planificación de sistemas heterogéneos

Explotación: recombinación

– Cruzamiento de un punto o cruzamiento uniforme

– Reparación es requerida para evitar repeticiones de tareas

Exploración: mutación

– Movimientos e intercambios de tareas:

1. Mover una

tarea aleatoria

desde

heavy

a

light

2. Mover

la tarea más larga

desde

heavy

a

la mejor máquina

3. Mover hacia

light

la

mejor tarea

4. Seleccionar una tarea de

heavy

y

buscar la mejor máquina

para moverla, de acuerdo a la planificación actual

(89)

Resolviendo un problema real

3 – Diseño de redes overlay

Una rey lógica (overlay) se construye sobre una red física

Sus nodos se conectan por enlaces virtuales, construidos usando

enlaces físicos reales de la red de base, que son fijos

El tráfico de datos sigue un camino (túnel) entre pares de nodos

Los túneles pueden reconfigurarse ante fallos en los enlaces lógicos

Los enlaces tienen restricciones de capacidad

(90)

Resolviendo un problema real

3 - Diseño de redes overlay

Representación: dos cromosomas para una solución

– Rutas (

routing gene

): lista de pares de nodos lógicos y lista de

nodos lógicos del túnel activo y del túnel secundario (disjuntos)

– Mapeo (

mapping gene

): contiene la lista de nodos físicos

(91)

Resolviendo un problema real

3 - Diseño de redes overlay

– Hijo copia rutas y mapeos de un padre

elegido al azar

– Se verifica que los túneles primario y

alternativo sean disjuntos

– Se chequean las restricciones de

capacidad en los enlaces

– El proceso se repite hasta que las

rutas están completas o no hay más

información en los padres

– Si el hijo no está completo, se corrige

con una construcción iterativa greedy

Cruzamiento específico

(92)

Resolviendo un problema real

3 - Diseño de redes overlay

Mutación: 5 operadores

– Mutación a nivel lógico: reconstruye un gen aleatorio de la

codificación de rutas usando el generador/corrector greedy

– Mutación a nivel físico: cambia la codificación de mapeo

seleccionando aleatoriamente un conjunto de genes de mapeo y

buscando un nuevo camino físico

– Mutación de enlace Tabu: selecciona aleatoriamente un enlace de

datos “tabu” que se elimina de la solución, junto con sus genes

asociados. Luego, el generador/corrector greedy se aplica para

reconstruir la solución

– Mejor mutación lógica: aplica una búsqueda local (acotada en

iteraciones) en la vecindad de la codificación de rutas

(93)
(94)

Múltiples procesos cooperan para resolver un problema común

Forma eficaz de procesamiento de la información que explota los

sucesos concurrentes para resolver problemas complejos

Procesamiento paralelo

Procesos concurrentes ejecutando en un mismo computador o

computadores interconectados

localmente

Procesamiento distribuido

Procesos concurrentes ejecutando en forma distribuida en varios

computadores

no localmente

interconectados

Ventajas:

Mayor capacidad y menor tiempo de proceso

Permite aprovechar la escalabilidad potencial de recursos

Computación de alta performance

(95)

Factores intuitivos para evaluar el desempeño:

Tiempo de ejecución y utilización de recursos disponibles

El

speedup

es una medida de la mejora de desempeño de una

aplicación al utilizar múltiples procesadores

Speedup algorítmico:

S

N

= T

1

/ T

N

T

1

: tiempo de ejecución del algoritmo secuencial

T

N

: tiempo del algoritmo paralelo utilizando N procesadores

La situación ideal es lograr un speedup lineal

(utilizar p procesadores y obtener una mejora de factor p)

Habitualmente, se obtiene speedup sublineal

Eficiencia computacional

:

E

N

= T

1

/ (N × T

N

)

E

N

= S

N

/ N, valor normalizado del speedup

Eficiencia cercana a 1: speedup casi ideal

Computación de alta performance

Métricas para evaluar el desempeño

(96)

Las técnicas de computación de alto desempeño se aplican a

los AE con los siguientes objetivos:

Mejorar la eficiencia

, para afrontar la lentitud de convergencia

en problemas cuya dimensión motiva el uso de poblaciones

numerosas o múltiples evaluaciones de funciones de fitness

costosas

Mejorar la calidad

del mecanismo de búsqueda genética

Los AE paralelos pueden explotar el paralelismo intrínseco del

mecanismo evolutivo, trabajando simultáneamente sobre

varias poblaciones para resolver el mismo problema

Permiten aprovechar características de paralelismo propias del

problema, analizando concurrentemente diferentes secciones

Algoritmos evolutivos paralelos

Conceptos

(97)

El principal criterio de clasificación surge de las diferentes

formas de organización de la población

Maestro-esclavo

: asigna a los procesadores distintas etapas del

mecanismo evolutivo

Subpoblaciones distribuidas

: enfoque orientado a la

distribución de datos en subpoblaciones semi-independientes

Celular

: considera una estructura espacial subyacente que

ordena los individuos de la población

Algortímicamente son diferentes a un AE secuencial

las poblaciones múltiples sustituyen la panmixia por

interacciones locales,

permiten alcanzar mejores resultados

Algoritmos evolutivos paralelos

Modelos

(98)

Estructura jerárquica:

Maestro controla la búsqueda

Esclavos realizan tarea subordinada

En general, se distribuye la evaluación de la función de fitness

Evolución panmíctica

AE paralelo modelo

maestro-esclavo

Algoritmos evolutivos paralelos

Modelo maestro–esclavo

(99)

Un operador de migración comunica información (individuos)

entre islas, incrementando la diversidad

Se distribuye la población en subpoblaciones (“islas”), que

evolucionan de modo semi-independiente

AE paralelo de

subpoblaciones distribuidas

Algoritmos evolutivos paralelos

Modelo de subpoblaciones distribuidas

(100)

Los individuos se ubican en una estructura espacial subyacente

Interacciones

restringidas a vecindades

AE paralelo

modelo celular

Algoritmos evolutivos paralelos

Modelo celular

(101)

Combinan varios modelos de paralelismo

Tratan de explotar las ventajas de más de un enfoque

Definen jerarquías de aplicación del paralelismo

Algoritmos evolutivos paralelos

Modelos híbridos

maestro

esclavo

celular

(102)

Los AE paralelos permiten mejorar la eficiencia computacional en

la resolución de problemas complejos

Inclusive son capaces de lograr speedup superlineal

Implementan un modelo de evolución diferente al secuencial, que

con frecuencia les permite alcanzar mejores resultados

Tienen una alta aplicabilidad para la resolución de problemas

complejos del mundo real:

Cuando se trabaja con funciones de fitness cuya evaluación

demanda altos requerimientos de cómputo

Cuando la complejidad del problema hace necesario utilizar

grandes poblaciones

Algoritmos evolutivos paralelos

Conclusiones

(103)

Múltiples bibliotecas de desarrollo disponibles públicamente que

encapsulan las funcionalidades para implementar AE paralelos

Simplifican el trabajo de implementación, haciendo que el

usuario se concentre en la resolución del problema y no en los

detalles de implementación del paralelismo.

Ejemplo en entorno de trabajo C/C++: MALLBA

Desarrollo transparente, solo debe incluirse un operador de

serialización de individuos, a ser usado en la migración

Otras implementaciones modernas de AE paralelos:

HeuristicsLab, ECJ, ParadisEO

Algoritmos evolutivos paralelos

Conclusiones

(104)
(105)

Referencias

Documento similar

optimización, entender su complejidad computacional y saber aplicarlos a la resolución de problemas. CE18 Conocer los aspectos fundamentales de los algoritmos metaheurísticos y

Como resultado de esta tesis se pudo concluir que los algoritmos evolutivos basados en Redes Bayesianas simplemente conectadas y los algoritmos de optimización basados en colonia de

INTRODUCCIÓN 11 I PARTE: PRÁCTICA ACTUAL DE LA PLANIFICACIÓN 23 A) INVERSIÓN PUBLICITARIA 25 B) ESTUDIO GENERAL DE MEDIOS 29 C) PROGRAMAS DE PLANIFICACIÓN TOM 36 1.

En primer lugar, en este estudio se ha evaluado el funcionamiento de tres algoritmos de optimización de funciones con la finalidad de minimizar la función de coste

Juntando estos dos frentes, usaremos los algoritmos de maximización de la difusión para encontrar usuarios semilla que posteriormente introduciremos como recomendación no

En esta tesis hemos desarrollado distintos algoritmos para la resolución de problemas de mínimos cuadrados: mínimos cuadrados ordinarios, generalizados, ponderados,

“provocaron una nueva forma de mirar”. g) Seminarios, profundizamos en anteriores proyectos USE vinculando con el proyecto en curso, profundizado conceptualmente diversos aspectos