Introducci´ n a la Computaci´ n Evolutiva
          o                 o
            (Notas de Curso)


              Dr. C...
c 2000,2001,2002,2003,2004,2005,2006,2007,2008,2009
            Todos los derechos reservados




                        2
Dedicatorias




A mi esposa Lupita,
por todo el apoyo que
siempre me ha brindado.




                                  A...
4
Contenido

1   Conceptos B´ sicos
                a                                                                       ...
2.21   Ecosistemas artificiales   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   ....
5.5    Representaci´ n de arbol . . . . . . . . . . . . . . . . . . . . . .
                       o      ´               ...
7 T´ cnicas de Cruza
    e                                                                           141
  7.1 Introducci´...
8   Mutaci´ n
          o                                                                                                 ...
10.1.3 Penalizaciones Din´ micas . . . . . . . . . . . . . . . . . 194
                                    a
             ...
12.4 No Free Lunch Theorem . . . . . . . . . . . . . . .                                  .   .   .   .   .   .   .   224
...
15.2.4 Esquemas h´bridos . . . . . . . . . . .
                            ı                                        .   . ...
Lista de Tablas

 3.1   Tabla comparativa de los tres paradigmas principales que confor-
       man la computaci´ n evolut...
14
Lista de Figuras

 1.1    Dos ejemplos de conjuntos convexos. . . . . . . . . . . . . . .       . 35
 1.2    Dos ejemplos ...
3.2    Aut´ mata finito de 3 estados. Los s´mbolos a la izquierda de “/”
           o                                   ı
 ...
5.4    Una representaci´ n entera de n´ meros reales. La cadena com-
                         o              u
       plet...
12.2 Representaci´ n gr´ fica de la
                  o     a              clase de    problemas     deceptivos de
     Tip...
Introducci´ n
          o

Estas notas de curso son producto de la experiencia de haber impartido clases de
computaci´ n e...
Las principales t´ cnicas de selecci´ n utilizadas con los algoritmos gen´ ticos
                       e                 ...
Reconocimientos

La elaboraci´ n de estas notas no habr´a sido posible sin la ayuda de la Mat. Ma.
             o         ...
22
Cap´tulo 1
   ı

Conceptos B´ sicos
           a

Antes de aventurarse a tomar un curso de computaci´ n evolutiva (o sobre...
end for i
  (3) for i = 1 to n do
        for j = 1 to n do
           a=a+b
        end for j
      end for i
   La frecu...
1. Buscar un elemento en una lista no ordenada: O(n)

   2. Buscar un elemento en una lista ordenada: O(log n)

   3. Quic...
de convertir un algoritmo no determinista a uno determinista, aunque a un costo
computacional que suele ser muy elevado.
 ...
1.2 T´ cnicas Cl´ sicas de Optimizaci´ n
     e          a                    o
Existen muchas t´ cnicas cl´ sicas para re...
5. Checar la optimalidad de Xi+1 . Si el punto es optimo, detenerse. De lo
                                               ...
Para hallar λ∗ , debemos derivar esta expresi´ n con respecto a λ1 e igualar el
                 1                        ...
X3 = X2 + λ ∗ S 2
               2

            −1             1    1         −1 + 15
                                    ...
6. Evaluar optimalidad de Xi+1 . Si Xi+1 es el optimo, detener el proceso. De
                                            ...
−1
    X2 =
                1
Iteraci´ n 2
       o

                                     1 + 4(−2) + 2(1)
    ∇f2 = ∇f (X...
0
   ∇f3 =
                  0
                          |∇f3 |2
   S3 = −∇f3 +                    S
                     ...
A un proceso que puede resolver un cierto problema, pero que no
      ofrece ninguna garant´a de lograrlo, se le denomina ...
F

                F




               Figura 1.1: Dos ejemplos de conjuntos convexos.

se selecciona el mejor de ellos. ...
F                                                        F




                Figura 1.2: Dos ejemplos de conjuntos no co...
S

                               F
                                                   F




                             ...
las variables de decisi´ n son discretas y las soluciones suelen presentarse en la
                       o
forma de permu...
x2


                                              x1




                                          H


                  ...
1. Mencione al menos 2 razones por las cuales un problema del mundo real
puede no ser resuelto f´ cilmente. NO USE ninguna...
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Upcoming SlideShare
Loading in …5
×

Apuntes Coello Coello 2009

6,876 views
6,795 views

Published on

Published in: Education, Travel, Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
6,876
On SlideShare
0
From Embeds
0
Number of Embeds
10
Actions
Shares
0
Downloads
57
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Apuntes Coello Coello 2009

  1. 1. Introducci´ n a la Computaci´ n Evolutiva o o (Notas de Curso) Dr. Carlos A. Coello Coello CINVESTAV-IPN Departamento de Computaci´ n o Av. Instituto Polit´ cnico Nacional No. 2508 e Col. San Pedro Zacatenco M´ xico, D.F. 07300 e ccoello@cs.cinvestav.mx Mayo, 2008
  2. 2. c 2000,2001,2002,2003,2004,2005,2006,2007,2008,2009 Todos los derechos reservados 2
  3. 3. Dedicatorias A mi esposa Lupita, por todo el apoyo que siempre me ha brindado. A mi hijo Carlos Felipe, quien me motiva a querer llegar cada vez mas´ ´ lejos en mi profesion. A mis padres Carlos y Victoria, ˜ por haberme ensenado tantas cosas importantes que no se aprenden en la escuela. 3
  4. 4. 4
  5. 5. Contenido 1 Conceptos B´ sicos a 23 1.1 An´ lisis de algoritmos . . . . . . a . . . . . . . . . . . . . . . . . 23 1.2 T´ cnicas Cl´ sicas de Optimizaci´ n e a o . . . . . . . . . . . . . . . . . 27 1.3 T´ cnicas heur´sticas . . . . . . . . e ı . . . . . . . . . . . . . . . . . 33 1.4 Conceptos Importantes . . . . . . . . . . . . . . . . . . . . . . . 35 1.5 Problemas propuestos . . . . . . . . . . . . . . . . . . . . . . . . 38 2 Un vistazo hist´ rico a la computaci´ n evolutiva o o 41 2.1 El origen de las ideas . . . . . . . . . . . . . . . . . . . . . . . . 41 2.2 Lamarckismo . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 2.3 La teor´a del germoplasma . . . . . . . . . ı . . . . . . . . . . . . 44 2.4 Russell y Darwin . . . . . . . . . . . . . . . . . . . . . . . . . . 45 2.5 La teor´a de la combinaci´ n . . . . . . . . . ı o . . . . . . . . . . . . 46 2.6 Las leyes de la herencia de Mendel . . . . . . . . . . . . . . . . . 47 2.7 La teor´a de la pang´ nesis . . . . . . . . . . ı e . . . . . . . . . . . . 48 2.8 La teor´a de la mutaci´ n . . . . . . . . . . ı o . . . . . . . . . . . . 50 2.9 La teor´a cromos´ mica de la herencia . . . ı o . . . . . . . . . . . . 50 2.10 Neo-Darwinismo . . . . . . . . . . . . . . . . . . . . . . . . . . 51 2.11 Inspiraci´ n biol´ gica . . . . . . . . . . . . o o . . . . . . . . . . . . 52 2.12 Alexander Fraser . . . . . . . . . . . . . . . . . . . . . . . . . . 52 2.13 EVOP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 2.14 La evoluci´ n de programas de Friedberg . . o . . . . . . . . . . . . 54 2.15 Friedman y la rob´ tica evolutiva . . . . . . o . . . . . . . . . . . . 55 2.16 Vida artificial . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 2.17 La optimizaci´ n evolutiva de Bremermann . o . . . . . . . . . . . . 57 2.18 La programaci´ n evolutiva . . . . . . . . . o . . . . . . . . . . . . 57 2.19 Las estrategias evolutivas . . . . . . . . . . . . . . . . . . . . . . 58 2.20 Los algoritmos gen´ ticos . . . . . . . . . . e . . . . . . . . . . . . 60 5
  6. 6. 2.21 Ecosistemas artificiales . . . . . . . . . . . . . . . . . . . . . . . 61 2.22 Programaci´ n gen´ tica o e . . . . . . . . . . . . . . . . . . . . . . . 62 2.23 Din´ mica evolutiva . . a . . . . . . . . . . . . . . . . . . . . . . . 63 2.24 Problemas propuestos . . . . . . . . . . . . . . . . . . . . . . . . 64 3 Principales Paradigmas 67 3.1 Introducci´ n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o 67 3.1.1 Programaci´ n evolutiva . . . . . . . . . . . . . . . . . . . o 68 3.1.1.1 Algoritmo . . . . . . . . . . . . . . . . . . . . 68 3.1.1.2 Ejemplo . . . . . . . . . . . . . . . . . . . . . 69 3.1.2 Aplicaciones . . . . . . . . . . . . . . . . . . . . . . . . 69 3.1.3 Estrategias Evolutivas . . . . . . . . . . . . . . . . . . . 70 3.1.3.1 Algoritmo . . . . . . . . . . . . . . . . . . . . 70 3.1.3.2 Ejemplo . . . . . . . . . . . . . . . . . . . . . 70 3.1.3.3 Convergencia . . . . . . . . . . . . . . . . . . 71 3.1.3.4 Auto-Adaptaci´ n . . . . . . . . . . . . . . . . o 72 3.1.3.5 Estrategias Evolutivas vs Programaci´ n Evolutiva o 73 3.1.3.6 Aplicaciones . . . . . . . . . . . . . . . . . . . 73 3.1.4 Algoritmos Gen´ ticos . . . . . . . . . . . . . . . . . . . e 74 3.1.4.1 Algoritmo . . . . . . . . . . . . . . . . . . . . 74 3.1.4.2 Algoritmos gen´ ticos vs otras t´ cnicas evolutivas e e 75 3.1.4.3 Aplicaciones . . . . . . . . . . . . . . . . . . . 76 3.2 Diferencias de las t´ cnicas evolutivas con respecto a las tradicionales e 78 3.3 Ventajas de las T´ cnicas Evolutivas . . . . . . . . . . . . . . . . e 78 3.4 Cr´ticas a las T´ cnicas Evolutivas . . . . . . . . . . . . . . . . . . ı e 79 3.5 Problemas Propuestos . . . . . . . . . . . . . . . . . . . . . . . . 80 4 Terminolog´a Biol´ gica y de Computaci´ n Evolutiva ı o o 83 4.1 Introducci´ n . . . . . . . . . . . . . . . . . . . . o . . . . . . . . . 83 4.2 Tipos de Aprendizaje . . . . . . . . . . . . . . . . . . . . . . . . 89 4.3 Conceptos de Computaci´ n Evolutiva . . . . . . o . . . . . . . . . 89 4.4 Problemas propuestos . . . . . . . . . . . . . . . . . . . . . . . . 94 5 La Importancia de la Representaci´ n o 95 5.1 Introducci´ n . . . . . . . . . . . . . . . o . . . . . . . . . . . . . . 95 5.2 C´ digos de Gray . . . . . . . . . . . . o . . . . . . . . . . . . . . 98 5.3 Codificando N´ meros Reales . . . . . . u . . . . . . . . . . . . . . 99 5.4 Representaciones de Longitud Variable . . . . . . . . . . . . . . . 102 6
  7. 7. 5.5 Representaci´ n de arbol . . . . . . . . . . . . . . . . . . . . . . o ´ . 105 5.6 Algoritmo Gen´ tico Estructurado . . . . . . . . . . . . . . . . . e . 110 5.7 Otras propuestas . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 5.8 Tendencias futuras . . . . . . . . . . . . . . . . . . . . . . . . . 112 5.9 Recomendaciones para el Dise˜ o de una Buena Representaci´ n . n o . 113 5.10 Problemas propuestos . . . . . . . . . . . . . . . . . . . . . . . . 114 6 T´ cnicas de Selecci´ n e o 115 6.1 Selecci´ n Proporcional . . . . . . . . . . . . . . . . . . . . . o . . 115 6.1.1 La Ruleta . . . . . . . . . . . . . . . . . . . . . . . . . . 116 6.1.1.1 An´ lisis de la Ruleta . . . . . . . . . . . . . a . . 117 6.1.2 Sobrante Estoc´ stico . . . . . . . . . . . . . . . . . . a . . 117 6.1.2.1 An´ lisis del Sobrante Estoc´ stico . . . . . . a a . . 119 6.1.3 Universal Estoc´ stica . . . . . . . . . . . . . . . . . . a . . 119 6.1.3.1 An´ lisis de la selecci´ n universal estoc´ stica a o a . . 121 6.1.4 Muestreo Determin´stico . . . . . . . . . . . . . . . . ı . . 121 6.1.4.1 An´ lisis del muestreo determin´stico . . . . a ı . . 122 6.1.5 Escalamiento Sigma . . . . . . . . . . . . . . . . . . . . 122 6.1.5.1 An´ lisis del escalamiento sigma . . . . . . . a . . 123 6.1.6 Selecci´ n por Jerarqu´as . . . . . . . . . . . . . . . . o ı . . 123 6.1.6.1 An´ lisis de las jerarqu´as lineales . . . . . . a ı . . 124 6.1.7 Selecci´ n de Boltzmann . . . . . . . . . . . . . . . . o . . 125 6.1.7.1 An´ lisis de la selecci´ n de Boltzmann . . . a o . . 126 6.2 Selecci´ n Mediante Torneo . . . . . . . . . . . . . . . . . . . o . . 126 6.2.1 An´ lisis de la selecci´ n mediante torneo . . . . . . . . a o . . 128 6.3 Selecci´ n de Estado Uniforme . . . . . . . . . . . . . . . . . o . . 129 6.3.1 An´ lisis de la Selecci´ n de Estado Uniforme . . . . . a o . . 130 6.4 Brecha Generacional . . . . . . . . . . . . . . . . . . . . . . . . 130 6.5 Otras T´ cnicas de Selecci´ n . . . . . . . . . . . . . . . . . . e o . . 131 6.5.1 Selecci´ n Disruptiva . . . . . . . . . . . . . . . . . . o . . 131 6.5.1.1 An´ lisis de la selecci´ n disruptiva . . . . . . a o . . 132 6.5.2 Jerarqu´as No Lineales . . . . . . . . . . . . . . . . . ı . . 132 6.5.2.1 An´ lisis de las jerarqu´as no lineales . . . . a ı . . 133 6.5.3 Selecci´ n Competitiva . . . . . . . . . . . . . . . . . o . . 135 6.6 Clasificaciones de T´ cnicas de Selecci´ n . . . . . . . . . . . . e o . . 135 6.7 Problemas Propuestos . . . . . . . . . . . . . . . . . . . . . . . . 136 7
  8. 8. 7 T´ cnicas de Cruza e 141 7.1 Introducci´ n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o 141 7.1.1 Cruza de un punto . . . . . . . . . . . . . . . . . . . . . 141 7.1.1.1 Orden de un esquema . . . . . . . . . . . . . . 142 7.1.1.2 Longitud de definici´ n . . . . . . . . . . . . . . o 142 7.1.1.3 An´ lisis de la cruza de un punto . . . . . . . . . a 143 7.1.2 Cruza de dos puntos . . . . . . . . . . . . . . . . . . . . 143 7.1.3 Cruza uniforme . . . . . . . . . . . . . . . . . . . . . . . 145 7.1.4 Cruza Acentuada . . . . . . . . . . . . . . . . . . . . . . 145 7.1.4.1 Observaciones sobre la cruza acentuada . . . . 146 7.2 Sesgos de la Cruza . . . . . . . . . . . . . . . . . . . . . . . . . 147 7.2.1 Sesgo distribucional . . . . . . . . . . . . . . . . . . . . 147 7.2.2 Sesgo posicional . . . . . . . . . . . . . . . . . . . . . . 148 7.3 Variantes de la Cruza . . . . . . . . . . . . . . . . . . . . . . . . 148 7.4 Comportamiento Deseable de la Cruza . . . . . . . . . . . . . . . 149 7.5 Cruza para representaciones alternativas . . . . . . . . . . . . . . 149 7.5.1 Cruza para Programaci´ n Gen´ tica . . . . . . . . . . . . o e 149 7.5.1.1 Observaciones sobre la cruza para programaci´ n o gen´ tica . . . . . . . . . . . . . . . . . . . . . e 150 7.5.2 Cruza para Permutaciones . . . . . . . . . . . . . . . . . 151 7.5.2.1 Order Crossover (OX) . . . . . . . . . . . . . . 152 7.5.2.2 Partially Mapped Crossover (PMX) . . . . . . . 153 7.5.2.3 Position-based Crossover . . . . . . . . . . . . 153 7.5.2.4 Order-based Crossover . . . . . . . . . . . . . 154 7.5.2.5 Cycle Crossover (CX) . . . . . . . . . . . . . . 155 7.5.3 Otras propuestas . . . . . . . . . . . . . . . . . . . . . . 157 7.6 Cruza para Representaci´ n Real . . . . . . . . . . . . . . . . . . o 157 7.6.1 Cruza Simple . . . . . . . . . . . . . . . . . . . . . . . . 158 7.6.2 Cruza de dos puntos . . . . . . . . . . . . . . . . . . . . 158 7.6.3 Cruza uniforme . . . . . . . . . . . . . . . . . . . . . . . 158 7.6.4 Cruza intermedia . . . . . . . . . . . . . . . . . . . . . . 159 7.6.5 Cruza aritm´ tica simple . . . . . . . . . . . . . . . . . . e 159 7.6.6 Cruza aritm´ tica total . . . . . . . . . . . . . . . . . . . . e 160 7.6.7 Simulated Binary Crossover (SBX) . . . . . . . . . . . . 161 7.7 Problemas Propuestos . . . . . . . . . . . . . . . . . . . . . . . . 162 8
  9. 9. 8 Mutaci´ n o 165 8.1 Mutaci´ n para Permutaciones . . . . . . . . . . . . . . o . . . . . . 165 8.1.1 Mutaci´ n por Inserci´ n . . . . . . . . . . . . . o o . . . . . . 165 8.1.2 Mutaci´ n por Desplazamiento . . . . . . . . . o . . . . . . 166 8.1.3 Mutaci´ n por Intercambio Rec´proco . . . . . o ı . . . . . . 166 8.1.4 Mutaci´ n Heur´stica . . . . . . . . . . . . . . o ı . . . . . . 166 8.2 Mutaci´ n para Programaci´ n Gen´ tica . . . . . . . . . o o e . . . . . . 167 8.3 Mutaci´ n para Representaci´ n Real . . . . . . . . . . o o . . . . . . 168 8.3.1 Mutaci´ n No Uniforme . . . . . . . . . . . . . o . . . . . . 168 8.3.2 Mutaci´ n de L´mite . . . . . . . . . . . . . . . o ı . . . . . . 169 8.3.3 Mutaci´ n Uniforme . . . . . . . . . . . . . . . o . . . . . . 170 8.3.4 Parameter-Based Mutation . . . . . . . . . . . . . . . . . 171 8.4 Cruza vs. Mutaci´ n . . . . . . . . . . . . . . . . . . . o . . . . . . 172 8.4.1 ¿Cu´ l es el poder exploratorio de la mutaci´ n? a o . . . . . . 172 8.5 Problemas Propuestos . . . . . . . . . . . . . . . . . . . . . . . . 173 9 Ajuste de Par´ metros a 175 9.1 Introducci´ n . . . . . . . . . . . . . . . . . . . . . . . . o . . . . . 175 9.2 Los experimentos de De Jong . . . . . . . . . . . . . . . . . . . . 175 9.3 Tama˜ o optimo de poblaci´ n . . . . . . . . . . . . . . . n ´ o . . . . . 178 9.4 Los experimentos de Schaffer . . . . . . . . . . . . . . . . . . . . 180 9.5 Auto-adaptaci´ n . . . . . . . . . . . . . . . . . . . . . . o . . . . . 181 9.5.1 La propuesta de Davis . . . . . . . . . . . . . . . . . . . 184 9.5.2 Cr´ticas a la auto-adaptaci´ n . . . . . . . . . . . ı o . . . . . 185 9.6 Mecanismos de Adaptaci´ n . . . . . . . . . . . . . . . . o . . . . . 185 9.6.1 Mutaciones Variables . . . . . . . . . . . . . . . . . . . . 185 9.6.2 Mutaci´ n dependiente de la aptitud . . . . . . . o . . . . . 186 9.6.3 AGs adaptativos . . . . . . . . . . . . . . . . . . . . . . 186 9.6.4 T´ cnicas Adaptativas Basadas en L´ gica Difusa . e o . . . . . 187 9.6.5 Representaciones Adaptativas . . . . . . . . . . . . . . . 187 9.7 Problemas Propuestos . . . . . . . . . . . . . . . . . . . . . . . . 189 10 Manejo de Restricciones 191 10.1 Funciones de Penalizaci´ n . . . o . . . . . . . . . . . . . . . . . . 191 10.1.1 Pena de Muerte . . . . . . . . . . . . . . . . . . . . . . . 193 10.1.1.1 An´ lisis . . . a . . . . . . . . . . . . . . . . . . 193 10.1.2 Penalizaciones est´ ticas a . . . . . . . . . . . . . . . . . . 193 10.1.2.1 An´ lisis . . . a . . . . . . . . . . . . . . . . . . 194 9
  10. 10. 10.1.3 Penalizaciones Din´ micas . . . . . . . . . . . . . . . . . 194 a 10.1.3.1 An´ lisis . . . . . . . . . . . . . . . . . . . . . 194 a 10.1.4 Uso de recocido simulado . . . . . . . . . . . . . . . . . 194 10.1.4.1 An´ lisis . . . . . . . . . . . . . . . . . . . . . 195 a 10.1.5 Penalizaciones Adaptativas . . . . . . . . . . . . . . . . . 195 10.1.5.1 An´ lisis . . . . . . . . . . . . . . . . . . . . . 195 a 10.1.6 Algoritmo gen´ tico segregado . . . . . . . . . . . . . . . 196 e 10.1.6.1 An´ lisis . . . . . . . . . . . . . . . . . . . . . 196 a 10.1.7 Penalizaci´ n con base en la factibilidad . . . . . . . . . . 196 o 10.1.7.1 An´ lisis . . . . . . . . . . . . . . . . . . . . . 197 a 10.2 T´ cnicas que usan conceptos de Optimizaci´ n Multiobjetivo . . . 197 e o 10.2.1 COMOGA . . . . . . . . . . . . . . . . . . . . . . . . . 198 10.2.2 Direct Genetic Search . . . . . . . . . . . . . . . . . . . 199 10.2.3 Reducci´ n de objetivos, no dominancia y b´ squeda lineal. 199 o u 10.2.4 Selecci´ n por torneo con reglas especiales. . . . . . . . . 200 o 10.2.5 VEGA para manejo de restricciones . . . . . . . . . . . . 200 10.2.6 Jerarqu´as en distintos espacios y restricciones de apareamiento201 ı 10.2.7 MOGA y no dominancia . . . . . . . . . . . . . . . . . . 201 10.2.8 NPGA para manejo de restricciones . . . . . . . . . . . . 202 10.2.9 Constrained Robust Optimization . . . . . . . . . . . . . 203 10.2.10 EMO para optimizaci´ n con restricciones, satisfacci´ n de o o restricciones y programaci´ n por metas . . . . . . . . . . 204 o 10.2.11 Asignaci´ n de aptitud en 2 fases . . . . . . . . . . . . . . 204 o 10.2.12 Otras propuestas . . . . . . . . . . . . . . . . . . . . . . 205 10.3 Problemas Propuestos . . . . . . . . . . . . . . . . . . . . . . . . 205 11 Software 207 11.1 Software de Dominio P´ blico . . . . . . . . . . . . . . . . . . . . 208 u 11.2 Software Comercial . . . . . . . . . . . . . . . . . . . . . . . . . 213 11.3 Problemas Propuestos . . . . . . . . . . . . . . . . . . . . . . . . 215 12 Fundamentos Te´ ricos o 217 12.1 Paralelismo Impl´cito . . . . . . . . . . . ı . . . . . . . . . . . . . 219 12.2 Derivaci´ n del Teorema de los Esquemas o . . . . . . . . . . . . . 220 12.2.1 Efecto de la Selecci´ n . . . . . . o . . . . . . . . . . . . . 221 12.2.2 Efecto de la Cruza . . . . . . . . . . . . . . . . . . . . . 221 12.2.3 Efecto de la Mutaci´ n . . . . . . o . . . . . . . . . . . . . 222 12.3 Cr´ticas al Teorema de los Esquemas . . . ı . . . . . . . . . . . . . 223 10
  11. 11. 12.4 No Free Lunch Theorem . . . . . . . . . . . . . . . . . . . . . . 224 12.5 Decepci´ n . . . . . . . . . . . . . . . . . . . . . . . o . . . . . . . 224 12.6 Areas abiertas de investigaci´ n . . . . . . . . . . . . o . . . . . . . 225 12.7 ¿Cu´ ndo debe utilizarse un AG? . . . . . . . . . . . a . . . . . . . 226 12.8 ¿Qu´ es lo que hace dif´cil un problema para un AG? e ı . . . . . . . 226 12.9 Las Funciones de la Carretera Real . . . . . . . . . . . . . . . . . 229 12.10¿Cu´ ndo debe usarse un AG? . . . . . . . . . . . . . a . . . . . . . 231 12.11Dise˜ o de Funciones Deceptivas . . . . . . . . . . . n . . . . . . . 231 12.12Estudios de Convergencia . . . . . . . . . . . . . . . . . . . . . . 234 12.12.1 Algoritmo Gen´ tico Sin Elitismo . . . . . . e . . . . . . . 235 12.12.2 Algoritmo Gen´ tico Elitista . . . . . . . . . e . . . . . . . 237 12.13Problemas Propuestos . . . . . . . . . . . . . . . . . . . . . . . . 239 13 Operadores Avanzados 241 13.1 Diploides y Dominancia . . . . . . . . . . . . . . . . . . . . . . 241 13.2 Inversi´ n . . . . . . . . . . . o . . . . . . . . . . . . . . . . . . . 243 13.3 Micro-Operadores . . . . . . . . . . . . . . . . . . . . . . . . . . 245 13.3.1 Segregaci´ n . . . . . . o . . . . . . . . . . . . . . . . . . . 245 13.3.2 Traslocaci´ n . . . . . o . . . . . . . . . . . . . . . . . . . 245 13.3.3 Duplicaci´ n y Borrado o . . . . . . . . . . . . . . . . . . . 245 13.4 Problemas Propuestos . . . . . . . . . . . . . . . . . . . . . . . . 246 14 Aplicaciones Exitosas de la Computaci´ n Evolutiva o 247 14.1 Dise˜ o de P´ ptidos . . . . . . . . . . . . . . . . n e . . . . . . . . . 247 14.2 Optimizaci´ n de Estrategias de Producci´ n . . . o o . . . . . . . . . 247 14.3 Predicci´ n . . . . . . . . . . . . . . . . . . . . . o . . . . . . . . . 248 14.4 Dise˜ o de un Sistema de Suspensi´ n . . . . . . . n o . . . . . . . . . 248 14.5 Programaci´ n de Horarios . . . . . . . . . . . . o . . . . . . . . . 249 14.6 Dise˜ o de una Red de Agua Potable . . . . . . . n . . . . . . . . . 249 14.7 Optimizaci´ n de Losas de Concreto Prefabricadas o . . . . . . . . . 251 14.8 Problemas Propuestos . . . . . . . . . . . . . . . . . . . . . . . . 252 15 AGs Paralelos 255 15.1 Nociones de Paralelismo . . . . . . . . . . . . . . . . . . . . . . 255 15.2 AGs Paralelos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257 15.2.1 Paralelizaci´ n global o . . . . . . . . . . . . . . . . . . . . 258 15.2.2 AGs de grano grueso . . . . . . . . . . . . . . . . . . . . 259 15.2.3 AG de grano fino . . . . . . . . . . . . . . . . . . . . . . 263 11
  12. 12. 15.2.4 Esquemas h´bridos . . . . . . . . . . . ı . . . . . . . . . . 263 15.2.5 Tipos de Arquitecturas . . . . . . . . . . . . . . . . . . . 265 15.2.5.1 SIMD . . . . . . . . . . . . . . . . . . . . . . 266 15.2.5.2 Migraci´ n . . . . . . . . . . o . . . . . . . . . . 266 15.2.5.3 MIMD . . . . . . . . . . . . . . . . . . . . . . 267 15.2.6 M´ tricas . . . . . . . . . . . . . . . . . e . . . . . . . . . . 270 15.2.7 Midiendo la diversidad . . . . . . . . . . . . . . . . . . . 271 15.2.8 Velocidad de propagaci´ n de esquemas o . . . . . . . . . . 271 15.3 Problemas Propuestos . . . . . . . . . . . . . . . . . . . . . . . . 272 16 T´ cnicas Evolutivas Alternativas e 273 16.1 Evoluci´ n Diferencial . . . . . . . . . . o . . . . . . . . . . . . . . 273 16.2 Modelos Probabil´sticos . . . . . . . . . ı . . . . . . . . . . . . . . 274 16.3 Evoluci´ n Simulada . . . . . . . . . . . o . . . . . . . . . . . . . . 275 16.4 El Futuro de la Computaci´ n Evolutiva . o . . . . . . . . . . . . . . 276 12
  13. 13. Lista de Tablas 3.1 Tabla comparativa de los tres paradigmas principales que confor- man la computaci´ n evolutiva [9]. . . . . . . . . . . . . . . . . . 77 o 8.1 Tabla de verdad para el segundo problema propuesto. . . . . . . . 174 13
  14. 14. 14
  15. 15. Lista de Figuras 1.1 Dos ejemplos de conjuntos convexos. . . . . . . . . . . . . . . . 35 1.2 Dos ejemplos de conjuntos no convexos. . . . . . . . . . . . . . . 36 1.3 Representaci´ n gr´ fica de la zona factible (denotada con F ) de un o a problema. Advierta que en este caso la zona factible es disjunta. . 37 1.4 Escaleras entrecruzadas del problema 2.b. . . . . . . . . . . . . . 39 2.1 Georges Louis Leclerc (Conde de Buffon). . . . . . . . . . . . . . 42 2.2 Jean Baptiste Pierre Antoine de Monet (Caballero de Lamarck). . 42 2.3 August Weismann. . . . . . . . . . . . . . . . . . . . . . . . . . 44 2.4 Alfred Russell Wallace. . . . . . . . . . . . . . . . . . . . . . . . 45 2.5 Charles Robert Darwin. . . . . . . . . . . . . . . . . . . . . . . . 46 2.6 Johann Gregor Mendel. . . . . . . . . . . . . . . . . . . . . . . . 47 2.7 Francis Galton. . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 2.8 Hugo De Vries. . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 2.9 Thomas Hunt Morgan. . . . . . . . . . . . . . . . . . . . . . . . 51 2.10 Alan Mathison Turing. . . . . . . . . . . . . . . . . . . . . . . . 52 2.11 George E. P. Box. . . . . . . . . . . . . . . . . . . . . . . . . . . 53 2.12 Lawrence J. Fogel. . . . . . . . . . . . . . . . . . . . . . . . . . 57 2.13 Hans-Paul Schwefel. . . . . . . . . . . . . . . . . . . . . . . . . 59 2.14 John H. Holland. . . . . . . . . . . . . . . . . . . . . . . . . . . 60 2.15 Michael Conrad. . . . . . . . . . . . . . . . . . . . . . . . . . . 61 2.16 Howard H. Pattee. . . . . . . . . . . . . . . . . . . . . . . . . . . 61 2.17 John R. Koza. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 2.18 Thomas S. Ray. . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 2.19 James Mark Baldwin. . . . . . . . . . . . . . . . . . . . . . . . . 65 3.1 Portada de la edici´ n reciente (1999) del libro “Artificial Intelli- o gence through Simulated Evolution”, con el cual se originara la programaci´ n evolutiva. . . . . . . . . . . . . . . . . . . . . . . . 68 o 15
  16. 16. 3.2 Aut´ mata finito de 3 estados. Los s´mbolos a la izquierda de “/” o ı son de entrada, y los de la derecha son de salida. El estado inicial es C. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 3.3 Thomas B¨ ck. . . . . . . . . . . . . . . . . . . . . . . . . . . . . a 72 3.4 Portada de una edici´ n reciente (publicada por el MIT Press) del o libro en el que Holland diera a conocer originalmente los algorit- mos gen´ ticos (en 1975). . . . . . . . . . . . . . . . . . . . . . . e 74 3.5 Ejemplo de la codificaci´ n (mediante cadenas binarias) usada tradi- o cionalmente con los algoritmos gen´ ticos. . . . . . . . . . . . . . e 75 3.6 Portada del libro de David E. Goldberg sobre algoritmos gen´ ticos. e A este importante libro se debe, en gran medida, el exito (cada vez ´ mayor) de que han gozado los algoritmos gen´ ticos desde princi- e pios de los 1990s. . . . . . . . . . . . . . . . . . . . . . . . . . . 76 3.7 Portada del libro de John Koza sobre programaci´ n gen´ tica. Este o e libro marc´ el inicio de una nueva area dentro de la computaci´ n o ´ o evolutiva, dedicada principalmente a la soluci´ n de problemas de o regresi´ n simb´ lica. . . . . . . . . . . . . . . . . . . . . . . . . . o o 79 4.1 Estructural helicoidal del ADN. . . . . . . . . . . . . . . . . . . 83 4.2 Las cuatro bases de nucle´ tido . . . . . . . . . . . . . . . . . . . o 84 4.3 Cromosomas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 4.4 Genoma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 4.5 Un feto humano. . . . . . . . . . . . . . . . . . . . . . . . . . . 86 4.6 C´ lula diploide. . . . . . . . . . . . . . . . . . . . . . . . . . . . e 86 4.7 Una mutaci´ n (error de copiado). . . . . . . . . . . . . . . . . . . o 87 4.8 Un ejemplo de una cadena cromos´ mica. Esta cadena es el genotipo o que codifica las variables de decisi´ n de un problema. . . . . . . . o 90 4.9 Un ejemplo de un gene. . . . . . . . . . . . . . . . . . . . . . . . 90 4.10 Un ejemplo de un fenotipo. . . . . . . . . . . . . . . . . . . . . . 90 4.11 Un ejemplo de un individuo. . . . . . . . . . . . . . . . . . . . . 91 4.12 Un ejemplo de un alelo. . . . . . . . . . . . . . . . . . . . . . . . 91 4.13 Un ejemplo de migraci´ n. . . . . . . . . . . . . . . . . . . . . . . o 92 4.14 Ejemplo del operador de inversi´ n. . . . . . . . . . . . . . . . . . o 93 5.1 Un ejemplo de una cadena binaria. . . . . . . . . . . . . . . . . . 96 5.2 Un ejemplo de notaci´ n del IEEE. . . . . . . . . . . . . . . . . . 99 o 5.3 Un ejemplo de un algoritmo gen´ tico con representaci´ n real. . . . 100 e o 16
  17. 17. 5.4 Una representaci´ n entera de n´ meros reales. La cadena com- o u pleta es decodificada como un solo n´ mero real multiplicando y u dividiendo cada d´gito de acuerdo a su posici´ n. . . . . . . . . . . ı o 101 5.5 Otra representaci´ n entera de n´ meros reales. En este caso, cada o u gene contiene un n´ mero real representado como un entero largo. . u 102 5.6 Dos ejemplos de cadenas v´ lidas en un algoritmo gen´ tico desor- a e denado. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 5.7 Un ejemplo del operador de “corte” en un AG desordenado. La l´nea gruesa indica el punto de corte. . . . . . . . . . . . . . . . . ı 104 5.8 Un ejemplo del operador “uni´ n” en un AG desordenado. La l´nea o ı gruesa muestra la parte de la cadena que fue agregada. . . . . . . 105 5.9 Un ejemplo de un cromosoma usado en programaci´ n gen´ tica. . o e 106 5.10 Los nodos del arbol se numeran antes de aplicar el operador de ´ cruza. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 5.11 Los dos hijos generados despu´ s de efectuar la cruza. . . . . . . . e 107 5.12 Un ejemplo de mutaci´ n en la programaci´ n gen´ tica. . . . . . . . o o e 108 5.13 Un ejemplo de permutaci´ n en la programaci´ n gen´ tica. . . . . . o o e 109 5.14 Un ejemplo de encapsulamiento en programaci´ n gen´ tica. . . . . o e 109 5.15 Un ejemplo de estructura de dos niveles de un AG estructurado. . 110 5.16 Una representaci´ n cromos´ mica de la estructura de 2 niveles del o o AG estructurado. . . . . . . . . . . . . . . . . . . . . . . . . . . 111 5.17 Ejemplo de una estructura de datos usada para implementar un AG estructurado. . . . . . . . . . . . . . . . . . . . . . . . . . . 111 7.1 Cruza de un punto. . . . . . . . . . . . . . . . . . . . . . . . . . 142 7.2 Cruza de dos puntos. . . . . . . . . . . . . . . . . . . . . . . . . 144 7.3 Cruza uniforme. . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 7.4 Cruza Acentuada. . . . . . . . . . . . . . . . . . . . . . . . . . . 146 7.5 Un ejemplo con dos padres seleccionados para cruzarse, en pro- gramaci´ n gen´ tica. . . . . . . . . . . . . . . . . . . . . . . . . . o e 150 7.6 Los 2 hijos resultantes de la cruza entre los padres de la figura 7.5 151 8.1 Ejemplo de una mutaci´ n por desplazamiento. . . . . . . . . . . . 166 o 8.2 Ejemplo: Suponemos que el punto de mutaci´ n es el nodo 3. . . . 168 o 10.1 Ejemplo de un frente de Pareto. . . . . . . . . . . . . . . . . . . . 199 10.2 Diagrama del algoritmo de NPGA para manejo de restricciones. . 203 12.1 Representaci´ n gr´ fica de los esquemas de longitud tres. . . . . . 218 o a 17
  18. 18. 12.2 Representaci´ n gr´ fica de la o a clase de problemas deceptivos de Tipo I. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234 12.3 Representaci´ n gr´ fica de la o a clase de problemas deceptivos de Tipo II. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235 13.1 Ejemplo del uso de cromosomas diploides. . . . . . . . . . . . . . 242 14.1 Dragan Savic. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251 15.1 Michael J. Flynn. . . . . . . . . . . . . . . . . . . . . . . . . . . 256 15.2 Esquema de paralelizaci´ n global de un algoritmo gen´ tico. . . . . o e 258 15.3 Esquema de funcionamiento de un algoritmo gen´ tico paralelo de e grano grueso. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259 15.4 Algunas topolog´as posibles. . . . . . . . . . . . . . . . . . . . . ı 262 15.5 Ejemplo de un esquema h´brido en el que se combina un AG de ı grano grueso (a alto nivel) con un AG de grano fino (a bajo nivel). 264 15.6 Un esquema h´brido en el cual se usa un AG de grano grueso de ı alto nivel donde cada nodo es a su vez un AG con paralelismo global. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264 15.7 Un esquema h´brido en el que se usa un AG de grano grueso tanto ı a alto como a bajo nivel. A bajo nivel, la velocidad de migraci´ n o es mayor y la topolog´a de comunicaciones es mucho m´ s densa ı a que a alto nivel. . . . . . . . . . . . . . . . . . . . . . . . . . . . 265 15.8 Un ejemplo de arquitectura SIMD. . . . . . . . . . . . . . . . . . 266 15.9 Un ejemplo de arquitectura MIMD. . . . . . . . . . . . . . . . . 268 15.10Una topolog´a que suele usarse con las arquitecturas MIMD es la ı de arbol. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ´ 268 15.11Topolog´a de anillo. . . . . . . . . . . . . . . . . . . . . . . . . . ı 269 15.12Topolog´a de grafo y de estrella. . . . . . . . . . . . . . . . . . . ı 270 18
  19. 19. Introducci´ n o Estas notas de curso son producto de la experiencia de haber impartido clases de computaci´ n evolutiva a nivel posgrado durante los ultimos cinco a˜ os. o ´ n El material contenido en estas p´ ginas ha sido producto de muchas horas de a trabajo y esfuerzo y pretenden dar una visi´ n general (si bien no completa) de lo o que es la computaci´ n evolutiva y de sus alcances. El objetivo de este material, es o servir como apoyo para la ense˜ anza de un curso introductorio a la computaci´ n n o evolutiva a nivel maestr´a o doctorado, aunque se requiere obviamente de material ı complementario (principalmente referencias bibliogr´ ficas). Por lo dem´ s, estas a a notas pretenden ser auto-contenidas, de manera que se haga innecesario consultar otras fuentes bibliogr´ ficas (introductorias) adicionales. a La organizaci´ n de estas notas es la siguiente: en el Cap´tulo 1 se proporcio- o ı nan algunos conceptos b´ sicos de an´ lisis de algoritmos y de optimizaci´ n con a a o t´ cnicas cl´ sicas. Partiendo de las limitaciones de las t´ cnicas cl´ sicas, se plantea e a e a la motivaci´ n para el uso de heur´sticas en problemas de b´ squeda y optimizaci´ n o ı u o de alta complejidad. En el Cap´tulo 2 se hace un r´ pido recorrido hist´ rico de la computaci´ n evo- ı a o o lutiva, yendo desde el Lamarckismo hasta las corrientes m´ s modernas, como la a din´ mica evolutiva y la programaci´ n gen´ tica. a o e El Cap´tulo 3 da un panorama general de los tres grandes paradigmas en com- ı putaci´ n evolutiva (la programaci´ n evolutiva, las estrategias evolutivas y el algo- o o ritmo gen´ tico), describiendo el algoritmo b´ sico de cada uno de ellos as´ como e a ı algunas de sus aplicaciones. En ese cap´tulo tambi´ n se mencionan algunas de las ı e cr´ticas de que ha sido objeto la computaci´ n evolutiva (sobre todo, de parte de ı o los investigadores de IA simb´ lica). o En el Cap´tulo 4 se proporciona una breve terminolog´a biol´ gica, junto con ı ı o explicaciones del uso que se da a dichos t´ rminos en computaci´ n evolutiva. e o El problema de la representaci´ n, que resulta vital en los algoritmos gen´ ticos, o e es tratado en el Cap´tulo 5. ı 19
  20. 20. Las principales t´ cnicas de selecci´ n utilizadas con los algoritmos gen´ ticos e o e se estudian en el Cap´tulo 6. ı El Cap´tulo 7 se ocupa de las diferentes t´ nicas de cruza utilizadas en los al- ı e goritmos gen´ ticos. Adem´ s de estudiar las cruzas para representaci´ n binaria, se e a o analizan tambi´ n las variantes existentes para representaci´ n real y de permuta- e o ciones. El operador de mutaci´ n es estudiado en detalle en el Cap´tulo 8. Adem´ s de o ı a analizar su uso con representaci´ n real y de permutaciones, se le compara contra o la cruza. El Cap´tulo 9 se ocupa de revisar algunos de los estudios m´ s importantes ı a en torno a la forma de ajustar los par´ metros de un algoritmo gen´ tico (sobre a e todo, porcentajes de cruza y mutaci´ n y tama˜ o de poblaci´ n). Tambi´ n se dis- o n o e cute la auto-adaptaci´ n de par´ metros y sus problemas principales, as´ como otros o a ı mecanismos de adaptaci´ n en l´nea tales como la l´ gica difusa y las representa- o ı o ciones adaptativas. Los algoritmos gen´ ticos funcionan como una t´ cnica de b´ squeda u opti- e e u mizaci´ n sin restricciones. De tal forma, se hace necesario acoplarle alg´ n mecan- o u ismo para incorporar restricciones de todo tipo (lineales, no lineales, igualdad y desigualdad). En el Cap´tulo 10 se estudian algunas de las propuestas principales ı en torno al manejo de restricciones mediante funciones de penalizaci´ n. o En el Cap´tulo 11 se revisan varios sistemas de software relacionados con ı computaci´ n evolutiva (tanto comerciales como de dominio p´ blico). o u El Cap´tulo 12 comprende el estudio de algunos de los conceptos te´ ricos m´ s ı o a importantes de la computaci´ n evolutiva, incluyendo el teorema de los esquemas, o el paralelismo impl´cito, la decepci´ n, el No Free Lunch Theorem y el an´ lisis de ı o a convergencia usando cadenas de Markov. En el Cap´tulo 13 se habla sobre algunos operadores avanzados, tales como ı los diploides, la segregaci´ n, traslocaci´ n, duplicacion y borrado. o o ´ El Cap´tulo 14 habla sobre algunas aplicaciones exitosas de la computaci´ n ı o evolutiva en el mundo real. Con el creciente uso de las computadoras en problemas cada vez m´ s com- a plejos, se ha popularizado la adopci´ n de esquemas de paralelismo y de c´ mputo o o distribuido en la computaci´ n evolutiva. Este tema es precisamente el que se dis- o cute en el Cap´tulo 15. ı Finalmente, el Cap´tulo 16 discute brevemente algunos de los paradigmas ı emergentes dentro de la computaci´ n evolutiva y se concluye hablando breve- o mente sobre el futuro de la computaci´ n evolutiva. o 20
  21. 21. Reconocimientos La elaboraci´ n de estas notas no habr´a sido posible sin la ayuda de la Mat. Ma. o ı Margarita Reyes Sierra, quien captur´ mucho de este texto en formato LTEX2ε y o A convirti´ mis bosquejos a mano en n´tidas im´ genes en Xfig. o ı a Agradezco al Dr. Arturo Hern´ ndez Aguirre sus incontables (y a veces in- a terminables) discusiones en torno a diferentes temas, entre los que se incluye la computaci´ n evolutiva. Sus comentarios constructivos siempre me han resultado o de enorme val´a. ı Manifiesto tambi´ n mi agradecimiento por la generosa ayuda del Laboratorio e Nacional de Inform´ tica Avanzada (LANIA), del CINVESTAV-IPN y de REDII- a CONACyT, a quienes se debe en gran parte, haber podido preparar este material did´ ctico. Doy las gracias muy especialmente a la Dra. Cristina Loyo Varela, a Directora General del LANIA, quien siempre me brind´ su apoyo incondicional o en todos mis proyectos. Extiendo tambi´ n un cordial reconocimiento a todos los estudiantes que he e tenido a lo largo de mi vida. Ha sido a trav´ s de ellos que me he nutrido de ricas e experiencias docentes que han forjado mi actual estilo de ense˜ anza. Gracias a n todos por los buenos y, ¿por qu´ no?, tambi´ n por los malos ratos que me hicieron e e pasar. 21
  22. 22. 22
  23. 23. Cap´tulo 1 ı Conceptos B´ sicos a Antes de aventurarse a tomar un curso de computaci´ n evolutiva (o sobre heu- o r´sticas de cualquier otro tipo), es muy importante tener frescos en la memoria ı algunos conceptos b´ sicos a fin de poder entender de manera clara la motivaci´ n a o para desarrollar y usar heur´sticas. ı De tal forma, iniciaremos con un repaso de algunos conceptos fundamentales de an´ lisis de algoritmos y teor´a de la computaci´ n. a ı o 1.1 An´ lisis de algoritmos a El an´ lisis de algoritmos comprende 2 etapas: el an´ lisis a priori y el an´ lisis a a a a posteriori. En el primero de ellos, obtenemos una funci´ n que acota el tiempo o de c´ lculo del algoritmo. En el an´ lisis a posteriori lo que hacemos es recolectar a a estad´sticas acerca del consumo de tiempo y espacio del algoritmo mientras este ı ´ se ejecuta [130]. Es importante tener en mente que durante el an´ lisis a priori de un algoritmo, a se ignoran los detalles que sean dependientes de la arquitectura de una computa- dora o de un lenguaje de programaci´ n y se analiza el orden de magnitud de la o frecuencia de ejecuci´ n de las instrucciones b´ sicas del algoritmo. o a Veamos un ejemplo simple de an´ lisis a priori. Consideremos los 3 segmentos a de c´ digo siguientes: o (1) a = a + b (2) for i = 1 to n do a=a+b 23
  24. 24. end for i (3) for i = 1 to n do for j = 1 to n do a=a+b end for j end for i La frecuencia de ejecuci´ n de la sentencia a = a + b es: o • 1 para el segmento (1). • n para el segmento (2). • n2 para el segmento (3). Una de las notaciones m´ s usadas para expresar la complejidad de un algo- a ritmo es la denominada “O” (big-O, en ingl´ s). Formalmente, la definimos de la e siguiente manera: Definici´ n: f (n) = O(g(n)) si y s´ lo si existen dos constantes positivas c y n0 o o tales que |f (n)| ≤ c|g(n)| para toda n ≥ n0 . Supongamos que nos interesa determinar el tiempo de procesamiento (o c´ m- o puto) de un algoritmo. Dicho tiempo lo denotaremos como f (n). La variable n puede referirse al n´ mero de entradas o salidas, su suma o la magnitud de una de u ellas. Puesto que f (n) depende de la computadora en que se ejecute el algoritmo, un an´ lisis a priori no ser´ suficiente para determinarlo. Sin embargo, pode- a a mos usar un an´ lisis a priori para determinar una g(n) tal que f (n) = O(g(n)). a Cuando decimos que un algoritmo tiene un tiempo de c´ mputo O(g(n)), lo que o queremos decir es que al ejecutar el algoritmo en una computadora usando los mismos tipos de datos, pero valores incrementales de n, el tiempo resultante siem- pre ser´ menor que alg´ n tiempo constante |g(n)|. a u Dados dos algoritmos que realicen la misma tarea sobre n entradas, debe resul- tar obvio que preferiremos al que requiera menos tiempo de ejecuci´ n. Algunos o tiempos comunes de los algoritmos son los siguientes: O(1) < O(log n) < O(n) < O(n log n) < O(n2 ) < O(n3 ) < O(2n ) Algunos algoritmos conocidos y sus complejidades correspondientes en esta notaci´ n son los siguientes: o 24
  25. 25. 1. Buscar un elemento en una lista no ordenada: O(n) 2. Buscar un elemento en una lista ordenada: O(log n) 3. Quicksort: O(n log n) 4. Calcular el determinante de una matriz: O(n3 ) 5. Multiplicaci´ n matricial: O(n2.81 ) o 6. Ordenamiento por el m´ todo de la burbuja (Bubble Sort): O(n2 ) e Los problemas cuya complejidad est´ acotada por un polinomio (los primeros a seis ordenes de magnitud de la jerarqu´a mostrada anteriormente) son los de- ´ ı nominados problemas P. M´ s detalladamente, podemos decir que un problema a pertenece a la clase si puede ser resuelto en tiempo polinomial en una computa- dora determinista. El t´ rmino determinista significa que sin importar lo que haga el algoritmo, e s´ lo hay una cosa que puede hacer a continuaci´ n (es decir, el paso siguiente se o o determina por los pasos anteriores). Los ejemplos de algoritmos conocidos dados anteriormente, pertenecen todos a la clase P. Un problema pertenece a la clase NP si puede ser resuelto en tiempo polino- mial pero usando una computadora no determinista. Cuando una computadora no determinista es confrontada con varias opciones, tiene el poder de “adivinar” la correcta (en caso de que esta exista). Una computa- ´ dora no determinista no hace nunca elecciones incorrectas que la hagan regresar a un estado previo. Consideremos el siguiente ejemplo de un algoritmo no determinista en el cual queremos buscar un elemento x en un conjunto de elementos A[1:n], n ≥ 1. Se quiere determinar un ´ndice j tal que A[j]=x, o j = 0 si x ∈ A. ı j = elige [1:n] if A[j]=x then print(j) else print(‘0’) Este algoritmo imprime 0 s´ lo si x ∈ A. Su complejidad es O(1). o Obviamente, las computadoras no deterministas no existen en el mundo real. El no determinismo es una herramienta imaginaria que hace que los problemas dif´ciles parezcan triviales. Su mayor val´a radica en el hecho de que existe forma ı ı 25
  26. 26. de convertir un algoritmo no determinista a uno determinista, aunque a un costo computacional que suele ser muy elevado. Los siguientes puntos son de gran importancia al comparar la clase P contra la clase NP: • La clase P contiene problemas que pueden resolverse r´ pidamente. a • La clase NP contiene problemas cuya soluci´ n puede verificarse r´ pida- o a mente. • En 1971 se plante´ la pregunta: ¿Es P=NP? Desde entonces, sigue siendo o una pregunta abierta para los te´ ricos. o • Se cree que P = NP. Existe otra clase de problemas, denominados NP Completos que resultan de gran inter´ s en computaci´ n. Un problema pertenece a esta clase si todos los e o algoritmos requeridos para resolverlo requieren tiempo exponencial en el peor caso. En otras, palabras, estos problemas son sumamente dif´ciles de resolver. Un ı ejemplo t´pico de un problema NP Completo es el del viajero. Este problema ı consiste en encontrar una permutaci´ n que represente el recorrido de una serie o de ciudades de tal forma que todas sean visitadas (una sola vez) minimizando la distancia total viajada. El mejor algoritmo que se conoce para resolver este problema es O(n2 2n ). El tama˜ o del espacio de b´ squeda del problema del viajero crece conforme a n u la expresi´ n: (n−1)! . Algunos ejemplos de lo que esto significa, son los siguientes: o 2 • Para n = 10, hay unas 181,000 soluciones posibles. • Para n = 20, hay unas 10,000,000,000,000,000 soluciones posibles. • Para n = 50, hay unas 100,000,000,000,000,000,000,000,000,000, 000,000, 000,000,000,000,000,000,000,000,000 soluciones posibles. Para tener idea de estas magnitudes, basta decir que s´ lo hay 1,000,000,000, o 000,000,000,000 litros de agua en el planeta. 26
  27. 27. 1.2 T´ cnicas Cl´ sicas de Optimizaci´ n e a o Existen muchas t´ cnicas cl´ sicas para resolver problemas con ciertas caracter´sticas e a ı espec´ficas (por ejemplo, funciones lineales con una o m´ s variables). ı a Es importante saber al menos de la existencia de estas tcnicas, pues cuando el problema por resolverse se adec´ a a ellas, no tiene ning´ n sentido usar heur´sticas. u u ı Por ejemplo, para optimizaci´ n lineal, el m´ todo Simplex sigue siendo la o e opci´ n m´ s viable. o a Para optimizaci´ n no lineal, hay m´ todos directos (p. ej. la b´ squeda aleato- o e u ria) y m´ todos no directos (p. ej., el m´ todo del gradiente conjugado) [180]. e e Uno de los problemas de las t´ cnicas cl´ sicas de optimizaci´ n es que suelen e a o requerir informaci´ n que no siempre est´ disponible. Por ejemplo, m´ todos como o a e el del gradiente conjugado requieren de la primera derivada de la funci´ n objetivo. o Otros, como el de Newton, requieren adem´ s de la segunda derivada. Por tanto, si a la funci´ n objetivo no es diferenciable (y en algunos problemas del mundo real, ni o siquiera est´ disponible en forma expl´cita), estos m´ todos no pueden aplicarse. a ı e A fin de ilustrar la forma en la que operan las t´ cnicas cl´ sicas de optimizaci´ n, e a o resolveremos paso por paso un ejemplo sencillo con el m´ todo del descenso emp- e inado (steepest descent), el cual fue propuesto originalmente por Cauchy en 1847. La idea del m´ todo es comenzar de un cierto punto cualquier X1 y luego moverse e a lo largo de las direcciones de descenso m´ s empinado hasta encontrar el optimo. a ´ El algoritmo es el siguiente: Algoritmo del Descenso Empinado 1. Comenzar con un punto arbitrario X1 . Hacer i = 1. 2. Calcular el gradiente ∇fi . 3. Encontrar la direcci´ n de b´ squeda Si , definida como: o u Si = −∇fi = −∇f (xi ) (1.1) 4. Determinar la longitud optima de incremento λ∗ en la direcci´ n Si , y hacer: ´ i o Xi+1 = Xi + λ∗ Si = Xi − λ∗ ∇fi i i (1.2) 27
  28. 28. 5. Checar la optimalidad de Xi+1 . Si el punto es optimo, detenerse. De lo ´ contrario, ir al paso 6. 6. Hacer i = i + 1. Ir al paso 2. Ejemplo: Min f (x1 , x2 ) = x1 − x2 + 2x1 + 2x1 x2 + x2 2 2 usando el punto inicial: 0 X1 = 0 Para iniciar la primera iteraci´ n, necesitamos calcular el gradiente de la funci´ n: o o ∂f /∂x1 1 + 4x1 + 2x2 ∇f = = ∂f /∂x2 −1 + 2x1 + 2x2 1 ∇f1 = ∇f (X1 ) = −1 Calcular la direcci´ n de b´ squeda: o u −1 S1 = −∇f1 = 1 Determinar λ∗ : 1 X2 = X1 + λ ∗ S 1 1 f (X1 + λ∗ S1 ) = f (−λ1 , λ1 ), lo cual se obtiene de: 1 0 −1 + λ1 0 1 Y sabemos que: f (−λ1 , λ1 ) = −λ1 − λ1 + 2(−λ1 )2 + 2(−λ1 )(λ1 ) + λ2 = 1 λ2 − 2λ1 1 28
  29. 29. Para hallar λ∗ , debemos derivar esta expresi´ n con respecto a λ1 e igualar el 1 o resultado con cero: df /λ1 = 2λ1 − 2 = 0 de donde obtenemos: λ∗ = 1. 1 Ahora i = 2, y: 0 −1 −1 X2 = +1 = 0 1 1 Chequemos ahora la optimalidad de esta soluci´ n: o 1−4+2 −1 ∇f2 = ∇f (X2 ) = = −1 − 2 + 2 −1 0 Como ∇f2 = entonces tenemos que continuar con una iteraci´ n m´ s: o a 0 1 S2 = 1 Calculemos ahora λ∗ a partir de: 2 −1 1 + λ2 1 1 de donde obtenemos: f (−1 + λ2 , 1 + λ2 ) = −1 + λ2 − (1 + λ2 ) + 2(−1 + λ2 )2 + 2(−1 + λ2 )(1 + λ2 ) + (1 + λ2 )2 = 5λ2 − 2λ2 − 1 2 Para hallar λ∗ : 2 df /dλ2 = 10λ2 − 2 = 0 de donde: λ2 = 1/5 = 0.2 Por lo que: 29
  30. 30. X3 = X2 + λ ∗ S 2 2 −1 1 1 −1 + 15 −0.8 X3 = + = = 1 5 1 1+ 1 5 1.2 Procedemos nuevamente a checar optimalidad de esta soluci´ n: o 1 + 4(−0.8) + 2(1.2) 0.2 ∇f3 = = −1 + 2(−0.8) + 2(1.2) −0.2 0 Como ∇f3 = tenemos que seguir iterando. 0 M´ todo de Fletcher-Reeves (Gradiente Conjugado) e Propuesto originalmente por Hestenes & Stiefel en 1952, como un m´ todo e para resolver sistemas de ecuaciones lineales derivadas de las condiciones esta- cionarias de una cuadr´ tica. Puede verse como una variante del m´ todo del “de- a e scenso empinado”, en la cual se usa el gradiente de una funci´ n para determinar o la direcci´ n m´ s prometedora de b´ squeda. El algoritmo es el siguiente: o a u 1. Iniciar con un punto arbitrario X1 . 2. Calcular la direcci´ n de b´ squeda: o u S1 = −∇f (X1 ) = ∇f1 3. Obtener X2 usando: X2 = X1 + λ ∗ S 1 1 donde λ∗ es el paso optimo de movimiento en la direcci´ n S1 . Hacer i = 2 1 ´ o y proceder al paso siguiente. 4. Obtener ∇fi = ∇f (Xi ), y hacer: |∇fi |2 Si = −∇fi + S |∇fi−1 |2 i−1 5. Calcular λ∗ y obtener el nuevo punto: i Xi+1 = Xi + λ∗ Si i 30
  31. 31. 6. Evaluar optimalidad de Xi+1 . Si Xi+1 es el optimo, detener el proceso. De ´ lo contrario i = i + 1 y regresar al paso 4. Ejemplo: Min f (x1 , x2 ) = x1 − x2 + 2x2 + 2x1 x2 + x2 1 2 usando el punto inicial: 0 X1 = 0 Iteraci´ n 1 o ∂f /∂x1 1 + 4x1 2x2 ∇f = = ∂f /∂x2 −1 + 2x1 + 2x2 1 ∇f1 = ∇f (X1 ) = −1 −1 La direcci´ n de b´ squeda es: S1 = −∇f1 = o u . 1 Para obtener λ∗ , debemos minimizar f (X1 + λ1 S1 ) con respecto a λ1 . Por 1 tanto: 0 −1 X1 + λ 1 S 1 = + λ1 0 1 f (X1 + λ1 S1 ) = f (−λ1 , λ1 ) = −λ1 − λ1 + 2(−λ1 )2 + 2(−λ1 )(λ1 ) + λ2 = 1 = −2λ1 + 2λ2 − 2λ2 + λ2 = λ2 − 2λ1 1 1 1 1 df /dλ1 = 2λ1 − 2 = 0 λ∗ = 1 1 0 −1 −1 X2 = X1 + λ ∗ S 1 = 1 +1 = 0 1 1 31
  32. 32. −1 X2 = 1 Iteraci´ n 2 o 1 + 4(−2) + 2(1) ∇f2 = ∇f (X2 ) = −1 + 2(−1) + 2(1) −1 ∇f2 = −1 |∇f2 |2 S2 = −∇f2 + S |∇f1 |2 1 1 2 −1 = + 2 1 1 0 S2 = 2 −1 0 X2 + λ 2 S 2 = + λ2 1 2 f (X2 + λ2 S2 ) = f (−1, 1 + 2λ2 ) = −1 − (1 + 2λ2 ) + 2(−1)2 + 2(−1)(1 + 2λ2 ) + (1 + 2λ2 )2 −1 − 1 − 2λ2 + 2 − 2(1 + 2λ2 ) + 1 + 4λ2 + 4λ2 = 2 = −2λ2 − 2 − 4λ2 + 1 + 4λ2 + 4λ2 = 4λ2 − 2λ2 − 1 2 2 df /dλ2 = 8λ2 − 2 = 0 1 λ∗ = 2 4 −1 1 0 X3 = X2 + λ ∗ S 2 = 2 + 4 1 2 −1 X2 = 1.5 Iteraci´ n 3 o 1 + 4(−1) + 2(1.5) ∇f3 = ∇f (X3 ) = −1 + 2(−1) + 2(1.5) 32
  33. 33. 0 ∇f3 = 0 |∇f3 |2 S3 = −∇f3 + S |∇f2 |2 2 0 0 0 = + 2 0 2 0 S3 = 0 Al no poderse reducir m´ s f , podemos decir que X3 es la soluci´ n optima. a o ´ x∗ = −1, x∗ = 1.5 1 2 Existen tambi´ n t´ cnicas que construyen parcialmente una soluci´ n a un prob- e e o lema. Por ejemplo, la programaci´ n din´ mica y el m´ todo de ramificaci´ n y o a e o b´ squeda (branch & bound). u Cuando enfrentamos un cierto problema de optimizaci´ n, si la funci´ n a op- o o timizarse se encuentra definida en forma algebraica, es importante intentar re- solverla primero con t´ cnicas cl´ sicas, antes de utilizar cualquier heur´stica. e a ı 1.3 T´ cnicas heur´sticas e ı Hasta ahora, debi´ haber quedado claro que existen problemas que no pueden o resolverse usando un algoritmo que requiera tiempo polinomial. De hecho, en muchas aplicaciones pr´ cticas, no podemos siquiera decir si existe una soluci´ n a o eficiente. Asimismo, hay muchos problemas para los cuales el mejor algoritmo que se conoce requiere tiempo exponencial. Cuando enfrentamos espacios de b´ squeda tan grandes como en el caso del u problema del viajero, y que adem´ s los algoritmos m´ s eficientes que existen para a a resolver el problema requieren tiempo exponencial, resulta obvio que las t´ cnicas e cl´ sicas de b´ squeda y optimizaci´ n son insuficientes. Es entonces cuando recur- a u o rimos a las “heur´sticas”. ı La palabra “heur´stica” se deriva del griego heuriskein, que significa “encon- ı trar” o “descubrir”. El significado del t´ rmino ha variado hist´ ricamente. Algunos han usado el e o t´ rmino como un ant´ nimo de “algor´tmico”. Por ejemplo, Newell et al. [173] e o ı dicen: 33
  34. 34. A un proceso que puede resolver un cierto problema, pero que no ofrece ninguna garant´a de lograrlo, se le denomina una ‘heur´stica’ ı ı para ese problema. Las heur´sticas fueron un area predominante en los or´genes de la Inteligencia ı ´ ı Artificial. Actualmente, el t´ rmino suele usarse como un adjetivo, refiri´ ndose a cualquier e e t´ cnica que mejore el desempe˜ o en promedio de la soluci´ n de un problema, e n o aunque no mejore necesariamente el desempe˜ o en el peor caso [197]. n Una definici´ n m´ s precisa y adecuada para los fines de este curso es la pro- o a porcionada por Reeves [186]: Una heur´stica es una t´ cnica que busca soluciones buenas (es decir, ı e casi optimas) a un costo computacional razonable, aunque sin garan- ´ tizar factibilidad u optimalidad de las mismas. En algunos casos, ni siquiera puede determinar qu´ tan cerca del optimo se encuentra una e ´ soluci´ n factible en particular. o Algunos ejemplos de t´ cnicas heur´sticas son los siguientes: e ı • B´ squeda Tab´ u u • Recocido Simulado • Escalando la Colina ´ ´ La busqueda tabu [102] es realmente una meta-heur´stica, porque es un pro- ı cedimiento que debe acoplarse a otra t´ cnica, ya que no funciona por s´ sola. e ı La b´ squeda tab´ usa una “memoria” para guiar la b´ squeda, de tal forma que u u u algunas soluciones examinadas recientemente son “memorizadas” y se vuelven tab´ (prohibidas) al tomar decisiones acerca del siguiente punto de b´ squeda. La u u b´ squeda tab´ es determinista, aunque se le pueden agregar elementos proba- u u bil´sticos. ı El recocido simulado [142] est´ basado en el enfriamiento de los cristales. El a algoritmo requiere de una temperatura inicial, una final y una funci´ n de variaci´ n o o de la temperatura. Dicha funci´ n de variaci´ n es crucial para el buen desempe˜ o o o n del algoritmo y su definici´ n es, por tanto, sumamente importante. Este es un o algoritmo probabil´stico de b´ squeda local. ı u La t´ cnica escalando la colina se aplica a un punto a la vez (es decir, es e una t´ cnica local). A partir de un punto, se generan varios estados posibles y e 34
  35. 35. F F Figura 1.1: Dos ejemplos de conjuntos convexos. se selecciona el mejor de ellos. El algoritmo no tiene retroceso ni lleva ning´ n u tipo de registro hist´ rico (aunque estos y otros aditamentos son susceptibles de o ´ ser incorporados). El algoritmo puede quedar atrapado f´ cilmente en optimos a ´ locales. Asimismo, el algoritmo es determinista. 1.4 Conceptos Importantes Comenzaremos por definir convexidad. El conjunto F es convexo si para toda a1 , a2 ∈ F y para toda θ ∈ [0, 1]: ¯ f(θa1 + (1 − θ)a2 ) ≤ θf (a1 ) + (1 − θ)f (a2 ) (1.3) En otras palabras, F es convexo si para dos puntos cualquiera a1 y a2 en el conjunto, el segmento rectil´neo que une estos puntos est´ tambi´ n dentro del ı a e conjunto. De tal forma, los conjuntos mostrados en la figura 1.1 son convexos y los mostrados en la figura 1.2 no lo son. El objetivo principal de cualquier t´ cnica de optimizaci´ n es encontrar el e o optimo (o los optimos) globales de cualquier problema. En matem´ ticas, existe ´ ´ a un area que se ocupa de desarrollar los formalismos que nos permitan garantizar ´ la convergencia de un m´ todo hacia el optimo global de un problema. Apropiada- e ´ mente, se denomina optimizaci´ n global [131]. o Desgraciadamente, s´ lo en algunos casos limitados, puede garantizarse con- o vergencia hacia el optimo global. Por ejemplo, para problemas con espacios de ´ b´ squeda convexos, las condiciones de Kuhn-Tucker son necesarias y suficientes u 35
  36. 36. F F Figura 1.2: Dos ejemplos de conjuntos no convexos. para garantizar optimalidad global de un punto. En problemas de optimizaci´ n no lineal, las condiciones de Kuhn-Tucker no o son suficientes para garantizar optimalidad global. De hecho, todas las t´ cnicas e usadas para optimizaci´ n no lineal pueden localizar cuando mucho optimos lo- o ´ cales, pero no puede garantizarse convergencia al optimo global a menos que se ´ usen t´ cnicas exhaustivas o que se consideren tiempos infinitos de convergencia. e Existen muchos tipos de problemas de optimizaci´ n, pero los que nos intere- o san m´ s para los fines de este curso, son de los de optimizaci´ n num´ rica, que a o e pueden definirse de la siguiente manera: Minimizar f (x) sujeta a: gi (x) ≤ 0, i = 1, . . . , p hj (x) = 0, j = 1, . . . , n donde: x son las variables de decisi´ n del problema, gi (x) son las restric- o ciones de desigualdad, y hj (x) son las restricciones de igualdad. Asimismo, 36
  37. 37. S F F F Figura 1.3: Representaci´ n gr´ fica de la zona factible (denotada con F ) de un o a problema. Advierta que en este caso la zona factible es disjunta. f (x) es la funci´ n objetivo del problema (la que queremos optimizar). o A las restricciones de igualdad y desigualdad expresadas algebraicamente, se les denomina “restricciones expl´citas”. En algunos problemas, existen tambi´ n ı e “restricciones impl´citas”, relacionadas sobre todo con las caracter´sticas del prob- ı ı lema. Por ejemplo, si decimos: 10 ≤ x1 ≤ 20 estamos definiendo que el rango de una variable de decisi´ n debe estar con- o tenido dentro de un cierto intervalo. De tal forma, estamos “restringiendo” el tipo de soluciones que se considerar´ n como v´ lidas. a a Todas las soluciones a un problema que satisfagan las restricciones existentes (de cualquier tipo), se consideran ubicadas dentro de la zona factible. De tal forma, podemos decir que el espacio de b´ squeda de un problema se divide en la u regin (o zona) factible y la no factible. La figura 1.3 ilustra la diferencia entre la zona factible y no factible de un problema Para concluir este primer cap´tulo, mencionaremos que existe una clase es- ı pecial de problemas que tambi´ n ser´ n de inter´ s para este curso, en los cuales e a e 37
  38. 38. las variables de decisi´ n son discretas y las soluciones suelen presentarse en la o forma de permutaciones. A estos problemas se les denomina de optimizaci´ n o combinatoria (p. ej. el problema del viajero). 1.5 Problemas propuestos 1. Para los siguientes pares de funciones, determine el valor entero m´ s peque˜ o a n de n ≥ 0 para el cual la primera funci´ n se haga mayor o igual a la segunda o funci´ n (la de la derecha). En cada caso, muestre la forma en que obtuvo el o valor de n: a) n2 , 10n b) 2n , 2n3 c) n2 /log2 n, n(log2 n)2 d) n3 /2, n2.81 2. Busque en un libro de m´ todos num´ ricos informaci´ n sobre alguna de las e e o siguientes t´ cnicas para resolver ecuaciones trascendentes de una sola vari- e able (elija s´ lo uno): Bisecci´ n (o Bolzano), Newton-Raphson, Regla Falsa o o o Secante. Se recomienda consultar el siguiente libro: Richard L. Burden y J. Douglas Faires, An´ lisis Num´ rico, 6a. Edici´ n, In- a e o ternational Thompson Editores, 1998. a) Usando como base el seudo-c´ digo del m´ todo, implem´ ntelo en C/C++ o e e (la funci´ n a resolverse puede proporcionarse directamente dentro del c´ digo o o del programa). Incluya el c´ digo fuente en su tarea. o b) Dos escaleras se cruzan en un pasillo, tal y como se muestra en la figura 1.4. Cada escalera est´ colocada de la base de una pared a alg´ n punto de la a u pared opuesta. Las escaleras se cruzan a una altura H arriba del pavimento. Dado que las longitudes de las escaleras son x1 = 20 m y x2 = 30 m, y que H = 8 m, encontrar A, que es el ancho del pasillo, usando el programa escrito en el inciso anterior (una soluci´ n real es suficiente). Imprima las o 38
  39. 39. x2 x1 H A Figura 1.4: Escaleras entrecruzadas del problema 2.b. iteraciones efectuadas por su programa al resolver este problema. Bonificaci´ n. El problema del inciso b) tiene m´ s de una soluci´ n real. En- o a o cuentre al menos una soluci´ n real m´ s (distinta de la reportada en el inciso o a anterior). Adicionalmente, encuentre una soluci´ n real que sea v´ lida pero o a que no tenga sentido reportar dada la interpretaci´ n f´sica del problema. o ı Discuta brevemente acerca de esto. 3. Muestre las 2 primeras iteraciones del m´ todo de ascenso empinado al min- e imizar f = 2x2 + x2 usando el punto inicial (1, 2). 1 2 4. Lea el cap´tulo 1 del siguiente libro (las fotocopias se proporcionar´ n en ı a clase) para resolver las preguntas de esta secci´ n: o Zbigniew Michalewicz & David B. Fogel, How to Solve It: Modern Heuris- tics, Springer, Berlin, 2000. 39
  40. 40. 1. Mencione al menos 2 razones por las cuales un problema del mundo real puede no ser resuelto f´ cilmente. NO USE ninguna de las razones enumer- a adas en la p´ gina 11 del cap´tulo proporcionado. a ı 2. Supongamos que la optimizaci´ n de una funci´ n f requiere de 10 vari- o o ables de decisi´ n xi (i = 1, . . . , 10), cada una de las cuales tiene el rango: o −50 ≤ xi ≤ 50. a) Si xi puede tomar s´ lo valores enteros, ¿cu´ l es el tama˜ o del espacio de o a n b´ squeda de este problema? u b) Si xi puede tomar valores reales y usaremos una precisi´ n de ocho lu- o gares decimales, ¿cu´ l es el tama˜ o del espacio de b´ squeda del problema? a n u 3. Defina las restricciones r´gidas (hard constraints) y las restricciones flex- ı ibles (soft constraints) con sus propias palabras. Comp´ relas entre s´. a ı 40

×