in

Algoritmo genético que diseña un coche

Bueno, no se trata de un coche como los que podemos ver en la calle, ni mucho menos. Es una simple representación en dos dimensiones a través de la cual este algoritmo genético en particular lucha por cumplir las condiciones necesarias que le permitan optimizar su resultado final. Y aunque sus primeras expresiones siempre con caóticas o ineficientes, es muy interesante ver cómo el algoritmo trata de compensar sus errores previos con cada nuevo diseño.

Su definición clasifica a un algoritmo genético como un proceso de búsqueda heurística que trata de imitar la evolución natural. Al hablar de "heurística" estamos claramente tratando con la solución o la respuesta más óptima o más eficiente ante un problema o una condición. Hablar de "mejor" no es del todo adecuado en estos casos ya que implica que la solución es comparada a otra ya conocida, lo que en cierta forma anula el proceso del "camino evolutivo" que trata de utilizar el algoritmo. Por esta y otras razones, el algoritmo genético ha recibido muchas críticas y se lo considera inferior a otros "algoritmos evolucionarios", pero en lo que se refiere a optimización, el algoritmo genético es el más popular.

Recientemente hemos visto en un portal una implementación muy interesante de un algoritmo genético, con un objetivo: Diseñar el coche más óptimo frente a determinado tipo de terreno. El coche apenas tiene dos ruedas y dos "masas" que actúan como contrapesos. El algoritmo puede controlar el radio y la posición de todos los elementos, lo que le entrega un importante nivel de flexibilidad. Las masas deben estar conectadas por "resortes" cuya constante de amortiguación también puede ser escogida por el algoritmo. Y lo que se puede llamar como "condición arbitraria" es que las masas nunca deben tocar el suelo. El factor de optimización de una solución se determina por la distancia que logra recorrer antes de que una de las masas toque el suelo, y antes de que el tiempo (un valor fijo para retirar las soluciones "atascadas" en el terreno) se acabe.

Al principio es muy gracioso observar algunas de las "soluciones" propuestas por el algoritmo, como por ejemplo ciertos uniciclos que pierden el equilibrio apenas tocan el suelo. Pero si tienen paciencia y lo dejan ejecutarse por algunos minutos notarán cómo el algoritmo se vuelve recurrente con ciertas soluciones que entregan resultados eficientes. Cualquier interesado en ajustar este proceso o en alterarlo puede descargar el código fuente desde el mismo sitio que muestra al algoritmo en funcionamiento. Al principio es frustrante, porque después de unos pocos instantes nosotros podemos pensar en un modelo más eficiente para recorrer el terreno, pero eventualmente el algoritmo puede llegar a una solución optimizada dentro de sus capacidades y limitaciones.

Reportar

¿Qué te pareció?

Escrito por Lisandro Pardo

8 Comments

Leave a Reply
  1. Recuerdo haber visto algo parecido pero con modelos en 3D en un programa de uno de esos canales del tipo de Discovery Channel.

    Voy a buscar videos en youtube de este asunto ò_ó

    • Estaba pensanso justo eso mismo… porque no puedo dejar un proceso corriendo así por puro gusto pero me llama la atención saber a los resultados que puede llegar.

      Ah, y para Lisandro: cuando leí "más óptima" te juro que tuve un rechazo de córnea. Puedo tener algo oxidadas las reglas gramaticales pero sé que a un superlativo no le puedes dar ese uso. SALUDOS.

  2. "Al hablar de "heurística" estamos claramente tratando con la solución o la respuesta MÁS ÓPTIMA".

    Una aclaración: algo no puede ser MÁS óptimo. Algúna cosa es óptima o no lo es, puesto que óptimo significa: "que no puede ser mejor"

    Solo eso, en buena onda

Responder a cepia Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

WikiLeaks: Ataque a Google fue hecho por China

OpenKinect ya reconoce objetos (y otros hacks)