XIII. Recomendaciones


Parametros del AG

Este capitulo deberia darle algunas recomendaciones basicas si ha decidido implementar su algoritmo genetico. Estas recomendaciones son muy generales. Probablemente querra experimentar con su propio AG para un problema especifico, porque aun no existe una teoria general que describa los parametros de un AG para cualquier problema.

Estas recomendaciones suelen basarse en estudios empiricos sobre AG, muchos de los cuales se realizaron solo con codificacion binaria.

  • Tasa de cruce
    En general, la tasa de cruce deberia ser alta, alrededor de 80%-95%. (Sin embargo, algunos resultados muestran que para ciertos problemas lo mejor es una tasa de cruce de alrededor del 60%.)
  • Tasa de mutacion
    Por otro lado, la tasa de mutacion deberia ser muy baja. Las mejores tasas reportadas son de aproximadamente 0.5%-1%.
  • Tamano de la poblacion
    Puede resultar sorprendente que una poblacion muy grande normalmente no mejore el rendimiento del AG en cuanto a la rapidez para encontrar una solucion. Un buen tamano de poblacion suele ser de alrededor de 20-30, aunque a veces se reportan tamanos de 50-100 como los mejores. Algunas investigaciones tambien muestran que el mejor tamano de poblacion depende de la codificacion y de la longitud de la cadena codificada. Esto significa que, si tiene un cromosoma con 32 bits, el tamano de la poblacion podria ser alrededor de 32 y, desde luego, mayor que el mejor tamano de poblacion para un cromosoma de 16 bits.
  • Seleccion
    Puede usarse la seleccion por ruleta basica, pero a veces la seleccion por rango puede ser mejor. Revise el capitulo sobre seleccion para ver ventajas y desventajas. Tambien existen metodos mas sofisticados que cambian los parametros de seleccion durante la ejecucion del AG. En principio, se comportan de manera algo parecida al recocido simulado. Sin embargo, casi siempre deberia usarse elitismo (si no utiliza otro metodo para conservar la mejor solucion encontrada). Tambien puede probar la seleccion de estado estacionario.
  • Codificacion
    La codificacion depende del problema y tambien del tamano de la instancia del problema. Revise el capitulo sobre codificacion para ver algunas sugerencias, o consulte otras fuentes.
  • Tipo de cruce y mutacion
    Los operadores dependen de la codificacion y del problema. Revise el capitulo sobre operadores para ver algunas sugerencias. Tambien puede consultar otras fuentes.

Aplicaciones del AG

Los algoritmos geneticos se han utilizado para problemas dificiles (como problemas NP-hard), para aprendizaje automatico y tambien para hacer evolucionar programas simples. Tambien se han utilizado en el arte, por ejemplo para hacer evolucionar imagenes y musica.

Una ventaja de los AG es su paralelismo. Un AG explora el espacio de busqueda con multiples individuos (y con genotipo en lugar de fenotipo), por lo que es menos probable que quede atrapado en un optimo local que algunos otros metodos.

Tambien son relativamente faciles de implementar. Una vez que se tiene un marco de AG, a menudo solo hace falta definir una nueva representacion del cromosoma para resolver otro problema. Con la misma codificacion, puede que solo necesite cambiar la funcion de aptitud. Por otro lado, elegir una buena codificacion y una buena funcion de aptitud puede ser dificil.

Una desventaja de los AG es su costo computacional. Pueden ser mas lentos que otros metodos. Pero con las computadoras actuales, esto suele ser un problema menor.

Para darle una idea del tipo de problemas resueltos con AG, aqui hay una breve lista de aplicaciones:

  • Sistemas dinamicos no lineales - prediccion, analisis de datos
  • Disenio de redes neuronales, tanto la arquitectura como los pesos
  • Trayectoria de robot
  • Evolucion de programas LISP (programacion genetica)
  • Planificacion de estrategias
  • Encontrar la forma de las moleculas de proteina
  • TSP y programacion de secuencias
  • Funciones para crear imagenes

Acerca de

La primera version de la demostracion, originalmente como una demostracion interactiva, fue desarrollada durante el semestre de verano de 1998 en la Czech Technical University (bajo la supervision del prof. Pavel Slavík). El proyecto continuo despues durante el verano de 1998 en Hochschule für Technik und Wirtschaft Dresden (FH) (bajo la supervision del prof. Walter Pätzold). Comenzo como un pequeno proyecto de verano mientras yo aprendia programacion y algoritmos geneticos, pero poco a poco se convirtio en un tutorial muy utilizado y recibio una gran cantidad de comentarios positivos (gracias). Cuando las demostraciones interactivas dejaron de funcionar en los navegadores, las paginas se volvieron menos populares. En 2026, las demostraciones fueron adaptadas para la web con ayuda de un LLM, por lo que las demostraciones volvieron a estar disponibles.

·