1. Programación de las actividades logísticas con
algoritmos genéticos
Scheduling logistic activities with genetic
algorithms
Luis Eduardo Leguizamón Castellanos
Especialidad en Gestión de la Producción Industrial, Centro de Gestión Industrial, SENA
Bogotá, Colombia.
leleguizamon@misena.edu.co
Resumen - La programación de operaciones en la cadena de
suministros, es tal vez una de las tareas más importantes del
proceso logístico ya que de ella depende la satisfacción del
cliente debida a la entrega oportuna del producto y/o servicio.
En este artículo se proponen los Algoritmos Genéticos (AGs)
como una técnica de optimización que permita encontrar una
buena solución al problema de secuenciación en línea, ”flow
Shop”. Específicamente se resuelve el problema para n trabajos
en una maquina, con la finalidad de minimizar el atraso total.
• Secuenciación de trabajos. Define la prioridad de
servicio o procesamiento de los trabajos que se
encuentran en la línea de espera del sistema de
producción.
• Temporización de trabajos. Implica determinar los
tiempos de inicio y terminación de los trabajos en
función de las fechas de entrega concertadas con el
cliente, como se observa en la Fig. 1, para el caso de 4
trabajos en 3 maquinas.
Palabras Clave - Optimización, Programación de operaciones,
Cadena de suministros, Algoritmo, Metaheuristica, Gen,
Cromosoma, Algoritmo genético, Secuenciación de trabajos.
Abstract - The scheduling of operations in the supply chain, is
perhaps one of the most important tasks of the logistics process
since it depends on customer satisfaction due to timely delivery
of product and / or service. This paper proposes Genetic
Algorithms (GAs) as an optimization technique that allows
finding a good solution to online scheduling problem, "Flow
Shop". Specifically, it solves the problem for n jobs on one
machine, in order to minimize the overall delay.
Keywords - Optimization, Operations scheduling, Supply chain,
Algorithm, Metaheuristic, Gene, Chromosome, Genetic
algorithm, Sequencing of jobs.
I. INTRODUCCIÓN
Realizar un programa de operaciones en cualquier etapa
de la cadena de abastecimiento implica realizar las
siguientes tres actividades: La asignación de cargas de
trabajo, la secuenciación de los trabajos y su respectiva
temporización.
• Asignación de cargas de trabajo. Determina que
trabajos se han de realizar y en que maquina o centro
de producción (distribución), de manera que se
maximice la utilización de los equipos.
Fig. 1 Programación Flow Shop.
De estas tres actividades la secuenciación de trabajos es
considerada la más importe y a la vez la más difícil de
llevar a cabo debido a su naturaleza de problema
combinatorio. Este artículo presenta la forma de cómo
puede ser planteado como un problema de optimización
Flow Shop (proceso secuencial) y ser resuelto por medio de
Algoritmos Genéticos (AGs).
II. PLANTEAMIENTO DEL PROBLEMA
El problema consiste en determinar la secuencia de
operación de n trabajos (pedidos) que deben ser procesados
en m maquinas, que optimice la medida de desempeño o
función objetivo seleccionada. Aquí todos los trabajos
deben tener el mismo flujo de procesamiento [1] como se
observa en la Fig. 2.
2. Aquí la función objetivo consiste en minimizar la
sumatoria del atraso para todos los trabajos, previo cálculo
del retraso y del atraso para cada uno de ellos.
Fig. 2 Sistema de producción Flow Shop.
Otras características del sistema a estudiar son:
Se estudiara el caso que se muestra en la tabla II, para 6
trabajos que deben ser procesados secuencialmente en una
maquina, caso que implicaría una enumeración total de 720
,
(6ǃ) secuencias.
TABLA II
I
• La maquina puede procesar a lo más un trabajo a la vez.
• Una vez que un trabajo se ha procesado en la maquina,
este se termina.
• Los tiempos de procesamiento de los trabajos en cada
una de las maquinas son fijos.
Este problema combinatorio es del tipo nPn = nǃ, que
pertenece al grupo NP-duro [2]. Este conjunto de
ste
problemas se pueden resolver por enumeración total sin
total,
embargo conforme el problema crece, la explosión
mbargo
combinatoria hará que sea imposible resolver el problema
en un tiempo razonable [3], como se muestra en la tabla I.
,
TABLA I
EXPLOSION COMBINATORIA
TRABAJOS
SECUENCIAS
EN LINEA DE
nPn = n ǃ
ESPERA
3
6
4
24
5
120
6
720
7
5040
10
3628800
15
1,31E+12
20
2,43E+18
El objetivo es encontrar la secuencia de los n trabajos a
programar en un centro de trabajo (maquina) de manera
(maquina),
que se minimice el atraso total de los trabajos La
trabajos.
formulación del problema se ve en la Fig. 3.
˜˩
=
H˪
= Maquina j, ∀ ˪ = 1,2, … , ˭.
Trabajo o pedido i, ∀ ˩ = 1,2, … , J.
n
=
=
Número de maquinas.
ˮ˩˪
= Tiempo de procesamiento del pedido i en la maquina j.
ˮ˦˩˪
ti1
10
3
16
8
4
10
T RABAJO
P1
P2
P3
P4
P5
P6
te i1
15
16
24
30
35
37
III. METODOLOGIA DE SOLUCIÓN
A. Reglas de despacho.
Una de las formas convencionales de dar solución a este
problema consiste en la aplicación de las reglas decisorias
de secuenciación [5], tales como: Primero en entrar primero
en salir (PEPS), Tiempo más corto de proceso (
),
(TMCP),
Ponderación de clientes (PC), Tiempo más corto de
),
proceso ponderado (TMCPP), Tiempo más corto de entrega
(TMCE) y Holgura mínima (HM) entre otras [6]. A modo
HM),
de ejemplo, en la tabla III se observa la aplicación del
modelo a la regla TMCP, donde se obtiene un atraso total
de 37 minutos.
TABLA III
REGLA DE DESPACHO TMCP
ti1
3
4
8
10
10
16
TRABAJO
P2
P5
P4
P1
P6
P3
te i1
16
35
30
15
37
24
tfi1
3
7
15
25
35
51
Ri1
Ai1
-13
-28
-15
10
-2
27
0
0
0
10
0
27
37
Número de pedidos.
m
PROBLEMA A ESTUDIAR
= Tiempo de flujo del pedido i en la maquina j.
ˮ˥˩˪ = Tiempo de entrega del pedido i en la maquina j.
˞˩˪
= Retraso del pedido i en la maquina j.
˓˩˪
= Atraso del pedido i en la maquina j.
˘˛:
H˩J
J
˩=1 ˓˩˪
˞˩˪ = ˮ˦˩˪ − ˮ˥˩˪
˓˩˪ = ˭I˲ 0, ˞˩˪
Fig. 3 Modelo secuenciación de trabajos en una maquina
maquina.
Las secuencias y el atraso para cada una de las reglas de
despacho anteriormente enunciadas se ven en la tabla IV.
TABLA IV
ATRASO TOTAL REGLAS DE DESPACHO
REGLA
PEPS
TMCP
PC
TMCPP
TMCE
HD
SECUENCIA
P1-P2-P3-P4-P5-P6
P2-P5-P4-P1-P6-P3
P3-P2-P1-P6-P5-P4
P2-P5-P3-P1-P6-P4
P1-P2-P3-P4-P5-P6
P1-P3-P2-P4-P6-P5
ATRASO
32
37
48
45
32
48
3. B. Algoritmos genéticos.
Los algoritmos genéticos (AGs) son metaheuristicas que
resuelven problemas combinatorios de búsqueda y
optimización, inspirados en la evolución biológica a partir
de la emulación de los procesos genéticos de los seres
vivos. Las poblaciones evolucionan en la naturaleza
conforme a los principios de la selección natural y la
supervivencia de los más fuertes enunciados por Darwin
(1859).
En 1975, John Henry Holland estableció los principios
básicos de los algoritmos genéticos. Estos algoritmos hacen
evolucionar una población de individuos sometiéndola a
acciones aleatorias semejantes a las que actúan en la
evolución biológica (cruzamiento y mutación ), para luego,
seleccionar de acuerdo con algún criterio, los individuos
más adaptados, que sobrevivirán y dejaran descendencia.
Se aplicara el algoritmo genético propuesto por ChuBeasly [4] en 1997, gracias a la calidad de sus respuestas y
a su alto desempeño computacional. Su principal
característica consiste en mantener constante el tamaño de
individuos de la población, de manera que en cada
iteración se reemplaza un individuo de la población usando
un eficiente mecanismo de modificación de la misma [3].
En cada iteración un individuo de la población inicial es
reemplazado por el mejor descendiente generado.
1) Codificación: Los individuos de la población o
posibles soluciones del problema, pueden ser representados
como un conjunto de parámetros denominados genes, los
cuales agrupados forman un cromosoma [3]. En este caso
los genes corresponden a cada uno de los trabajos que se
van a secuenciar y cada secuencia será un cromosoma, ver
Fig. 4.
P3
P6
P2
P5
P4
P1
Fig. 4 Secuencia representada como un cromosoma.
2) Tamaño y Selección de la Población Inicial: Se
propone seleccionar en forma aleatoria dos parejas de
secuencias (cromosomas) como población inicial de las 720
posibles secuencias y calcular la función objetivo, que
como se menciono corresponde a:
˘˛: H˩J
(#
P4
P5
P1
P4
P5
P1
P3
P1
P6
P4
P2
P1
P2
P3
P4
P5
Fig. 5 Secuencias seleccionadas de la población total.
ATRASO
45
56
P5
P6
72
32
3) Selección de Individuos para el Cruzamiento: La
selección de los futuros padres se realiza con el método
denominado “por torneo”, que consiste en hacer competir a
cada pareja de individuos de acuerdo a la función objetivo
acordada. En este caso los padres seleccionados
corresponden a aquellos que tienen el mínimo atraso total,
como se muestra en la Fig. 6.
PADRE
PADRE 1
PADRE 2
P4
P1
SECUENCIA
P3
P6
P3
P4
P2
P2
P5
P5
ATRASO
45
32
P1
P6
Fig. 6 Secuencias padre seleccionadas.
4) Determinar Puntos de Cruzamiento: Una vez
seleccionados dos padres, sus cromosomas deben ser
recombinados utilizando un operador de cruzamiento que
permita obtener dos descendientes. El operador de cruce
basado en una correspondencia parcial (PMX- Partially
Mapped Crossover), introducido por Goldberg y Lingle
(1985), es aquí utilizado y su primer paso consiste en
determinar dos puntos de cruzamiento que en este caso son
hallados con números aleatorios de igual forma a la
planteada para el tamaño y selección de la población
inicial. Los números aleatorios encontrados fueron 5 y 6, lo
cual nos indica que los trabajos ubicados en las posiciones
5 y 6 de las secuencias padre1 y padre2 deben ser
combinadas. Ver Fig. 7.
PADRE
PADRE 1
P4
P2
P3
P6
PADRE 2
P1
P2
P3
P4
Fig. 7 Puntos de cruzamiento seleccionados.
PUNTOS CRUZAMIENTO
P5
P1
P5
P6
5) Determinar Descendientes: Una vez encontrados los
puntos de cruzamiento se procede a realizar el intercambio
de genes (trabajos) entre los padres y así obtener sus
descendientes.
˓
Los trabajos de cada secuencia se hallan con números
aleatorios comprendidos entre uno y el número total de
trabajos, con la ayuda de la hoja de cálculo de Excel y su
función =ALEATORIO.ENTRE(1;6). Estas secuencias y su
atraso se ven en la Fig. 5. La primera pareja de secuencias
tienen atrasos de 45 y 56 minutos, mientras que la segunda
pareja 72 y 32 minutos respectivamente.
SECUENCIA
P3
P6
P2
P6
P2
P3
PADRE 1
PADRE 2
P4
P2
P3
P6
P5
P1
P1
P2
P3
P4
P5
P6
P4
P2
P5
P6
*
P2
P1
P2
P5
P6
P6
P2
P3
P4
DESCENDIENTE 2
P3
P4
P5
P4
P3
*
DESCENDIENTE 1
P3
P1
P5
P1
Fig. 8 Descendientes obtenidos.
4. ,
En la Fig. 8, se obtiene el descendiente 1, al tomar al azar el
segmento con los pedidos {P5, P6} del padre 2 e insertarlo
en el padre 1. Inicialmente el * representa los trabajos
.
repetidos que posteriormente deben retirarse de la
configuración. De forma similar se halla al descendiente 2
2.
encontrándose una nueva secuencia con un atraso de 27
minutos.
6) Selección Descendiente: De los dos descendientes se
selecciona por torneo el que mejor función objetivo
presente. En este caso el descendiente 1, que presenta un
atraso total de 45 minutos. Ver Fig. 9.
DESCENDIENTE
SECUENCIA
DESCENDIENTE 1
P4
P2
P3
P1
DESCENDIENTE 2
P6
P2
P3
P4
Fig. 9 Descendiente seleccionado.
P5
P5
P6
P1
ATRASO
45
54
7) Determinar descendiente mutado: Aquí se aplica un
operador de mutación a cada descendiente de manera
individual, que consiste en la alteración aleatoria de
algunos de los genes del cromosoma. Este proceso está
ligado al concepto de búsqueda en la vecindad [
ndad [3], razón
por la cual se utilizara la metaheuristica de intercambio por
pares, que consiste en intercambiar dos trabajos de la
secuencia a partir de un numero aleatorio. Siguiendo este
procedimiento se tiene una nueva secuencia al intercambiar
los trabajos P1 y P3, con un atraso de 39 minutos, como se
,
ve en la Fig. 10.
DESCENDIENTE
MUTADO
P4
P2
SECUENCIA
P1
P3
P5
P6
ATRASO
39
Fig. 10 Descendiente mutado.
población:
8) Selección del nuevo individuo de la población Se
escoge el mejor individuo entre el cruzamiento y la
mutación y se reemplaza por el peor padre de la población
inicial, ver Fig. 11.
Fig. 12 Segunda iteración.
P4
P5
P2
P3
SECUENCIA
P3
P6
P2
P6
P4
P1
P2
P2
P1
P3
P3
P4
P5
P1
P1
P4
ATRASO
45
56
P5
P5
P6
P6
39
32
Fig. 11 Nueva población.
En resumen la metodología para la aplicación de los
algoritmos genéticos consiste en repetir un número
determinado de iteraciones, donde cada iteración
corresponde a la aplicación de los ocho pasos anteriormente
descritos, o sea que hasta aquí se ha reali
realizado una
iteración.
IV. ANALISIS DE RESULTADOS
En la fig. 12 se muestra una breve descripción de la
segunda iteración, que comienza desde el paso tres,
Este resultado obtenido con tan solo dos iteraciones es
satisfactorio y mejor que el encontrado con la reglas de
las
despacho analizadas. El algoritmo terminaría en el
momento en que se satisfagan el número de iteraciones
propuesto o cuando no se encuentren secuencias que
mejoren la función objetivo.
V. CONCLUSIONES
La metodología presentada para la solución del problema
de secuenciación de trabajos en los procesos logísticos es
logísticos,
solo un ejemplo de las diferentes aplicaciones que los
algoritmos genéticos tienen para la solución de problemas
de optimización que permitan una mejor toma de
decisiones en la gestión de la cadena de abastecimiento. Se
sugiere implementar y validar esta metaheuristica mediante
la comparación de sus resultados con otros métodos
s
diseñados para tal fin.
5. La aplicación de los algoritmos genéticos planteados en
este artículo puede ser enriquecida mediante la
incorporación de más centros de trabajo o maquinas,
haciendo del modelo una representación más fiel de las
características reales de la cadena de suministro.
En términos generales la aplicación de algoritmos
genéticos a la solución de problemas que se resuelven por
enumeración total garantiza obtener soluciones no
necesariamente optimas, pero si muy cercanas a esta,
obtenidas en un tiempo razonable.
REFERENCIAS
[1] D. A. Collier, Administración de operaciones. Cengage
Learnig. México D.F, 2009.
[2] D. Sipper, Planeación y control de la producción. Mc
Graw Hill. México D.F. 1998.
[3] E. M. Toro, Y.S. Restrepo y M. Granada. Algoritmo
genético modificado aplicado al problema de
secuenciamiento de tareas en sistemas de producción
lineal – Flow Shop. Scientia et technica. Año 12. No
30, pp 285-290, 2006.
[4] J. E. Beasley y P.C. Chu, A Genetic algorithm for the
generalized assign problem computers and operations
research, 24(1), pp 17-23 ,1997.
[5] R. H. Ballou, Logística, administración de la cadena de
suministro. 5nd ed., Ed Pearson., México D. F, 2004.
[6] W. L. Winston, Investigación de operaciones,
aplicaciones y algoritmos. 4nd ed., Ed Thomson,
México D. F, 2005.