Site hosted by Angelfire.com: Build your free website today!

Atrás Principal Arriba Siguiente

Parte II

Algoritmos genéticos

Los Algoritmos Genéticos fueron introducidos por John H. Holland en 1975 inspirándose en el proceso observado en la evolución natural de los seres vivos.
Los Algoritmos Genéticos son métodos estocásticos de búsqueda ciega. En estos, se mantiene a una población que representa a un conjunto de posibles soluciones, la cual es sometida a ciertas transformaciones y a un proceso de selección a favor de los mejores candidatos.
El objetivo principal de un Algoritmo Genético, es evolucionar a partir de una población de soluciones para un determinado problema, intentando producir nuevas generaciones de soluciones que sean mejores que la anterior.
Los algoritmos desarrollados por Holland inicialmente eran sencillos pero dieron buenos resultados en problemas considerados difíciles.


Para llevar a la práctica estos algoritmos hay que especificar los siguientes elementos: 

Cruzamiento

1 #  # 0   |  1 0 1 #                        = #0#1  | # 0 1 1 1

  

# 0 1 1 1 | #  0 # 1                          = 1 0 1 # |  1 # # 0

Cruzamiento simple: un punto de cruce es seleccionado, desde el principio hasta el punto de cruce es copiado del primer padre, y el resto es copiado del otro padre.

11001011+11011111 = 11001111


Dos puntos de cruzamiento: dos puntos son seleccionados, desde el principio del cromosoma hasta el primer punto de cruce es copiado del primer padre, de ahí hasta el segundo punto de cruce es copiado del segundo padre, y copia lo que le queda (desde el segundo punto de cruce hasta el final) de primer cromosoma.

11001011 + 11011111 = 11011111


Cruzamiento Uniforme: copia bits al azar del primer padre y del segundo.

11001011 + 11011101 = 11011111 


Cruzamiento Aritmético: alguna operación aritmética es empleada para obtener al nuevo descendiente.

11001011 + 11011111 = 11001001 (AND)

Mutación
Inversión de bits: selecciona bits y estos son invertidos (si era un 0 se transforman en 1)

11001001 =>  10001001

Etilismo: consiste en mantener intacto a través de las generaciones al individuo más apto, por lo que no se cruza sino hasta que surge otro individuo mejor que él.

 

Algoritmos genéticos paralelos

La función de evaluación debe ser relativamente rápida, pero en mucho casos, requiere un tiempo considerable. Se debe evaluar cada cromosoma. La evaluación se puede realizar de manera concurrente para varios cromosomas si se dispone de múltiples procesadores y un canal de comunicación.

 

Maestro/esclavo

Los cromosomas a evaluar se reparten entre el número de procesadores disponibles. 
Los resultados se reportan al procesador maestro que realiza todas las otras operaciones del algoritmo genético. 
Sólo la evaluación se distribuye entre los diferentes procesadores, las operaciones restantes se efectúan de manera centralizada. 
Esta implementación de algoritmos genéticos paralelos tiene la desventaja de hacer uso intensivo del canal de comunicación.

 

Algoritmos genéticos paralelos de grano fino/grueso

En este tipo de algoritmos genéticos existen múltiples poblaciones, tantas como procesadores se emplean, donde cada procesador implementa el algoritmo completo sobre una población ubicada en su espacio de memoria.
Las poblaciones evolucionan de manera independiente, hasta que un evento preestablecido acontece, y los mejores cromosomas de cada población emigran hacia las poblaciones
vecinas y substituyen algunos de sus cromosomas.

Grano grueso Grano fino

Ventajas

Desventajas

Usos