Algoritmos Genéticos Y Optimización Heurística

Anuncio
Algoritmos Genéticos
Y
Optimización Heurística
Dr. Adrian Will
Grupo de Aplicaciones de Inteligencia Artificial
Universidad Nacional de Tucumán
[email protected]
Cuando Aplicar métodos Heurísticos
„
„
„
„
Cuando no se pueda aplicar otro método, en general
por falta de hipótesis para aplicar algoritmos
determinísticos (funciones no derivables o no
continuas, o que no son funciones, etc.)
Problemas ruidosos o mal condicionados (los
algoritmos heurísticos o aleatorios tienden a ser
robustos y poco sensibles a la presencia de ruido)
Existencia de gran cantidad de óptimos locales
(donde los algoritmos tradicionales basados en
derivadas quedan atrapados)
Problemas reales de gran complejidad, donde es
suficiente con encontrar una buena solución al
problema, aunque no sea necesariamente el óptimo
global
Problemas Reales – Función de Rastrigin
Modelo Matemático Fábrica - 2003
Métodos Aleatorios
Búsqueda Tabú
Hill Climbing
Métodos Heurísticos
Simulated Annealing
Algoritmos Genéticos
Ant Colony Optimization
Clasificación de métodos Heurísticos
ƒ Secuenciales (consideran una sola solución en cada paso)
ƒ Paralelos (consideran muchas soluciones a la vez, en cada paso)
ƒ Evolutivos (se basan en la Evolución en el tiempo de un individuo o
Población)
ƒ No Evolutivos
ƒ Greedy (o “plus strategy”, sólo acepta solución si es mejor que la
actual)
ƒ No Greedy (acepta soluciones no tan buenas como la actual, con
alguna probabilidad)
ƒ Mono Objetivo (el objetivo del problema es minimizar 1 parámetro)
ƒ Multi Objetivo (el objetivo del problema es minimizar más de 1
parámetro, entre los cuales es necesario encontrar un compromiso)
Hill Climbing
Secuencial (una sola solución considerada en cada paso)
Greedy (sólo acepta una solución si es mejor que la actual)
No Evolutivo (Metáfora: Persona Caminando)
Algoritmo:
1. Tomar Solución Inicial X 0
2. Crear vector de avance, R = (r1 ,..., rn ) , al azar
3.
X = X
0
+ εR
4. Evalúo y comparo F ( X ) con F ( X 0 )
5. Si F ( X ) > F ( X 0 ) , entonces
6. Vuelve a 2
X = X0
Hill Climbing
X 0 = ( X 01 ,..., X 0n )
R = ( R ,..., R ) (random)
1
0
n
0
X = X0 + ε R
F
F ( X ), F ( X 0 )
F(X ) ≥ F(X0) ?
SI
X0 = X
NO
Simulated Annealing
Secuencial (una sola solución considerada en cada paso)
No Greedy (Acepta soluciones de menor calidad que la actual, con
alguna probabilidad)
Evolutivo (Metáfora: Persona Caminando)
Algoritmo:
1.
Tomar Solución Inicial
2.
Crear vector de avance, R = ( r1 ,..., rn ) , al azar
3.
X = X
0
X0
+ εR
4.
Evalúo y comparo
F ( X ) con F ( X 0 )
5.
Si F ( X ) > F ( X 0 ) , entonces X = X 0
6.
Si no, acepto el nuevo valor con probabilidad p que depende del
tiempo y de un parámetro (Temperatura Inicial)
X 0 = ( X 01 ,..., X 0n ), t = 0, T0
t = t +1
R = ( R ,..., R ) (random)
1
0
n
0
X = X0 + ε R
F
F ( X ), F ( X 0 )
F(X ) ≥ F(X0) ?
SI
X0 = X
NO
s random
P(T0 , t ) ≥ s ?
SI
NO
Algoritmos Genéticos
Los individuos mejor adaptados tienen más
posibilidades de reproducirse que los menos adaptados:
Los menos adaptados también tienen
posibilidades de reproducirse
Dados los 2 padres, el gen de los hijos se obtiene como una
combinación aleatoria de los genes de los padres
Periódicamente la naturaleza envía una catástrofe
Esquema de un Algoritmo Genético
Población Inicial
Operador de Selección
Operador de Cruzamiento
Operador de Mutación
Nueva Población
Finaliza ?
Población Final
Algoritmos Genéticos
• Paralelo (consideran muchas soluciones a la vez en cada paso, llamada
“Población”)
• Evolutivo (Están inspirados en el principio de Evolución y Selección
Natural de Darwin)
Initial
Population
Final
Population
Mutation
CrossOver
Selection
Operador de Selección – Ruleta con pesos
Operador de Cruzamiento Single Point
Padre I
A
B
C
D
E
F
G
Padre II
1
2
3
4
5
6
7
Hijo I
A
B
C
D
5
6
7
Hijo II
1
2
3
E
F
G
4
Operador de Mutación
Hijo n
Hijo Mutado
A
B
C
D
E
F
G
D
B
C
A
E
F
G
Ejemplo
F ( x, y ) = x + y, x, y ∈ [ −1,1]
„
„
„
„
„
„
Tamaño de la Poblacion Inicial = 5
Generaciones = 4
Metodo de selección: Ruleta
Crossover: Single Point
Mutacion: Boundary Mutation
Matriz de Bounds
⎡ −1 1⎤
Bounds = ⎢
⎥
⎣ −1 1⎦
Ejemplo
S1 = ( 0, 0.5 )
F ( S1 ) = 0.5
S 2 = ( −0.5, 0.25 )
F ( S 2 ) = −0.25
S3 = (−0.3, −0.2)
F ( S3 ) = −0.5
S 4 = (0.6, −0.4)
F ( S 4 ) = 0.2
S5 = (−0.3, −0.7)
F ( S5 ) = −1
Paso 1: Selección por el método de la ruleta
Procedimiento?
0
1
Sol 1
Sol 2
Sol 3
Sol 4
{F ( S1 ),..., F ( S n )} → {F ( S1 ) − m,..., F ( S n ) − m}
P = {F ( S1 ) − m / Sum,..., F ( S n ) − m / Sum},
Sol 5
m = min( F ( Si ))
con
n
Sum = ∑ F ( Si ) − nm = F ( S1 ) + ... + F ( S n ) − nm
i =1
P Distribución de Probabilidad
s1 ,...., sn
al azar
P = {F ( S1 ) / Sum,..., F ( Sn ) / Sum},
Si = solucion i es seleccionado ⇔ si ∈ [ F ( Si ) / Sum, F ( Si +1 ) / Sum]
←{F (S1 ), F (S2 ), F (S3 ), F (S4 ), F (S5 )}
0.5 − 0.25 − 0.5 0.2 − 1
0.5 0.2 − 0.25 − 0.5 − 1 ←{F (S1 ), F (S4 ), F (S2 ), F (S3 ), F (S5 )}
(reordenando)
m = min(F (Si )) = −1
1.5 1.2 0.75 0.5 0
← G = {F (S1 ) − m + ε ,..., F (Sn ) − m + ε}
1.6 1.3 0.85 0.6 0.1
ε = 0.1
←G = G +ε
Sum = sum(G) = 4.45
P= G./ sum(G)
P (S1)
P (S
4
)
P (S
2
)
P (S
3
)
P (S
5
)
0 .3 6 0 .2 9 2 0 .1 9 1 0 .1 3 5 0 .0 2 2
0.36 0.292 0.191 0.135 0.022
P(S1) P(S4 ) P(S2 ) P(S3 ) P(S5 )
0.36 0.652 0.843 0.978 1
←
0
0.65
0.36
S1
cumsum(P)
S4
0.84
S2
0.97
S3
generamos s1 ,..., s5 , al azar
0.95 → S3
0.23 → S1
0.61 → S4
0.48 → S4
0.89 → S3
0
0.65
0.36
S1
S4
0.84
S2
0.97
S3
Población Nueva (después de la Selección)
NewPop={S1 ,S3 ,S3 ,S4 ,S4}
={(0,0.5),(-0.3,-0.2),(-0.3,-0.2),(0.6,-0.4),(0.6, −0.4)}
↓
Crossover
se eligen parejas al azar y se realiza
Single Point Crossover
(x,y)
→
(x,w)
(z,w)
→
( z, y)
Población luego de Crossover
P1 = S1 = (0,0.5)
C1 = (0.6,0.5)
P2 = S4 = (0.6, −0.4)
C2 = (0, −0.4)
P1 ' = S4 = (0.6, −0.4)
P2 ' = S3 = (−0.3, −0.2)
→
C1 ' = (0.6, −0.2)
C2 ' = (−0.3, −0.4)
NewPop=
{(0.6,0.5),(0,-0.4),(0.6,-0.2),(-0.3,-0.4),(-0.3,-0.2)}
Mutación – Boundary Mutation
1 - Se elige una coordenada de la solución, al azar
2 – Se elige una dirección, al azar (hacia arriba o hacia abajo del
intervalo)
3 – Se cambia la coordenada correspondiente de la solución, por el
borde correspondiente del intervalo, Bounds(i,1) o Bounds(i,2), según
la dirección elegida
S o lu c ió n E le g id a : S 3' = C 1 ' = ( 0 .6 , − 0 .2 )
C o o rd e n a d a E le g id a : 1
D ire c c io n E le g id a : a rrib a
S 3' m u ta d o = (1, − 0 .2 )
NewPop (luego de Mutación y Crossover) =
{(0.6,0.5),(0,-0.4),(1,-0.2),(-0.3,-0.4),(-0.3,-0.2)}
Comparación 1ra y 2da
Generación
Y repetir hasta completar la cantidad prefijada de
Generaciones
Descargar