Algoritmos GENÉTICOS


INTRODUCCIÓN

Un algoritmo genético (AG) es una clase de algoritmos de búsqueda estocástica, basados en los mecanismos de selección natural. Combinan la supervivencia de los mejores individuos dentro de un conjunto, con un intercambio de información estructurado y aleatorio, que imita los procesos de evolución biológica. 

  • Algoritmos evolutivo.
  • Operan con cadenas de caracteres de longitud fija.
  • El cruce o recombinación sexual, principal operador genético.

INTRODUCCIÓN


La programación genética se ha aplicado exitosamente a una gran cantidad de problemas complejos tales como diseño automático, reconocimiento de modelos, minería de datos, control robótico, síntesis de arquitecturas en redes neuronales artificiales, bioinformática, música y arte. 




PROGRAMACIÓN GENÉTICA



CARACTERÍSTICAS pg

·      Material genético no lineal y generalmente estructurado en árbol.


Aunque algunos Algoritmos Genéticos tienen material genético que no es lineal, el material genético lineal sigue siendo la regla en los Algoritmos Genéticos. Sin embargo, la PG casi siempre opera sobre material genético no lineal, y generalmente explícitamente en estructura de árbol.

CARACTERÍSTICAS pg

·      Material genético de longitud variable.


La PG casi siempre opera sobre material genético que puede variar de tamaño. Por razones prácticas, generalmente se implementan limitaciones en el crecimiento, pero normalmente permite crecimientos considerables a partir de la generación original que se produce aleatoriamente.

CARACTERÍSTICAS pg

·      Material genético ejecutable.


Aunque se han reportado muchos operadores de cruce para PG, en la mayoría de los  casos están definidos de manera que preserven la corrección sintáctica del programa que es el material genético, definida por cualquier lenguaje que se  haya escogido para su representación.

conceptos BÁSICOS de la pg

La PG es un intento de tratar con uno de los aspectos centrales en ciencias de la computación:


¿Cómo pueden aprender los computadores a solucionar problemas sin que se les programe explícitamente? En otras palabras, ¿cómo podemos hacer para que los computadores hagan lo que tienen que hacer, sin necesidad de decirles exactamente como lo deben hacer?

conceptos BÁSICOS de la pg


En la aplicación de la PG a un problema, hay cinco pasos preparatorios importantes, definir [7]:

 

1.    El conjunto de terminales.

2.    El conjunto de funciones primitivas,

3.    La medida de la aptitud,

4.    Los parámetros para controlar la corrida, y

5.    El método para designar un resultado y el criterio para terminar la ejecución del    programa

Pasos para la solución de problemas por PG

1.    Generar una población inicial de composiciones aleatorias de funciones y terminales del problema (es decir, programas).


1.    Ejecutar iterativamente los siguientes pasos hasta que se satisfaga el criterio de terminación:

a. Ejecutar cada programa de la población y asignarle un valor de aptitud, de acuerdo a su comportamiento frente al problema.


PASOS PARA LA SOLUCIÓN DE PROBLEMAS POR PG

b. Crear una nueva población de programas  aplicando las siguientes dos operaciones primarias, a los programas escogidos, con una probabilidad basada en la aptitud.


i.                    Reproducir un programa existente copiándolo en la nueva población.

ii.                  Crear dos programas  a partir de dos programas existentes, recombinando genéticamente partes escogidas de los dos programas en forma aleatoria,  usando la operación cruce aplicada a un punto de cruce, escogido aleatoriamente dentro de cada programa.

PASOS PARA LA SOLUCIÓN DE PROBLEMAS POR PG

i.              Crear un programa a partir de otro seleccionado aleatoriamente, cambiando aleatoriamente un gen  (función o terminal). Es posible que se requiera un procedimiento de reparación para que se satisfaga la condición de clausura.


3.    El programa identificado con la mayor aptitud (el mejor hasta la última generación), se designa como el resultado de la corrida de PG. Este resultado puede representar una solución (o una solución aproximada) al problema.

PASOS PARA LA SOLUCIÓN DE PROBLEMAS POR PG


Ejemplo del operador cruce

El cruce genético (recombinación sexual) opera sobre dos programas padres y produce dos nuevos programas hijos consistentes de partes de cada padre.


Consideremos los siguientes programas:

(+  (  *  0.234  Z) (-  X  0.789)), equivalente a  0.234 Z + X - 0.789;

(*  (  *  Z  Y) (+  Y  (*  0.314   Z) ) ), equivalente a Z Y (Y + 0.314 Z))

EJEMPLO DEL OPERADOR CRUCE


Made with Slides.com