SlideShare uma empresa Scribd logo
1 de 310
Baixar para ler offline
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
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 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
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
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
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
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
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.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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
−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
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
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
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
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
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
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
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
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
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva
Introducción a la Computación Evolutiva

Mais conteúdo relacionado

Mais procurados

Aislación sísmica de un edificio de oficinas
Aislación sísmica de un edificio de oficinasAislación sísmica de un edificio de oficinas
Aislación sísmica de un edificio de oficinasjules_meza
 
Mecánica clásica [usach]
Mecánica clásica [usach]Mecánica clásica [usach]
Mecánica clásica [usach]Felipe Olivares
 
Algoritmo de Reconocimiento de Objetos en Escenas Complejas para Aplicaciones...
Algoritmo de Reconocimiento de Objetos en Escenas Complejas para Aplicaciones...Algoritmo de Reconocimiento de Objetos en Escenas Complejas para Aplicaciones...
Algoritmo de Reconocimiento de Objetos en Escenas Complejas para Aplicaciones...CIMAT
 
Mi proyecto de pre-tesis
Mi proyecto de pre-tesisMi proyecto de pre-tesis
Mi proyecto de pre-tesisErwin Salas
 
Problemasresueltosioi c
Problemasresueltosioi cProblemasresueltosioi c
Problemasresueltosioi cVacio Vacio
 
Formación basada en competencias
Formación basada en competencias Formación basada en competencias
Formación basada en competencias Adalberto
 
Fundamentos conceptuales de estadística - Oscar F soto B
Fundamentos conceptuales de estadística  - Oscar F soto BFundamentos conceptuales de estadística  - Oscar F soto B
Fundamentos conceptuales de estadística - Oscar F soto BCristian C
 
Metodologia orientada a objeto - libro
Metodologia orientada a objeto -  libroMetodologia orientada a objeto -  libro
Metodologia orientada a objeto - librotaninof
 
Calculo diferencial integral_func_una_var (1)
Calculo diferencial integral_func_una_var (1)Calculo diferencial integral_func_una_var (1)
Calculo diferencial integral_func_una_var (1)Roberto Soto
 

Mais procurados (19)

Refuerzo 6
Refuerzo 6Refuerzo 6
Refuerzo 6
 
Apuntes acustica
Apuntes acusticaApuntes acustica
Apuntes acustica
 
Física i [usach]
Física i [usach]Física i [usach]
Física i [usach]
 
Algebra[ufro]
Algebra[ufro]Algebra[ufro]
Algebra[ufro]
 
Tesis análisis estructural.
Tesis análisis estructural.Tesis análisis estructural.
Tesis análisis estructural.
 
Aislación sísmica de un edificio de oficinas
Aislación sísmica de un edificio de oficinasAislación sísmica de un edificio de oficinas
Aislación sísmica de un edificio de oficinas
 
Tesis de grado
Tesis de gradoTesis de grado
Tesis de grado
 
Materia investigación operativa 2
Materia investigación operativa 2Materia investigación operativa 2
Materia investigación operativa 2
 
Mecánica clásica [usach]
Mecánica clásica [usach]Mecánica clásica [usach]
Mecánica clásica [usach]
 
Tetralogiaposindustrial
TetralogiaposindustrialTetralogiaposindustrial
Tetralogiaposindustrial
 
Algebra superior i reyes
Algebra superior i   reyesAlgebra superior i   reyes
Algebra superior i reyes
 
Algoritmo de Reconocimiento de Objetos en Escenas Complejas para Aplicaciones...
Algoritmo de Reconocimiento de Objetos en Escenas Complejas para Aplicaciones...Algoritmo de Reconocimiento de Objetos en Escenas Complejas para Aplicaciones...
Algoritmo de Reconocimiento de Objetos en Escenas Complejas para Aplicaciones...
 
Mi proyecto de pre-tesis
Mi proyecto de pre-tesisMi proyecto de pre-tesis
Mi proyecto de pre-tesis
 
Problemasresueltosioi c
Problemasresueltosioi cProblemasresueltosioi c
Problemasresueltosioi c
 
Formación basada en competencias
Formación basada en competencias Formación basada en competencias
Formación basada en competencias
 
Proyectos de inversion
Proyectos de inversionProyectos de inversion
Proyectos de inversion
 
Fundamentos conceptuales de estadística - Oscar F soto B
Fundamentos conceptuales de estadística  - Oscar F soto BFundamentos conceptuales de estadística  - Oscar F soto B
Fundamentos conceptuales de estadística - Oscar F soto B
 
Metodologia orientada a objeto - libro
Metodologia orientada a objeto -  libroMetodologia orientada a objeto -  libro
Metodologia orientada a objeto - libro
 
Calculo diferencial integral_func_una_var (1)
Calculo diferencial integral_func_una_var (1)Calculo diferencial integral_func_una_var (1)
Calculo diferencial integral_func_una_var (1)
 

Semelhante a Introducción a la Computación Evolutiva

Fibras opticas
Fibras opticasFibras opticas
Fibras opticasnhanhaboy
 
Estadística para ingeniería
Estadística para ingenieríaEstadística para ingeniería
Estadística para ingenieríalocke23
 
Lisa Anderson Umana Spanish Translation Study 0n Perspectivism And Leadership...
Lisa Anderson Umana Spanish Translation Study 0n Perspectivism And Leadership...Lisa Anderson Umana Spanish Translation Study 0n Perspectivism And Leadership...
Lisa Anderson Umana Spanish Translation Study 0n Perspectivism And Leadership...Christian Camping International
 
Apuntes de preparación para la PRUEBA DE SELECCIÓN UNIVERSITARIA
Apuntes de preparación para la PRUEBA DE SELECCIÓN UNIVERSITARIAApuntes de preparación para la PRUEBA DE SELECCIÓN UNIVERSITARIA
Apuntes de preparación para la PRUEBA DE SELECCIÓN UNIVERSITARIAAlejandro Feliz
 
Detección de Bordes Tumorales Mediante Contornos Activos (Snake) y Caracteriz...
Detección de Bordes Tumorales Mediante Contornos Activos (Snake) y Caracteriz...Detección de Bordes Tumorales Mediante Contornos Activos (Snake) y Caracteriz...
Detección de Bordes Tumorales Mediante Contornos Activos (Snake) y Caracteriz...Aileen Quintana
 
Introduccion poo con_java
Introduccion poo con_javaIntroduccion poo con_java
Introduccion poo con_javaRobert Wolf
 
Motivos reprochables: Una investigación acerca de la relevancia de las motiva...
Motivos reprochables: Una investigación acerca de la relevancia de las motiva...Motivos reprochables: Una investigación acerca de la relevancia de las motiva...
Motivos reprochables: Una investigación acerca de la relevancia de las motiva...Marcial Pons Argentina
 
INDICE DE SEGURIDAD ALIMENTARIA POR MACRONUTRIENTES
INDICE DE SEGURIDAD ALIMENTARIA POR MACRONUTRIENTESINDICE DE SEGURIDAD ALIMENTARIA POR MACRONUTRIENTES
INDICE DE SEGURIDAD ALIMENTARIA POR MACRONUTRIENTESmilenagost
 
Penduloinvertido
PenduloinvertidoPenduloinvertido
Penduloinvertidojevive
 

Semelhante a Introducción a la Computación Evolutiva (20)

Fibras opticas
Fibras opticasFibras opticas
Fibras opticas
 
Estadística para ingeniería
Estadística para ingenieríaEstadística para ingeniería
Estadística para ingeniería
 
Lisa Anderson Umana Spanish Translation Study 0n Perspectivism And Leadership...
Lisa Anderson Umana Spanish Translation Study 0n Perspectivism And Leadership...Lisa Anderson Umana Spanish Translation Study 0n Perspectivism And Leadership...
Lisa Anderson Umana Spanish Translation Study 0n Perspectivism And Leadership...
 
M´etodos num´ericos
M´etodos num´ericosM´etodos num´ericos
M´etodos num´ericos
 
Metodosnumerics
MetodosnumericsMetodosnumerics
Metodosnumerics
 
Ec.pdf
Ec.pdfEc.pdf
Ec.pdf
 
Libro logica
Libro logicaLibro logica
Libro logica
 
Fundamentos de-calculo
Fundamentos de-calculoFundamentos de-calculo
Fundamentos de-calculo
 
Apuntes termo
Apuntes termoApuntes termo
Apuntes termo
 
Libro psu matematicas
Libro psu matematicasLibro psu matematicas
Libro psu matematicas
 
Apuntes de preparación para la PRUEBA DE SELECCIÓN UNIVERSITARIA
Apuntes de preparación para la PRUEBA DE SELECCIÓN UNIVERSITARIAApuntes de preparación para la PRUEBA DE SELECCIÓN UNIVERSITARIA
Apuntes de preparación para la PRUEBA DE SELECCIÓN UNIVERSITARIA
 
Detección de Bordes Tumorales Mediante Contornos Activos (Snake) y Caracteriz...
Detección de Bordes Tumorales Mediante Contornos Activos (Snake) y Caracteriz...Detección de Bordes Tumorales Mediante Contornos Activos (Snake) y Caracteriz...
Detección de Bordes Tumorales Mediante Contornos Activos (Snake) y Caracteriz...
 
Criptografia
CriptografiaCriptografia
Criptografia
 
Introduccion poo con_java
Introduccion poo con_javaIntroduccion poo con_java
Introduccion poo con_java
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Motivos reprochables: Una investigación acerca de la relevancia de las motiva...
Motivos reprochables: Una investigación acerca de la relevancia de las motiva...Motivos reprochables: Una investigación acerca de la relevancia de las motiva...
Motivos reprochables: Una investigación acerca de la relevancia de las motiva...
 
INDICE DE SEGURIDAD ALIMENTARIA POR MACRONUTRIENTES
INDICE DE SEGURIDAD ALIMENTARIA POR MACRONUTRIENTESINDICE DE SEGURIDAD ALIMENTARIA POR MACRONUTRIENTES
INDICE DE SEGURIDAD ALIMENTARIA POR MACRONUTRIENTES
 
Penduloinvertido
PenduloinvertidoPenduloinvertido
Penduloinvertido
 
Rarepaso
RarepasoRarepaso
Rarepaso
 
Rarepaso
RarepasoRarepaso
Rarepaso
 

Último

origen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioorigen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioELIASAURELIOCHAVEZCA1
 
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Alejandrino Halire Ccahuana
 
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,CULTURAEl Fortí
 
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdfGUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdfPaolaRopero2
 
MAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMarjorie Burga
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptxFelicitasAsuncionDia
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxzulyvero07
 
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
Éteres. Química Orgánica. Propiedades y reacciones
Éteres. Química Orgánica. Propiedades y reaccionesÉteres. Química Orgánica. Propiedades y reacciones
Éteres. Química Orgánica. Propiedades y reaccionesLauraColom3
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfAngélica Soledad Vega Ramírez
 
plande accion dl aula de innovación pedagogica 2024.pdf
plande accion dl aula de innovación pedagogica 2024.pdfplande accion dl aula de innovación pedagogica 2024.pdf
plande accion dl aula de innovación pedagogica 2024.pdfenelcielosiempre
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Carlos Muñoz
 
La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...JonathanCovena1
 
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...JAVIER SOLIS NOYOLA
 
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxSEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxYadi Campos
 
PLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docxPLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docxlupitavic
 
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfFrancisco158360
 
Ley 21.545 - Circular Nº 586.pdf circular
Ley 21.545 - Circular Nº 586.pdf circularLey 21.545 - Circular Nº 586.pdf circular
Ley 21.545 - Circular Nº 586.pdf circularMooPandrea
 

Último (20)

origen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioorigen y desarrollo del ensayo literario
origen y desarrollo del ensayo literario
 
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
 
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
 
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdfGUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
 
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdfTema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
 
MAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grande
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptx
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
 
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
 
Éteres. Química Orgánica. Propiedades y reacciones
Éteres. Química Orgánica. Propiedades y reaccionesÉteres. Química Orgánica. Propiedades y reacciones
Éteres. Química Orgánica. Propiedades y reacciones
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
 
plande accion dl aula de innovación pedagogica 2024.pdf
plande accion dl aula de innovación pedagogica 2024.pdfplande accion dl aula de innovación pedagogica 2024.pdf
plande accion dl aula de innovación pedagogica 2024.pdf
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
 
La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...
 
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
 
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxSEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
 
PLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docxPLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docx
 
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
 
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
 
Ley 21.545 - Circular Nº 586.pdf circular
Ley 21.545 - Circular Nº 586.pdf circularLey 21.545 - Circular Nº 586.pdf circular
Ley 21.545 - Circular Nº 586.pdf circular
 

Introducción a la Computación Evolutiva

  • 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. c 2000,2001,2002,2003,2004,2005,2006,2007,2008,2009 Todos los derechos reservados 2
  • 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
  • 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. 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. 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. 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. 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.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. 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. 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. 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
  • 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. 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. 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. 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. 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. 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. 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
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. −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. 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. 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. 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. 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. 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. 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. 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. 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