Algoritmos Genéticos. Parte I

Cuando realizé mi Residencia Profesional trabajé con Algoritmos Genéticos, el cual desarrollé un algoritmo que optimización para una funcion matemáticas, de esto ya les hablare en una segunda publicación, lo que veremos ahorita es un poco de historia y los conceptos que se manejan o utilizan en los Algoritmos Genéticos (AG).
Para muchos tal  vez ya expertos sabemos que significa la palabra «Algoritmo» y para los que no, pues aquí  les dejo una pequeña definición:
De manera amplia, los algoritmos son procedimientos para solucionar problemas, es decir, no son simples respuestas, sino que son procedimientos definidos para obtener respuestas y, básicamente, son la piedra angular de la Ciencia de la Computación. Si alguien estudia Computación o algo relacionado a ella, de seguro que en su vida verá más de un algoritmo, y más aún, tendrá que analizarlo, programarlo y si no existe, crearlo.

El término Algoritmo es la variación del nombre Al Khawarizmi, un gran matemático, geógrafo y astrónomo Iraní, famoso por introducir el uso del cero, los números negativos, el álgebra y el sistema decimal en occidente. El también invento la programación matemática usando un conjunto de instrucciones para mejorar la complejidad de los cálculos.

En términos formales:

Un algoritmo es una secuencia de instrucciones no ambiguas para resolver un problema computacional, por ejemplo, para obtener una determinada salida dada una entrada válida en una cantidad finita de tiempo.

Ahora que ya sabemos que es un Algoritmo, hablaramos de:

Algoritmos genéticos.
Los Algoritmos genéticos (Ags) son métodos adaptativos que pueden usarse para problemas de búsqueda y optimización. Están basada en el proceso genético de los organismos vivos. A lo largo de la generaciones, las poblaciones evolucionan en la naturaleza de acorde con los principios de la selección natural y la supervivencia de los más fuertes, postulado por Darwin (1859). por imitación de este proceso, los Algoritmos Genéticos son capaces de ir creando soluciones para problemas del mundo real. La evolución de dichas soluciones hacia valores óptimos del problema depende en buen medida de una adecuada codificación de las mismas.
Los principios básicos de los AG fueron establecidos por Holland (1975, primero persona en recibir un doctorado en Ciencias de la Computación, conocido como ese entonces ciencias de la comunicación, reconocido mundial para el desarrollo de la computación evolutiva), y se encuentra bien descrito en varios textos – Goldberg (1989), Davis (1991), Michalewcz (1992), Reeves (1993).

Los AG usan una analogía directa con el comportamiento natural. Trabajando con una población de individuos, cada uno de los cuales representa una solución factible a un problema dado. A cada individuo se le asigna un valor o puntuación, relacionado con la bondad de dicha solución.

En la naturaleza esto equivale al grado de efectividad de un organismo para competir por unos determinados recursos. Cuando mayor sea la adaptación de un individuo al problema, mayor será la probabilidad de que el mismo sea seleccionado para reproducirse, cruzando su material genético con otro individuo seleccionado de igual forma. Este cruce producirá nuevos individuos descendientes de los anteriores – los cuales comparten algunas de las características de sus padres. Cuando menor sea la adaptación de un individuo, menor será la probabilidad que el individuo sea seleccionado para la reproducción, y por tanto de que su material genético se propague en sucesivas generaciones.
De esta manera se produce una nueva población de posibles soluciones, que contiene una mayor proporción y buenas características en comparación con la población anterior.

El poder de los AG proviene del echo de que se trata de una técnica robusta, y puede tratar con éxito una gran variedad de problemas provenientes de diferentes áreas.

Se supone que los individuos (posibles soluciones del problema), pueden representase como un conjunto de parámetros (que denominamos genes), los cuales agrupados forman una ristra de valores (a menudo referida como cromosoma), es decir, en téminos de computación estos valores necesitan ser codificados:

Codificación.
En términos biológicos, el conjunto de parámetros representando un cromosoma particular se denomina fenotipo. El fenotipo contiene la información requerida para construir un organismos, el cual se refiere como genotipo. Los mismo términos se utilizan en el campo de los AG.
Si bien el alfabeto utilizado para representar los individuos no debe necesariamente estar constituidos por el {0,1}.

La función de adaptación.
La función de adaptación debe ser diseñada para cada problema de manera especifica. Dado un cromosoma particular, la función de adaptación le asigna un número real, que se supone refleja el nivel de adaptación del individuo o cromosma al problema representado.

Deja un comentario

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