Resolviendo problemas con algoritmos geneticos

Mauro Parra-Miranda
Mauro Parra-MirandaSoftware Developer at Appcelerator
Optimizando
                                                  programas
                                                         con
                                                   algoritmos
Resolviendo problemas con algoritmos gen´ticos
                                        e           gen´ticos
                                                       e

                                                 Algoritmo Gen´tico
                                                              e

                                                 Implementando . . .
           Mauro Parra Miranda                   Aplicaciones en . . .

          mauro@ciencias.unam.mx                 Recursos utiles
                                                          ´




                                                      Home Page

                My brain is open.                        T´
                                                          ıtulo

                  Paul Erd¨so
         http://www.gnulinux.biz/mauro/
                                                         Atr´s
                                                            a

                                                    P´gina 1 de 18
                                                     a


                                                    Pant. Completa

                                                        Cerrar

                                                         Salir
Optimizando
                                                                           programas
1.     Algoritmo Gen´tico
                    e                                                             con
                                                                            algoritmos
   Un algoritmo gen´tico es un m´todo probabil´
                   e            e                   ıstico que mantiene      gen´ticos
                                                                                e
                                   1            n
una poblaci´n de individuos Pt = {xt , . . . , xt } para cada iteraci´n
            o                                                        o
                                                                          Algoritmo Gen´tico
                                                                                       e
t.
                                                                          Implementando . . .

                                                                          Aplicaciones en . . .
  Cada individuo representa una soluci´n potencial del problema
                                      o
                                                                          Recursos utiles
                                                                                   ´
que se este resolviendo. Cada soluci´n xi es evaluada de alguna
                                    o t
manera para conocer su desempe˜o con respecto a la poblaci´n
                                 n                           o
actual.                                                                        Home Page

                                                                                  T´
                                                                                   ıtulo

  Una nueva poblaci´n (la t+1) es generada a trav´s de la selecci´n
                    o                             e              o
de los individuos mejor adaptados (o sea, las mejores soluciones).
Algunos individuos de la poblaci´n son alterados por algunos oper-
                                o                                                 Atr´s
                                                                                     a

adores, llamados operadores gen´ticos.
                                e                                            P´gina 2 de 18
                                                                              a


                                                                             Pant. Completa
   Los operadores gen´ticos m´s usados son la cruza y mutaci´n. La
                      e       a                              o
                                                                                 Cerrar
cruza consiste en combinar dos soluciones, mientras que la mutaci´n
                                                                 o
                                                                                  Salir
es alterar ligeramente una soluci´n de manera aleatoria.
                                 o
Optimizando
1. Generar poblaci´n Aleatoria (uniformemente distribuida, de pref-
                  o                                                    programas
   erencia).                                                                  con
                                                                        algoritmos
2. Calificar a los individuos de la poblaci´n
                                          o                              gen´ticos
                                                                            e
3. Aplicar los operadores gen´ticos a la poblaci´n actual para
                              e                   o
                                                                      Algoritmo Gen´tico
                                                                                   e
   generar una nueva poblaci´n, que sustituir´ a la actual.
                            o                a
                                                                      Implementando . . .
4. Si el n´mero de generaciones (iteraciones) no es suficiente ´ no
          u                                                   o       Aplicaciones en . . .
   se ha llegado a la respuesta Regresar al paso 2.                   Recursos utiles
                                                                               ´

5. Mostrar las mejores respuestas.
                                                                           Home Page


Los operadores gen´ticos son aquellas operaciones que nos permiten
                   e                                                          T´
                                                                               ıtulo


generar a la nueva poblaci´n. Tradicionalmente, se aplican 3:
                          o

                                                                              Atr´s
                                                                                 a
    Elitismo. Un porcentaje de la poblaci´n actual se translada a
                                         o
                                                                         P´gina 3 de 18
                                                                          a
    la nueva poblaci´n. Al menos debe de estar el mejor individuo
                    o
    actual, ya que de esa manera no se pierde informaci´n.
                                                       o                 Pant. Completa

                                                                             Cerrar
    Cruza. Con probabilidad pc se combina el genoma de dos indi-
                                                                              Salir
    viduos previamente seleccionados.
Optimizando
    Mutaci´n. Con probabilidad pm se modifica el genoma de un
           o                                                         programas
    individuo, antes de a˜adirlo a la nueva poblaci´n.
                         n                         o                        con
                                                                      algoritmos
                                                                       gen´ticos
                                                                          e
   Obviamente, es com´n aplicar otros operadores, como por ejem-
                     u
plo:                                                                Algoritmo Gen´tico
                                                                                 e

                                                                    Implementando . . .

                                                                    Aplicaciones en . . .
1. Generaci´n de algunos individuos nuevos de manera aleatoria.
           o
                                                                    Recursos utiles
                                                                             ´
2. Correcci´n de soluciones (usualmente en problemas de grafi-
           o
   cas).
                                                                         Home Page

3. Migraci´n de individuos si es que esta corriendo de forma par-
          o                                                                 T´
                                                                             ıtulo

   alela.
4. Obtenci´n de estadisticas.
          o
                                                                            Atr´s
                                                                               a
5. Reconfiguraci´n autom´tica de los par´metros.
               o       a               a
                                                                       P´gina 4 de 18
                                                                        a

6. ...y m´s.
         a                                                             Pant. Completa

                                                                           Cerrar

                                                                            Salir
Optimizando
                                                                         programas
2.     Implementando un algoritmo gen´tico
                                     e                                          con
                                                                          algoritmos
                                                                           gen´ticos
                                                                              e
   La parte interesante de un algoritmo gen´tico es que solamente
                                           e
se requiere implementar una sola vez. Realmente lo unico que cam-
                                                   ´
                                                                        Algoritmo Gen´tico
                                                                                     e
bia es la codificaci´n del dominio del problema y c´mo evaluar
                    o                                o
                                                                        Implementando . . .
qu´ soluci´n propuesta es mejor (normalmente, con respecto a la
   e       o
                                                                        Aplicaciones en . . .
poblaci´n).
       o
                                                                        Recursos utiles
                                                                                 ´


  Por ejemplo, un problema dif´ de resolver pero f´cil de enten-
                               ıcil               a
der es el problema de 3-SAT. El problema consiste en que tienes              Home Page


expresiones como la siguiente:                                                  T´
                                                                                 ıtulo



  e = (x1 ∨ ¬x3 ∨ x4 ) ∧ (x2 ∨ x6 ∨ x3 ) ∧ . . . ∧ (x1 2 ∨ x1 ∨ x3 )
y tienes que generar una tabla de valores que satisfaga la expresi´n.
                                                                  o             Atr´s
                                                                                   a

En este caso, basta con:                                                   P´gina 5 de 18
                                                                            a



                       x1 = true, x3 = true                                Pant. Completa

                                                                               Cerrar
y lo dem´s puede quedar como se desee.
        a                                                                       Salir
Optimizando
   El tama˜o del espacio de b´squeda de posibles soluciones esta
           n                   u                                    programas
           n                                                               con
dado por 2 donde n es el n´mero de variables booleanas que in-
                             u
tervienen en la expresi´n. Para n = 8, el espacio de b´squeda es
                       o                              u              algoritmos
de tama˜o 256, mientras que para n = 32 es de 4, 294, 967, 296
        n                                                             gen´ticos
                                                                         e
(n = 64; 18, 446, 700, 000, 000, 000, 000) .
                                                                   Algoritmo Gen´tico
                                                                                e

                                                                   Implementando . . .

                                                                   Aplicaciones en . . .

                                                                   Recursos utiles
                                                                            ´




                                                                        Home Page

                                                                           T´
                                                                            ıtulo




                                                                           Atr´s
                                                                              a

                                                                      P´gina 6 de 18
                                                                       a


                                                                      Pant. Completa

                                                                          Cerrar

                                                                           Salir
Optimizando
  En este problema, es sencillo generar soluciones:      programas
                                                                con
                                                          algoritmos
public class Individuo{                                    gen´ticos
                                                              e
  BitSet genotype;
                                                        Algoritmo Gen´tico
                                                                     e
  ...
  Individuo(int size){                                  Implementando . . .

    Random rnd =                                        Aplicaciones en . . .

    new Random(java.util.Calendar.getTimeInMillis());   Recursos utiles
                                                                 ´

    genotype = new BitSet(size);
    for(int i = 0; i < size; i++){                           Home Page
      if(rnd.nextDouble() > 0.5)                                T´
                                                                 ıtulo
       genotype.set(i);
    }
  } ...
                                                                Atr´s
                                                                   a
}
                                                           P´gina 7 de 18
                                                            a


                                                           Pant. Completa

                                                               Cerrar

                                                                Salir
Optimizando
Cada bit corresponde al valor de cada variable booleana xi :    programas
                                                                       con
                   genotype.get(i) == xi                         algoritmos
                                                                  gen´ticos
                                                                     e

Una de las formas de evaluar la soluci´n es la siguiente:
                                      o                        Algoritmo Gen´tico
                                                                            e

                                                               Implementando . . .

 counter = 1                                                   Aplicaciones en . . .

                                                               Recursos utiles
                                                                        ´
 Revisar si cada subexpresi´n de tipo:
                           o
                          (xi ∨ xj ∨ xk )                           Home Page

                                                                       T´
                                                                        ıtulo
 es verdadera seg´n el genotipo. En tal caso, counter + +.
                 u
 Al terminar, obtener como medida de desempe˜o a
                                            n
                                counter                                Atr´s
                                                                          a
                  f=
                       total de subexpresiones                    P´gina 8 de 18
                                                                   a


                                                                  Pant. Completa

                                                                      Cerrar

                                                                       Salir
Optimizando
En tal caso, dara un valor de 0,5 cuando tengas la mitad de las            programas
subexpresiones resueltas y un valor de 1 cuando hayas resuelto el                 con
problema.                                                                   algoritmos
                                                                             gen´ticos
                                                                                e
  Seleccionamos un par de individuos de la poblaci´n, que seran
                                                  o
                                                                          Algoritmo Gen´tico
                                                                                       e
en los que aplicaremos los operadores geneticos.
                                                                          Implementando . . .

                                                                          Aplicaciones en . . .
   La forma cl´sica de seleccionar un par de individuos es la selecci´n
               a                                                     o
                                                                          Recursos utiles
                                                                                   ´
de ruleta, esto es, tal como en los concursos de la televisi´n, tenemos
                                                            o
una ruleta dividida acorde con el desempe˜o de cada individuo y
                                              n
luego le damos un par de vueltas para ver a qui´n escogeremos. En
                                                   e                           Home Page

c´digo:
 o                                                                                T´
                                                                                   ıtulo




                                                                                  Atr´s
                                                                                     a

                                                                             P´gina 9 de 18
                                                                              a


                                                                             Pant. Completa

                                                                                 Cerrar

                                                                                  Salir
Optimizando
                                                                    programas
public class Poblation{                                                    con
  private Individuo population[];                                    algoritmos
...                                                                   gen´ticos
                                                                         e
public Individuo select(){
                                                                   Algoritmo Gen´tico
                                                                                e
  double sum = 0.0, tope=0.0, suma=0.0;
                                                                   Implementando . . .
  for(int i=0; i<population.length; i++)
    sum+=population[i].getFitness();                               Aplicaciones en . . .

  tope = rnd.nextDouble()*sum;                                     Recursos utiles
                                                                            ´

  for(int i = 0; i<population.length; i++){
    suma+=population[i].getFitness();                                   Home Page
    if (suma>=tope)
                                                                           T´
                                                                            ıtulo
      return population[i];
  }
}
                                                                           Atr´s
                                                                              a
...
                                                                      P´gina 10 de 18
                                                                       a
}
                                                                      Pant. Completa

                                                                          Cerrar
  Lo cual nos regresa un individuo al azar. Cuando tengamos dos,
                                                                           Salir
Optimizando
podemos aplicar los operadores gen´ticos. Tradicionalmente se apli-
                                    e                                  programas
can tres: elitismo, cruza y mutaci´n.
                                  o                                           con
                                                                        algoritmos
public class Poblation{                                                  gen´ticos
                                                                            e
...
public Individuo[] elitism(double percent){                           Algoritmo Gen´tico
                                                                                   e

  int number = (int)(this.getSize()*percent);                         Implementando . . .

  Individuo arr[];                                                    Aplicaciones en . . .

  arr = new Individuo[number];                                        Recursos utiles
                                                                               ´

  this.sort();
  for(int i = 0; i<number; i++){                                           Home Page
    arr[i] = population[i];
                                                                              T´
                                                                               ıtulo
  }
  return arr;
}
                                                                              Atr´s
                                                                                 a
...
                                                                         P´gina 11 de 18
                                                                          a
}
                                                                         Pant. Completa

                                                                             Cerrar

                                                                              Salir
Optimizando
                                                           programas
public class Individuo{                                           con
...                                                         algoritmos
public Individuo crossover(Individuo e, double pc){          gen´ticos
                                                                e
  Individuo n;
                                                          Algoritmo Gen´tico
                                                                       e
  BitSet nbs = this.getGenome();
                                                          Implementando . . .
  BitSet obs = e.getGenome();
                                                          Aplicaciones en . . .
  if(rnd.nextDouble()<pc){
                                                          Recursos utiles
                                                                   ´
    for(int i = (nbs.length()/2); i<nbs.length(); i++){
       nbs.set(i, obs.get(i));
    }                                                          Home Page

  }                                                               T´
                                                                   ıtulo

  n = new Individuo(nbs);
  return n;
}                                                                 Atr´s
                                                                     a
...                                                          P´gina 12 de 18
                                                              a
}
                                                             Pant. Completa

                                                                 Cerrar

                                                                  Salir
Optimizando
                                                                           programas
public class Individuo{                                                           con
...                                                                         algoritmos
public Individuo mutate(double pm){                                          gen´ticos
                                                                                e
  Individuo n;
                                                                          Algoritmo Gen´tico
                                                                                       e
  BitSet bs = this.getGenome();
                                                                          Implementando . . .
  for(int i = 0; i<bs.length(); i++){
                                                                          Aplicaciones en . . .
    if (rnd.nextDouble()<pm){
                                                                          Recursos utiles
                                                                                   ´
      bs.flip(i);
    }
  }                                                                            Home Page

  n = new Individuo(bs);                                                          T´
                                                                                   ıtulo

  return n;
}
...                                                                               Atr´s
                                                                                     a
}                                                                            P´gina 13 de 18
                                                                              a


                                                                             Pant. Completa

   Notese que el plan aqu´ es explotar (elitismo, cruza) el conocimien-
                         ı                                                       Cerrar

to adquirido y explorar (mutaci´n) el espacio de posibles soluciones.
                                o                                                 Salir
Optimizando
   Un algoritmo gen´tico es f´cilmente paralelizable. En ocasiones,
                    e        a                                         programas
las funciones de evaluaci´n de desempe˜o podr´ requerir mucho
                         o             n        ıan                           con
tiempo para ser evaluadas, por lo que se asigna un individuo por        algoritmos
procesador disponible.                                                   gen´ticos
                                                                            e

                                                                      Algoritmo Gen´tico
                                                                                   e

                                                                      Implementando . . .

                                                                      Aplicaciones en . . .

                                                                      Recursos utiles
                                                                               ´




                                                                           Home Page

                                                                              T´
                                                                               ıtulo




                                                                              Atr´s
                                                                                 a

                                                                         P´gina 14 de 18
                                                                          a


                                                                         Pant. Completa

                                                                             Cerrar

                                                                              Salir
Optimizando
                                                                     programas
3.     Aplicaciones en Software                                             con
                                                                      algoritmos
 1. Creaci´n de horarios (sin colisiones)
          o
                                                                       gen´ticos
                                                                          e
 2. An´lisis Financiero (Explotando el an´lisis t´cnico)
      a                                  a       e
                                                                    Algoritmo Gen´tico
                                                                                 e
 3. Solucionar ecuaciones diferenciales ordinarias (¿sin dolor?)
                                                                    Implementando . . .

 4. Dise˜o de robots (Basilisc)
        n                                                           Aplicaciones en . . .

                                                                    Recursos utiles
                                                                             ´
 5. Descubrimiento de estrategias para Teor´ de juegos (El dilema
                                           ıa
    del prisionero, Oligopolios)
                                                                         Home Page
 6. Adaptando lineas de producci´n
                                o
                                                                            T´
                                                                             ıtulo

 7. Generar m´sica
             u
 8. Optimizando el dise˜o de PCBs (Printed Circuit Boards, usando
                       n
    TSP)                                                                    Atr´s
                                                                               a

                                                                       P´gina 15 de 18
                                                                        a
 9. Optimizando el dise˜o de procesadores (usando TSP: Travelling
                       n
    Salesman Problem)                                                  Pant. Completa

                                                                           Cerrar
10. Control de tr´fico a´reo
                 a     e                                                    Salir
Optimizando
11. Creaci´n de rutas de repartici´n optimas (gr´ficas planas!)
          o                       o             a                     programas
                                                                             con
12. Creaci´n de algoritmos para mantener la consistencia del color
           o                                                           algoritmos
    en retinas artificiales.                                             gen´ticos
                                                                           e

                                                                     Algoritmo Gen´tico
                                                                                  e

                                                                     Implementando . . .

                                                                     Aplicaciones en . . .

                                                                     Recursos utiles
                                                                              ´




                                                                          Home Page

                                                                             T´
                                                                              ıtulo




                                                                             Atr´s
                                                                                a

                                                                        P´gina 16 de 18
                                                                         a


                                                                        Pant. Completa

                                                                            Cerrar

                                                                             Salir
Optimizando
                                                                       programas
4.     Recursos utiles
                ´                                                             con
                                                                        algoritmos
     http://www.gnulinux.biz/mauro/
                                                                         gen´ticos
                                                                            e
     “Genetic Algorithms + Data Structures = Evolution Programs”.
     Zbigniew Michalewicz. Springer.                                  Algoritmo Gen´tico
                                                                                   e

                                                                      Implementando . . .
     “Evolutionary Programming IV”. John R. McDonnell, et al.
                                                                      Aplicaciones en . . .
     MIT Press.
                                                                      Recursos utiles
                                                                               ´

     “Evolutionary Programming V”. Lawrence J. Fogel, et al. MIT
     Press.                                                                Home Page

     “Applications of Evolutionary Computing”. Egbert Boers, et al.           T´
                                                                               ıtulo

     Springer.
     “Genetic Programming”. Julian Miller, et al. Springer.
                                                                              Atr´s
                                                                                 a
     The Genetic Algorithms archive.                                     P´gina 17 de 18
                                                                          a
     http://www.aic.nrl.navy.mil/galist/
                                                                         Pant. Completa
     Basilisc.                                                               Cerrar
     http://ganso5.fi-b.unam.mx/basilisc/basilisc.html                         Salir
Optimizando
Genetic Algorithms Warehouse.                                    programas
http://geneticalgorithms.ai-depot.com/Applications.html                 con
                                                                  algoritmos
Adaptaci´n de lineas de producci´n.
        o                        o                                 gen´ticos
                                                                      e
http://www.ici.ro/ici/revista/sic2000 4/art01.htm
                                                                Algoritmo Gen´tico
                                                                             e
“A grammar based Genetic Programming technique applied to
music generation”. Jeffrey Putnam. jefu@nmt.edu                  Implementando . . .

                                                                Aplicaciones en . . .
GaLib
                                                                Recursos utiles
                                                                         ´
http://lancet.mit.edu/ga/
Genetic Programming                                                  Home Page
http://www.genetic-programming.org/                                     T´
                                                                         ıtulo

“Software that writes software”. Alexis Willihnganz.
http://www.genetic-programming.com/published/Salon081099.html
                                                                        Atr´s
                                                                           a

                                                                   P´gina 18 de 18
                                                                    a


                                                                   Pant. Completa

                                                                       Cerrar

                                                                        Salir
1 of 18

Recommended

Inteligencia Artificial Clase 5 by
Inteligencia Artificial Clase 5Inteligencia Artificial Clase 5
Inteligencia Artificial Clase 5UNEFA
2.6K views24 slides
Optimizando programas con algoritmos geneticos by
Optimizando programas con algoritmos geneticosOptimizando programas con algoritmos geneticos
Optimizando programas con algoritmos geneticosMauro Parra-Miranda
741 views18 slides
10 DiseñO Con Algoritmos GenéTicos by
10 DiseñO Con Algoritmos GenéTicos10 DiseñO Con Algoritmos GenéTicos
10 DiseñO Con Algoritmos GenéTicosESCOM
9.9K views37 slides
Algoritmos GenéTicos by
Algoritmos GenéTicosAlgoritmos GenéTicos
Algoritmos GenéTicosESCOM
3.1K views17 slides
Algoritmos Genéticos by
Algoritmos GenéticosAlgoritmos Genéticos
Algoritmos GenéticosESCOM
6.7K views20 slides
5 herramienta aprendizaje algoritmos geneticos entorno matlab by
5 herramienta aprendizaje algoritmos geneticos entorno matlab5 herramienta aprendizaje algoritmos geneticos entorno matlab
5 herramienta aprendizaje algoritmos geneticos entorno matlabMaje Gonzalez
2.3K views14 slides

More Related Content

What's hot

Tema 7 Aprendizaje De Sistemas Difusos Con Algoritmos GenéTicos by
Tema 7 Aprendizaje De Sistemas Difusos Con Algoritmos GenéTicosTema 7 Aprendizaje De Sistemas Difusos Con Algoritmos GenéTicos
Tema 7 Aprendizaje De Sistemas Difusos Con Algoritmos GenéTicosESCOM
2.7K views40 slides
Ag (2005 verano) by
Ag (2005 verano)Ag (2005 verano)
Ag (2005 verano)Fiorella Urbina Vera
378 views27 slides
Int.art.equipo02 by
Int.art.equipo02Int.art.equipo02
Int.art.equipo02elypp11
18 views12 slides
Algoritmo Genetico by
Algoritmo GeneticoAlgoritmo Genetico
Algoritmo GeneticoDaniel Alejos
2K views22 slides
Trabajo algoritmo genetico uba by
Trabajo algoritmo genetico uba Trabajo algoritmo genetico uba
Trabajo algoritmo genetico uba yucci2323
935 views10 slides
Algoritmo genetico by
Algoritmo geneticoAlgoritmo genetico
Algoritmo geneticoMarco Gámez
9.5K views18 slides

What's hot(17)

Tema 7 Aprendizaje De Sistemas Difusos Con Algoritmos GenéTicos by ESCOM
Tema 7 Aprendizaje De Sistemas Difusos Con Algoritmos GenéTicosTema 7 Aprendizaje De Sistemas Difusos Con Algoritmos GenéTicos
Tema 7 Aprendizaje De Sistemas Difusos Con Algoritmos GenéTicos
ESCOM2.7K views
Int.art.equipo02 by elypp11
Int.art.equipo02Int.art.equipo02
Int.art.equipo02
elypp1118 views
Trabajo algoritmo genetico uba by yucci2323
Trabajo algoritmo genetico uba Trabajo algoritmo genetico uba
Trabajo algoritmo genetico uba
yucci2323935 views
Algoritmo genetico by Marco Gámez
Algoritmo geneticoAlgoritmo genetico
Algoritmo genetico
Marco Gámez9.5K views
Algoritmos genéticos by JeffoG92
Algoritmos genéticosAlgoritmos genéticos
Algoritmos genéticos
JeffoG92622 views
Algoritmos genéticos con matlab by UNIV OF PERU
Algoritmos genéticos con matlabAlgoritmos genéticos con matlab
Algoritmos genéticos con matlab
UNIV OF PERU3.3K views
Algoritmos geneticos by YAn_dy
Algoritmos geneticosAlgoritmos geneticos
Algoritmos geneticos
YAn_dy2.7K views
Algoritmos Genéticos_Inteligencia Artificial by Gabriela_Rodriguez
Algoritmos Genéticos_Inteligencia ArtificialAlgoritmos Genéticos_Inteligencia Artificial
Algoritmos Genéticos_Inteligencia Artificial
Gabriela_Rodriguez240 views

Viewers also liked

Algoritmos Genéticos na Prática by
Algoritmos Genéticos na PráticaAlgoritmos Genéticos na Prática
Algoritmos Genéticos na PráticaNorton Guimarães
3.3K views25 slides
Inteligência Artificial - Aula15 - Algoritmos Genéticos by
Inteligência Artificial - Aula15 - Algoritmos GenéticosInteligência Artificial - Aula15 - Algoritmos Genéticos
Inteligência Artificial - Aula15 - Algoritmos GenéticosRafael Pinto
8K views53 slides
Algoritmos geneticos by
Algoritmos geneticosAlgoritmos geneticos
Algoritmos geneticosUniversidad de Cundinamarca
5.2K views36 slides
Algoritmo Genético de Chu-Beasley Aplicado a la Resolución del Viaje del Caba... by
Algoritmo Genético de Chu-Beasley Aplicado a la Resolución del Viaje del Caba...Algoritmo Genético de Chu-Beasley Aplicado a la Resolución del Viaje del Caba...
Algoritmo Genético de Chu-Beasley Aplicado a la Resolución del Viaje del Caba...Sergio Cossa
833 views6 slides
3 1-Algoritmos Genéticos - Diaz - Lombardo by
3 1-Algoritmos Genéticos - Diaz - Lombardo3 1-Algoritmos Genéticos - Diaz - Lombardo
3 1-Algoritmos Genéticos - Diaz - LombardoUTN Rosario - Depto Sistemas
536 views15 slides
Análise da implementação de algoritmo genético na função de Griewank com para... by
Análise da implementação de algoritmo genético na função de Griewank com para...Análise da implementação de algoritmo genético na função de Griewank com para...
Análise da implementação de algoritmo genético na função de Griewank com para...Anderson Rodrigo Barretto Teodoro
2.9K views25 slides

Viewers also liked(20)

Inteligência Artificial - Aula15 - Algoritmos Genéticos by Rafael Pinto
Inteligência Artificial - Aula15 - Algoritmos GenéticosInteligência Artificial - Aula15 - Algoritmos Genéticos
Inteligência Artificial - Aula15 - Algoritmos Genéticos
Rafael Pinto8K views
Algoritmo Genético de Chu-Beasley Aplicado a la Resolución del Viaje del Caba... by Sergio Cossa
Algoritmo Genético de Chu-Beasley Aplicado a la Resolución del Viaje del Caba...Algoritmo Genético de Chu-Beasley Aplicado a la Resolución del Viaje del Caba...
Algoritmo Genético de Chu-Beasley Aplicado a la Resolución del Viaje del Caba...
Sergio Cossa833 views
Barreras para el flujo genético by lili Rodriguez
Barreras para el flujo genéticoBarreras para el flujo genético
Barreras para el flujo genético
lili Rodriguez1.8K views
Introdução aos Algoritmos Genéticos by Norton Guimarães
Introdução aos Algoritmos GenéticosIntrodução aos Algoritmos Genéticos
Introdução aos Algoritmos Genéticos
Norton Guimarães3.2K views
Inteligencia Artificial y Sistemas Expertos by CarlosPalacios
Inteligencia Artificial y Sistemas ExpertosInteligencia Artificial y Sistemas Expertos
Inteligencia Artificial y Sistemas Expertos
CarlosPalacios10.6K views
Barreras para el flujo genético by lili Rodriguez
Barreras para el flujo genéticoBarreras para el flujo genético
Barreras para el flujo genético
lili Rodriguez4.5K views
Prevencion de criaderos de Aedes aegypti by Michael Castillo
Prevencion de criaderos de Aedes aegyptiPrevencion de criaderos de Aedes aegypti
Prevencion de criaderos de Aedes aegypti
Michael Castillo1.8K views
ejercicios resueltos análisis de algoritmos by Jojo Jona
ejercicios resueltos   análisis de algoritmosejercicios resueltos   análisis de algoritmos
ejercicios resueltos análisis de algoritmos
Jojo Jona9.6K views
ANALISIS DE ALGORITMOS by Evans Balcazar
ANALISIS DE ALGORITMOSANALISIS DE ALGORITMOS
ANALISIS DE ALGORITMOS
Evans Balcazar10.5K views
Diseño con algoritmos genéticos by MilanxD
Diseño con algoritmos genéticosDiseño con algoritmos genéticos
Diseño con algoritmos genéticos
MilanxD664 views
Diseño de tabla de contenido con hipervínculo en word by miguel vega
Diseño de tabla de contenido con hipervínculo en wordDiseño de tabla de contenido con hipervínculo en word
Diseño de tabla de contenido con hipervínculo en word
miguel vega18.7K views
Flujo genetico entre especies by alan-ortiz
Flujo genetico entre especiesFlujo genetico entre especies
Flujo genetico entre especies
alan-ortiz23.1K views

More from Mauro Parra-Miranda

Configuraciones inseguras by
Configuraciones insegurasConfiguraciones inseguras
Configuraciones insegurasMauro Parra-Miranda
55 views10 slides
Cloudevel - Microsoft Azure - 101 by
Cloudevel - Microsoft Azure - 101Cloudevel - Microsoft Azure - 101
Cloudevel - Microsoft Azure - 101Mauro Parra-Miranda
38 views46 slides
¿Cómo crear un dream team de ciberseguridad? by
¿Cómo crear un dream team de ciberseguridad?¿Cómo crear un dream team de ciberseguridad?
¿Cómo crear un dream team de ciberseguridad?Mauro Parra-Miranda
121 views14 slides
Startuplie - un ejercicio de sinceridad en español by
Startuplie - un ejercicio de sinceridad en españolStartuplie - un ejercicio de sinceridad en español
Startuplie - un ejercicio de sinceridad en españolMauro Parra-Miranda
69 views28 slides
Usando azure para escalar tu producto by
Usando azure para escalar tu productoUsando azure para escalar tu producto
Usando azure para escalar tu productoMauro Parra-Miranda
77 views21 slides
AWS Summit Mexico City 2018 - Usando Elastic Beanstalk by
AWS Summit Mexico City 2018 - Usando Elastic BeanstalkAWS Summit Mexico City 2018 - Usando Elastic Beanstalk
AWS Summit Mexico City 2018 - Usando Elastic BeanstalkMauro Parra-Miranda
173 views13 slides

More from Mauro Parra-Miranda(20)

Startuplie - un ejercicio de sinceridad en español by Mauro Parra-Miranda
Startuplie - un ejercicio de sinceridad en españolStartuplie - un ejercicio de sinceridad en español
Startuplie - un ejercicio de sinceridad en español
AWS Summit Mexico City 2018 - Usando Elastic Beanstalk by Mauro Parra-Miranda
AWS Summit Mexico City 2018 - Usando Elastic BeanstalkAWS Summit Mexico City 2018 - Usando Elastic Beanstalk
AWS Summit Mexico City 2018 - Usando Elastic Beanstalk
Cómo crear un dream team técnico - CPMX4 - 2013 by Mauro Parra-Miranda
Cómo crear un dream team técnico - CPMX4 - 2013Cómo crear un dream team técnico - CPMX4 - 2013
Cómo crear un dream team técnico - CPMX4 - 2013
Desarrollando Apps móviles con Titanium Studio by Mauro Parra-Miranda
Desarrollando Apps móviles con Titanium StudioDesarrollando Apps móviles con Titanium Studio
Desarrollando Apps móviles con Titanium Studio
Mauro Parra-Miranda1.9K views
Desarrollando Apps móviles con Titanium Studio by Mauro Parra-Miranda
Desarrollando Apps móviles con Titanium StudioDesarrollando Apps móviles con Titanium Studio
Desarrollando Apps móviles con Titanium Studio
Mauro Parra-Miranda2.9K views

Recently uploaded

Presentación: El impacto y peligro de la piratería de software by
Presentación: El impacto y peligro de la piratería de softwarePresentación: El impacto y peligro de la piratería de software
Presentación: El impacto y peligro de la piratería de softwareEmanuelMuoz11
17 views66 slides
Dominios de internet.pdf by
Dominios de internet.pdfDominios de internet.pdf
Dominios de internet.pdfNahomiBanchen
12 views2 slides
Como sacar el máximo partido a los Cores de MuleSoft - optimización y buenas ... by
Como sacar el máximo partido a los Cores de MuleSoft - optimización y buenas ...Como sacar el máximo partido a los Cores de MuleSoft - optimización y buenas ...
Como sacar el máximo partido a los Cores de MuleSoft - optimización y buenas ...Francisco Javier Toscano Lopez
51 views29 slides
Fundamentos De Electricidad y Electrónica equipo 5.pdf by
Fundamentos De Electricidad y Electrónica equipo 5.pdfFundamentos De Electricidad y Electrónica equipo 5.pdf
Fundamentos De Electricidad y Electrónica equipo 5.pdfcoloradxmaria
14 views14 slides
PRESENTACIÓN.pptx by
PRESENTACIÓN.pptxPRESENTACIÓN.pptx
PRESENTACIÓN.pptxsusanaasotoleiva
6 views1 slide
Los principios de la Antropometria y Ergonomia.pdf by
Los principios de la Antropometria y Ergonomia.pdfLos principios de la Antropometria y Ergonomia.pdf
Los principios de la Antropometria y Ergonomia.pdfBenisBorges
6 views11 slides

Recently uploaded(20)

Presentación: El impacto y peligro de la piratería de software by EmanuelMuoz11
Presentación: El impacto y peligro de la piratería de softwarePresentación: El impacto y peligro de la piratería de software
Presentación: El impacto y peligro de la piratería de software
EmanuelMuoz1117 views
Fundamentos De Electricidad y Electrónica equipo 5.pdf by coloradxmaria
Fundamentos De Electricidad y Electrónica equipo 5.pdfFundamentos De Electricidad y Electrónica equipo 5.pdf
Fundamentos De Electricidad y Electrónica equipo 5.pdf
coloradxmaria14 views
Los principios de la Antropometria y Ergonomia.pdf by BenisBorges
Los principios de la Antropometria y Ergonomia.pdfLos principios de la Antropometria y Ergonomia.pdf
Los principios de la Antropometria y Ergonomia.pdf
BenisBorges6 views
Fundamentos de Electricidad y Electronica 9-3 (1).docx by Samuel709479
Fundamentos de Electricidad y Electronica 9-3 (1).docxFundamentos de Electricidad y Electronica 9-3 (1).docx
Fundamentos de Electricidad y Electronica 9-3 (1).docx
Samuel7094795 views
Fundamentos de electricidad y electrónica.docx by DilanTabares
Fundamentos de electricidad y electrónica.docxFundamentos de electricidad y electrónica.docx
Fundamentos de electricidad y electrónica.docx
DilanTabares5 views
Tecnologías para la enseñanza virtual_cdc.pptx by CarmenerdelHuasco
Tecnologías para la enseñanza virtual_cdc.pptxTecnologías para la enseñanza virtual_cdc.pptx
Tecnologías para la enseñanza virtual_cdc.pptx
TALLER DE ANÁLISIS DE ARTEFACTOS_.docx by DilanTabares
TALLER DE ANÁLISIS DE ARTEFACTOS_.docxTALLER DE ANÁLISIS DE ARTEFACTOS_.docx
TALLER DE ANÁLISIS DE ARTEFACTOS_.docx
DilanTabares6 views
CÓMO PUBLICAR UNA PRESENTACIÓN GRÁFICA EN INTERNET.pptx by dreadlockp5
CÓMO PUBLICAR UNA PRESENTACIÓN GRÁFICA EN INTERNET.pptxCÓMO PUBLICAR UNA PRESENTACIÓN GRÁFICA EN INTERNET.pptx
CÓMO PUBLICAR UNA PRESENTACIÓN GRÁFICA EN INTERNET.pptx
dreadlockp58 views
MVelazco_Internet, Origenes y Evolucion.pptx by al223915
MVelazco_Internet, Origenes  y Evolucion.pptxMVelazco_Internet, Origenes  y Evolucion.pptx
MVelazco_Internet, Origenes y Evolucion.pptx
al2239156 views
Tarea Curso Tecnologias para la enseñanza virtual.pptx by lesliealejandraContr
Tarea Curso Tecnologias para la enseñanza virtual.pptxTarea Curso Tecnologias para la enseñanza virtual.pptx
Tarea Curso Tecnologias para la enseñanza virtual.pptx
DELITOS INFORMATICOS EFRAIN CAMACHO 27462611 INFORMATICA III.pptx by davidsalazar63484
DELITOS INFORMATICOS EFRAIN CAMACHO 27462611 INFORMATICA III.pptxDELITOS INFORMATICOS EFRAIN CAMACHO 27462611 INFORMATICA III.pptx
DELITOS INFORMATICOS EFRAIN CAMACHO 27462611 INFORMATICA III.pptx
El Ciberespacio y sus Características.pptx by AnthlingPereira
El Ciberespacio y  sus Características.pptxEl Ciberespacio y  sus Características.pptx
El Ciberespacio y sus Características.pptx
AnthlingPereira19 views
Tarea15.pptx by illanlir
Tarea15.pptxTarea15.pptx
Tarea15.pptx
illanlir11 views

Resolviendo problemas con algoritmos geneticos

  • 1. Optimizando programas con algoritmos Resolviendo problemas con algoritmos gen´ticos e gen´ticos e Algoritmo Gen´tico e Implementando . . . Mauro Parra Miranda Aplicaciones en . . . mauro@ciencias.unam.mx Recursos utiles ´ Home Page My brain is open. T´ ıtulo Paul Erd¨so http://www.gnulinux.biz/mauro/ Atr´s a P´gina 1 de 18 a Pant. Completa Cerrar Salir
  • 2. Optimizando programas 1. Algoritmo Gen´tico e con algoritmos Un algoritmo gen´tico es un m´todo probabil´ e e ıstico que mantiene gen´ticos e 1 n una poblaci´n de individuos Pt = {xt , . . . , xt } para cada iteraci´n o o Algoritmo Gen´tico e t. Implementando . . . Aplicaciones en . . . Cada individuo representa una soluci´n potencial del problema o Recursos utiles ´ que se este resolviendo. Cada soluci´n xi es evaluada de alguna o t manera para conocer su desempe˜o con respecto a la poblaci´n n o actual. Home Page T´ ıtulo Una nueva poblaci´n (la t+1) es generada a trav´s de la selecci´n o e o de los individuos mejor adaptados (o sea, las mejores soluciones). Algunos individuos de la poblaci´n son alterados por algunos oper- o Atr´s a adores, llamados operadores gen´ticos. e P´gina 2 de 18 a Pant. Completa Los operadores gen´ticos m´s usados son la cruza y mutaci´n. La e a o Cerrar cruza consiste en combinar dos soluciones, mientras que la mutaci´n o Salir es alterar ligeramente una soluci´n de manera aleatoria. o
  • 3. Optimizando 1. Generar poblaci´n Aleatoria (uniformemente distribuida, de pref- o programas erencia). con algoritmos 2. Calificar a los individuos de la poblaci´n o gen´ticos e 3. Aplicar los operadores gen´ticos a la poblaci´n actual para e o Algoritmo Gen´tico e generar una nueva poblaci´n, que sustituir´ a la actual. o a Implementando . . . 4. Si el n´mero de generaciones (iteraciones) no es suficiente ´ no u o Aplicaciones en . . . se ha llegado a la respuesta Regresar al paso 2. Recursos utiles ´ 5. Mostrar las mejores respuestas. Home Page Los operadores gen´ticos son aquellas operaciones que nos permiten e T´ ıtulo generar a la nueva poblaci´n. Tradicionalmente, se aplican 3: o Atr´s a Elitismo. Un porcentaje de la poblaci´n actual se translada a o P´gina 3 de 18 a la nueva poblaci´n. Al menos debe de estar el mejor individuo o actual, ya que de esa manera no se pierde informaci´n. o Pant. Completa Cerrar Cruza. Con probabilidad pc se combina el genoma de dos indi- Salir viduos previamente seleccionados.
  • 4. Optimizando Mutaci´n. Con probabilidad pm se modifica el genoma de un o programas individuo, antes de a˜adirlo a la nueva poblaci´n. n o con algoritmos gen´ticos e Obviamente, es com´n aplicar otros operadores, como por ejem- u plo: Algoritmo Gen´tico e Implementando . . . Aplicaciones en . . . 1. Generaci´n de algunos individuos nuevos de manera aleatoria. o Recursos utiles ´ 2. Correcci´n de soluciones (usualmente en problemas de grafi- o cas). Home Page 3. Migraci´n de individuos si es que esta corriendo de forma par- o T´ ıtulo alela. 4. Obtenci´n de estadisticas. o Atr´s a 5. Reconfiguraci´n autom´tica de los par´metros. o a a P´gina 4 de 18 a 6. ...y m´s. a Pant. Completa Cerrar Salir
  • 5. Optimizando programas 2. Implementando un algoritmo gen´tico e con algoritmos gen´ticos e La parte interesante de un algoritmo gen´tico es que solamente e se requiere implementar una sola vez. Realmente lo unico que cam- ´ Algoritmo Gen´tico e bia es la codificaci´n del dominio del problema y c´mo evaluar o o Implementando . . . qu´ soluci´n propuesta es mejor (normalmente, con respecto a la e o Aplicaciones en . . . poblaci´n). o Recursos utiles ´ Por ejemplo, un problema dif´ de resolver pero f´cil de enten- ıcil a der es el problema de 3-SAT. El problema consiste en que tienes Home Page expresiones como la siguiente: T´ ıtulo e = (x1 ∨ ¬x3 ∨ x4 ) ∧ (x2 ∨ x6 ∨ x3 ) ∧ . . . ∧ (x1 2 ∨ x1 ∨ x3 ) y tienes que generar una tabla de valores que satisfaga la expresi´n. o Atr´s a En este caso, basta con: P´gina 5 de 18 a x1 = true, x3 = true Pant. Completa Cerrar y lo dem´s puede quedar como se desee. a Salir
  • 6. Optimizando El tama˜o del espacio de b´squeda de posibles soluciones esta n u programas n con dado por 2 donde n es el n´mero de variables booleanas que in- u tervienen en la expresi´n. Para n = 8, el espacio de b´squeda es o u algoritmos de tama˜o 256, mientras que para n = 32 es de 4, 294, 967, 296 n gen´ticos e (n = 64; 18, 446, 700, 000, 000, 000, 000) . Algoritmo Gen´tico e Implementando . . . Aplicaciones en . . . Recursos utiles ´ Home Page T´ ıtulo Atr´s a P´gina 6 de 18 a Pant. Completa Cerrar Salir
  • 7. Optimizando En este problema, es sencillo generar soluciones: programas con algoritmos public class Individuo{ gen´ticos e BitSet genotype; Algoritmo Gen´tico e ... Individuo(int size){ Implementando . . . Random rnd = Aplicaciones en . . . new Random(java.util.Calendar.getTimeInMillis()); Recursos utiles ´ genotype = new BitSet(size); for(int i = 0; i < size; i++){ Home Page if(rnd.nextDouble() > 0.5) T´ ıtulo genotype.set(i); } } ... Atr´s a } P´gina 7 de 18 a Pant. Completa Cerrar Salir
  • 8. Optimizando Cada bit corresponde al valor de cada variable booleana xi : programas con genotype.get(i) == xi algoritmos gen´ticos e Una de las formas de evaluar la soluci´n es la siguiente: o Algoritmo Gen´tico e Implementando . . . counter = 1 Aplicaciones en . . . Recursos utiles ´ Revisar si cada subexpresi´n de tipo: o (xi ∨ xj ∨ xk ) Home Page T´ ıtulo es verdadera seg´n el genotipo. En tal caso, counter + +. u Al terminar, obtener como medida de desempe˜o a n counter Atr´s a f= total de subexpresiones P´gina 8 de 18 a Pant. Completa Cerrar Salir
  • 9. Optimizando En tal caso, dara un valor de 0,5 cuando tengas la mitad de las programas subexpresiones resueltas y un valor de 1 cuando hayas resuelto el con problema. algoritmos gen´ticos e Seleccionamos un par de individuos de la poblaci´n, que seran o Algoritmo Gen´tico e en los que aplicaremos los operadores geneticos. Implementando . . . Aplicaciones en . . . La forma cl´sica de seleccionar un par de individuos es la selecci´n a o Recursos utiles ´ de ruleta, esto es, tal como en los concursos de la televisi´n, tenemos o una ruleta dividida acorde con el desempe˜o de cada individuo y n luego le damos un par de vueltas para ver a qui´n escogeremos. En e Home Page c´digo: o T´ ıtulo Atr´s a P´gina 9 de 18 a Pant. Completa Cerrar Salir
  • 10. Optimizando programas public class Poblation{ con private Individuo population[]; algoritmos ... gen´ticos e public Individuo select(){ Algoritmo Gen´tico e double sum = 0.0, tope=0.0, suma=0.0; Implementando . . . for(int i=0; i<population.length; i++) sum+=population[i].getFitness(); Aplicaciones en . . . tope = rnd.nextDouble()*sum; Recursos utiles ´ for(int i = 0; i<population.length; i++){ suma+=population[i].getFitness(); Home Page if (suma>=tope) T´ ıtulo return population[i]; } } Atr´s a ... P´gina 10 de 18 a } Pant. Completa Cerrar Lo cual nos regresa un individuo al azar. Cuando tengamos dos, Salir
  • 11. Optimizando podemos aplicar los operadores gen´ticos. Tradicionalmente se apli- e programas can tres: elitismo, cruza y mutaci´n. o con algoritmos public class Poblation{ gen´ticos e ... public Individuo[] elitism(double percent){ Algoritmo Gen´tico e int number = (int)(this.getSize()*percent); Implementando . . . Individuo arr[]; Aplicaciones en . . . arr = new Individuo[number]; Recursos utiles ´ this.sort(); for(int i = 0; i<number; i++){ Home Page arr[i] = population[i]; T´ ıtulo } return arr; } Atr´s a ... P´gina 11 de 18 a } Pant. Completa Cerrar Salir
  • 12. Optimizando programas public class Individuo{ con ... algoritmos public Individuo crossover(Individuo e, double pc){ gen´ticos e Individuo n; Algoritmo Gen´tico e BitSet nbs = this.getGenome(); Implementando . . . BitSet obs = e.getGenome(); Aplicaciones en . . . if(rnd.nextDouble()<pc){ Recursos utiles ´ for(int i = (nbs.length()/2); i<nbs.length(); i++){ nbs.set(i, obs.get(i)); } Home Page } T´ ıtulo n = new Individuo(nbs); return n; } Atr´s a ... P´gina 12 de 18 a } Pant. Completa Cerrar Salir
  • 13. Optimizando programas public class Individuo{ con ... algoritmos public Individuo mutate(double pm){ gen´ticos e Individuo n; Algoritmo Gen´tico e BitSet bs = this.getGenome(); Implementando . . . for(int i = 0; i<bs.length(); i++){ Aplicaciones en . . . if (rnd.nextDouble()<pm){ Recursos utiles ´ bs.flip(i); } } Home Page n = new Individuo(bs); T´ ıtulo return n; } ... Atr´s a } P´gina 13 de 18 a Pant. Completa Notese que el plan aqu´ es explotar (elitismo, cruza) el conocimien- ı Cerrar to adquirido y explorar (mutaci´n) el espacio de posibles soluciones. o Salir
  • 14. Optimizando Un algoritmo gen´tico es f´cilmente paralelizable. En ocasiones, e a programas las funciones de evaluaci´n de desempe˜o podr´ requerir mucho o n ıan con tiempo para ser evaluadas, por lo que se asigna un individuo por algoritmos procesador disponible. gen´ticos e Algoritmo Gen´tico e Implementando . . . Aplicaciones en . . . Recursos utiles ´ Home Page T´ ıtulo Atr´s a P´gina 14 de 18 a Pant. Completa Cerrar Salir
  • 15. Optimizando programas 3. Aplicaciones en Software con algoritmos 1. Creaci´n de horarios (sin colisiones) o gen´ticos e 2. An´lisis Financiero (Explotando el an´lisis t´cnico) a a e Algoritmo Gen´tico e 3. Solucionar ecuaciones diferenciales ordinarias (¿sin dolor?) Implementando . . . 4. Dise˜o de robots (Basilisc) n Aplicaciones en . . . Recursos utiles ´ 5. Descubrimiento de estrategias para Teor´ de juegos (El dilema ıa del prisionero, Oligopolios) Home Page 6. Adaptando lineas de producci´n o T´ ıtulo 7. Generar m´sica u 8. Optimizando el dise˜o de PCBs (Printed Circuit Boards, usando n TSP) Atr´s a P´gina 15 de 18 a 9. Optimizando el dise˜o de procesadores (usando TSP: Travelling n Salesman Problem) Pant. Completa Cerrar 10. Control de tr´fico a´reo a e Salir
  • 16. Optimizando 11. Creaci´n de rutas de repartici´n optimas (gr´ficas planas!) o o a programas con 12. Creaci´n de algoritmos para mantener la consistencia del color o algoritmos en retinas artificiales. gen´ticos e Algoritmo Gen´tico e Implementando . . . Aplicaciones en . . . Recursos utiles ´ Home Page T´ ıtulo Atr´s a P´gina 16 de 18 a Pant. Completa Cerrar Salir
  • 17. Optimizando programas 4. Recursos utiles ´ con algoritmos http://www.gnulinux.biz/mauro/ gen´ticos e “Genetic Algorithms + Data Structures = Evolution Programs”. Zbigniew Michalewicz. Springer. Algoritmo Gen´tico e Implementando . . . “Evolutionary Programming IV”. John R. McDonnell, et al. Aplicaciones en . . . MIT Press. Recursos utiles ´ “Evolutionary Programming V”. Lawrence J. Fogel, et al. MIT Press. Home Page “Applications of Evolutionary Computing”. Egbert Boers, et al. T´ ıtulo Springer. “Genetic Programming”. Julian Miller, et al. Springer. Atr´s a The Genetic Algorithms archive. P´gina 17 de 18 a http://www.aic.nrl.navy.mil/galist/ Pant. Completa Basilisc. Cerrar http://ganso5.fi-b.unam.mx/basilisc/basilisc.html Salir
  • 18. Optimizando Genetic Algorithms Warehouse. programas http://geneticalgorithms.ai-depot.com/Applications.html con algoritmos Adaptaci´n de lineas de producci´n. o o gen´ticos e http://www.ici.ro/ici/revista/sic2000 4/art01.htm Algoritmo Gen´tico e “A grammar based Genetic Programming technique applied to music generation”. Jeffrey Putnam. jefu@nmt.edu Implementando . . . Aplicaciones en . . . GaLib Recursos utiles ´ http://lancet.mit.edu/ga/ Genetic Programming Home Page http://www.genetic-programming.org/ T´ ıtulo “Software that writes software”. Alexis Willihnganz. http://www.genetic-programming.com/published/Salon081099.html Atr´s a P´gina 18 de 18 a Pant. Completa Cerrar Salir