Razón Artificial

La ciencia y el arte de crear videojuegos

Algoritmos genéticos, parte 2

Escrito por carlos el 3 de octubre de 2010 en Inteligencia Artificial | 3 Comentarios.

Bueno, vamos a continuar con más cosas teóricas antes de la implementación del AG, que por cierto, se hará en python. Vamos a detallar más lo que vamos a hacer. Pediremos las coordenadas de inicio y las de llegada, el AG empezará y en cuanto encuentre un camino nos dirá cual es el camino que ha encontrado

Primero necesitamos saber como vamos a codificar los genes en el cromosoma. Para esto tenemos que saber cuales son las posibilidades, que en este caso son ir al norte, al sur, al este o al oeste. La manera más sencilla de codificarlos es en formato binario, es decir,  con unos y ceros, dado que luego tiene varias ventajas añadidas, como por ejemplo que a la hora de mutar solo hay que cambiarlo de 0 a 1 o de 1 a 0, no hay que tratar con mas posibilidades que complicarían más la cosa. Una vez considerado esto, dado que las posibilidades son 4, cada gen del cromosoma será una pareja de estos números, así las combinaciones serán exactamente 4: 00 –> norte, 01 –> sur, 10 –>  este, 11 –> oeste. En otras ocasiones no tendremos tanta suerte, y nos acabarán sobrando posibilidades, por lo tanto habrá que realizar el tratamiento de errores que corresponda. Es importante que tengáis claro como lo habéis codificado dado que lo necesitareis recordar durante todo el desarrollo. Una cosa a tener en cuenta es que no hay ningún obstáculo en todo el recorrido

La estructura del código es sencilla. Una clase Cromosoma que contendrá los atributos “cromosoma”, una cadena, y  “aptitud”, un número en coma flotante, y con prácticamente todas las funciones que necesitaremos. El resto serán un par de funciones sueltas que no encajan el la clase y el programa en si. Como módulos externos solo usaremos “random” para los números aleatorios que necesitaremos.

Poco más queda por decir antes de empezar con el código, quizás aclarar que sera en modo consola, pero pondré al día mis conocimientos de pygame para próximos tutoriales, que si no hay cosas que se pueden hacer muy pesadas. Así que nos vemos en el siguiente artículo.

3 Comentarios en "Algoritmos genéticos, parte 2"

  1. alejo dice:

    muy buen tuto, estoy a la espera del codigo para seguir aprendiendo!

  2. Jeancarlos dice:

    Primero que todo felicitarte por el tutorial. Sin embargo, me gustaria saber si hay una continuacion o alli acaba porque lei el anterior articulo y me gustaria empezar con la programacion!

    Saludos

  3. Valentina21 dice:

    La historia de los búhos es bien didáctica y divertida. Lo que hasta ahora no entiendo es que dado un modelo matemático de Max o Min z=f(x) sujeto a: varias restricciones lineales, con f(x) también lineal; es decir un modelo de P.E. con función objetivo (que en mi caso quisiera aplicar a ruteo de vehículos), ¿cómo lo reescribirlo o cómo adaptarlo para resolverlo con algún algoritmo genético? Por favor más detalles, muchísimas gracias de antemano :)

Deja un comentario