Ante proyecto

Los algoritmos genéticos, en particular, y el software evolutivo, en general, han sido un enfoque utilizado en las últimas décadas para muchos fines [1], entre los cuales se cuenta la optimización [2].
En el área de la optimización, la potencia de los mismos (basada en la exploración por pasos aleatorios) no puede discutirse, aunque, en comparación con otros paradigmas, como la programación lineal, se pueden considerar sub-óptimos respecto de los tiempos de procesamiento para llegar a explorar soluciones factibles al problema a tratar.
El procesamiento paralelo ha sido utilizado para mejorar el rendimiento de los algoritmos genéticos, dado que el mecanismo principal de los mismos es altamente paralelizable, no así los mecanismos utilizados por el software (“solvers”) de programación lineal.
Cada equipo de desarrollo o investigación que ha tratado el tema lo ha resuelto de distinta
manera, con mayor o menor éxito, o enfocándose en determinado nicho de problemática.
Con la aparición de las bases de datos NoSQL y la necesidad de manejar datos más
complejos (con un orden mucho mayor de relaciones que las bases de datos más tradicionales), se han desarrollado mecanismos de procesamiento en paralelo. Uno de ellos es el denominado MapReduce. Este mecanismo de naturaleza funcional permite paralelizar problemas sobre distintos tipos de clusters (dentro de las implementaciones libres, Map-Reduce puede ser utilizado en conjunto con Hadoop o con Cassandra) y establece un marco de trabajo estándar para desarrollar trabajos altamente paralelizables.
Si a esto le sumamos la naturaleza de clusters como Hadoop, que basan su estabilidad en un esquema de alta tolerancia a fallos (porque básicamente proponen utilizar hardware de cualquier calidad para integrar un cluster), podemos concluir que una vez implementado nuestro trabajo (job) en un framework como MapReduce, es mucho más fácil montarlo en un cluster (y mantenerlo) que si se desarrolla un esquema especial de paralelismo.
Actualmente las redes sociales como Twitter cuentan con clusters de este estilo integrando miles de nodos.
Por tanto, se puede considerar de sumo interés construir una estructura de procesamiento de algoritmos genéticos dentro de un marco de trabajo funcional altamente paralelizable como es MapReduce.
Las áreas de aplicación pensada para esta implementación son los modelos de despacho eléctrico utilizados en la República Argentina optimizados bajo un paradigma de costos sociales y económicos.
Conviene hacer hincapié en los problemas más cercanos al área científica que van a ser explorados:

  • El estudio de la complejidad computacional en el ámbito de un alto nivel de paralelismo será investigado, pudiendo hallar problemas de interés en dicho camino.
  • La exploración de formas de algoritmos genéticos hasta ahora descartados o utilizados parcialmente (por su complejidad) pueden ser investigados. Ejemplo de esto pueden ser las alternativas diploide o multiploide al enfoque haploide tradicional, otros tipos de mutaciones no explorados, aplicaciones de genética de poblaciones, etc.

La gama de posibilidades que pueden explorarse en el ámbito de los algoritmos genéticos en entornos altamente paralelizables escapa a la visión de un pre-proyecto y seguramente durante el desarrollo del mismo, aportará riqueza al trabajo final.
Los antecedentes en el ámbito del paralelismo en algoritmos genéticos son amplios. Se los ha estudiado desde la década del ochenta. En particular, con la utilización de esquemas como MapReduce, puede citarse una publicación [3] en donde se propone la utilización de MapReduce para un problema básico con algoritmos genéticos, destacando que el campo es promisorio.
En particular, la utilización de los mismos tal como se describe anteriormente en un ámbito de alto paralelismo sobre un marco de trabajo estándar orientado a la optimización de modelos de demanda y generación eléctrica no se encuentra documentada.


Referencias
[1] Michalewicz, Z – “Genetic Algorithms + Data Structures = Evolution Programs”, Third, Revised and Extended Edition, Springer, 1999.
[2] Popov, A. – “Genetic Algorithms for Optimization”, TU-Sofia, 2003.
[3] Verma, A., Llor, X., Goldberg, D. , Campbell, R. – “Scaling Simple and Compact Genetic Algorithms using Map-Reduce”, Illinois Genetic Algorithms Laboratory Illinois, 2009.

Anuncios

2 pensamientos en “Ante proyecto

  1. ¡Bienvenido al mundo bloguero!
    Buenísimo que hayas elegido este método para poder pispear cómo va avanzando tu trabajo.
    Muchas precisones se me escapan por falta de conocimiento específico, pero aun así logra despertar mi interés. Justamente estoy leyendo sobre este tema (entre muchas otras cosas) para escribir en mi blog.
    Muchas gracias por agregarme a tus blogs amigos, eso será inmediatamente retribuido. Además… ¡Soy el primer comentarista del blog! 😀

    Abrazo y avanti.
    PD: Me encantó la imagen de portada. Y, por favor, mandame uno de los sandwichs de chirozo para degustar.

Deje un comentario

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s