300 likes | 442 Views
Algoritmos Genéticos con GeneXus. Pablo Musso ARTech pmusso@artech.com.uy. Agenda. IV) Implementando en Gx. III) Resolviendo un problema. II) Teoría. I) Aplicación. I) Aplicación. I) Aplicación. Posibles Problemas. Problemas de Optimización (NP-difíciles)
E N D
Algoritmos Genéticos con GeneXus Pablo Musso ARTech pmusso@artech.com.uy
Agenda IV) Implementando en Gx III) Resolviendo un problema II) Teoría I) Aplicación
I) Aplicación I) Aplicación
Posibles Problemas • Problemas de Optimización (NP-difíciles) • min/ max h(X1,X2….Xn) • Sa: gi(X1,X2….Xn) >=0 • Problemas de Asignación de Recursos • Asignación de alumnos a aulas • Asignación de charlas a horarios en el Evento • Problema de la “Mochila” • Carga de Camiones/Barcos • Problema del “Vendedor que debe Viajar” • Camino Optimo • Data Mining • Sitios Web Adaptativos • Clustering y Clasificación genética • Problema de Ruteo de Vehículos
Problema de Ruteo de Vehículos • En grandes empresas de fletes • Deposito central, n Clientes con demanda di, Costo i j :cij, m capacidad de cada vehículo
Problema de Ruteo de Vehículos (2) • Hallar k-camiones y cada una de las k rutas minimizando costos de transporte • Cuidado !!! Restricción de no superar capacidad de un camión Se deben utilizar 3 camiones cuyas rutas son: R1 = {0,1,2,3,4,5,0} R2 = {0,8,9,10,0} R3 = {0,6,7,0}
II) Teoría II) Teoría
Teoría • Basado en la Teoría de la Evolución • Capacidades adquiridas de generación en generación se acumulan • Grandes variaciones evolutivas mediante la descendencia de los más aptos • Mutación existe pero causa pequeños cambios evolutivos
Generar Población (Aleatoria) [Población P] Esquema General de un AG Not (Condición de Finalización) • Selección • Utilizan F.Fitness Cruzamiento (estocástico) Evolucionar Mutación (estocástico) [Población MP] Reemplazar [Población P]
Conceptos Intra-Individuo • Genotipo (Estructura interna manipulable por el AG ) Gen • Fenotipo (Depende del entorno) • Alfabeto {1,2,3,4,5,6,A} 3 1 6 A 2 5 A 4 A Se deben utilizar 3 camiones cuyas rutas son R1 = {0,3,1,6,0} R2 = {0,2,5,0} R3 = {0,4,0}
Resumiendo • Mantienen una población de soluciones potenciales • Utilizan función de Fitness • Utiliza fenotipo de cada individuo • Operadores Genéticos • Selección • Utiliza F. Fitness • Cruzamiento • Utiliza Genotipo • Mutación • Utiliza Genotipo
Resumiendo(2) Biológico Matemático Matemático Prob. Rutas Entorno Problema {Individuos} {I1, I2, I3, ...Im} {Soluciones} {S1,S2, S3, ...Sm} {Soluciones} {s1,s2,s3,...sm} Codifi- cación 3 Camiones: 03160 0250 040 Genotipo Fenotipo Decodi- ficación 316A25A4A 6 Parte Codificación Gen
III) Resolviendo un Problema III) Resolviendo un problema
III) Resolviendo un Problema • A) Determinar Genotipo de la representación • B) Determinar el Fenotipo de la representación • Se expresa a partir del genotipo, decodificación • C) Determinar Factibilidad de las soluciones • D) Determinar Operadores Genéticos y Políticas de reemplazo • Selección, Cruzamiento y Mutación; y probabilidades • E) Determinar Función de Fitness
A) Determinar Genotipo de la Representación • Factores a determinar • Largo genotípico (variable, constante) • Alfabeto • Nodo 0 Depósito Central • Alfabeto = {1,….n,A} • Genotipo largo constante • Largo = n + #Caracter espaciadores • #Caracter espaciadores = n/2 , como mucho quiero utilizar (n/2) + 1 camiones • Ejemplo de genotipo (n = 6 #A = 3) • 1 5 4 A 2 A A 6 3
B) Determinar el Fenotipo de la representación • Decodifica el genotipo • Dado el genotipo anterior • 1 5 4 A 2 A A 6 3 • El fenotipo que se expresa es: • Se deben utilizar 3 camiones cuyas rutas son: • R1 = { 0, 1, 5, 4, 0 } • R2 = { 0, 2, 0 } • R3 = { 0, 6, 3, 0 }
C) Determinar Factibilidad de las soluciones • Factores a determianar • Penalizar, eliminar, etc • Se buscara corregir soluciones no factibles • Cuando no se puedan corregir se penalizan • Fitness = 0 • Soluciones no facibles • Ind = Ri,R2,…Rh,…..Rk • Si la Capacidad Rh > m Rha = { r1,…ri} Rhb = {ri+1,…..rp} Ind = R1,R2,…Rha,Rhb,…Rk
D) Det. Op. Genéticos y Políticas de reemplazo • Selección • Selección Proporcional al Fitness (Roulette Wheel) • Cruzamiento (PMX) se verifica factibilidad de H1 y H2
D) Det. Op. Genéticos y Políticas de reemplazo(2) • Mutación (SM) se verifica factibilidad del individuo • Política de Reemplazo • Toda la población es reemplazada
E) Determinar Función de Fitness • Tener en cuenta que: • Puede ser distinta de la función objetivo, ya que maximiza • >= 0 • A k cantidad de rutas pi cantidad de clientes de la ruta i • Fitness(x) = Cte – h(x) • Cte / Fitness(x) >= 0
IV) Implementando en GX IV) Implementando en Gx
Resultados Obtenidos • Datos del Poblema • Cantidad de Clientes: 20 • Capacidad de cada camión: 20 • Datos del AG • Tamaño de la Población: 500 individuos • Cantidad de generaciones: 100 • Probabilidad de cruzamiento: 0.7 • Probabilidad de mutación: 0.001 • Alfabeto = {1,….20,A} • Largo cromosómico = 20 + (20/2) = 30