Breve Descripción de los Algoritmos Genéticos

Los algoritmos genéticos son unas técnicas de programación que, simulando el mecanismo de evolución de las especies enunciado por Darwin, realizan la búsqueda de una solución óptima a un problema mediante:

- La generación de un conjunto inicial aleatorio de soluciones (población). Cada posible solución en nuestro caso se representa como una secuencia de números enteros.

- Obtención de las siguientes generaciones, o "evolución". Para ello se repite N veces el siguiente proceso:

1. Evaluación de cada solución, y asignación de un valor (fitness) que indique el mayor o menor grado de cumplimiento de los objetivos perseguidos (el grado de bondad de la solución).

2. Selección de parejas de soluciones. Cada solución cuenta con una probabilidad Ps de ser seleccionada, que es mayor cuanto mayor sea su fitness.

3. Cruce de las soluciones elegidas para obtener nuevas soluciones, según una probabilidad Pc de cruce. Esto se lleva a cabo básicamente descomponiendo en dos segmentos cadenas solución "padres", y recombinándolos para obtener dos nuevas cadenas "hijo".

4. Mutación de las nuevas cadenas solución obtenidas, según una probabilidad de mutación Pm, normalmente muy pequeña. Se muta una solución cambiando aleatoriamente el valor de uno de los enteros que forman la secuencia.

La base del funcionamiento de los algoritmos genéticos es que las nuevas generaciones de soluciones encontradas tienen una elevada probabilidad de ser mejores que sus predecesoras. De esta manera, conforme se va repitiendo el ciclo de búsqueda, las cadenas encontradas tienen cada vez un valor fitness superior. Con la selección y el cruce de soluciones se consigue que las características de las secuencias iniciales, principalmente las de aquellas que han resultado ser mejores, se transmitan a las siguientes generaciones. Y la probabilidad de mutación permite explorar nuevas soluciones que nunca se habrían obtenido con tan solo cruzar las secuencias iniciales.

Es evidente que la primera generación, obtenida aleatoriamente, estará siempre compuesta por soluciones no óptimas. Es necesaria la repetición del ciclo de búsqueda un número muy elevado de veces para que las soluciones encontradas sean realmente aceptables. Por eso estos algoritmos requieren un gran tiempo de computación.


Artículos Relacionados


Redes Neuronales en Metatrader II

Redes Neuronales en Metatrader II

Seguramente recuerden un artículo que publiqué hace unos años sobre la librería FANN para Metatrader que permitía entrenar redes neuronales para filtrar señales de Expert Advisors y para reconocer...

¿Son Eficientes los Mercados Financieros?

¿Son Eficientes los Mercados Financieros?

El trading cuantitativo y el desarrollo de sistemas de trading es una campo que exige un gran sacrificio de estudio e investigación, en el que constantemente se están creando nuevas ideas y...

Lógica Difusa Aplicada al Trading II

Lógica Difusa Aplicada al Trading II

Retomamos nuestra serie sobre la Lógica Difusa. En esta ocasión, utilizando la librería FuzzyNet que han publicado recientemente en MQL5.com vamos a ver una aplicación práctica clasificando el...

A la Caza del Patrón I

A la Caza del Patrón I

Los datos del mercado contienen abundante información estadística que podemos desentrañar utilizando una simple hoja de cálculo y algo de ingenio estadístico.

Multicolinealidad

Multicolinealidad

En este artículo os explicamos qué es la multicolinealidad y cómo podemos mitigar sus efectos.

Gramáticas Evolutivas y Enjambres Gramaticales

Gramáticas Evolutivas y Enjambres Gramaticales

Por desgracia el pasado jueves no puede asistir a la conferencia de Rafa Leiva sobre Gramáticas Evolutivas aunque afortunadamente unas semanas antes había podido hablar con Rafa sobre el tema y me...