SlideShare una empresa de Scribd logo
1 de 54
Descargar para leer sin conexión
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
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.
Representación Binaria (Genotipo)



           CROMOSOMA




               GEN




     Representación Binaria (Fenotipo)


Genotype
                          Fenotipo:
8 bits
                         • Entero
                         • Real
                         • Planificación
                         • ...
                         • Otros
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
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
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
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
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.
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)
              - - -
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
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)
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
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.
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

• .....
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á
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)
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,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
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’)
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.
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
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 ]
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
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
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

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




                     Índice

• Introducción.

• El problema “Word Equation Systems” (WES).

• El problema 3-SAT.

• El Algoritmo Evolutivo.

• Resultados Experimentales.

• Trabajo Futuro.
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.
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}




  El Problema WES (Word Equation Systems)
1.    0 0 1 1 x1 1 1 1 = 0 x1 0 x6 x6 1
2.    x2 x7 x1 1 = x2 0 x2 1 1
3.    0 1 x5 x3 0 1 1 1 = x3 x1 x8 x1 0 0 0 1 1 x1 1
4.    0 x7 1 x3 0 0 1 = x1 0 0 x6 x1 x2 0 0 0 x2 1
5.    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 0
7.    0 0 0 x7 x1 0 = x3 0 x3 0 x2 1 0
8.    0 x1 x2 x8 x3 = x1 x7 x3 x3 0 1 0
9.    1 x7 1 x5 1 0 = 1 0 1 x8 x7 0
10.   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, 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∈ Ω.”
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
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
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
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
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 .
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
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.
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
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
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ó
Resultados Experimentales
Probabilidad de mutación
                mutació




Resultados Experimentales
Probabilidad de mutación
                mutació
Resultados Experimentales
                Búsqueda local
Problema 10-8-5 (248)




        Resultados Experimentales
                Búsqueda local
Problema 10-15-3 (290)
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
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 (α, β)
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]
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
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
     ⎩
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
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 Γ
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}
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
                                                        ⎩
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
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

Más contenido relacionado

Destacado

ViSalus Business Briefing
ViSalus Business BriefingViSalus Business Briefing
ViSalus Business Briefing
Lori Kober
 
La gestión de los pacientes crónicos es un reto
La gestión de los pacientes crónicos es un retoLa gestión de los pacientes crónicos es un reto
La gestión de los pacientes crónicos es un reto
Carlos Mario Cortina
 
El árbol de la vida
El árbol de la vidaEl árbol de la vida
El árbol de la vida
susanabiebs
 
Planificación estratégica yanith delgado
Planificación estratégica yanith delgadoPlanificación estratégica yanith delgado
Planificación estratégica yanith delgado
yanith24
 
Presentación de propuestas para ea
Presentación de propuestas para eaPresentación de propuestas para ea
Presentación de propuestas para ea
Brite Cristo
 

Destacado (17)

ViSalus Business Briefing
ViSalus Business BriefingViSalus Business Briefing
ViSalus Business Briefing
 
II Convención de Agronegocios - UPC
II Convención de Agronegocios - UPCII Convención de Agronegocios - UPC
II Convención de Agronegocios - UPC
 
Programa
Programa Programa
Programa
 
Internet1
Internet1Internet1
Internet1
 
Plettenbacher: Neues Geld Neue Welt V2.2
Plettenbacher: Neues Geld Neue Welt V2.2Plettenbacher: Neues Geld Neue Welt V2.2
Plettenbacher: Neues Geld Neue Welt V2.2
 
3275 Checkweigher
3275 Checkweigher3275 Checkweigher
3275 Checkweigher
 
Schnelle FäUste
Schnelle FäUsteSchnelle FäUste
Schnelle FäUste
 
Betz 08-11-2008
Betz 08-11-2008Betz 08-11-2008
Betz 08-11-2008
 
La gestión de los pacientes crónicos es un reto
La gestión de los pacientes crónicos es un retoLa gestión de los pacientes crónicos es un reto
La gestión de los pacientes crónicos es un reto
 
El árbol de la vida
El árbol de la vidaEl árbol de la vida
El árbol de la vida
 
Word
WordWord
Word
 
Planificación estratégica yanith delgado
Planificación estratégica yanith delgadoPlanificación estratégica yanith delgado
Planificación estratégica yanith delgado
 
Presentación1
Presentación1Presentación1
Presentación1
 
Hydraulikzylinder-Service von SKF Economos Deutschland GmbH
Hydraulikzylinder-Service von SKF Economos Deutschland GmbHHydraulikzylinder-Service von SKF Economos Deutschland GmbH
Hydraulikzylinder-Service von SKF Economos Deutschland GmbH
 
Presentación de propuestas para ea
Presentación de propuestas para eaPresentación de propuestas para ea
Presentación de propuestas para ea
 
Gestalt
GestaltGestalt
Gestalt
 
Practica 29
Practica 29Practica 29
Practica 29
 

Similar a Documentación doctorado

Algoritmos genéticos con matlab
Algoritmos genéticos con matlabAlgoritmos genéticos con matlab
Algoritmos genéticos con matlab
UNIV OF PERU
 
Presentacion Algortimos Geneticos
Presentacion Algortimos GeneticosPresentacion Algortimos Geneticos
Presentacion Algortimos Geneticos
pechever
 
Variables dependientes limitadas
Variables dependientes limitadasVariables dependientes limitadas
Variables dependientes limitadas
Eric Burgos
 
Tema VIII (Funciones Racionales)
Tema VIII (Funciones Racionales)Tema VIII (Funciones Racionales)
Tema VIII (Funciones Racionales)
Angel Carreras
 
Algoritmos Genticos Optimizacin Presentacin
Algoritmos Genticos Optimizacin PresentacinAlgoritmos Genticos Optimizacin Presentacin
Algoritmos Genticos Optimizacin Presentacin
Hamilton
 

Similar a Documentación doctorado (20)

Tema 7 Aprendizaje De Sistemas Difusos Con Algoritmos GenéTicos
Tema 7 Aprendizaje De Sistemas Difusos Con Algoritmos GenéTicosTema 7 Aprendizaje De Sistemas Difusos Con Algoritmos GenéTicos
Tema 7 Aprendizaje De Sistemas Difusos Con Algoritmos GenéTicos
 
Algoritmos genéticos
Algoritmos genéticosAlgoritmos genéticos
Algoritmos genéticos
 
Paralela8
Paralela8Paralela8
Paralela8
 
Algoritmos genéticos con matlab
Algoritmos genéticos con matlabAlgoritmos genéticos con matlab
Algoritmos genéticos con matlab
 
Ca 3
Ca 3Ca 3
Ca 3
 
Paralela6
Paralela6Paralela6
Paralela6
 
Presentacion Algortimos Geneticos
Presentacion Algortimos GeneticosPresentacion Algortimos Geneticos
Presentacion Algortimos Geneticos
 
Presentacion semana6 nivel
Presentacion semana6 nivelPresentacion semana6 nivel
Presentacion semana6 nivel
 
Variables dependientes limitadas
Variables dependientes limitadasVariables dependientes limitadas
Variables dependientes limitadas
 
Variables dependientes limitadas
Variables dependientes limitadasVariables dependientes limitadas
Variables dependientes limitadas
 
Algoritmo NVMO para problemas multimodales
Algoritmo NVMO para problemas multimodalesAlgoritmo NVMO para problemas multimodales
Algoritmo NVMO para problemas multimodales
 
Algoritmos y Estructura de Datos
Algoritmos y Estructura de DatosAlgoritmos y Estructura de Datos
Algoritmos y Estructura de Datos
 
2 algoritmos-1
2 algoritmos-12 algoritmos-1
2 algoritmos-1
 
Paralela4
Paralela4Paralela4
Paralela4
 
¿Sueñan los crackers con ordenadores cuánticos?
¿Sueñan los crackers con ordenadores cuánticos?¿Sueñan los crackers con ordenadores cuánticos?
¿Sueñan los crackers con ordenadores cuánticos?
 
¿Sueñan los crackers con ordenadores cuánticos
¿Sueñan los crackers con ordenadores cuánticos¿Sueñan los crackers con ordenadores cuánticos
¿Sueñan los crackers con ordenadores cuánticos
 
Sistemas Difusos
Sistemas DifusosSistemas Difusos
Sistemas Difusos
 
Algoritmo Multikulti: migración de genotipos en un modelo de islas y su impac...
Algoritmo Multikulti: migración de genotipos en un modelo de islas y su impac...Algoritmo Multikulti: migración de genotipos en un modelo de islas y su impac...
Algoritmo Multikulti: migración de genotipos en un modelo de islas y su impac...
 
Tema VIII (Funciones Racionales)
Tema VIII (Funciones Racionales)Tema VIII (Funciones Racionales)
Tema VIII (Funciones Racionales)
 
Algoritmos Genticos Optimizacin Presentacin
Algoritmos Genticos Optimizacin PresentacinAlgoritmos Genticos Optimizacin Presentacin
Algoritmos Genticos Optimizacin Presentacin
 

Último

FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
El Fortí
 
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
jlorentemartos
 
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
EliaHernndez7
 
6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria
Wilian24
 

Último (20)

LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptxLA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
 
Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024
 
semana 4 9NO Estudios sociales.pptxnnnn
semana 4  9NO Estudios sociales.pptxnnnnsemana 4  9NO Estudios sociales.pptxnnnn
semana 4 9NO Estudios sociales.pptxnnnn
 
Sesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronósticoSesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronóstico
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
 
EL HABITO DEL AHORRO en tu idea emprendedora22-04-24.pptx
EL HABITO DEL AHORRO en tu idea emprendedora22-04-24.pptxEL HABITO DEL AHORRO en tu idea emprendedora22-04-24.pptx
EL HABITO DEL AHORRO en tu idea emprendedora22-04-24.pptx
 
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdfFeliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
 
Supuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docxSupuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docx
 
SESION DE PERSONAL SOCIAL. La convivencia en familia 22-04-24 -.doc
SESION DE PERSONAL SOCIAL.  La convivencia en familia 22-04-24  -.docSESION DE PERSONAL SOCIAL.  La convivencia en familia 22-04-24  -.doc
SESION DE PERSONAL SOCIAL. La convivencia en familia 22-04-24 -.doc
 
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).pptPINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
 
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
 
Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024
 
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VSOCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
 
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICABIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
 
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
 
6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria
 
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptxCONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
 
Abril 2024 - Maestra Jardinera Ediba.pdf
Abril 2024 -  Maestra Jardinera Ediba.pdfAbril 2024 -  Maestra Jardinera Ediba.pdf
Abril 2024 - Maestra Jardinera Ediba.pdf
 
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docxPLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
 

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
  • 25. 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
  • 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.
  • 30. 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} El Problema WES (Word Equation Systems) 1. 0 0 1 1 x1 1 1 1 = 0 x1 0 x6 x6 1 2. x2 x7 x1 1 = x2 0 x2 1 1 3. 0 1 x5 x3 0 1 1 1 = x3 x1 x8 x1 0 0 0 1 1 x1 1 4. 0 x7 1 x3 0 0 1 = x1 0 0 x6 x1 x2 0 0 0 x2 1 5. 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 0 7. 0 0 0 x7 x1 0 = x3 0 x3 0 x2 1 0 8. 0 x1 x2 x8 x3 = x1 x7 x3 x3 0 1 0 9. 1 x7 1 x5 1 0 = 1 0 1 x8 x7 0 10. 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
  • 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ó
  • 42. Resultados Experimentales Probabilidad de mutación mutació Resultados Experimentales Probabilidad de mutación mutació
  • 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