Análisis de los Factores Externos de la Organización.
Documentación doctorado
1. Cómo construir un Algoritmo
Evolutivo
Los Pasos a realizar
• Diseño de la representación
• Construcción de la población inicial
• Codificación de los individuos
• Definición de la función fitness
2. Otros Pasos
• Operador mutación
• Operador Cruce
• Operador selección
• Reemplazamiento
• Condición de parada
La Representación
Existen muchas maneras de representación.
La forma elegida debe ser relevante para el
problema a resolver.
Al elegir la representación debemos tener
en mente la función fitness y los operadores
a utilizar.
3. Representación Binaria (Genotipo)
CROMOSOMA
GEN
Representación Binaria (Fenotipo)
Genotype
Fenotipo:
8 bits
• Entero
• Real
• Planificación
• ...
• Otros
4. Fenotipo de Tipo Entero
Genotipo: Fenotipo:
= 163
1*27 + 0*26 + 1*25 + 0*24 + 0*23 + 0*22 + 1*21 + 1*20 =
128 + 32 + 2 + 1 = 163
Fenotipo de Tipo Real
Número real entre 2.5 and 20.5 con 8 digitos
Genotipo: Fenotipo:
= 13.9609
x = 2 .5 +
163
(20 . 5 − 2 . 5 ) = 13 . 9609
256
5. Fenotipo de Tipo Planificación
8 trabajos en dos fases
Tr, Fase
1 2
Genotipo: 2 1
3 2
= 4 1 Fenotipo
5 1
6 1
7 2
8 2
Reprentación Basada en el Orden
• Los individuos son permutaciones
• Útil en problemas de secuenciación
• Problema del viajante: A cada ciudad se le
asigna un número. Una solución con cinco
ciudades podría ser (5, 4, 2, 1, 3).
• Operadores de carácter especial
6. Población Inicial
• Diversidad:
– Cadenas binarias aleatorias.
– Distribución uniforme sobre un
intervalo.
• Utilización de heurísticos
– Posible pérdida de diversidad
– Posibilidad de irrecuperabilidad de
buenas propiedades
Obtención del Fenotipo a partir del Genotipo
Datos
• A menudo esta Genotipo
Problema
obtención es trivial.
• En ocasiones el
genotipo es una
entrada para algún Algoritmo
algoritmo que junto a
datos del problema
producirá el fenotipo
Fenotipo
7. Evaluación de los Individuos (I)
• Operación de mayor coste.
• Puede ser desde una simple función hasta
un complicado simulador o proceso externo.
• Posibilidad de utilizar fitness aproximados .
Evaluación de los Individuos (II)
• Problemas con restricciones: El fenotipo no
verifica alguna restricción
– Penalización en el fitness
– Algoritmos evolutivos específicos
• Optimización Multiobjetivo
– Soluciones no dominadas
– Frente pareto
8. Operador Mutación
• Permitir el alcance a cualquier punto del
espacio de búsqueda.
• Control del tamaño de la mutación.
• Producción de cromosomas válidos.
Mutación para Representación Binaria
Antes 1 1 1 1 1 1 1
1 1 1 0 1 1 1
Gen mutado
Normalmente se establece una probabilidad de
mutación que se aplica a cada gen.
9. Mutación para Representación Basada en el
Orden
Intercambio de genes elegidos
aleatoriamente
7 3 1 8 2 4 6 5
7 3 6 8 2 4 1 5
Mutación para Representación Basada en el
Orden (II)
Padre = (1,2,3,4,5)
Hijo = (1, 3,, 2,, 4 ,5)
- - -
10. Operador Cruce o de Recombinación
• Los hijos conservan características de los
padres
• Diseño del operador en base a la
representación utilizada
• Producción de cromosomas válidos
Cruce en un Punto (Representación Binaria)
Población ...
Selección de un punto en el cromosoma
corte corte
padres
1 1 1 1 1 1 1 0 0 0 0 0 0 0
hijos
1 1 1 0 0 0 0 0 0 0 1 1 1 1
11. Cruce Uniforme
a b c d e f g h
a b C d E f g H
A B CDE F GH
Cruce Basado en el Orden
Padre-1 = (1,2,3,4,5) Padre-2 = (4,2,3,5,1)
Hijo-1 = ( 4 , 2 , 3 , 1 , 5 ) Hijo-2 = ( 4 , - , - , - , 3 )
- - - - - - 2 1 5 -
Cadena = (0,0,1,0,1)
12. Selección
• Mejores individuos tienen mayor
probabilidad de selección
• Dar oportunidad a todos los individuos sin
excesivo sesgo hacia los mejores.
Probabilidad de Selección
• Probabilidad de selección del individuo i
fi f
• Mejores
– Más espacio
– Más posibilidades
Mejor
Peor
13. Algunas desventajas de la selección anterior
• Convergencia prematura a individuos no
óptimos cuando los fitness son muy
distintos
• Aleatoria en poblaciones con fitness muy
parecidos
• Solución aplicable: ESCALADO
Elitismo
• ¿Debe mejorar constantemente el fitness?
– Meter en la población actual el mejor
individuo (elitismo)
– Mantener guardado el mejor individuo
encontrado.
• El elitismo no siempre es lo mejor.
14. Cruce vs. Mutación
• Cruce
– Dependencia de la población
– Decrecen sus efectos con la convergencia
– Operador que explota buenas propiedades
de los individuos.
• Mutación
– Misión de escapar de óptimos locales
– Operador que explora el espacio de
búsqueda
Criterio de parada
• Óptimo alcanzado
• Máximo número de evaluaciones
alcanzado
• Número de generaciones sin que se
produzcan mejoras significativas
• .....
15. Bondad del Algoritmo Genético (I)
• Nunca sacar conclusiones tras una sola
ejecución
– Utilizar medidas estadísticas (medias,…)
– Tras un número suficiente de ejecuciones
• Punto de vista de la aplicación
– Perspectiva del diseño:
Econtrar una muy buena solución al menos
una vez
– Perspectiva de producción:
Encontrar buenas soluciones casi siempre
Bondad del Algoritmo Genético (II)
Realizar adecuadamente los tests de ajuste
de parámetros:
No realizar el ajuste con problemas
pequeños y pretender que funcione
correctamente con los problemas reales a
los que se enfrentará
16. Algunas Claves
• Mantener diversidad genética
• Exploración y Explotación:
– Exploración = buscar en nuevas regiones.
Demasiada exploración = búsqueda
aleatoria.
– Explotación = Tratar de mejorar
combinando lo bueno que se posee.
Demasiada explotación = búsqueda local
(óptimo local)
17. Algoritmos evolutivos para el problema de la
mochila 0-1 multidimensional
Problema de la mochila 0-1 multidimensional
(MKP)
Instancia de MKP K= (n,m,p,A,b)
n, m ∈ N; p ∈ (R+)n; A ∈ Mm×n(R+ ∪ {0}); b∈(R+)m
Maximizar f(x)=p . x’ = Σj=1,...,n pj xj
Sujeto a: A . x’ ≤ b’
Restricción i-ésima Ci: Σj=1,...,n aij xj ≤ bi
Variables booleanas con valores en {0,1}
KLP versión relajada de K: variables con valores en [0,1]
18. Problema de la mochila 0-1 multidimensional
Solución
α ∈ {0,1}n es una solución factible para K si verifica Ci ∀ i
αKopt ∈ {0,1}n es solución si verifica:
f (α ) ≤ f (α K ) = ∑ j =1 p jα K [ j ]
opt n opt
para toda solución factible α
Problema de la mochila 0-1 multidimensional
Solución ε-aproximada
f (α K ) − f (α )
opt
α∈ {0,1}n solución factible: εα =
f (α K )
opt
dado un ε ∈ (0,1), αKε es cualquier solución factible t.q.:
εα ε ≤ ε
K
19. Problema de la mochila 0-1 multidimensional
Multitud de aplicaciones
Estrategias heurísticas para MKP:
De tipo voraz [Pirkul 1987]
Programación Lineal [Balas, Martin 1980]
Estrategias evolutivas:
[Khuri, et al. 1994], [Thiel, Voss 1994],
[Chu, Beasley 1998], [Alonso, Caro, Montaña 2005]
…
MKP y los multiplicadores subrogados
K= (n,m,p,A,b), ω ∈ (R+)m
Restricción subrogada
n m m
Sc( K , ω ) = ∑ (∑ ωi aij ) x j ≤ ∑ ωi bi
j =1 i =1 i =1
Instancia subrogada (dimensión uno)
SR(K,ω) = (n,1,p, ω . A, ω . b’)
20. MKP y los multiplicadores subrogados
Algunas consideraciones
1.- Podemos suponer ω ∈ (0,1]m
2. - f (α SR ( K ,ω ) ) ≥ f (α K )
opt opt
3. - min{ f (α SR ( K ,ω ) LP ) : ω ∈ (0,1]m } ≥ f (α K )
opt opt
ε
4. − ¿ f (α SR ( K ,ω ) ) ≥ f (α K ) ?
opt
MKP y los multiplicadores subrogados
AG para el cálculo de un buen vector ω
K= (n,m,p,A,b), q ∈ N
Individuo: cadena binaria γ ∈ {0,1}qm (q es la precisión),
representando un vector de pesos ω
n
fitness1(γ ) = f (α SR ( K ,ω ) LP ) = ∑ p jα SR ( K ,ω ) LP [ j ]
opt opt
j =1
El objetivo consiste en minimizar la función fitness1
Operadores: ruleta; cruce uniforme; mutación de bit.
21. MKP y los multiplicadores subrogados
AG para el cálculo de un buen vector ω
K= (n,m,p,A,b), q ∈ N, ε∈ [0,1]
Individuo: cadena binaria γ ∈ {0,1}qm (q es la precisión),
representando un vector de pesos ω
n
fitness 2(γ ) = f (α SR ( K ,ω ) ) = ∑ p jα SR ( K ,ω ) [ j ]
ε ε
j =1
Cálculo de αεSR(K,ω) : Algoritmo ε-aproximado unidimensional
[Brassard, Bratley 1997]
El objetivo consiste en minimizar la función fitness2
Operadores: ruleta; cruce uniforme; mutación de bit.
Algoritmo evolutivo para MKP
K= (n,m,p,A,b), ω ∈ (0,1]m
Individuo: cadena binaria α ∈ {0,1}n
n
Fitness: f (α ) = ∑ p jα [ j ]
j =1
Ratio utilidad xj:
pj
uj = m
∑ω a
i =1
i ij
22. Algoritmo evolutivo para MKP
DROP
for j=1 to n calcular uj
P:=permutaciónn(1,…,n) con uP[ j ] ≤ uP[ j+1 ]
for j=1 to n do
if (α [P[ j ]] = 1 and no-factible(α)) then α [P[ j ]] := 0
ADD
P:=permutación(1,…,n) con uP[ j ] ≥ uP[ j+1 ]
for j=1 to n do
if α [P[ j ]] = 0 then α [P[ j ]] := 1
if no-factible(α) then α [P[ j ]] := 0
Algoritmo evolutivo para MKP
El proceso de búsqueda local (random walk)
K= (n,m,p,A,b), ω ∈ (0,1]m , α ∈ {0,1}n
1. se genera P, permutación de longitud n.
2. Para cada j ∈ {1, …, n} se conmuta α[ P[ j ] ] si se
produce mejora.
3. Si se produjo alguna conmutación volver a 1.
DROPj : igual a DROP pero sin modificar α[ j ]
ADDj : igual a ADD pero sin modificar α[ j ]
23. Algoritmo evolutivo para MKP
Procedure flip(i, α )
begin
if alpha[ i ]=1 then
alpha[ i ]:=0
alpha:=ADDi(K,ω,alpha)
else
alpha[ i ]:=1
alpha:=DROPi(K,ω,alpha)
alpha:=ADDi (K,ω,alpha)
end
Algoritmo evolutivo para MKP
Operadores: ruleta; cruce uniforme, mutación de bit.
Población inicial: permutación aleatoria (1,…, n) y
aplicación de ADD
Búsqueda local: Se aplica cada t generaciones a toda la
población, tratando de mantener cierta diversidad.
Algoritmo tipo Steady State
24. Resultados experimentales
OR-LIBRARY [Chu-Beasley 1998]
m ∈ {5,10,30}; n ∈ {100,250,500}; r ∈ {0.25,0.5,0.75}
270 instancias
Glover – Kochenberger
n ∈ [100, 2500]; m ∈ [15, 100] 11 instancias
Parámetros:
Surrogate Multipliers:
tp = 75; q = 10; pm = 0.1; gen = 15000
MKP:
tp = 100; pm = 0.1; 1,5 ×106 evaluaciones distintas; t = 104
Resultados experimentales
f (α K LP ) − f (α )
opt
% gap = 100 10 ejecuciones
f (α K LP )
opt
26. Resultados experimentales
3 problemas de cada tipo
5 ejecuciones
f (α K LP ) − f (α )
opt
% gap = 100
f (α K LP )
opt
KLP constituye la versión relajada de K, donde las
variables toman valores en todo el intervalo [0,1]
Resultados experimentales
27. Conclusiones
• AG para MKP basado en los multiplicadores
subrogados, dotado de un proceso de búsqueda
local.
• Aplicación periódica de la búsqueda local.
• Obtención de soluciones de alta calidad, fundamental
mente en problemas grandes.
• La búsqueda local produce sensibles mejoras.
Conclusiones
• Utilización de soluciones ε-aproximadas.
• Estudio de diferentes entornos de aproximación
• Soluciones de alta calidad para valores de
ε ∈ [0.1,0.5)
28. Resolución de “Word Equation
Systems” Mediante un Algoritmo
Evolutivo
Índice
• Introducción.
• El problema “Word Equation Systems” (WES).
• El problema 3-SAT.
• El Algoritmo Evolutivo.
• Resultados Experimentales.
• Trabajo Futuro.
29. Introducción
Resolver la siguiente ecuación:
x01x1y=1y0xy
Aplicaciones en:
• Teoría de la Unificación (Prolog 3)
• Pattern-Matching
• .... ????
Introducción
Problema muy estudiado:
– [Lentin 72]; [Plotkin 72]; [Siekmann 72]. Semi-
decisión del problema.
– [Hmlevskii 71]. Ecuaciones con tres variables.
– [Makanin 77]. Demostró la resolubilidad del
problema.
¡ALGORITMO TRIPLEMENTE EXPONENCIAL!
Mejoras
– [Gutiérrez 98]; [Plandowski, Rytter 98]. Exponencial
– [Robson 99]. Ecuaciones cuadráticas.
31. El Problema WES (Word Equation Systems)
Problema WES
“dado un sistema S = {L1= R1, …, Ln= Rn } ,
encontrar solución o determinar la no existencia.”
[Makanin 1977]. Algoritmo triplemente exponencial.
Sistema Fibonacci (Sd): A ={0, 1}
x1 = 0
x2 = 1 σ(xi)=FibWordi ;
0 1 x1 x2 = x1 x2 x3
FibWord1= 0, FibWord2=1,
…………………………….
0 1 x1 x2 … xd-1 xd = x1 x2 … xd+1 FibWordi= FibWordi-2FibWordi-1
El Problema WES (Word Equation Systems)
Problema d-WES
“dado un sistema S = {L1= R1, …, Ln= Rn } ,
encontrar una solución σ tal que |σ (x)|≤ d,
∀ x∈ Ω ó determinar la no existencia.”
Problema d-SWES
“dado un sistema S = {L1= R1, …, Ln= Rn } ,
determinar si existe una solución σ tal que
|σ(x)|≤ d ∀ x∈ Ω.”
32. El Problema 3-SAT
Ω, variables; C, cláusulas tal que : ∀ c ∈ C; |c| = 3.
c = {x1 , x2 , x3 }; xi ∈ {v, v }, v ∈ Ω
c es una cláusula OR.
Problema: Dar valores de verdad a las variables de
manera que se verifiquen todas las cláusulas de C.
El Problema 3-SAT
Ejemplo:
⎧ c1 = { x , y , z} ⎫
⎪ ⎪
C = ⎨c2 = { x , y , y}⎬
⎪ c = { z , x, y} ⎪
⎩ 3 ⎭
Solución:
x = 0, y = 1, z = 1
33. Reducción de 3-SAT a 2-SWES
C = {c0, …, cm}, instancia de 3-SAT.
ci = {x3i, x3i+1, x3i+2}
Construcción del 2-SWES equivalente
1. ∀ v ∈ Ω, se introducen las variables yv, zv y las
ecuaciones: yv zv = 1.
2. ∀ ci = {x3i, x3i+1, x3i+2} se introduce la variable
ci y la ecuación: civ3iv3i+1v3i+2 = 111
Con vj = yv si xj = v; vj = zv en el otro caso.
A = {1}
Reducción de 3-SAT a 2-SWES
Ejemplo ⎧ c1 = {x, y, z}⎫
⎪ ⎪
C = ⎨c2 = {x, y, y}⎬ x = 0, y = 1, z = 1
⎪ c = {z, x, y}⎪
⎩ 3 ⎭
2-SWES equivalente:
yx zx = 1, yy zy = 1, yz zz = 1
c1 yx zy yz = 111, c2 zx yy zy = 111, c3 yz yx yy = 111
Solución: σ(yx) = Λ, σ(zx) = 1, σ(yy) = 1, σ(zy) = Λ
σ(yz) = 1, σ(zz) = Λ; σ(c1) = 11, σ(c2) = 1,
σ(c3) = 1
34. El Algoritmo Evolutivo
Representación de los individuos
A={0,1}; S={L1=R1, …, Ln=Rn}; Ω={x1, …,xm}
Cota d t.q. para toda solución σ: |σ(xi)|≤ d ∀ i
Cromosoma: α = {α1 , L , α m }; α i = α 'i α ' 'i ∈ A* = {0, 1, B} *
α 'i ∈ A*; α ' 'i ∈ {B}*; α i = α 'i + α ' 'i = d
El Algoritmo Evolutivo
Función Fitness (Hamming distance)
α = {α1 ,L , α m }; α i = α 'i α ' 'i ∈ A* = {0, 1, B} *
{L1 (α ) = R1 (α ),L , Ln (α ) = Rn (α )}; Li (α ), Ri (α ) ∈ A *
li = Li (α ) , ri = Ri (α ) ;
si = {k ∈ {1, L , min{li , ri }} t.q. Li (α )[k ] = Ri (α )[k ]}
n
f (α ) = 0 ⇔ σ ( x i ) = α 'i
f (α ) = ∑ ( Max{li , ri } − si )
i =1 1 ≤ i ≤ m es solución
35. El Algoritmo Evolutivo
Operador cruce
α = {α1 ,L , α m } β = {β1 ,L , β m }
α i = α 'i α ' 'i ; β i = β 'i β ' 'i ; α 'i , β 'i ∈ A*; α ' 'i , β ' 'i ∈ {B} *
ai = α 'i ≤ β 'i cruce(α i , β i ) = cri
cri = cri [1, ai ] crii[aii + 1, kii ] crii [kii + 1, d ]
B d − ki
cruceUniforme(α 'i , β 'i [1, ai ])
β 'i [ai + 1, min{ki , β 'i }]; ki ∈ {ai + 1, L, d }
El Algoritmo Evolutivo
Ejemplo
α i = 01BBBBB; β i = 100011B ki = 4
α 'i = 01, α ' 'i = BBBBB; β 'i = 100011, β ' 'i = B
cri = 11 00 BBB
36. El Algoritmo Evolutivo
Operador mutación
α = {α1 , L, α m }
La mutación consiste en cambiar cada gen de cada
αi con una probabilidad 1/d (siendo d=|αi|)
Tras la mutación hay que reordenar cada αi,
poniendo los blancos al final.
El Algoritmo Evolutivo
El proceso de búsqueda local 1
α = {α1 , L, α m }
α i = α 'i α ' 'i ; α 'i ∈ A*, ai = α 'i ; α ' 'i = B d − a ∈ {B} *
i
Primera fase
• Recorrer todos los α’i modificando cada gen si
produce mejora. (se obtienen α’i flip i = 1, ...,m)
• Aplicar de nuevo 1 sobre los α’i flip mientras
alguno se distinto del correspondiente α’i .
37. El Algoritmo Evolutivo
El proceso de búsqueda local 1
Se parte del resultado obtenido en la primera fase:
α = {α1 ,L, α m }
α i = α 'iflip α ' 'i ; α 'iflip ∈ A*, ai = α 'iflip ; α ' 'i = B d −a ∈ {B} *
i
segunda fase
• Recorrer todos los αi modificando en una unidad
la longitud de α’i flip si produce mejora.
• Volver a la primera fase si se ha modificado
alguna longitud.
Ejemplo búsqueda local 1
Primera fase
101BB 00BBB
001BB 11BBB
Búsq. Local clásica
011BB 01BBB
Búsq. Local clásica
011BB 01BBB
Repito Hasta que NO Mejora
38. Ejemplo búsqueda local 1
Segunda fase
011BB 01BBB
0110B 01BBB
Incremento 1ª variable 0111B 01BBB
01BBB 01BBB
Decremento 1ª variable
Mejor Fitness
0111B 01BBB
0111B 01BBB
0111B 010BB
0111B 011BB
0111B 0BBBB
Mejor Fitness
0111B 0BBBB
Si mejoro volver a la primera fase.
39. El Algoritmo Evolutivo
El proceso de búsqueda local 2
α = {α1 , L, α m }
α i = α 'i α ' 'i ; α 'i ∈ A*, ai = α 'i ; α ' 'i = B d − a ∈ {B} *
i
1. Recorrer α’i modificando cada gen si produce
mejora (se obtiene α’i flip).
2. Modificar longitud de α’i flip si produce mejora.
α 'i flip B d − a i
α 'i flip 1B d −( a +1)
i
α 'i flip 0 B d −( a +1) i
α 'i flip [1, ai − 1]B d −( a −1)
i
Ejemplo de búsqueda local 2
101BB 00BBB
001BB 00BBB
Búsq. Local
Clásica 1ª var. 0010B 00BBB
0011B 00BBB
Incremento 1ª var.
00BBB 00BBB
Decremento 1ª var.
Mejor Fitness
0010B 00BBB
40. 0010B 00BBB
Búsq. Local
Clásica 2ª var.
0010B 10BBB
0010B 100BB
0010B 101BB
0010B 0BBBB
Mejor Fitness
0010B 10BBB
Si mejoro repito el proceso.
El Algoritmo Evolutivo
El proceso de búsqueda local
α = γ 0 , γ 1 , L, γ s = β
a) f (γ j +1 ) < f (γ j ) j ∈ {0,K , s − 2}
b) ∀i ∈ {1, K m} γ j +1 ' − γ j ' ≤ 1
i i
c) γ s −1 = γ s
41. El Algoritmo Evolutivo
begin
Generation := 0;
Population := initial_population;
evaluate(Population);
while (not_termination_condition) do
begin
Best := best_individual(Population);
New_population := {Best};
while (|New_population| < |Population|) do
begin
Pair := select_parents(Population);
Child := crossover(Pair);
Child := mutation(Child, probability);
Child := local_search(Child);
New_population := insert(Child, New_population);
end
Population := New_population;
Generation := Generation + 1
end
end
Resultados Experimentales
Tamaño de la población
Tamañ població
43. Resultados Experimentales
Búsqueda local
Problema 10-8-5 (248)
Resultados Experimentales
Búsqueda local
Problema 10-15-3 (290)
44. Resultados Experimentales
Parámetros del algoritmo
• Tamaño de la población = 2
• Probabilidad de cruce = 1
• Probabilidad de mutación = 0,9
• Búsqueda local 2
• Nº máximo de evaluaciones = 1500000
Resultados Experimentales
45. Algoritmo Evolutivo (Otra propuesta)
• CODIFICACION:
Nueva Codificación. Afecta a toda la Implementación.
Representación:
cadena de variables αi de longitud menor o igual a l,
tal que cada αi sea la codificación de la variable xi
Tenemos el individuo I1 = α1 α2 α3 con:
α1=1001
α2 =10 I1 = 100110001
α3=001
αi es una cadena de 0’s y 1’s de longitud menor o igual a l
Algoritmo Evolutivo (Otra propuesta)
Fitness (Distancia Edit ó Distancia de Levensthein)
Nueva Función Evaluadora. Numero de cambios mínimos para
transformar una palabra en otra.
Posibles cambios: Flip de un bit; insertar un bit; borrar un bit
0110 = 010
Distancia de Levensthein (0110, 010) = 1
0110 = 0110
Distancia de Hamming (0110, 010) = 2
0110 = 010_ Fitness = 2
Distancia Levensthein (α, β) ≤ Distancia Hamming (α, β)
46. Algoritmo Evolutivo (Otra propuesta)
Adaptación de los operadores de
recombinación y las búsquedas locales al
nuevo fitness constituido por la distancia de
Levensthein
[Alonso, Alonso; Montaña 2007]
47. Straight Line Programs: A new Linear
Genetic Approach
César L. Alonso
E.U.I.T. Informática de Gijón
Universidad de Oviedo
Jorge Puente(Universidad de Oviedo)
Jose Luis Montaña (Universidad de Cantabria)
(SPAIN)
Contents
1. Straight line programs as the data structure
2. Effective and non-effective code in slp’s
3. Symbolic regression problem
4. GP with slp’s for solving symbolic regression instances
5. Experimental results
6. Conclusion and future work
48. The data structure: straight line program
Let F = {f1, … , fn}; T= {t1, … , tm}; fi with arity ai (1≤ i ≤n)
Straight line program
Γ= {I1, … , Il} where: Ik ≡ uk:=fjk(α1, … , αajk)
fjk ∈ F;
αi ∈ T if k=1
αi ∈ T ∪ {u1, … , uk-1} for 1 < k ≤ l
T = V ∪ C; V={x1, … , xp}; C = {c1, … , cq}
Γ= {I1, … , Il} ≡ {u1, … , ul}
The data structure: straight line program
Example
⎧ u 1 := x1 + 1
⎪ u := u * u
⎪ 2
⎪
1 1
Γ ≡ ⎨ u 3 := x 2 + x 2
⎪ u := u * u
⎪ 4 2 3
⎪ u 5 := u 4 − u 3
⎩
49. The data structure: straight line program
Γ = {u1, … , ul} a slp over F and T.
{
O(Γ) = ui1 ,K , uit } ; V = {x1 , K , x p } ⊂ T
Semantic function
Φ Γ : I p → O t ; Φ Γ (a1 ,K , a p ) = (b1 ,K , bt )
x1 := a1 ⎫
⎪ bj
M ⎬ ui j
x p := a p ⎪
⎭ 1≤j≤t
The data structure: straight line program
Two slp’s Γ1 and Γ2 are considered equivalent if
Φ Γ1 = Φ Γ 2
I our case
given a slp Γ = {u1 K , ul } over F and T
With output set { }
O (Γ) = ui0 1 ≤ i0 ≤ l
We can consider the equivalent slp {
Γ' = u1 , K , ui0 }
Φ Γ = Φ Γ' : R n → R
50. Effective code in straight line programs
Given the following slp:
⎧ u 1 := x * 1
⎪ u := u + y
⎪
Γ≡⎨ 2 1
with O ( Γ ) = {u 4 }
⎪ u 3 := u 2 * u 2
⎪ u 4 := u 1 * y
⎩
For computing ΦΓ u2 and u3 are not necessary
⎧u := x *1
Γ' = ⎨ 1 with O (Γ' ) = {u2 }
⎩u2 := u1 * y
Is and effective slp equivalent to Γ
Effective code in straight line programs
In general
Let Γ = {u1 , K , ul } with O(Γ) = {ul } the effective code is
{ }
S = {ui ∈ Γ / ui R ul } = ui1 , K , uim ; i1 < K < im
R Is the reflexive and transitive closure of R, where:
ui := f ji (α1 , K , α a j ); uk := f jk ( β1 , K , β a j ) with i < k
i k
ui Ruk ⇔ ui = β s ; 1 ≤ s ≤ a jk
Γ' = {u '1 , K , u 'm } with O(Γ' ) = {u 'm } is an effective slp equivalent to Γ
51. Symbolic regression problem
sample z = ( xi , yi ) ∈ X × Y ; 1 ≤ i ≤ m
Goal f : X →Y
Which predicts y∈Y from a given x ∈ X
1 m
εz( f ) = ∑ ( f ( xi ) − yi ) 2 (MSE )
m i =1
In general X = Rn ; Y = R
GP with straight line programs
Fitness
z = ( xi , yi ) ∈ X × Y ; 1 ≤ i ≤ m
1 m
Fz (Γ) = ε z (Φ Γ ) = ∑ (Φ Γ ( xi ) − yi ) 2
m i =1
Mutation
Γ = {u1 K , u L }; ui := f (α1 , K , α n ); f ∈ F α ∈ T ∪ {u1 , K, ui −1}
Γ' = {u1 K , ui −1 , u 'i , ui +1 , K , u L }
u 'i := f (α1 , K , α j −1 , α ' j , α j +1 ,K , α n ); α ' j ∈ T ∪ {u1 , K, ui −1}
52. GP with straight line programs
Crossover
Γ = {u1 K , u L }; Γ' = {u '1 K , u ' L }
Select k∈{1, …, L} Suk = {u j ∈ Γ / u j R uk } = {u j1 ,K , u jm }
Select t∈{m, …, L}
Substitute in Γ’ {u 't − m +1 , K, u 't } by Suk Obtaining first offspring
Symmetrical strategy for obtaining second offspring
We can maintain homogeneous population of equal length
individuals by means of the introduction of non-effective
code.
Example of crossover
⎧ u 1: = x + y ⎧ u 1: = x * x
⎪ u := u * u ⎪ u := u + y
⎪ 2
⎪
1 1 ⎪ 2
⎪
1
Γ ≡ ⎨ u 3 := u 1 * x Γ ' ≡ ⎨ u 3 := u 1 + x
⎪ u := u + u ⎪ u := u * x
⎪ 4 3 2
⎪ 4 2
⎪ u 5 := u 3 * u 2
⎩ ⎪ u 5 := u 1 + u 4
⎩
assume k=3 and t=3 assume k’=4 and t’=5
⎧ u 1: = x * x ⎧ u 1: = x + y
⎪ u := x + y ⎪ u := u * u
⎪ 2
⎪ ⎪ 2 1 1
Γ1 ≡ ⎨ u 3 := u 2 * x ⎪
Γ 2 ≡ ⎨ u 3 := x * x
⎪ u := u * x ⎪ u := u + y
⎪ 4 2
⎪ 4 3
⎪ u 5 := u 1 + u 4
⎩ ⎪ u 5 := u 4 * x
⎩
53. Experiments
Replacement
We rank {Γ, Γ’, Γ1 Γ2} and we pick one individual
from each of the two first levels of the ranking
Experimental settings
F ( x, y , z ) = ( x + y + z ) 2 + 1
1 1 2
G ( x, y , z ) = x + y + z
2 3 3
1 1 2 1
K ( x, y, z , w) = x + y + z + w
2 4 6 8
Experiments
Success rate MBF and ABF over success runs
54. Experiments
Experimental settings
f1 ( x) = x 4 + x 3 + x 2 + x
f 2 ( x) = e −sin 3 x + 2 x
f 3 ( x) = 2,718 x 2 + 3,1416 x
f 4 ( x) = cos(2 x)
⎧2 ⎫
f 5 ( x) = min ⎨ , sin( x) + 1⎬
⎩x ⎭
F = {+, -, *, //}
Constants C = {0, 1, 2}
Conclusions and future research
• Straight line programs is a new data structure for GP
• It express complex expresions with less amount of
instructions than tree data structure.
• Design of specific recombination operators for slp’s
• Slp-based GP outperforms standard tree-based GP
Future
• Definition of a GP-scheme based on slp’s for dealing with real
world hard problems.
• Vapnik-Chervonenkis dimension of classes of slp’s
• combination with ohter methods and cooperative co-evolution