Matemáticas Evolutivas: Algoritmos Genéticos

Anuncio
Matemáticas Evolutivas:
Algoritmos Genéticos
María Teresa Iglesias Otero
Departamento de Matemáticas
Universidade da Coruña
¿Cuál es la mejor forma de ...?
¿cuál es el camino más corto a ...?
¿cuál es la más barata entre ...?
Problemas de Optimización
Encontrar la mejor entre un conjunto de opciones (en
un espacio de búsqueda)
¿cómo medir la idea de mejor?
Problemas de Optimización
Encontrar
el elemento de D en
el que f (≥0) es
máxima
D: Conjunto de posibles soluciones (finito/infinito)
números, vectores, grafos, ...
f: D
R
f: función objetivo (de coste)
¿Cómo proceder para encontrar el máximo?
Métodos tradicionales
f’ = 0
f’’< 0
{∂f/∂x = 0, ∂f/∂y = 0,...}
f(x)=x²+exp(cos(x))-x,
f’(x)=2x-sen(x)exp(cos(x))+1=0
¿Cómo proceder para encontrar el máximo?
Métodos “Alternativos”
Método del alpinista
(Hill-climbing)
¿Cómo proceder para encontrar el máximo?
Métodos “Alternativos”
Búsqueda aleatoria
Búsqueda exhaustiva: Travelling Salesman Problem (TSP)
a
a
•
c
•c
b
•
•
e
•
d
b
d
e
N=100→99!≈101⁵⁶
Átomos del universo ≈10⁷⁸
N=5 →4!
Algoritmos Genéticos
Se inspiran en la teoría de la evolución de Darwin y en las ideas de Mendel
Definición (Koza, 1993)
El AG es un algoritmo matemático altamente paralelo que
transforma un conjunto (población) de objetos matemáticos
individuales, cada uno de los cuales se asocia con una aptitud,
en una población nueva (la siguiente generación) -usando
operaciones modeladas de acuerdo con el principio Darwiniano
de reproducción y supervivencia del más apto- y tras haberse
utilizado de forma natural una serie de operaciones genéticas
(sobre todo la recombinación sexual)
Esquema general de un Algoritmo Genético
1. Generar aleatoriamente una población de posibles soluciones de un
problema, representadas por una estructura de datos adecuada
2. Evaluar cada uno de los individuos de la población, asignándoles
una puntuación
3. Escoger de la población aquella parte que tenga una mejor
puntuación
4. Mutar (cambiar) y cruzar (combinar) las diferentes soluciones de la
parte elegida para reconstruir la población
5. Repetir hasta que se encuentre la solución deseada
¿Cómo se modela el fenómeno de la evolución?
Población no estática (P
P(t))
Tamaño de la población es fijo
(|P|=N)
Se permiten individuos repetidos
f: P
R
f: función de idoneidad
Algoritmos Genéticos
Individuos (cromosomas): datos codificados (cadenas binarias)
f: P
{0,1}l
s P, s = sl-1sl-2...si...s1s0
R
gen
0
1
2
3
...
28
29
30
31
00000 00001 00010 00011 ... 11100 11101 11110 11111
si
{0,1}
alelos
s = 11010(2 = 1·24+1·23+0·22+1·21+0·20(10
Representación del Problema del Viajante
a
•
a
•c
•
d
b
•
d
c
b
•
e
e
a ➟ c ➟ e ➟ b ➟ d
s = acebd
1 ➟ 3 ➟ 5 ➟ 2 ➟ 4
s = 13524
Esquema general de un Algoritmo Genético
1. Generar aleatoriamente una población de posibles soluciones de
un problema, representadas por una estructura de datos
adecuada
2. Evaluar cada uno de los individuos de la población, asignándoles
una puntuación
3. Escoger de la población aquella parte que tenga una mejor
puntuación
4. Mutar (cambiar) y cruzar (combinar) las diferentes soluciones
de la parte elegida para reconstruir la población
5. Repetir hasta que se encuentre la solución deseada
Algoritmos Genéticos
selección mediante ruleta
w
s
r
t
s=0101110
prob(s) = f(s)/∑r Pf(r)
AG: Selección mediante torneo
se baraja la población
se escogen n individuos (normalmente 2)
compiten entre sí: gana el más apto
debe barajarse n(=2) veces para seleccionar N padres
N=4
cadena calidad barajar ganador barajar ganador
s1
254
s2
s2
47
s4
s3
456
s1
s4
195
s3
s4
s3
s4
s1
s2
s3
s1
s3
s4
s3
y
y
s1
s3
Operadores genéticos
cruce
p1=♣♣♣♣♣♣
p2=♤♤♤♤♤♤
mutación
✂
h1=♣♣♣♣♤♤
h2=♤♤♤♤♣♣
d1=♣♣♣♣♤♤
d2=♦♤♤♤♣♣
Cruce:
s = 000|00
t = 111|11
s’ = 00011
t’ = 11100
Problema del viajante
¿cruce?
¿mutación?
abc|de
ace|db
abcde
abcdb
acede
ab_de
Un cruce para el TSP
p1 = 123|4567|89
p2 = 452|1876|93
h1 = ###|1876|##
h2 = ###|4567|##
h1 = #23|1876|#9
h2 = ##2|4567|93
5
h1 = 423|1876|#9
h2 = ##2|4567|93
¿mutación?
h2 = 182|4567|93
1
8
h’2 = 182|4567|39
Algoritmos Genéticos
begin
t←0
iniciar P(t)
evaluar P(t)
while (condición de parada) do
t←t+1
seleccionar P(t-1)’ de P(t-1)
aplicar cruce a P(t-1)’
aplicar mutación a P(t-1)’
P(t)←P(t-1)’
end
end
Algoritmos Genéticos
f: D = {0, 1}⁵
s
P(0)
01011
00001
00111
11110
10101
10100
00100
11100
11010
10011
f
121
1
49
900
441
400
16
784
676
361
R
s²
11111(2=31(10
máximo
(1/10)∑f(s) = 375
961
Algoritmos Genéticos
P’(0)
P(1)
f
11110
10101
11100
00111
10011
11110
11100
11010
01011
11110
11101
10110
11111
00100
10110
11011
11110
11001
01110
11011
841
484
961
16
484
761
900
625
296
761
(1/10)∑f(s)=613
f(11111(2)=f(31)=961
¡¡máximo!!
Algoritmos Genéticos
máximo
media
Poblaciones
multiplicidad
poblacional
poblacional
P(0)
P(1)
P(2)
P(3)
P(4)
900
961
1
1
375
613
Algoritmos Genéticos
P(1)
P’(1) P(2)
11101 111|11 11111
10110 110|11 11011
11111 1110|1 11100
00100 1111|0 11111
10110 111|11 11110
11011 101|10 10111
11110 1|1001 11011
11001 1|1011 11101
01110 1110|1 11100
11011 1111|0 11111
f
961
761
784
961
900
529
761
841
784
961
(1/10)∑f(s)=814
Algoritmos Genéticos
máximo
media
Poblaciones
multiplicidad
poblacional
poblacional
P(0)
P(1)
P(2)
P(3)
P(4)
900
961
961
1
1
3
375
613
814
Algoritmos Genéticos
máximo
media
Poblaciones
multiplicidad
poblacional
poblacional
P(0)
P(1)
P(2)
P(3)
P(4)
900
961
961
961
961
1
1
3
4
6
375
613
814
840
872
¿Por qué funcionan estos algoritmos?
P(0)
f
01011
00001
00111
11110
1 01 01
10100
00100
11100
11010
10011
121
1
49
900
441
400
16
784
676
361
1#### es mejor que 0####
593.66= ∑ f(1####)
6
≥ ∑
f(s) =375
10
Biología: Individuos que presentan semejanzas están emparentados
¿Por qué funcionan estos algoritmos?
Esquema: Conjunto de cromosomas que siguen un patrón
H = 01##1
{01001, 01011, 01101, 01111}
☟
o(H) = 3
☟
δ(H) = 4
|H| = 2l-o(H) = 25-3 = 4
Efecto del cruce sobre los esquemas
δ(01##1)=4
0|1##1
01#|#1
δ(1####)=0
0____
_1##1
1|####
1####
_####
01#__
___#1
δ(H)<<
➮ prob(destrucción) <<
Efecto de la mutación sobre los esquemas
o(H)=3
H = 01##1
o(1####)=1
11##1
00##1
01##0
1####
pdestruc(01##1)
o(H)<<
➮
> pdestruc(1####)
prob(destrucción) <<
0####
¿Por qué funcionan estos Algoritmos?
P(0)
f
01011
00001
00111
11110
1 01 01
10100
00100
11100
11010
10011
121
1
49
900
441
400
16
784
676
361
1#### es mejor que 0####
593.66= ∑ f(1####)
6
≥ ∑ f(s)
10
(=375)
900+441+400+784+676+361 =593.66
6
¿Por qué funcionan estos Algoritmos?
valor medio de H P(t)
valor medio de P(t)
H buen esquema
☛
☛
f(H,t) =
f(P,t) =
f(H,t)
f(P,t)
>1
∑q
H P(t)f(q)
n(H,t)
∑r
P(t)f(r)
N
¿Por qué funcionan estos Algoritmos?
Teorema de los esquemas (Holland 1975)
f(H,t)
n(H,t+1) ≥ n(H,t)·
·α(H,t)
f(P,t)
α(H,t) = 1- probmut·o(H) - probcruce·δ(H)/(l-1)
Los buenas estructuras presentes en la población
incrementan el nº de representantes generación a generación
Algunas aplicaciones
http://the-geek.org/docs/algen/
Adam Marczyk: Algoritmos genéticos y computación evolutiva (2004)
Problema del viajante (NP completo ”NP hard problem”)
Ingeniería aeroespacial: diseño de la forma del ala de un avión
supersónico
RoboCup: proyecto internacional para promocionar la robótica, la
inteligencia artificial y campos relacionados. (Torneo internacional de
fútbol cuyo reto es desarrollar un equipo de robots humanoides autónomos
que ganen a los humanos en 2050!) www.robocup.org
Ingeniería de sistemas: diseños de turbinas de molinos de parques
eólicos
Algunas aplicaciones
Diseño de una sala de conciertos con propiedades acústicas óptimas,
(2002) similar al Grosser Musikvereinsaal de Viena
Reconocimiento de imágenes: Resonancia Magnética
Radioterapia: Optimización de la forma, orientación e intensidad del
haz de los emisores de rayos X
Localización de puestos de urgencias
John Deere & Co.: generar programas de montaje en la planta de
Moline (Illinois) para la fabricación de maquinaria agrícola pesada
Volvo: OptiFlex para el diseño del montaje de la planta de Dublín
(Virginia) de un millón de metros cuadrados
United Distillers and Vintners: para administrar su inventario y sus
suministros
Algunas aplicaciones:
Elaboración de horarios (NP completo)
- Juegos Paralímpicos de 1992
- Aterrizajes en London Heathrow, Toronto, Sydney, Las Vegas, ...
- Horarios de centros de enseñanza
Un conjunto de profesores {P1, ..., Pm}
Un conjunto de clases {C1, ..., Ck}
Un conjunto de intervalos de tiempo (horas) {H1, ...,Hn}
Restricciones:
R. severas
Número predefinido de horas por profesor
un sólo profesor por clase
un profesor no puede estar en dos clases
R. débiles
Preferencias personales
Mafalda:
“La vida es linda, pero nadie confunda linda con
fácil”
Oscar Wilde:
“La verdad rara vez es pura, y nunca simple”
Descargar