documentación doctorado
DESCRIPTION
Algoritmos geneticosTRANSCRIPT
CCóómo construir un Algoritmo mo construir un Algoritmo EvolutivoEvolutivo
Los Pasos a realizarLos 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
Otros PasosOtros Pasos
• Operador mutación
• Operador Cruce
• Operador selección
• Reemplazamiento
• Condición de parada
La RepresentaciLa Representacióónn
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.
RepresentaciRepresentacióón Binaria (Genotipo)n Binaria (Genotipo)
CROMOSOMACROMOSOMA
GENGEN
RepresentaciRepresentacióón Binaria (Fenotipo)n Binaria (Fenotipo)
Genotype8 bits
Fenotipo:• Entero• Real• Planificación• ...• Otros
Fenotipo de Tipo EnteroFenotipo de Tipo Entero
Genotipo:
1*21*27 7 + 0*2+ 0*26 6 + 1*2+ 1*25 5 + 0*2+ 0*24 4 + 0*2+ 0*23 3 + 0*2+ 0*22 2 + 1*2+ 1*21 1 + 1*2+ 1*200 ==128 + 32 + 2 + 1 = 163128 + 32 + 2 + 1 = 163
= 163Fenotipo:
Fenotipo de Tipo RealFenotipo de Tipo Real
Número real entre 2.5 and 20.5 con 8 digitos
( ) 9609.135.25.202561635.2 =−+=x
= 13.9609Genotipo: Fenotipo:
Fenotipo de Tipo PlanificaciFenotipo de Tipo Planificacióónn
8 trabajos en dos fases
Genotipo:
=
12345678
21211122
Tr, Fase
Fenotipo
ReprentaciReprentacióón Basada en el Ordenn 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
PoblaciPoblacióón Inicialn 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
ObtenciObtencióón del Fenotipo a partir del Genotipon del Fenotipo a partir del Genotipo
• A menudo esta obtención es trivial.
• En ocasiones el genotipo es una entrada para algún algoritmo que junto a datos del problema producirá el fenotipo
Genotipo DatosProblema
Fenotipo
Algoritmo
EvaluaciEvaluacióón de los Individuos (I)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 .
EvaluaciEvaluacióón de los Individuos (II)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
Operador MutaciOperador Mutacióónn
• 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.
MutaciMutacióón para Representacin para Representacióón Binarian Binaria
1 1 1 1 1 1 1Antes
Normalmente se establece una probabilidad de mutación que se aplica a cada gen.
1 1 1 0 1 1 1
Gen mutado
MutaciMutacióón para Representacin para Representacióón Basada en el n Basada en el OrdenOrden
7 83 41 2 6 5
7 83 46 2 1 5
Intercambio de genes elegidos aleatoriamente
MutaciMutacióón para Representacin para Representacióón Basada en el n Basada en el Orden (II)Orden (II)
Padre = (1,2,3,4,5)
Hijo = (1, - , - , - ,5)3, 2, 4
Operador Cruce o de RecombinaciOperador Cruce o de Recombinacióónn
• 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 (RepresentaciCruce en un Punto (Representacióón Binaria)n Binaria)
Población . . .
Selección de un punto en el cromosoma
1 1 1 1 1 1 1 0 0 0 0 0 0 0 padrescorte corte
1 1 1 0 0 0 0 0 0 0 1 1 1 1 hijos
Cruce UniformeCruce Uniforme
a db fc e g h
FD GE HCBAa b C Ed Hgf
Cruce Basado en el OrdenCruce Basado en el Orden
Padre-1 = (1,2,3,4,5) Padre-2 = (4,2,3,5,1)
Cadena = (0,0,1,0,1)
Hijo-1 = ( - , - , - , - , - ) Hijo-2 = ( - , - , - , - , - )3 54 2 1 4 2 51 3
SelecciSeleccióónn
• Mejores individuos tienen mayor probabilidad de selección
• Dar oportunidad a todos los individuos sin excesivo sesgo hacia los mejores.
Probabilidad de SelecciProbabilidad de Seleccióónn
• Probabilidad de selección del individuo i
ff i
Mejor
Peor
• Mejores
– Más espacio– Más posibilidades
Algunas desventajas de la selecciAlgunas desventajas de la seleccióón anteriorn anterior
• Convergencia prematura a individuos no óptimos cuando los fitness son muy distintos
• Aleatoria en poblaciones con fitness muy parecidos
• Solución aplicable: ESCALADO
ElitismoElitismo
• ¿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.
Cruce vs. MutaciCruce vs. Mutacióónn
• 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 paradaCriterio de parada
• Óptimo alcanzado
• Máximo número de evaluaciones alcanzado
• Número de generaciones sin que se produzcan mejoras significativas
• . . . . .
Bondad del Algoritmo GenBondad del Algoritmo Genéético (I)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 GenBondad del Algoritmo Genéético (II)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á
Algunas ClavesAlgunas 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)
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]
Problema de la mochila 0-1 multidimensional Solución
α ∈ 0,1n es una solución factible para K si verifica Ci ∀ i
αKopt ∈ 0,1n es solución si verifica:
][)()(1
jpff optK
n
j joptK ααα ∑ =
=≤
para toda solución factible α
Problema de la mochila 0-1 multidimensional
Solución ε-aproximada
α ∈ 0,1n solución factible:)(
)()(optK
optK
fff
αααεα
−=
dado un ε ∈ (0,1), αKε es cualquier solución factible t.q.:
εε εα≤
K
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
∑∑ ∑== =
≤=m
iii
n
j
m
ijiji bxaKSc
11 1)(),( ωωω
Instancia subrogada (dimensión uno)
SR(K,ω) = (n,1,p, ω . A, ω . b’)
MKP y los multiplicadores subrogados
Algunas consideraciones
1.- Podemos suponer ω ∈ (0,1]m
)()( -2. ),(optK
optKSR ff αα ω ≥
)(]1,0(:)(min -3. ),(optK
moptKSR ff LP αωαω
≥∈
? )( )( ¿ .4 ),(optKKSR ff ααε
ω ≥−
MKP y los multiplicadores subrogadosAG para el cálculo de un buen vector ω
K= (n,m,p,A,b), q ∈ N
Individuo: cadena binaria γ ∈ 0,1qm (q es la precisión), representando un vector de pesos ω
El objetivo consiste en minimizar la función fitness1
Operadores: ruleta; cruce uniforme; mutación de bit.
∑=
==n
j
optKSRj
optKSR
jpffitness LPLP
1),(),(
][)()(1ωω
ααγ
MKP y los multiplicadores subrogadosAG para el cálculo de un buen vector ω
K= (n,m,p,A,b), q ∈ N, ε∈ [0,1]
Individuo: cadena binaria γ ∈ 0,1qm (q es la precisión), representando un vector de pesos ω
∑=
==n
jKSRjKSR
jpffitness1
),(),(][)()(2 ε
ωε
ωααγ
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,1n
∑=
=n
jj jpf
1][)( αα
Ratio utilidad xj:
∑=
= m
iiji
jj
a
pu
1ω
Fitness: Fitness:
Algoritmo evolutivo para MKP
DROPfor j=1 to n calcular ujP:=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
ADDP:=permutación(1,…,n) con uP[ j ] ≥ uP[ j+1 ] for j=1 to n do
if α [P[ j ]] = 0 then α [P[ j ]] := 1if no-factible(α) then α [P[ j ]] := 0
El proceso de búsqueda local (random walk)
K= (n,m,p,A,b), ω ∈ (0,1]m , α ∈ 0,1n
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 ]
Algoritmo evolutivo para MKP
Procedure flip(i, α )begin
if alpha[ i ]=1 thenalpha[ i ]:=0alpha:=ADDi(K,ω,alpha)
elsealpha[ i ]:=1alpha:=DROPi(K,ω,alpha)alpha:=ADDi (K,ω,alpha)
end
Algoritmo evolutivo para MKP
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
Resultados experimentalesOR-LIBRARY [Chu-Beasley 1998] m ∈ 5,10,30; n ∈ 100,250,500; r ∈ 0.25,0.5,0.75270 instancias
Glover – Kochenbergern ∈ [100, 2500]; m ∈ [15, 100] 11 instancias
Parámetros: Surrogate Multipliers: tp = 75; q = 10; pm = 0.1; gen = 15000MKP:tp = 100; pm = 0.1; 1,5 ×106 evaluaciones distintas; t = 104
Resultados experimentales
)()()(
100% optK
optK
LP
LP
fff
gapα
αα −= 10 ejecuciones
Resultados experimentales
Resultados experimentales
Parámetros para el fitness2 solución ε - aproximada: Surrogate Multipliers: tp = 20; q = 10; pm = 0.1; gen = 8000
MKP:tp = 100; pm = 0.1; 106 evaluaciones distintas
Resultados experimentales
)()()(
100% optK
optK
LP
LP
fff
gapα
αα −=
3 problemas de cada tipo
5 ejecuciones
KLP constituye la versión relajada de K, donde las variables toman valores en todo el intervalo [0,1]
Resultados experimentales
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)
Resolución de “Word Equation Systems” Mediante un Algoritmo
Evolutivo
• Introducción.
• El problema “Word Equation Systems” (WES).
• El problema 3-SAT.
• El Algoritmo Evolutivo.
• Resultados Experimentales.
• Trabajo Futuro.
Índice
Introducción
Resolver la siguiente ecuación:
x 0 1 x 1 y = 1 y 0 x y
Aplicaciones en:• Teoría de la Unificación (Prolog 3)• Pattern-Matching• .... ????
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.
Introducción
El Problema WES (Word Equation Systems)
A, alfabeto; Ω, Variables (A ∩ Ω = ∅).
“Word equation”:L=R; (L, R) ∈ (A ∪ Ω)* × (A ∪ Ω)*
WES : S = L1= R1, …, Ln= Rn ; (Li, Ri) ∈ (A ∪ Ω)* × (A ∪ Ω)*
Solución: σ (A ∪ Ω)* → A*; σ (a) = a ∀ a ∈ Aσ (Li) = σ (Ri); ∀ i ∈ 1, …, n
1. 0 0 1 1 x1 1 1 1 = 0 x1 0 x6 x6 12. x2 x7 x1 1 = x2 0 x2 1 13. 0 1 x5 x3 0 1 1 1 = x3 x1 x8 x1 0 0 0 1 1 x1 14. 0 x7 1 x3 0 0 1 = x1 0 0 x6 x1 x2 0 0 0 x2 15. x6 1 x3 1 x4 1 1 = x6 1 x1 0 1 x4 x6
6. 0 x3 1 x3 x3 x3 = x3 0 1 x3 0 07. 0 0 0 x7 x1 0 = x3 0 x3 0 x2 1 08. 0 x1 x2 x8 x3 = x1 x7 x3 x3 0 1 09. 1 x7 1 x5 1 0 = 1 0 1 x8 x7 010. x3 1 x3 0 = 0 x1 1 0 x3
Solución:
σ (x1)= Λ, σ (x2) = Λ, σ (x3) = 0, σ (x4) = 0 1 0 1 1, σ (x5) =0 0 0 1 0 σ (x6) = 1 1, σ (x7) = 0 1, σ (x8) =1 0 0 0 1
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, 1x1 = 0 x2 = 1 0 1 x1 x2 = x1 x2 x3
…………………………….0 1 x1 x2 … xd-1 xd = x1 x2 … xd+1
El Problema WES (Word Equation Systems)
σ(xi)=FibWordi ;
FibWord1= 0, FibWord2=1,
FibWordi= FibWordi-2FibWordi-1
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∈ Ω.”
El Problema WES (Word Equation Systems)
Ω, variables; C, cláusulas tal que : ∀ c ∈ C; |c| = 3.
El Problema 3-SAT
Ω∈∈= vvvxxxxc i ,,;,, 321
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.
Ejemplo:
El Problema 3-SAT
1,1,0
,,,,,,
3
2
1
===
⎪⎭
⎪⎬
⎫
⎪⎩
⎪⎨
⎧
===
=
zyx
yxzcyyxczyxc
C
Solución:
C = c0, …, cm, instancia de 3-SAT. ci = x3i, x3i+1, x3i+2
Construcción del 2-SWES equivalente1. ∀ 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 = 111Con vj = yv si xj = v; vj = zv en el otro caso.A = 1
Reducción de 3-SAT a 2-SWES
EjemploReducción de 3-SAT a 2-SWES
1,1,0,,,,,,
3
2
1
===⎪⎭
⎪⎬
⎫
⎪⎩
⎪⎨
⎧
===
= zyxyxzcyyxczyxc
C
2-SWES equivalente: yx zx = 1, yy zy = 1, yz zz = 1c1 yx zy yz = 111, c2 zx yy zy = 111, c3 yz yx yy = 111Solución: σ(yx) = Λ, σ(zx) = 1, σ(yy) = 1, σ(zy) = Λσ(yz) = 1, σ(zz) = Λ; σ(c1) = 11, σ(c2) = 1, σ(c3) = 1
Representación de los individuosA=0,1; S=L1=R1, …, Ln=Rn; Ω=x1, …,xmCota d t.q. para toda solución σ: |σ(xi)|≤ d ∀ i
Cromosoma: *,1,0*''';,, 1 BAiiim =∈== αααααα L
El Algoritmo Evolutivo
dBA iiiii =+=∈∈ '''*;''*;' ααααα
Función Fitness (Hamming distance)
*,1,0*''';,, 1 BAiiim =∈== αααααα L
El Algoritmo Evolutivo
*)(),();()(,),()( 11 ARLRLRL iinn ∈== αααααα L
;)(,)(li αα iii RrL ==
),()(1
ii
n
ii srlMaxf −=∑
=
α
])[(])[(..,lmin,,1 i kRkLqtrks iiii αα =∈= L
soluciónes1')x(0)(
mif ii
≤≤=⇔= ασα
Operador cruce
*'',''*;',';''';''',,,, 11
BA iiiiiiiiii
mm
∈∈====
βαβαβββαααβββααα LL
El Algoritmo Evolutivo
iiiiii crcrucea =≤= ),('' βαβα
=icr ],1[ iii kacr + ],1[ dkcr ii +],1[ ii acr ],1[ ii acr
]),1[','( iii armecruceUnifo βα
],1[ iii kacr +
,,1];',min,1[' dakka iiiiii L+∈+ ββ
],1[ dkcr ii +
ikdB −
Ejemplo
BBBBBBBBBBBB
iiii
ii
======
'',100011';'',01'100011;01
ββααβα
El Algoritmo Evolutivo
11=icr
4=ik
00 BBB
Operador mutación
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
,, 1 mααα L=
El Algoritmo EvolutivoEl proceso de búsqueda local 1
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 .
*'';'*,';'''
,, 1
BBaA iadiiiiiii
m
∈==∈=
=−αααααα
ααα L
El Algoritmo EvolutivoEl proceso de búsqueda local 1Se parte del resultado obtenido en la primera fase:
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.
*'';'*,';'''
,, 1
BBaA iadiiflipiiflipiiflipi
m
∈==∈=
=−αααααα
ααα L
101BB 00BBB
Búsq. Local clásica
001BB 11BBB
011BB 01BBBBúsq. Local clásica
Repito Hasta que NO Mejora
Primera fase
011BB 01BBB
Ejemplo búsqueda local 1
011BB 01BBB
Incremento 1ª variable
0110B 01BBB0111B 01BBB
Decremento 1ª variable01BBB 01BBB
Mejor Fitness
0111B 01BBB
Ejemplo búsqueda local 1Segunda fase
0111B 01BBB0111B 010BB0111B 011BB
0111B 0BBBB
Mejor Fitness
Si mejoro volver a la primera fase.0111B 0BBBB
El proceso de búsqueda local 2
1. Recorrer α’i modificando cada gen si produce
mejora (se obtiene α’i flip).
2. Modificar longitud de α’i flip si produce mejora.
*'';'*,';'''
,, 1
BBaA iadiiiiiii
m
∈==∈=
=−αααααα
ααα L
El Algoritmo Evolutivo
iadflipi B −'α
)1(0' +− iadflipi Bα
)1(1' +− iadflipi Bα
)1(]1,1[' −−− iadiflipi Baα
Ejemplo de búsqueda local 2101BB 00BBB
Búsq. Local
Clásica 1ª var.
001BB 00BBB
Incremento 1ª var.
0010B 00BBB
0010B 00BBB0011B 00BBB
Decremento 1ª var.
00BBB 00BBBMejor Fitness
0010B 00BBBBúsq. Local
Clásica 2ª var.0010B 10BBB
0010B 10BBB
0010B 100BB0010B 101BB
0010B 0BBBBMejor Fitness
Si mejoro repito el proceso.
El proceso de búsqueda local
βγγγα == s,,, 10 L
El Algoritmo Evolutivo
2,,0)()() 1 −∈<+ sjffa jj Kγγ
1'',1) 1 ≤−∈∀ + ii jjmib γγK
ssc γγ =−1)
beginGeneration := 0;Population := initial_population;evaluate(Population);while (not_termination_condition) dobegin
Best := best_individual(Population);New_population := Best;while (|New_population| < |Population|) dobegin
Pair := select_parents(Population);Child := crossover(Pair);Child := mutation(Child, probability);Child := local_search(Child);New_population := insert(Child, New_population);
endPopulation := New_population;Generation := Generation + 1
endend
El Algoritmo Evolutivo
Resultados Experimentales
TamaTamañño de la poblacio de la poblacióónn
Resultados Experimentales
Probabilidad de mutaciProbabilidad de mutacióónn
Resultados Experimentales
Probabilidad de mutaciProbabilidad de mutacióónn
Resultados Experimentales
BBúúsqueda localsqueda local
Problema 10-8-5 (248)
Problema 10-15-3 (290)
Resultados Experimentales
BBúúsqueda localsqueda local
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
Resultados Experimentales
• 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 = 010Distancia de Levensthein (0110, 010) = 1
0110 = 0110Distancia de Hamming (0110, 010) = 2
0110 = 010_ Fitness = 2
Distancia Levensthein (α, β) ≤ Distancia Hamming (α, β)
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]
Algoritmo Evolutivo (Otra propuesta)
Straight Line Programs: A new Linear Genetic Approach
César L. AlonsoE.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
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
The data structure: straight line program
⎪⎪⎪
⎩
⎪⎪⎪
⎨
⎧
−==
+==
+=
≡Γ
345
324
223
112
11
:*:
:*:
1:
uuuuuuxxu
uuuxu
Γ = u1, … , ul a slp over F and T.
;
Semantic function
1 ≤ j ≤ t
The data structure: straight line program
tii uuO ,,)(
1K=Γ
),,(),,(;: 11 tptp bbaaOI KK =Φ→Φ ΓΓ
⎪⎭
⎪⎬
⎫
=
=
pp ax
ax
:
: 11
Mjiu
jb
TxxV p ⊂= ,,1 K
Two slp’s Γ1 and Γ2 are considered equivalent if
I our casegiven a slp over F and T
With output set
We can consider the equivalent slp
The data structure: straight line program
liuO i ≤≤=Γ 01)(0
21 ΓΓ Φ=Φ
luu ,1 K=Γ
0
,,' 1 iuu K=Γ
RRn →Φ=Φ ΓΓ :'
Effective code in straight line programs
4
14
223
12
1
)(
*:*:
:1*:
uOwith
yuuuuuyuu
xu
=Γ
⎪⎪⎩
⎪⎪⎨
⎧
==
+==
≡Γ
Given the following slp:
For computing u2 and u3 are not necessary ΓΦ
212
1 )'(*:1*:
' uOwithyuu
xu=Γ
⎩⎨⎧
==
=Γ
Is and effective slp equivalent to Γ
Effective code in straight line programs
In general
Let the effective code is ll uOwithuu =Γ=Γ )(,,1 K
miilii iiuuuRuuSm
<<=Γ∈= KK 1;,,/1
kiwithfufukjkiji ajkaji <== ),,(:);,,(: 11 ββαα KK
kjsiki asuRuu ≤≤=⇔ 1;β
mm uOwithuu ')'(',,'' 1 =Γ=Γ K is an effective slp equivalent to Γ
Is the reflexive and transitive closure of R, where: R
Symbolic regression problem
miYXyxzsample ii ≤≤×∈= 1;),(
Goal YXf →:Which predicts y∈Y from a given x ∈ X
)())((1)( 2
1
MSEyxfm
f i
m
iiz −= ∑
=
ε
In general X = Rn ; Y = R
GP with straight line programs
Fitness
miYXyxz ii ≤≤×∈= 1;),(2
1
))((1)()( i
m
iizz yx
mF −Φ=Φ=Γ ∑
=ΓΓε
Mutation
;,1 Luu K=Γ ,,);,,(: 111 −∪∈∈= ini uuTFffu KK ααα
Liii uuuuu ,,,',,' 111 KK +−=Γ
,,');,,,',,,(:' 11111 −+− ∪∈= ijnjjji uuTfu KKK αααααα
GP with straight line programs
Crossover
LL uuuu ','';, 11 KK =Γ=Γ
Select k∈1, …, L ,,/1 mk jjkjju uuuRuuS K=Γ∈=
Select t∈m, …, L
Substitute in Γ’kutmt Sbyuu ',,' 1 K+− 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.
⎪⎪⎪
⎩
⎪⎪⎪
⎨
⎧
+===
+==
≡Γ
415
24
23
2
1
1
:*:*:
:*
uuuxuuxuuyxu
xx:u
⎪⎪⎪
⎩
⎪⎪⎪
⎨
⎧
+==
+=+=
=
≡Γ
⎪⎪⎪
⎩
⎪⎪⎪
⎨
⎧
=+=
==
+=
≡Γ
415
24
13
12
1
235
234
13
112
1
:*:
::
*
'
*::
*:*:
uuuxuuxuuyuu
xx:u
uuuuuu
xuuuuuyx:u
Example of crossover
assume k=3 and t=3 assume k’=4 and t’=5
⎪⎪⎪
⎩
⎪⎪⎪
⎨
⎧
=+=
==
+=
≡Γ
xuuyuu
xxuuuuyx:u
*::
*:*:
45
34
3
112
1
2
Replacement
We rank Γ, Γ’, Γ1 Γ2 and we pick one individual from each of the two first levels of the ranking
Experiments
Experimental settings
wzyxwzyxK
zyxzyxG
zyxzyxF
81
62
41
21),,,(
32
31
21),,(
1)(),,( 2
+++=
++=
+++=
Experiments
Success rate MBF and ABF over success runs
⎭⎬⎫
⎩⎨⎧ +=
=+=
=+++=
+−
1)sin(,2min)(
)2cos()(1416,3718,2)(
)()(
5
4
23
23sin2
2341
xx
xf
xxfxxxf
exfxxxxxf
xx
Experiments
Experimental settings
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