Está en la página 1de 10

ANLISIS DE UN PROBLEMA LOGSTICO A VARIOS NIVELES EN LA INDUSTRIA DEL AUTOMOVIL.

DISEO DE SOLUCIONES APROXIMADAS


JESS ALEGRE, SILVIA CASADO, CRISTINA DELGADO Y JOAQUN PACHECO Dpto. Economa Aplicada. Univ.Burgos. Fac. C EE y EE. Pza. Infanta Elena s/n BURGOS 09001 jfalegre{scasado,cdelgado,jpacheco}@ubu.es TELFONO 947 25 90 24/21; FAX: 947 25 89 56 Resumen.- En este trabajo se analiza un problema planteado muy recientemente a los autores por los responsables de un operador logstico situado en Villafra (Burgos). Este operador trabaja para una empresa fabricante de componentes de automviles, gestionando y realizando las operaciones de entrega a clientes y recogida de materia prima. En este modelo se incluyen varios niveles de decisin fuertemente interaccionados entre s que tienen como fin ltimo la minimizacin del coste de estas operaciones (entrega de pedidos a clientes y recogida de materia prima). Aunque sea un modelo aparentemente demasiado especfico y para una situacin muy concreta, entendemos que su anlisis resulta interesante, puesto que cada vez se tiende a considerar y analizar las operaciones logsticas de forma global y no de forma individualizada. Dada la complejidad del modelo en esta primer trabajo se realiza la descripcin del mismo y se propone un primer y sencillo procedimiento heurstico para su resolucin. Se analizan las soluciones obtenidas con datos reales. Palabras Clave: Problemas Logsticos, Multiprocessor Scheduling Problem, Problemas de Planificacin, Problemas de Rutas, Bsqueda Local

Planteamiento del Problema El problema logstico que se plantea afecta a un operador logstico, (OL), que tiene como cliente una empresa fabricante de componentes de automviles (EF). El operador logstico organiza, gestiona y realiza las actividades de recogida de materias primas en las factoras suministradoras, y la entrega de productos elaborados a los clientes de dicha empresa. La empresa debe entregar determinados pedidos de productos elaborados (componentes de automviles) a sus clientes (bsicamente diferentes tipos de volantes). Cada pedido lleva asociado un nmero de unidades a entregar del producto y una frecuencia. Cada producto elaborado requiere para su fabricacin determinadas piezas (materias primas), que deben ser recogidas en las factoras correspondientes.

El operador logstico dispone de un almacn regulador (AR) donde guarda las piezas o materias primas, hasta que son recogidos por la empresa fabricante para su manipulacin. En este almacn regulador tambin se guardan los productos elaborados por la empresa hasta que llegan los clientes a recoger los pedidos. El esquema bsico se ilustra con el siguiente grfico. Los clientes se denotan por C_1, C_2, ..., C_nc y las factoras de materias primas se denotan por F_1, F_2, ..., F_nf; donde nc y nf indican respectivamente el nmero de clientes y el nmero de factoras.
C_1

EF
C_2

F_1

F_2 C_3

AR (OL)
F_nf

C_nc

Esquema bsico del funcionamiento del sistema. El operador logstico intenta minimizar los costes de estas operaciones en un horizonte temporal, (nmero de das = ndias) determinado, que son: 1) Coste de transportar las materias primas desde las factoras hasta el almacn regulador 2) Coste del personal (carretilleros) contratado para realizar las cargas de los pedidos en los vehculos de los correspondientes clientes Como se ver con ms detalle en los siguientes apartados el tratamiento de este problema va a implicar la modelizacin y la toma de decisiones a varios niveles, que van a estar fuertemente relacionados unos con otros: diseo de calendarios de entregas de productos, programacin de las horas de dichas entregas, programacin de las das y cantidades de recogidas de materias primas y diseo de las rutas diarias de dichas recogidas. Adems, en este interaccin hay varios elementos a tener en cuenta como capacidad productiva (tanto de factoras como de la empresa), stocks iniciales de productos elaborados y materias primas, tiempos de transporte, tamao de la flota y caractersticas de la misma etc ... La dificultad computacional de este modelo en su conjunto es evidente. Si nos fijamos solamente en los niveles de decisin ms bajos (las horas de entrega de los productos y el diseo de rutas de recogida de materias primas) de forma aislada y para cada da, los modelos resultantes (el Multiprocessor Scheduling Problem, MSPy el Problema de Rutas de Vehculos o VRP) son conocidos problemas NP-Hard. Por tanto teniendo en cuenta adems la rapidez con la que muchas veces se han de tomar las

decisiones en las empresas y que el operador logstico en cuestin es una pequeamediana empresa que no dispone potentes ordenadores de clculo en este caso lo ms adecuado es intentar desarrollar tcnicas de solucin aproximadas o heursticas. En este trabajo se va a desarrollar un conceptualmente sencillo pero eficaz procedimiento de bsqueda local. Nuestra intencin es desarrollar procedimientos ms sofisticados en posteriores trabajos. El trabajo se estructura de la siguiente manera: en la siguiente seccin se explica la modelizacin del problema con los diferentes niveles de decisin, su interaccin entre ellos y la representacin de las soluciones; en el tercer apartado se definen movimientos vecinales entre soluciones y el procedimiento de bsqueda local al que dan lugar; en el cuarto apartado se realizan diferentes pruebas con datos reales. 2.- Modelizacin y representacin de las soluciones Las decisiones a tomar en este problema se pueden dividir en 4 partes o niveles segn la siguiente figura

Asignacin de calendarios a los pedidos de Productos Elaborados ( A )

Determinacin en cada d a de la hora de entrega de cada pedido al correspondiente cliente (B)

Programacin de las cantidades y los das de recogida en las factorias de cada una de las materias primas (C )

Diseo de las rutas de recogida diarias (D )

A continuacin se explican cada uno de ellos. 2.1.- Asignacin de calendarios de los productos elaborados Cada una de los nc pedidos de productos elaborados viene determinado por una determinado nmero de unidades q(i), i = 1...nc y una frecuencia con la que es recogido. En funcin de esa frecuencia se establece el conjunto de calendarios posibles de recogida para cada producto (pedido de componentes). Por ejemplo, si el pedido tiene

una frecuencia de 1 entrega cada 4 das los posibles calendarios de entrega sern los siguientes {1, 5, 9, 13, 17, ....} o {2, 6, 10, 14, 18, ....} o {3, 7, 11, 15, 19, ....} o {4, 8, 12, 16, 20, ....} (con algunas modificaciones por los das festivos). Se trata de asignar a cada producto un calendario de entre los posibles. Se va a denotar por: i ={Ci1, Ci 2,..., C i Ti } : Conjunto de calendarios del pedido i (i.e. del producto i). C ri : Calendario r del pedido i. Ti : nmero de calendarios del pedido i. As mismo se va a denotar por el vector S = (j1, j2, j3,..., jnp), la solucin en este nivel, donde S(i) = ji indica el calendario asignado al pedido i. 2.2.- Hora de entrega de los pedidos de productos elaborados Una vez conocidos que pedidos hay que entregar cada da, hay que asignar a cada uno de ellos un slot u horario de entrega. Es decir, hay que indicar a los clientes, adems de los das, las horas en cada uno de estos das que deben ir a recoger sus pedidos. En este sentido hay que tener en cuenta que: - Las entregas de los pedidos se realizan en forma de pallets - El numero de carretilleros necesarios en un slot determinado va a ser proporcional al nmero de pallets que hay que cargar en ese slot - Los contratos de los carretilleros son diarios y, por tanto, el nmero de carretilleros a contratar cada da vendr dado por el slot ms ocupado (con ms pallets asignado) - En consecuencia, desde un punto de vista racional, se debe procurar que los slots de cada da estn lo ms compensados posibles. Es decir, se deben evitar planificaciones que den lugar a das en los que haya un slot muy ocupado (muchos pallets a cargar) junto con slots vacos o casi vacos, ya que esto obligara a contratar mucho personal que estara desocupado la mayor parte de ese da. Con R se representa, en el conjunto de das, la distribucin de pedidos por slots. Donde R = {R(d)/ d=1...ndias}, y R(d) representa, la distribucin del da d. Supongamos un da con cuatro slots u horas de carga: de 9 a 10 (1), de 10 a 11 (2), de 11 a 12 (3) y de 12 a 13 (4); supongamos la siguiente distribucin de pedidos R(d) para un da cualquiera: Slots 1 2 3 4 Pedidos (n. palets) 63-5 9 10 2 78

Para cada slot, la suma de palets de cada pedido, indica la proporcin del numero de carretilleros necesarios o nivel de ocupacin. El slot de mayor valor (mayor numero de palets), determina el numero de carretilleros a contratar cada da. En el ejemplo propuesto vendra determinado por el slot 4: en este caso 15 pallets. La distribucin para cada de las entregas por slots se ajusta al conocido se ajusta al conocido Multiprocessor Scheduling Problem (MSP). El MSP es un problema muy estudiado en la literatura muy estrechamente relacionado con el Bin Packing. Conocidos algoritmos constructivos para este problema, son los conocidos LPT (largest processing time first) de Graham (1969) y MULTIFIT de Coffman et al. (1984). Un reciente survey sobre este problema se pueden encontrar en Fujita y Yamashita, (2000). Por otra parte un modelo que considera slo estos 2 primeros niveles, A y B, (asignacin de calendarios y horas de recogidas diarias) propuso recientemente a los autores de esta comunicacin y los primeros resultados se han reflejado en algunos trabajos anteriores: Delgado et al. (2002), Pacheco et al. (2002). 2.3.- Recogida de materias primas (das y cantidades) Una vez conocidos las unidades solicitadas de los diferentes productos elaborados por los clientes en los diferentes das, estos requerimientos van a obligar a realizar una serie de recogidas de los correspondientes materias primas. Se ha de tener en cuenta los siguientes aspectos: - Capacidad productiva de las factoras: Las fechas de entrega de las materias primas deben permitir o hacer factible la produccin de las cantidades requeridas. - Las materias primas se entregan por lotes, con un nmero fijo de unidades por lote. Es decir, si cada lote de una pieza es de 1000 unidades, la fabrica solo entregar cantidades mltiplos de 1000, (1, 2, 3 lotes ...) - Stocks de materia prima: Al comienzo del horizonte temporal pudiera existir un determinado stock disponible de unidades de cada pieza, que se pueden usar. En este sentido, a veces podra interesar usar la capacidad del almacn y realizar pocos viajes con mucha mercanca en cada una de ellos en vez de muchos viajes con menos mercanca. - Capacidad de produccin de los productos elaborados y Tiempos de Transporte: Las fechas de recogida de materia prima deben permitir que teniendo en cuenta los tiempos de transporte (de las materias primas de las factoras a almacn regulador y la empresa; y de los productos elaborados de la empresa al almacn regulador), y los tiempos de fabricacin de los productos elaborados, estos estn preparados en las fechas sealadas de entrega a los clientes. Se va a denotar por hk el n de piezas por da que puede producir la factoria k; sk el stock de unidades de la pieza k; ltk el n de unidades por lote de la pieza k, k =1...nf; hpi el n de unidades del producto i que produce la fbrica al da, i = 1...nc. Por otra parte se va a considerar un tiempo (mximo) de trasporte de 2 das desde la recogida de las materias primas hasta la llegada a la empresa tras pasar por el almacn regulador. Considrese el siguiente ejemplo ilustrativo: se han de realizar 3 entregas de un determinado producto V los das 11, 16 y 21, de 3200 unidades cada uno. El ritmo de

produccin del producto V es de hpV = 800 unidades al da. En la elaboracin del producto V forma parte, entre otras, una pieza Y (y slo una), de la que hay un stock inicial de sY = 1000 unidades. La factora correspondiente entrega lotes de ltY = 2500 unidades. En la siguiente figura se denota cuales seran las recogidas y las fechas mximas que se deberan realizar

3200 Stock =1000 5 2500 1 lote

3200 10 5000 2 lotes

3200 15 2500 1 lote

Es decir se deberan recoger 1 lote como muy tarde el da 5, otros 2 lotes al da 10 y otro ms como mximo el da 15. Para cada materia prima k, se va a definir CP(k) = {(lpk,1, dpk,1), (lpk,2, dpk,2), ..., (lpk,npk, dpj,npj)} conjunto de recogidas de lotes que se deben realizar de la pieza k, donde lpk,s indica el nmero de lotes en la recogida s, y dpk,s indica la fecha mxima de esa recogida. Sin perdida de generalidad se toma dpk,s dpk,s+1, s = 1...npk-1. En el caso anterior CP(Y) = {(1,5), (2,10), (1,15)}. As mismo se define CX(k) = {(lxk,1, dxk,1), (lxk,2, dxk,2), ..., (lxk,npk, dxk,nxk)} el conjunto de recogidas que en realidad se van a hacer del pedido k, donde lxk,s indica el nmero de lotes de la recogida s y dxk,s indica la fecha de esa recogida, (dxk,s dxk,s+1, s = 1...nxk-1). Obviamente los valores de lxk,s y dxk,s deben ser compatibles con los del correspondiente CP(k) y con la capacidad productiva de la factora k. Es decir, se debe cumplir que k = 1..nf :

s '' / dxk ,s '' dpk ,s

lxk ,s '' lpk ,s '


s '=1

s = 1,.., npk

s lxk , s ' lt k hk (dxk , s d k ,0 ) s '=1

s = 1,.., nxk ;

siendo dk,0 la fecha de la ltima recogida del periodo de planificacin anterior. 2.4.- Rutas diarias Una vez determinadas todas las cantidades a recoger y fechas para cada tipo de piezas, o materia prima, (conjunto CX(k)) para cada da se debern disear las rutas de recogida las piezas correspondientes. Para la recogida de las materias primas se dispone de una flota homognea de vehculos con capacidad conocida tanto en peso, como en n de pallets. Como se ha comentado anteriormente los vehculos salen y llegan al mismo punto: el almacn regulador. Cada recogida de materia prima debe ser realizada por un solo vehculo en cada da. Existen una serie de normas conocidas referidas a los tiempos de conduccin y descanso.

Por tanto este problema se ajusta al conocido Problema de Rutas de Vehculos o VRP (Vehicle Routing Problem), o para ser ms precisos es un Problema de Rutas de Vehculos con Restricciones de carga y tiempo (ver Laporte y otros, (1985)). Existen muchos algoritmos de solucin para el VRP, (y/o de variantes, principalmente del VRPTW), en la literatura. Se pueden encontrar recopilaciones en Laporte y otros, (1998), (1999), y Desaulniers, (1999). Con RT se representa, en el conjunto de das, la configuracin de las rutas. Donde RT = {RT(d)/ d=1...ndias}, y RT(d) representa, las rutas del da d como un conjunto de cadenas de puntos, una cadena por cada ruta, de la forma siguiente RT(d) : 0 2 4 5 0; 0 1 3 7 0.

Los 0 representan el origen y destino final de los vehculos (AR); los dems elementos de las cadenas indican las piezas que se recogen en esa ruta y el orden de visita. Por ejemplo en este caso, en el da d, la primera ruta realiza la recogida de las piezas 2, 4 y 5, y la segunda ruta la de las piezas 1, 3 y 7, (la pieza 6 por ejemplo no se recoge ese da). La suma de las distancias recorridas por todas las rutas determinar el coste de transporte. Obsrvese que las soluciones en este nivel van a estar condicionadas fuertemente por los valores en los niveles superiores (A) y (C). 3.- Movimientos vecinales y procedimiento de Bsqueda Local Dada una vector S, de calendarios de pedidos de productos elaborados, definimos su vecindario N(S) de la siguiente forma: SN(S) 1 i{1,2,,np}/ S(i) S(i) y i i S(i) = S(i). Es decir, soluciones vecinas de S son todas aquellas a las que se da lugar cuando un pedido (y slo uno) cambia su calendario. Para valorar los posibles movimientos de una solucin a otra (en el nivel A), veamos como se modifican inicialmente las variables de decisin en el resto de los niveles. Cuando un pedido de producto elaborado i cambia del calendario C al C, los valores de R cambian de la siguiente manera: - Para cada da d C-C eliminar el pedido i de R(d) - Para cada da d C-C aadir el pedido i a R(d) insertndolo en el slot menos ocupado. Para el conjunto de los da afectados es fcil calcular la diferencia entre el slot ms ocupado antes y despus del cambio, y por tanto la variacin del personal necesario. Por otra parte para cada pieza k del producto i (es decir, materias primas afectadas por el cambio) se determinan los nuevos conjunto CP(k) a que el cambio dara lugar, y se toma CX(k) = CP(k). Es decir suponemos que las nuevas recogidas se realizan en las fechas topes requeridas.

Finalmente para cada una de las materias primas afectadas k, se realizan los siguientes pasos: - s = 1..nxk,s se elimina la vieja recogida s de RT(dxk,s). Para ello vale unir los puntos de visita anterior y posterior - s = 1..nxk,s se aade la nueva recogida s de RT(dxk,s). Para ello se inserta entre 2 puntos de RT(dxk,s) de forma que se incremente menos la ruta resultante sin violar ninguna restriccin. La variacin de la distancia total recorrida se puede calcular fcilmente a partir de los arcos que se eliminan y los que se aaden. Adems de para cada uno de los niveles B, C y D tambin se van considerar diferentes movimientos vecinales que pueden ayudar a mejorar las soluciones una vez que se ejecuta un movimiento. As la composicin de slots diarias, R(d), pueden ser mejoradas con movimientos 0-1 (un pedido pasa de un slot a otro), o 1-1 (intercambios de pedidos de diferentes slots). Estos intercambios han sido usados frecuentemente en mltiples trabajos para el MSP, como en Hubscher y Glover (1994), y Thesen, (1998). De la misma forma en el nivel C, se van a considerar cambios en la que la recogida s de una pieza j puede adelantarse o atrasarse siempre que no se violen las restricciones sealadas en el apartado 2.3., (y considerando siempre que dxk,s ( dxk,s-1 , dxk,s+1)). Al realizar estos intercambios se modifican las rutas de los das afectados segn se seal en este mismo apartado. Para valorarlos vale considerar los arcos que se eliminan y aaden. Finalmente las rutas diarias pueden ser mejoradas usando movimientos propuestos en Pacheco y Delgado, (2001), basados en CROSS intercambios de Taillard et al., (1997), y Or-intercambios, (1976). Los CROSS intercambios consisten en intercambiar cadenas de puntos entre 2 rutas diferentes, y los Or-intercambios consiste en recolocar una cadena de puntos en una posicin diferente dentro de la misma ruta. De esta forma el procedimiento de bsqueda local que se propone para el problema completo, a partir de una solucin inicial, (S, R, CX = {CX(k), k=1..nf}, y RT), acta de la siguiente manera. Procedimiento de Bsqueda Local Repetir Buscar la mejor solucin vecina de S Si produce mejora en la funcin objetivo entonces: Ejecutar el movimiento modificando las componentes de R, CX(k) correspondientes y RT, (1) Mejorar los R(d) afectados con movimientos 0-1 y 1-1, (2) Mejorar las rutas modificando los das de recogida de piezas (3) Para cada RT(d) modificado por los pasos (1) o (3) mejorar las rutas con CROSS intercambios y Or- intercambios hasta que no haya ninguna solucin vecina mejor

4.- Problemas con datos reales: Resultados Finalmente se van a mostrar los resultados obtenidos por el algoritmo propuesto para un ejemplo con datos reales. El algoritmo va a usar como solucin inicial los obtenidos por el operador logstico (OL) y se va a analizar cuanto mejora dicha solucin. Se trata de datos referentes a entregas de productos en el almacn regulador del 11 al 28 de Junio de 2001, y las correspondientes entradas de piezas del 1 al 25 de Junio de 2001. Los productos son 8 tipos de cinturones de seguridad para diferentes versiones del Opel Astra, mientras que en total hay 117 piezas diferentes. Cada cinturn est compuesto de entre 21 y 24 piezas, (obviamente algunos tipos de cinturones pueden tener algunos piezas iguales). Tanto el almacn regulador como la empresa fabricante se localizan en el polgono de Villalonquejar (Burgos). En cuanto a las factoras se distribuyen en 24 localidades de Espaa (9; 4 en Barcelona, 2 en Burgos y 1 en Guipuzcoa), Alemania (8), Francia (4), Suiza (2) e Italia (1). El capacidad de produccin de la empresa es de unos 900000 cinturones por mes (entre 3400 y 5000 cinturones al da segn el tipo), aunque en las entregas correspondientes a estos datos quedan bastante por debajo (1800 como mxima entrega en un da para un tipo de cinturn). Se dispone de una flota de vehculos de una capacidad de 66 europallets para las recogidas de piezas. El coste por Kilmetro recorrido es de 145 pesetas; y el coste por carretillero de 12000 pesetas al da; (1 carretillero carga 10 pallets por hora). A continuacin se muestran la solucin obtenida por el operador logstico (OL), y la resultante de aplicar a esta el procedimiento de Bsqueda Local (OL+BL). Kilmetros Contratos carretilleros Coste Total OL 13543 53 2599735 OL+BL 13186 50 2511970

La reduccin en el coste total de las operaciones es de un 3,37 %, cantidad que puede parecer pequea. Sin embargo estos resultados entendemos que son esperanzadores puesto que no se parte de una solucin arbitraria o aleatoria, sino de la aportada por los responsables del operador logstico con mucha experiencia. Por otra parte los movimientos vecinales as definidos han resultado eficaces al demostrar conseguir leves mejoras, y pueden formar parte de otras estrategias ms sofisticadas como Bsqueda Tab, Path Relinking, VNS, etc que no se limitan a obtener un mnimo local. Referencias y Bibliografa COFFMAN Jr.,E.G., GAREY,.M.R. and JOHNSON,D.S. (1.978): An Application to the Bin-Packing to Multiprocessor Scheduling, SIAM J. Comput., 7, 1-17.

DELGADO,C., CASADO,S. y ALEGRE,J. (2002): Problema de contratacion de carretilleros para un almacn de productos manufacturados. Aceptada para su publicacin en Questiio. FUJITA,S. and YAMASHITA,M. (2.000): Approximation Algorithms for Multiprocessor Scheduling Problem. IEICE Trans. Inf. & Syst., vol. E83-D, n 3, 503509. GRAHAM,R.L. (1.969): Bounds on Multiprocessing Timing Anomalies. SIAM J. appl. Math. 17, 416-429. HUBSCHER,R. and GLOVER,F. (1.994): Applying Tabu Search with Influential Diversification to Multiprocessor Scheduling. Computers and Operations Research 21, 877-844. LAPORTE,G, GENDREAU,M., POTVIN,J.-Y. and SEMET,F. (1.999): Clasical and Moderns Heuristics for the Vehicle Routing Problem. Les Cahiers du GERAD, G99-21. Montreal, Canada. LAPORTE,G. NOBERT,Y. and DESROCHERS,M. (1.985). "Optimal routing under capacity and distance restrictions". Operations Research 33, 1.075-1.073. LAPORTE,G and SEMET,F. (1.998): Clasical Heuristics for the Vehicle Routing Problem. Les Cahiers du GERAD, G-98-52. Montreal, Canada. OR, I. (1.976). Traveling Salesman Type Combinatorial Problems y their Relations to the Logistics of Blood Banking. Ph. Thesis. Dpt. of Industrial Engineering y Management Sciences, Northwestern Univ. PACHECO,J. y DELGADO,C. (2.000). Resultados de diferentes experiencias con Bsqueda Local aplicadas a problemas de rutas. Revista Electrnica Rect@. ASEPUMA, vol.2, n 1, pgs. 54-81. PACHECO,J., LAGUNA,M., CASADO,S. y ALEGRE,J. (2002): Problema de contratacin de carretilleros en un fbrica de componentes de automviles. I Congreso Espaol de Algoritmos Evolutivos y Bioinspirados, AEB02, Mrida Febrero, 2002. TAILLARD,E., BADEAU,P., GENDREAU,M., GUERTAIN,F. and POTVIN,J.Y. (1.997). "A Tabu Search heuristic for the Vehicle Routing Problem with Time Windows". Transportation Science. Vol. 31, pp 170-186. THESEN,A. (1.998). Design and Evaluation of Tabu Search Algorithms for Multiprocessor Scheduling. Journal of Heursitics, 4: 141-160.

También podría gustarte