pablo musso artech [email protected] algoritmos genéticos con genexus

30

Upload: jaime-magallanes

Post on 11-Apr-2015

113 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Pablo Musso ARTech pmusso@artech.com.uy Algoritmos Genéticos con GeneXus
Page 2: Pablo Musso ARTech pmusso@artech.com.uy Algoritmos Genéticos con GeneXus

Pablo MussoARTech

[email protected]

Algoritmos Genéticos con GeneXus

Page 3: Pablo Musso ARTech pmusso@artech.com.uy Algoritmos Genéticos con GeneXus

AgendaAgenda

IV) Implementando

en Gx

IV) Implementando

en Gx

I) Aplicación

II) Teoría

III) Resolviendo un problema

Page 4: Pablo Musso ARTech pmusso@artech.com.uy Algoritmos Genéticos con GeneXus

I) Aplicación

I) Aplicación I) Aplicación

Page 5: Pablo Musso ARTech pmusso@artech.com.uy Algoritmos Genéticos con GeneXus

Posibles ProblemasPosibles Problemas

• Problema de la “Mochila” • Carga de Camiones/Barcos

• Problema de la “Mochila” • Carga de Camiones/Barcos

• Problemas de Asignación de Recursos• Asignación de alumnos a aulas• Asignación de charlas a horarios en el Evento

• Problemas de Asignación de Recursos• Asignación de alumnos a aulas• Asignación de charlas a horarios en el Evento

• Problema del “Vendedor que debe Viajar”• Camino Optimo

• Problema del “Vendedor que debe Viajar”• Camino Optimo

• Data Mining • Sitios Web Adaptativos • Clustering y Clasificación genética

• Data Mining • Sitios Web Adaptativos • Clustering y Clasificación genética

• Problema de Ruteo de Vehículos• Problema de Ruteo de Vehículos

Problemas de Optimización (NP-difíciles)

min/ max h(X1,X2….Xn)

Sa: gi(X1,X2….Xn) >=0

Page 6: Pablo Musso ARTech pmusso@artech.com.uy Algoritmos Genéticos con GeneXus

Problema de Ruteo de VehículosProblema 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

• En grandes empresas de fletes • Deposito central, n Clientes con demanda di, Costo i j :cij,

m capacidad de cada vehículo

Page 7: Pablo Musso ARTech pmusso@artech.com.uy Algoritmos Genéticos con GeneXus

Problema de Ruteo de Vehículos (2)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

• 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}

Page 8: Pablo Musso ARTech pmusso@artech.com.uy Algoritmos Genéticos con GeneXus

II) Teoría II) Teoría

II) Teoría

Page 9: Pablo Musso ARTech pmusso@artech.com.uy Algoritmos Genéticos con GeneXus

• 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

• 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

Teoría Teoría

Page 10: Pablo Musso ARTech pmusso@artech.com.uy Algoritmos Genéticos con GeneXus

Teoría (2)Teoría (2)

Page 11: Pablo Musso ARTech pmusso@artech.com.uy Algoritmos Genéticos con GeneXus

Evolucionar

Reemplazar

Generar Población (Aleatoria)

[Población P]

[Población P]

Not (Condición de Finalización)

[Población MP]

SelecciónUtilizan F.Fitness

Cruzamiento (estocástico)

Mutación (estocástico)

Esquema General de un AGEsquema General de un AG

Page 12: Pablo Musso ARTech pmusso@artech.com.uy Algoritmos Genéticos con GeneXus

• Genotipo (Estructura interna manipulable por el AG )

Gen

• Fenotipo (Depende del entorno)

• Alfabeto {1,2,3,4,5,6,A}

• Genotipo (Estructura interna manipulable por el AG )

Gen

• Fenotipo (Depende del entorno)

• Alfabeto {1,2,3,4,5,6,A}

Conceptos Intra-IndividuoConceptos Intra-Individuo

A 2 5 A A 4 6 1 3

Se deben utilizar 3 camiones cuyas rutas son R1 = {0,3,1,6,0}R2 = {0,2,5,0}R3 = {0,4,0}

Page 13: Pablo Musso ARTech pmusso@artech.com.uy Algoritmos Genéticos con GeneXus

ResumiendoResumiendo

•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

Page 14: Pablo Musso ARTech pmusso@artech.com.uy Algoritmos Genéticos con GeneXus

Entorno Prob. RutasProblema

{Individuos}{I1, I2, I3, ...Im}

{Soluciones}{s1,s2,s3,...sm}

GenotipoCodifi-cación

Decodi-ficación

Gen ParteCodificación

316A25A4A 3 Camiones: 03160 0250 040

6

Fenotipo

{Soluciones}{S1,S2, S3, ...Sm}

Resumiendo(2)Resumiendo(2)Biológico Matemático Matemático

Page 15: Pablo Musso ARTech pmusso@artech.com.uy Algoritmos Genéticos con GeneXus

III) Resolviendo un ProblemaIII) Resolviendo un Problema

III) Resolviendo un problema

Page 16: Pablo Musso ARTech pmusso@artech.com.uy Algoritmos Genéticos con GeneXus

• 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

• 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

III) Resolviendo un ProblemaIII) Resolviendo un Problema

Page 17: Pablo Musso ARTech pmusso@artech.com.uy Algoritmos Genéticos con GeneXus

A) Determinar Genotipo de la Representación 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

• 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

Page 18: Pablo Musso ARTech pmusso@artech.com.uy Algoritmos Genéticos con GeneXus

B) Determinar el Fenotipo de la representaciónB) 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 }

• 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 }

Page 19: Pablo Musso ARTech pmusso@artech.com.uy Algoritmos Genéticos con GeneXus

C) Determinar Factibilidad de las solucionesC) 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

• 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

Page 20: Pablo Musso ARTech pmusso@artech.com.uy Algoritmos Genéticos con GeneXus

D) Det. Op. Genéticos y Políticas de reemplazoD) 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

• Selección• Selección Proporcional al Fitness (Roulette Wheel)

• Cruzamiento (PMX)

se verifica factibilidad de H1 y H2

Page 21: Pablo Musso ARTech pmusso@artech.com.uy Algoritmos Genéticos con GeneXus

D) Det. Op. Genéticos y Políticas de reemplazo(2)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

• Mutación (SM)

se verifica factibilidad del individuo

• Política de Reemplazo

• Toda la población es reemplazada

Page 22: Pablo Musso ARTech pmusso@artech.com.uy Algoritmos Genéticos con GeneXus

E) Determinar Función de FitnessE) 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

• 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

Page 23: Pablo Musso ARTech pmusso@artech.com.uy Algoritmos Genéticos con GeneXus

IV) Implementando en GXIV) Implementando en GX

IV) Implementando

en Gx

IV) Implementando

en Gx

Page 24: Pablo Musso ARTech pmusso@artech.com.uy Algoritmos Genéticos con GeneXus

Definir SDTs Definir SDTs

Page 25: Pablo Musso ARTech pmusso@artech.com.uy Algoritmos Genéticos con GeneXus

Realizar ProcedimientosRealizar Procedimientos

Page 26: Pablo Musso ARTech pmusso@artech.com.uy Algoritmos Genéticos con GeneXus

Resultados Obtenidos 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

• 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

Page 27: Pablo Musso ARTech pmusso@artech.com.uy Algoritmos Genéticos con GeneXus

Resultados Obtenidos (2)Resultados Obtenidos (2)

Page 28: Pablo Musso ARTech pmusso@artech.com.uy Algoritmos Genéticos con GeneXus

Resultados Obtenidos (3)Resultados Obtenidos (3)

Page 29: Pablo Musso ARTech pmusso@artech.com.uy Algoritmos Genéticos con GeneXus

Evolución de la Población

0

1000

2000

3000

4000

5000

6000

7000

8000

9000

10000

0 20 40 60 80 100 120

Generación

Fit

nes

s

Resultados Obtenidos (4)Resultados Obtenidos (4)

Page 30: Pablo Musso ARTech pmusso@artech.com.uy Algoritmos Genéticos con GeneXus