La evolución de la computación: Algoritmos Genéticos

  • Actualmente tanto la ciencia como la ingeniería se han beneficiado de gran manera gracias a los métodos computacionales. Hoy en día se habla de la computación evolutiva, una familia de métodos computaciones con el objetivo de imitar los principios de la naturaleza, en busca principalmente de la optimización y el auto aprendizaje o aprendizaje automático. Específicamente hablando, resulta interesante ver como se acuña el termino de Algoritmos Genéticos o por sus siglas en ingles GA (Genetic Algorithms) asociándolo a una teoría tan conocida como la de la evolución. 

Entonces, la gran pregunta es

¿Que son los algoritmos genéticos? 
Son un método de busqueda, que suele ser aplicado para optimizar o aprender y cuenta con las siguientes características: 
  • Son estocasticos, pero no son de busqueda aleatoria
  • Utilizan la analogia evolutiva: "Supervivencia del mas apto"
  • Resuleven problemas duros de forma rápida y confiable
  • Tienen extensiones que incluyen Programación Genética (GL)  
  • Son extensibles
  • Son fáciles de hibridizar
En cuanto al criterio de busqueda se enfocan en:

  • Bondad ("fitness") o Optimización de una solución de cadenas determinando su influencia en el futuro en el proceso de busqueda. 
  • Las soluciones que son buenas son utilizadas para generar otras soluciones similares que también puedan ser buenas o aun mejores. 
  • La población almacena en cualquier momento lo aprendido sobre la solución. 
Pero entonces, 
¿Como funcionan los algoritmos genéticos? 
  • Cualquier cromosoma debe ser capaz de determinar un Fitness (Medida del rendimiento hacia un objetivo) mediante un simulador o herramienta de análisis.
  • El objetivo puede minimizarse o maximizarse, por lo general se dice que la aptitud debe ser maximizada.
Los pasos clave involucrados en un Algoritmo Genético simple comienzan con la Inicialización de la población, la repeticion de la selección, el cruce, la mutación y el reemplazo esto se itera hasta que se cumpla con un criterio de terminación. 
En otras palabras, el esquema básicamente se traduce a que para producir la siguiente población se deben seguir los siguientes pasos N veces: 
  1. Seleccionar dos elementos de la población.
  2. Cruzarlos para formar una descendencia.
  3. Mutar a la descendencia.
  4. Insertar el resultado en la nueva población. 
Para llegar a una solución óptima se necesita una arquitectura eficaz: Algunas representaciones de los espacios de búsqueda pueden resultar más convenientes y eficaces que los otras. Los pasos iterativos anteriormente mencionados son extremadamente criticados de la siguiente manera : 
¿Qué es un buen esquema de selección para preferir a los mejores individuos sobre los peores?
¿Qué es un mecanismo efectivo para crear nuevas soluciones para una representación de un problema elegido a través del cruce y las operaciones de mutación? 
¿Qué es un buen plan de reemplazo?

Además de la descripción algorítmica de estos pasos, se debe hacer una selección apropiada de parámetros del algoritmo genético para una búsqueda rápida y precisa. Todo estos cuestionamientos se deben realizar pensando siempre en cual es la finalidad del algoritmo genético, hacia que esta enfocado y determinando criterios que sirvan de soporte para las decisiones del mismo. 

Finalmente algunas áreas de aplicación donde los Algoritmos geneticos han encontrado utilidad son las siguientes:Procesamiento de imágenes
  • Tomografía
  • Robótica evolutiva
  • Sistemas de energía
  • Optimización estructural
  • Dinámica molecular
  • Mercados financieros
  • Diseño de ingenieria
  • Programación
En otras más, cable aclarar que varias de estas áreas son planteadas con tareas de diferentes tipos de optimización: Objetivas, multi-objetivas, multimodales, dinamicas, combinatorias, etc. Sin embargo, algunas conclusiones pueden ser:
  • Los algoritmos genéticos pueden ser fáciles de usar, pero no necesariamente fáciles de usar bien
  • Son solo una rama de la computación evolutiva, por ende si ya existe otro algoritmo especifico para la solución de un problema probablemente sea mas rápido que los GA debido a la robustez que este tiene. 




Comentarios

Entradas populares