2. Algoritmos Genéticos
Los Algoritmos Genéticos (AG) son métodos adaptativos que pueden
usarse para resolver problemas de búsqueda y optimización. Están
basados en el proceso genético de los organismos vivos.
Un algoritmo genético consiste en una función matemática o
una rutina de software que toma como entradas a los ejemplares y
retorna como salidas cuáles de ellos deben generar descendencia
para la nueva generación.
3. Características de los
Algoritmos genéticos
•Son algoritmos estocásticos.
•Son algoritmos de búsqueda múltiple.
•Son algoritmos que hacen una barrida mayor al subespacio de posibles
soluciones válidas, y con diferencia.
•Tienen algún elemento aleatorio, por lo que dan soluciones
aproximadas, no exactas.
•La optimización es función de la representación de los datos.
•Es una búsqueda paramétricamente robusta.
•Por último, los algoritmos genéticos son intrínsecamente paralelos.
4. Ventajas y Desventajas
•Operan de forma simultánea con varias soluciones, en vez de trabajar de
forma secuencial como las técnicas tradicionales.
•Cuando se usan para problemas de optimización maximizar una función
objetivo- resultan menos afectados por los máximos locales.
•Resulta sumamente fácil ejecutarlos en las modernas arquitecturas
masivamente paralelas.
•Usan operadores probabilísticos, en vez de los típicos operadores
determininsticos de las otras técnicas.
•Pueden tardar mucho en converger, o no converger en absoluto.
•Pueden converger prematuramente debido a una serie de problemas de
diversa índole.
5. Esquema Basico:
Los pasos básicos de un algoritmo genético son:
• Evaluar la puntuación de cada uno de los cromosomas
generados.
• Permitir la reproducción de los cromosomas siendo los
más aptos los que tengan más probabilidad de
reproducirse.
• Con cierta probabilidad de mutación, mutar un gen del
nuevo individuo generado.
• Organizar la nueva población.
6. ALGORITMOS GENÉTICOS
SIMPLES
• Tipos de Representación:
Representación binaria: Cada gen es un valor 1 ó 0.
1 0 1 1 0 1
Representación entera: Cada gen es un valor entero.
1 0 3 -1 0 4
Representación real: Cada gen es un valor real.
1,78 2,6 7 0 -1,2 6,5
8. ALGORITMOS GENÉTICOS
PARALELOS
Un programa es paralelo si en cualquier momento de su ejecución
puede ejecutar más de un proceso.
Paralelización de grano fino: la paralelizacion del programa se
realiza a nivel de instrucción. Cada procesador hace una parte de cada
paso del algoritmo (selección, cruce y mutación) sobre la población
común.
Paralelización de grano medio: los programas se paralelizan a nivel
de bucle. Esta paralelizacion se realiza habitualmente de una forma
automática en los compiladores.
Paralelización de grano grueso: se basan en la descomposición del
dominio de datos entre los procesadores, siendo cada uno de ellos el
responsable de realizar los cálculos sobre sus datos locales.
9. Este tipo de paralelización se puede a su
vez realizar siguiendo tres estilos distintos
de programación:
Paralelismo en datos: El compilador se encarga de la distribución
de los datos guiado por un conjunto de directivas que introduce el
programador.
Programación por paso de mensajes: El método mas utilizado
para programar sistemas de memoria distribuida es el paso de
mensajes o alguna variante del mismo
Programación por paso de datos: A diferencia del modelo de paso
de mensajes, la transferencia de datos entre los procesadores se
realiza con primitivas unilaterales tipo put-get, lo que evita la
necesidad de sincronización entre los procesadores emisor y receptor.
10. Reproducción o Crossover
Consiste en el intercambio de material genético entre dos
cromosomas. El objetivo del cruce es conseguir que el
descendiente mejore la aptitud de sus padres.
11. Crossover 1 Punto:
Los dos cromosomas padres se cortan por un punto. Se copia la
información genética de uno de los padres desde el inicio hasta el
punto de cruce y el resto se copia del otro progenitor. Es una de
las formas clásicas de crossover.
12. Crossover 2 Puntos:
Se trata de la misma filosofía que en el caso anterior peo en este caso los
padres se cortan por dos puntos. Se copiará al descendiente los genes de
un cromosoma progenitor desde el principio hasta el primer punto de cruce,
los genes del otro progenitor desde el primer punto de cruce hasta el
segundo y del segundo punto de cruce hasta el final se copiará del otro
progenitor.
13. Crossover Uniforme:
Cada gen del descendiente se obtiene de cualquiera de los padres de
forma aleatoria. Una opción es generar un número aleatorio. Si este
número supera un cierto umbral se elegirá un padre determinado y si
no lo supera se elige al otro.
14. Otra opción es seleccionar una máscara. En caso de que el
bit correspondiente a la máscara esté a 1, se copia el gen de
un progenitor y en caso de que esté a 0 se copia el gen del
otro progenitor.
16. APLICACIONES DE LOS
ALGORITMOS GENÉTICOS.
• Su espacio de búsqueda debe estar delimitado dentro de
un cierto rango.
• Debe poderse definir una función de aptitud que nos
indique qué tan buena o mala es una cierta respuesta.
• Las soluciones deben codificarse de una forma que
resulte relativamente fácil de implementar en la
computadora.
Dentro de los distintos problemas de optimización podemos
encontrar unas áreas de aplicación:
• Diseño por computadora de nuevos materiales que
cumplan múltiples objetivos.
• Optimización del la carga de containers.
• Asignación de procesos en topologías de redes con
procesamiento distribuido.
• Ubicación de archivos en sistemas de almacenamiento
distribuido.
• Diseño de circuitos integrados.
• Optimización de la infraestructura de telefonía celular.
• Ingeniería Aeroespacial.
• Juegos.
• Robótica