Title: Diapositiva 1
1MO-JGA Una extensión de la herramienta JGA para
problemas de optimización con múltiples
objetivos Aplicación a un problema de
localización de instalaciones
Andrés Medaglia, Ph.D. Eliécer Gutiérrez,
M.Sc., M.E. Centro para la Optimización y
Probabilidad Aplicada (COPA) Departamento de
Ingeniería Industrial Universidad de los Andes
2Agenda
- Justificación
- Fundamentos
- Propuesta de solución
- Arquitectura de la herramienta
- Casos de Aplicación
- Conclusiones y trabajo futuro
3Justificación
- Proveer una herramienta flexible y extensible
para el desarrollo de aplicaciones de algoritmos
evolutivos. - Cubra los casos mono-objetivo y multi-objetivo
- Facilite el desarrollo rápido de aplicaciones
4FundamentosAlgoritmos evolutivos
- Familia de algoritmos heurísticos de búsqueda
aleatoria basados en el principio de selección
natural. - Una población de individuos (soluciones)
evoluciona utilizando operadores genéticos (cruce
y mutación). - La selección se basa en la medida de
adaptabilidad (fitness function) - Balance entre exploración y explotación
5Lógica de un algoritmo evolutivo
1 t ? 1 2 Inicialize P (t) 3 evalúe P
(t) 4 while t T do 5 mute P (t) y
genere Cm(t) 6 cruce P (t) y genere Cc(t)
7 C (t) ? Cm(t) U Cc(t) 8 evalúe C
(t) 9 E (t) ? P (t) U C (t) 10
seleccione P (t 1) de E (t) 11 t ? t
1 12 end while
6Componentes de un algoritmo evolutivo
- Lógica del algoritmo
- Individuos
- Genotipo ( codificación )
- Fenotipo ( características )
- Operadores genéticos
- Mutación
- Cruce
- Selección
- Evaluación
7Conceptos optimización Multi-objetivo (1)
- Formulación
- min (f1(x), . . . , fk (x), . . . , fn(x))
- subject to x ? O
- x vector solución
- fk (x) función objetivo evaluando el k-ésimo
criterio - O espacio de soluciones factibles
- Dominancia de Pareto y domina a x (y x)
- Conjunto óptimo de Pareto (P)
- Frontera Eficiente o Frontera de Pareto (PF)
8Enfoques algoritmos evolutivos multi-objetivo
- No basados en conceptos de óptimo de Pareto.
- Uso de funciones agregadas.
- Uso de múltiples subpoblaciones (VEGA
Schaffer,1985) - Basados en conceptos de óptimo de Pareto.
- MOGA Multi Objective Genetic Algorithm
- (Fonseca Fleming, 1993)
- Niched Pareto Genetic Algorithm
- (Horn, Nafpliotis, Goldberg, 1993)
- NSGA Non-dominated Sorting Genetic Algorithm
- (Deb Srinivas, 1995)
- NSGA-II Non-dominated Sorting Genetic Algorithm
(fast elitist) - (Deb et. al, 2000)
9Propuesta de solución
- Arquitectura e implementación basadas en el
enfoque orientado a objetos. - Proveer componentes (clases) built-in.
- Aprovechar las nuevas tendencias en el desarrollo
de software. - Lenguaje de desarrollo Java
- Desarrollo progresivo.
- JGA Java Genetic Algorithm Framework
- BasicGeneticAlgorithm
- MO-JGA Multi-Objective Java Genetic Algorithm
Framework - NSGA-II (Non-dominated Sorting GA) (Deb et. al,
2000)
10Arquitectura JGA
Application
MyFitnessF extends FitnessFunction
JGAConfig.ini
Extended Classes
myApplication
Extended Classes
JGA
FitnessFunction ltltabstractgtgt
GeneticAlgorithm Handler
JGASettings
MutationOperator ltltabstractgtgt
BasicGenetic Algorithm
StatCollector
Genotype ltltabstractgtgt
CrossoverOperator ltltabstractgtgt
GeneticAlgorithm ltltabstractgtgt
Individual
Phenotype ltltabstractgtgt
JGA core
SelectionOperator ltltabstractgtgt
Built-in classes Genotypes Binary, Integer,
Permutation Crossover SinglePoint, Uniform, OX,
PMX Mutaton Flip, Exchange, rndAssigment
11Ejemplos de aplicaciones de JGA
- Función de Ackley
- ULS (Uncapacitated Lot Sizing with Dynamic
demand) - CLSS (Capacitated Lot Sizing Scheduling)
- TSP (Traveling Salesman Problem)
- CVRP (Capacitated Vehicle Routing Problem)
12Arquitectura MO-JGA (NSGAII)
Application
JGAConfig.ini
Extended Classes
myApplication
Extended Classes
MO-JGA/NSGA
MONSGAIndividual
NSGAGenetic Algorithm
MOPhenotype
NSGASelection Operator
Genotype ltltabstractgtgt
GeneticAlgorithm ltltabstractgtgt
Individual
FitnessFunction ltltabstractgtgt
MutationOperator ltltabstractgtgt
GeneticAlgorithm Handler
Phenotype ltltabstractgtgt
CrossoverOperator ltltabstractgtgt
JGA core
JGA
SelectionOperator ltltabstractgtgt
Built-in classes BinaryGenotype, IntegerGenotype,
PermutationGenotype
13Lógica del algoritmo evolutivo NSGA-II
1 t ? 1 2 Inicialize P (t) 3 evalúe P
(t) 4 while t T do 5 mute P (t) y
genere Cm(t) 6 cruce P (t) y genere Cc(t)
7 C (t) ? Cm(t) U Cc(t) 8 evalúe C
(t) 9 E (t) ? P (t) U C (t) 10 ordene
las fronteras no dominadas de E (t) en R (t) 11
seleccione P (t 1) tomando los primeros
popSize individuos de R (t) 12 t ?
t 1 13 end while
14Aplicaciones a problemas MO de localización de
Instalaciones (CASO I)
- Optimización red de recolección de café de la
Federación - Nacional de Cafeteros. (Medaglia, Palacios y
Villegas, 2004)
Productores Centros de Compra Bodegas de
recolección
- Seleccionar las bodegas que se deben mantener
operando, y - realizar la asignación de centros de compra
a bodegas, - considerando como criterios
- Minimización de costos de operación (Costos
fijos y costos variables) - Maximización del nivel de servicio (Radio
de cobertura ) - Satisfaciendo una restricción de capacidad
máxima de - almacenamiento en las bodegas
15Formulación del problema
- Dados
- Un conjunto de Bodegas D1,2..m con costos
fijo de operación fi y con una
- capacidad máxima de almacenamiento ui
- Un conjunto de Clientes C1,2..n con demandas
dj - - Distancias dij y unos costos de transporte cij
para todo par de bodegas y clientes
Sujeto a
(1) (2)
Donde, Qj i ? D hij Dmax para todo j ?
C
Q1 1,3 Q2 3
16Formato de Representación y Operadores Genéticos
Representación entera Representación Binaria
1 2 3 4 5 6 7 8
9 10 (n) 1
2 3 4 (m)
1
1
9
9
2
2
2
2
1
1
8
8
3
3
5
6
5
6
3
3
10
10
7
4
7
4
4
4
BOGAP ltGreedygt
- Mutación por intercambio Mutación por
intercambio - ExchangeIntegerMutation
ExchangeBinaryMutation - Cruce Uniforme Cruce Uniforme
- UniformIntegerCrossover UniformBinaryCrossover
- Tamaño de la población 100 Probabilidad de
mutación 0.2 - Número de generaciones 200 Probabilidad de
cruce 0.8
17Implementación en MO-JGA (I)
ConfigBCFL.ini
BCFL
BCFLMain main(String args)
BCFLFitness extends FitnessFunction evaluate(Geno
type gt)
Costo Nivel Servicio
MO-JGA/NSGA jga-nsga.jar
Penalización por exceso de capacidad
JGA jga.jar
18Implementación en MO-JGA (II)
Programa principal
19Resultados comparativos (I) (Problema 1 n100,
m20)
Población Final
Solución de máxima cobertura
Medida de desempeñoDominated space metric
Zitzler Thiele (1998)
20Resultados comparativos (II)
1 S Métrica Zitzler Thiele 2 Coef.Var.
Desv.Est./Promedio (para 30 corridas) 3 Tiempo de
CPU en un PC Pentium-IV a 2.8GH. 256MB
21Aplicaciones a problemas MO de localización de
Instalaciones (CASO 2)
- Un Algoritmo Genético para un problema
bi-objetivo para la - asignación de clientes a bodegas (Zhou, Min,
Gen, 2003)
- Seleccionar las bodegas que deben atender un
conjunto de clientes - considerando como criterios
- Minimización de costos de transporte
- Minimización de tiempos de tránsito
- Satisfaciendo una restricción de capacidad máxima
de las bodegas - Empresa Alfa Co. distribuye artículos a 21
grandes clientes alrededor de E.U.
Sujeto a
22Algoritmo Genético propuesto (Zhou, Min Gen)
- Evaluación con pesos variables
- Penalización para exceso de capacidad
- Actualización de la frontera eficiente sobre un
archivo - Esquema de representación entera
- Operador de cruce cruce uniforme
- Operador de mutación mutación por intercambio
23Resultados comparativos (considerando 3 bodedas)
Zhou
FC0.4
FC0.5
FC0.6
FC1.0
24Conclusiones y trabajo futuro
- Librería flexible y extensible
- Casos de aplicación exitosos
- Facilita el desarrollo rápido de aplicaciones
- Acceso a todas las ventajas de Java
- Extender el núcleo built-in
- Implementar otros esquemas de algoritmos
evolutivos multi-objetivo - Desarrollo de nuevos casos y difusión
http//copa.uniandes.edu.co