Title: Aplicaciones de Algoritmos Gen
1- Aplicaciones de Algoritmos Genéticos
- Angel Kuri
- Instituto Tecnológico Autónomo de México
- Mayo, 2003
2Optimización
Los Algoritmos Genéticos son meta-heurísticos
basados en una analogía con los procesos
evolutivos, en donde tres ideas sobresalen a)
Cualquier problema optimizable puede someterse a
un proceso de codificación. b) Un problema así
codificado es más fácilmente atacable que su
contraparte no codificada. c) Los operadores
genéticos, llamados selección, cruzamiento y
mutación son suficientes para explorar completa y
eficientemente el espacio de soluciones.
3Optimización(Todo problema es codificable)
- Para que esto se cumpla debemos restringir los
espacios de solución a un subconjunto finito del
original. - Esta no es una fuente de problemas ni
conceptuales ni prácticos ya que, en todos los
casos, la solución compu-tacional de cualquier
problema está codificada digitalmente.
4Optimización (Un problema codificado es más
fácil de atacar)
- Esto no es obvio. Pero la amplia evidencia al
respecto deja poca posibilidad de duda. - Más importantemente, argumentos teóricos no dejan
duda - a) Los AGs siempre convergen a la mejor solución.
- b) La convergenia es,usualmente, muy eficiente.
5Optimización(La aplicación de los operadores
genéticos arroja un desempeño eficiente)
- Nuestra meta al diseñar AGs es hacer que la
convergencia mencionada sea tan eficiente como se
pueda. - Dos fuentes de ineficiencia han sido claramente
determinadas - a) Funciones Deceptivas
- b) Correlación Espuria
6Algoritmo de Vasconcelos
- Para evitar las limitaciones del AGS hemos
introducido el llamado AG de Vasconcelos. - Posee
- a) Acoplamiento determinístico (i -gt n-i1)
- b) Cruzamiento anular
- c) Mutación uniforme
- d) Elitismo completo
7Acoplamiento Determinístico
8Cruzamiento Anular
9Elitismo Completo
10Ejemplo de Aplicación
- Optimización de una función sujeta a
restricciones - Funciones Lineales
- Restricciones Lineales
- Funciones no-lineales
- Restricciones No-lineales
11Función de Adaptación
- donde s es el número de restricciones satisfechas
y
12Representación Numérica
13Ejemplo Numérico
14Corrida de Muestra
15Corrida de Muestra
16Sample Run
17Corrida de Muestra
18Corrida de Muestra
19Corrida de Muestra
20Asignación de Tareas en una Línea de Producción
(Job scheduling)
- Este problema consiste en encontrar el orden
óptimo de ejecución de tareas en máquinas de un
proceso industrial. - Cada una de las tareas tarda un cierto tiempo en
ser ejecutada. Estos tiempos son diferentes para
cada tarea (job) en cada máquina.
21Job Scheduling
- En la figura se ilustra una matriz de costos para
9 jobs y 6 máquinas
22Job Scheduling
- La solución, entonces, consistirá de 9 números.
Por ejemplo, una posible solución sería la
secuencia - 2,3,4,6,1,5,9,8,7
- que indica que los jobs se alimentan a las 6
máquinas en el orden indicado. - Es fácil ver, de la matriz de costos, que
- esta secuencia toma 119 unidades de tiempo en ser
procesada.
23Job Scheduling
- Para representar esta secuencia en binario,
necesitamos 4 bits por cada job y, por tanto, 36
bits en total - 0010, 0011, 0100, 0110, 0001, 0101,
- 2 3 4 6 1 5
1001, 1100, 0111 - 9 8 7
24Job Scheduling
- Un individuo, para el algoritmo genético,
consiste, entonces, de 36 bits. - Nótese, sin embargo, que las combinaciones
binarias 1010, 1011, 1100, 1101, 1110 y 1111
están prohibidas ya que los jobs 10, 11, 12,
13, 14 y 15 no existen.
25Job Scheduling
- Tampoco es válido que alguno de los jobs se
repita en el genoma. - Por ejemplo, la combinación
- 1,3,5,7,9,2,4,3,8
- aunque contiene solamente jobs entre 1 y 9, es
inválida porque el job 3 aparece dos veces.
26Reparación
- Estos individuos inválidos pueden aparecer como
resultado de la aplicación de los operadores
genéticos de cruzamiento y/o mutación. - Considérense los genomas válidos
- 000100100011010001010110011110001001
- y
- 100110000111011001010100001100100001
27Reparación
- Si el cruzamiento ocurre en el punto que se
ilustra - 00010010001101000101 0110011110001001
- 1 2 3 4 5 6 7
8 9 - 10011000011101100101 0100001100100001
- 9 8 7 6 5 4 3
2 1 - nacen los individuos
- 00010010001101000101 0100001100100001
- 1 2 3 4 5 4 3
2 1 - 10011000011101100101 0110011110001001
- 9 8 7 6 5 6 7
8 9
28Reparación
- Por lo tanto, se debe incluir un operador de
reparación, que convierta individuos inválidos en
otros que no lo sean.
29Ejemplo No-NuméricoJob Scheduling
30Ejemplo No-Numérico
31Ejemplo No-NuméricoResultados en la Generación 18
32Ejemplo No-Numérico Resultados en la Generación 50
- Como se puede ver, el algoritmo encontró la
solución en la generación 18
33Ejemplo No-NuméricoResultados
34Problema de SchedulingSimulación
35Problema de SchedulingSimulación
36Conclusiones
- En los problemas que ilustramos no hay,
esencialmente, ningún cambio en el AG mismo. Es
decir, el mismo algoritmos trabaja en problemas
diferentes. - La metodología, por ello, es aplicable a un
amplio rango de problemas.
37Ahora veamos el programa!