Creación de una herramienta informática para la optimización del posicionamiento de elementos en almacenes, basándose en la metodología AHP y la programación lineal
Full text
Sevilla, 2019 Autor: Sergio Cuaresma Martín Tutor: José Manuel Framiñan Torres Creación de una herramienta informática para la optimización del posicionamiento de elementos en almacenes, basándose en la metodología AHP y la programación lineal Trabajo de Fin de Grado Grado en Ingeniería de Organización Industrial Dep. Organización Industrial y Gestión de Empresas I Escuela Técnica Superior de Ingeniería Universidad de Sevilla
Trabajo de Fin de Grado Grado en Ingeniería de Organización Industrial Autor: Sergio Cuaresma Martín Tutor: José Manuel Framiñan Torres Dep. Organización Industrial y Gestión de Empresas I Escuela Técnica Superior de Ingeniería Universidad de Sevilla Sevilla, 2019 Creación de una herramienta informática para la optimización del posicionamiento de elementos en almacenes, basándose en la metodología AHP y la programación lineal
Índice 1 Introducción ....................................................................................................... 1 1.1 Objetivo del proyecto ................................................................................. 1 1.2 Justificación ................................................................................................ 2 1.3 Sumario ....................................................................................................... 3 2 Descripción del problema ................................................................................. 5 2.1 Introducción de la problemática ................................................................ 5 2.2 Descripción del almacén ............................................................................ 6 2.2.1 Posiciones del almacén ....................................................................... 6 2.2.2 Elementos del almacén ........................................................................ 9 2.2.3 Funcionamiento del almacén .............................................................. 11 2.3 Caso real, almacén de Sevilla .................................................................... 13 2.4 Problemas principales del almacén y causas ............................................ 19 2.5 Cálculo de pérdidas .................................................................................... 20 3 Descripción de la metodología ......................................................................... 23 3.1 Presentación de las metodologías .............................................................. 23 3.1.1 Metodología AHP ............................................................................... 24 3.2.1 Programación lineal, el modelo .......................................................... 26 3.2.1.1 Formulación de las bases para el modelo matemático ............... 27 3.2.2 Metodología AHP dentro del modelo, cálculo de utilidades ............ 34 4 Diseño de la solución ......................................................................................... 37 4.1 Bases de la herramienta .............................................................................. 37 4.2 Planteamiento general ................................................................................ 38 4.3 Documentos usados o generados por la herramienta ............................... 40 4.3.1 Formato de datos ................................................................................. 40 4.4 Descripción de los procesos de la herramienta ......................................... 51 4.4.1 Especificación del proceso selección de utilidad .............................. 51 4.4.2 Especificación del proceso de entradas .............................................. 51 4.4.3 Especificación del proceso de salidas ................................................ 58
5 Validación y experimentación .......................................................................... 67 5.1 Determinación de los casos ........................................................................ 67 5.2 Determinación de los datos usados ........................................................... 69 5.3 Determinación del procedimiento seguido en cada caso ......................... 74 5.4 Obtención de los resultados ....................................................................... 81 5.5 Conclusiones en base a los resultados ....................................................... 87 6 Conclusiones ...................................................................................................... 91 7 Bibliografía ........................................................................................................ 95
Índice de tablas Tabla 2 - 1, Clasificación de material defectuoso por motivos .............................................................. 21 Tabla 2 - 2, Clasificación de tratamiento de material defectuoso por decoloración ............................. 21 Tabla 2 - 3, Costes de eliminación de productos .................................................................................... 22 Tabla 5 - 1, Pesos de los valores de distancia y ocupación para ambas soluciones ............................. 70 Tabla 5 - 2, Pesos comunes para las soluciones del caso 1 y 2 en el AHP referente a posiciones ...... 71 Tabla 5 - 3, Pesos para la comparación de los elementos ...................................................................... 71 Tabla 5 - 4, Comparativa de valores totales del caso 1 .......................................................................... 82 Tabla 5 - 5, Comparativa de valores totales del caso 2 por semanas .................................................... 83
Índice de figuras Figura 2 - 1, Foto 1 Estanterías de la zona interior de cuatro baldas ....................................................... 8 Figura 2 - 2, Foto 2 Carriles de la zona exterior ....................................................................................... 9 Figura 2 - 3, Plano del interior del almacén ............................................................................................ 17 Figura 2 - 4, Plano del exterior del almacén............................................................................................ 18 Figura 3 - 1, Diagrama de jerarquías ....................................................................................................... 24 Figura 3 - 2, AHP de la importancia global de elementos ..................................................................... 35 Figura 3 - 3, AHP de la importancia global de las posiciones para el elemento i ................................ 36 Figura 4 - 1, Diagrama de flujo general de la herramienta informática ................................................ 39 Figura 4 - 2, Documento de características del almacén ........................................................................ 42 Figura 4 - 3, Documento de características de elementos ...................................................................... 42 Figura 4 - 4, Documento de valores de utilidad de los elementos ........................................................ 43 Figura 4 - 5, Documento de valores de utilidad para los criterios AHP .............................................. 44 Figura 4 - 6, Documento de entradas ....................................................................................................... 44 Figura 4 - 7, Documento de salidas del proceso general ........................................................................ 45 Figura 4 - 8, Documento de salidas del proceso específico ................................................................... 46 Figura 4 - 9, Documento de situación del almacén ................................................................................ 48 Figura 4 - 10, Documento de registro de elementos en el almacén ....................................................... 50 Figura 4 - 11, Documento de registro de salidas ................................................................................... 51 Figura 4 - 12, Colocación del elemento 1 durante la valoración de la permutación ............................ 57 Figura 4 - 13, Colocación del elemento 2 durante la valoración de la permutación, en vertical ......... 57 Figura 4 - 14, Colocación del elemento 2 durante la valoración de la permutación, en horizontal .... 58 Figura 4 - 15, Actualización de la primera columna de la balda, situación 1 ....................................... 61 Figura 4 - 16, Actualización de la primera columna de la balda, situación 2 ....................................... 61 Figura 4 - 17, Actualización de la primera columna de la balda, situación 3 ....................................... 62 Figura 4 - 18, Actualización de una columna vacía de la balda ............................................................ 62 Figura 4 - 19, Actualización de la última columna de la balda, situación 1 ......................................... 63 Figura 4 - 20, Actualización de la última columna de la balda, situación 2 ......................................... 63 Figura 4 - 21, Actualización de la última columna de la balda, situación 3 ......................................... 64 Figura 4 - 22, Actualización de columna intermedia de la balda, situación 1 ...................................... 65 Figura 4 - 23, Actualización de columna intermedia de la balda, situación 2 ...................................... 65 Figura 4 - 24, Actualización de columna intermedia de la balda, situación 3 ...................................... 65 Figura 5 - 1, Gráfica comparativa sobre el total de la empresa, solo los carriles, solución 1 .............. 84 Figura 5 - 2, Gráfica comparativa sobre el total de la empresa, solo los carriles, solución 2 .............. 84
6 2.2 Descripción del almacén La descripción detallada de un almacén de la compañía requiere conocer tres puntos clave; el tipo de posiciones de las que se dispone en el almacén, los elementos que pueden entrar o salir y el funcionamiento, en cuanto a procesos que se siguen en el interior del mismo y los cuales son de gran importancia. Estos tres puntos clave son definidos en cada uno de los siguientes sub-apartados. En primer lugar se definen las diversas posiciones que se pueden diferenciar en el almacén, junto con una descripción detallada de las limitaciones de las mismas, distinguiendo entre dos tipos de posiciones; en segundo lugar se incluye una descripción de los tipos de elementos que se manejan en el almacén, donde se hace una descripción de los diferentes parámetros y características relevantes para el proyecto; y en tercer y último lugar, una explicación acerca del sistema actualmente usado por la compañía para controlar el almacén en términos de entradas y salidas de elementos. Una vez conocidos todos los factores que afectan a la descripción del almacén se muestra el caso real que se ha usado en este proyecto, el almacén de Sevilla; detallando como se han obtenidos los diversos valores y una descripción de la distribución de las posiciones, en el Apartado 2.3 Caso real, almacén de Sevilla. 2.2.1 Posiciones del almacén En este sub-apartado se detallan los tipos de posiciones que existen dentro de los almacenes de la compañía, como se ha mencionado anteriormente se distinguen dos tipos de posiciones, las baldas y los carriles. En primer lugar trataremos las baldas con una explicación sobre los diversos parámetros que determinan sus características físicas, pues son los valores que se usan en la propuesta de solución del proyecto y tienen una gran relevancia en el mismo. En segundo lugar trataremos los carriles, donde además de los parámetros que los definen físicamente se explican ciertos criterios por motivos de seguridad que tienen efecto sobre estos parámetros, haciendo que deban ser limitados o modificados para proporcionar seguridad a los trabajadores presentes en el almacén y que no se incluyen dentro de las propias limitaciones físicas que pueda tener una posición. 1. Baldas: Las baldas son consecuencia de la división en varios niveles de las estanterías que se encuentran posicionadas en el interior del almacén, es uno de los conceptos
7 principales dentro del proyecto. Siempre se encuentran en posiciones interiores, impidiendo que se pueden devaluar o dañar los elementos colocados por motivos de clima o lumínicos, dado que existen elementos que pueden deteriorarse únicamente por la continuada exposición a la luz solar. A continuación se muestran aquellos parámetros que definen estas posiciones y una descripción de cada uno de ellos. Parámetros de las baldas: Carga máxima: medida en kilogramos, indica la cantidad máxima de peso que puede soportar el listón de la balda antes de entrar en los límites de peligrosidad fijados por el fabricante de las estanterías. Este valor es de gran importancia pues si se sobrepasara, daría lugar a situaciones de extremo riesgo ya que se trabajan con elementos de gran peso y el desplome de alguno de ellos puede tener consecuencias desastrosas. Ancho de la balda: se encuentra medido en metros y es un parámetro que limita el número de elementos que se pueden colocar de manera adyacente dentro de cada balda. Alto de las baldas: medido en metros, expresa la altura máxima. Este parámetro limita el número de elementos que se pueden apilar en cada balda, para aquellas baldas en las cuales no exista realmente una limitación física, aquellas que se encuentran en la parte superior de las estanterías, se les ha limitado a un metro y medio la altura por motivos de seguridad. Distancia a fábrica: medida en metros, representa el recorrido que tiene que hacer una carretilla para llevar un elemento desde la posición a la zona de fabricación. Distancia a carga: medida en metros, representa el recorrido que tiene que hacer una carretilla para llevar un elemento desde la posición a la zona de carga de camiones. Aunque se hable de baldas, durante la aplicación de la propuesta de solución se llega a subdividir aún más el concepto de balda hasta llegar a las llamadas columnas. Que no son más que los distintos conjuntos de elementos que hay apilados sobre cada
8 balda, con valores de altura y ancho distintos; este concepto es la forma más sencilla de definir la situación de cada balda. Mientras que los datos de las baldas describen el valor máximo disponible, las columnas definen la situación actual haciendo referencia a la altura de los elementos que se encuentran apilados en esa columna y al ancho máximo que ocupan. A continuación se incluye una foto de varias estanterías del almacén que tienen cuatro baldas: Figura 2 - 1, Foto 1 Estanterías de la zona interior de cuatro baldas [Fuente: Elaboración propia con permiso de Weber] 2. Carriles: Los carriles son posiciones que se forman por apilar elementos en columnas de manera adyacente unas a otras formando filas, estas posiciones se pueden encontrar tanto dentro de una nave industrial como en el exterior. Debido a que se alcanzan valores de altitud de las columnas muy superiores a las que se podrían alcanzar en una balda, los elementos que se pueden colocar en ellos están estrictamente limitados a aquellos que sean elementos completos y evitando colocar cualquier elemento con una forma irregular. A continuación se muestran aquellos parámetros que definen los carriles y una descripción de cada uno de ellos.
9 Parámetros de los carriles: Número de palés estándar: este valor define el número de elementos que se pueden colocar en cada carril, haciendo uso de una variable explicada en el Apartado 2.2.2 Elementos del almacén. En general las columnas de los carriles deben tener como máximo una altura equivalente a cuatro palés estándar, que serían unos seis metros; pero cuando la columna del carril se encuentra en contacto con una zona peatonal, la columna en cuestión no puede superar los tres metros de altura. Distancia a fábrica: medida en metros, representa el recorrido que tiene que hacer una carretilla para llevar un elemento desde el carril a la zona de fabricación. Distancia a carga: medida en metros, representa el recorrido que tiene que hacer una carretilla para llevar un elemento desde el carril a la zona de carga de camiones. A continuación se incluye una foto de varios carriles en la zona exterior del almacén: Figura 2 - 2, Foto 2 Carriles de la zona exterior [Fuente: Elaboración propia con permiso de Weber] 2.2.2 Elementos del almacén En este sub-apartado se detallan los diferentes tipos de elementos manejados en el almacén y se explica de manera detallada un concepto de gran importancia dentro de la solución planteada en este proyecto, el palé estándar.
10 Los elementos manejados por la compañía dentro de sus almacenes pueden ser tanto palés completos como incompletos, ya sean provenientes de la fabricación en el mismo centro o de centros de fabricación ubicados en otras zonas geográficas. Cada elemento tiene un conjunto de parámetros que definen sus características físicas, a continuación se detallan aquellos parámetros usados para definir los elementos del almacén, así como una descripción de cada uno de ellos. Parámetros de los elementos: Codificación del elemento: valor numérico que identifica el elemento, en este proyecto se usan dos grupos numéricos distintos. Para elementos usados en la fabricación de productos se usan valores entre 1000 y 1999; para los elementos que sean productos acabados dispuestos para la venta se usan valores superiores a 2000. Ancho del palé: medido en metros, define el tamaño a lo ancho del palé. Este valor no varía aunque se trate de un palé incompleto. Peso del palé completo: medido en kilogramos, define el peso normal de un palé completo del elemento en cuestión. Altura del palé completo: se mide en metros y representa la altura normal de un palé completo del elemento. Relación con el palé estándar: este valor identifica con un número entero la equivalencia en palés estándar de un palé completo del elemento. Limitación de colocación: se trata de un valor binario que determina si el palé en cuestión puede ser colocado en el exterior o no por motivos de clima o lumínicos. En el caso de que el valor sea uno el elemento no tiene ninguna restricción para su colocación; mientras que en el caso de que valga cero el elemento no puede ser colocado en posiciones exteriores. Número de capas: este valor entero define cuantas capas acumuladas de elementos superpuestos componen el palé. Se usa principalmente para determinar la altura de palés incompletos. A continuación se muestra un ejemplo del cálculo de las características físicas de un palé de un elemento del almacén de Sevilla, haciendo uso del número de capas: Tomando de referencia el elemento 1073 que tiene un valor de número de capas igual a
11 seis y el palé completo pesa 1500 kg y mide un metro de altura; se puede calcular que cada capa pesa 250 kg y mide 0.167 metros de altura. Con lo que si el palé tiene dos capas, pesa entre 251 kg y 500 kg; y mide 0.334 metros más 0.1 del palé de madera sobre el que se colocan los elementos. Este 0.1 metros se suma a todos los palés de elementos una vez calculada su altura. Para los palés incompletos el peso no tiene por qué ser múltiplo del valor de cada capa pues a su vez cada capa se divide en sacos o cajas, y si se retira un saco la altura se mantiene pero el peso disminuye; aunque la altura si debe ser un múltiplo entero de este valor redondeando hacia arriba. Por ello se usa esta clasificación por bandas o capas para definir la altura de los palés. Palé estándar: En este sub-apartado y en el anterior, el 2.2.1 Posiciones del almacén; se hace referencia al llamado palé estándar en repetidas ocasiones, el cual es definido como un palé de un elemento que tiene unas características determinadas, a continuación se definen las dos características físicas del palé estándar que son relevantes para el almacén: La altura que es de 1.4 metros, hay que tener en cuenta que esta altura solo incluye el producto y no la base del palé; la cual mide 0.1 metros. El ancho que es de 1.1 metros. Este concepto tiene como principal uso la colocación de elementos en los carriles, limitándolos en función de su equivalencia con él, pues es el valor usado para contabilizar el número de palés colocados en cada carril. Si un elemento o palé específico no tiene una equivalencia completa con el palé estándar de su tipo de elemento, este no puede hacer uso de los carriles, pues implica que el palé en cuestión no está completo. 2.2.3 Funcionamiento del almacén Tras explicar los diversos tipos de posiciones y elementos, y los parámetros que los definen; aún es necesario entender el sistema usado por la empresa para el funcionamiento interno del almacén, el cual se describe en este sub-apartado; a continuación se explican varias directrices de obligado cumplimiento que se siguen en todos los almacenes de la empresa.
12 Las directrices que se deben de seguir dentro del almacén son las siguientes: 1. Los elementos fabricados solo pueden tener un palé incompleto dentro del mismo almacén, aunque hay situaciones en las que por decisión del propio encargado se introducen más de uno. Esta es la única directriz que no es obligatoria, idealmente se busca no tener más de un palé incompleto de cada tipo dentro del almacén pero se pueden dar situaciones donde sea necesario almacenar varios por motivos relacionados con controles de calidad o similares. 2. Los productos provenientes del exterior que solo se encuentran de paso, relativo a un periodo de un día o menos, se mandan a una zona específica y no se introducen dentro del almacén, por lo que no se tienen en cuenta para el proyecto pues no generan ningún problema dentro del funcionamiento del almacén al tener su propia zona de espera. 3. No se permite la colocación de ningún palé incompleto en los carriles, pues puede ser peligroso al generar inestabilidad si se colocara otro palé encima. 4. Las carretillas deben seguir un camino determinado para llegar a cualquier posición del almacén, esta directriz se incluyó por motivos de seguridad vial. Esta cuarta directriz es la que determina la distancia a la que se encuentra cada posición de la zona de fabricación o la zona de carga, que han sido nombradas en el sub-apartado 2.2.1 Posiciones del almacén; y que hacen referencia a la distancia que existe entre cada ubicación, ya sea una balda o carril, a cada una de las zonas que son usadas como punto de referencia dentro del almacén, siguiendo el recorrido fijado. 5. Las salidas de elementos se realizan aplicando FIFO (first in, first out), aunque se prioriza la salida de los restos si estos se adecuan más a las cantidades demandadas en el pedido. En el caso de los carriles debido al acceso que tienen se considera en el proyecto que el carril tiene la fecha del elemento más antiguo que se encuentre ubicado en el mismo. La actualización de las posiciones al producirse una salida están explicadas en el Capítulo 4; Apartado 4.4.3 Especificación del proceso de salidas.
13 2.3 Caso real, almacén de Sevilla Para poder dar un mayor entendimiento al lector de la casuística anteriormente citada en este capítulo, se incluye este apartado donde se muestra el caso real del almacén evaluado en este proyecto. En primer lugar se detallan los tipos de posiciones existentes en el almacén, en segundo lugar se detallan los elementos que pueden entrar o salir del almacén y en tercer lugar se incluyen dos planos para mostrar la distribución de las distintas posiciones en el almacén y el recorrido que siguen las carretillas. 1. Posiciones del almacén: En el caso de Sevilla el almacén está compuesto por una nave industrial, la misma en la que se fabrica, y una zona exterior a la nave. La primera zona, la nave, se encuentra totalmente techada mientras que la zona exterior no; existen posiciones de ambos tipo en el interior de la nave, mientras que en el exterior solo existen carriles. A continuación se especifican según su tipo cada una de las posiciones existentes. 1.1. Baldas: El almacén tiene 55 estanterías disponibles para colocar los productos, existen estanterías con tres o cuatro baldas haciendo un total de 230 baldas. Todas las baldas se encuentran en el interior del almacén. A continuación se explica cómo se han obtenido los datos o parámetros que definen las baldas: Carga máxima: la carga máxima admisible para cada listón o balda ha sido obtenida de los informes expedidos por la empresa fabricante, así como por los certificados que da la empresa subcontratada para llevar el chequeo de las estanterías. Ancho de las baldas: han sido obtenidos de los documentos expedidos por la empresa fabricante y comprobados mediante medición de cada una de las estanterías. Alto de las baldas: debido a que con el paso del tiempo los listones de las estanterías sufren leves pandeos por los pesos colocados, la altura que se da en los informes de los fabricantes no se corresponde con la realidad. Estos
14 pandeos no tienen efecto en la seguridad de las estanterías pero si en la altura real, por lo que estás alturas han sido obtenidas mediante medición. Distancias a fábrica y a carga: las distancias han sido obtenidas mediante medición en el terreno. Estas dos distancias suelen aumentar en la misma dirección, una posición que se encuentra más alejada de la zona de carga también lo está de la zona de fabricación; pero existen ciertas posiciones en las que no se cumple esta norma. Estas baldas están identificadas desde el número 51 hasta la 78 y se les da un trato especial a la hora de medir las distancias; en estas baldas mientras la distancia a carga aumenta la distancia a fábrica disminuye; es decir: ambas distancias tienen un crecimiento inverso. En el plano del interior del almacén, Figura 2 - 3, incluido en las siguientes páginas se han identificado estas baldas señalándolas con una cruz azul sobre cada una de las estanterías afectadas. Los datos de las baldas se pueden ver en el Anexo: Características de las baldas. 1.2. Carriles: En el caso de los carriles el almacén dispone de 149, los cuales se encuentran tanto dentro de la nave como en la zona exterior. En este caso se consideran los dos primeros carriles como aquellos que se encuentran techados mientras que el resto se encuentran en el exterior. Esto implica que aquellos elementos del almacén los cuales no puedan ser colocados en el exterior solo pueden hacer uso de los dos primeros carriles descritos en los documentos. A continuación se detalla cómo se han obtenido los parámetros que definen cada carril: Número de palés estándar: estos valores han sido obtenidos mediante medición. Dividiendo la longitud del carril entre 1.1 metros (el ancho de un palé estándar) y multiplicando por cuatro el resultado para aquellos carriles que no estén limitados por motivos de seguridad; en los que se limitan por motivos de seguridad se han retirado dos palés por cada columna en contacto con una zona peatonal.
15 En el caso específico de Sevilla aquellos carriles en los que se debe limitar la altura de las columnas por motivos de seguridad, diferenciando dos grupos; son los identificados desde el número 58 hasta el 66, y los identificados desde el 67 al 77. En el primer grupo se limita a dos la altura de todas sus columnas mientras que en el segundo grupo solo se limita la altura de una de las columnas, aquella en contacto con una zona peatonal. Distancias a fábrica y a carga: las distancias han sido obtenidas de la misma forma que para las baldas, es decir; mediante medición en el terreno. Los datos de los carriles se pueden ver en el Anexo: Características de los carriles. Todas las medidas están calculadas en metros y sobre el terreno, dado que no ha sido posible la utilización de planos al estar estos desactualizados tras varias modificaciones en la planta; se han creado dos planos representativos de la situación pero solo de manera orientativa, dado que existen zonas que han sido modificadas y las distancias pueden variar. 2. Elementos del almacén: La empresa maneja un gran número de referencias a nivel global, en el caso del almacén de Sevilla se elevan a un total de 376 elementos; entre materias primas y productos acabados. Existiendo una gran variedad entre ellos; aunque los más representativos del almacén tienen unos valores bastante similares en términos de rotación y número de fabricaciones. El cálculo de las características físicas de cada elemento ha sido en una parte calculado mediante medición, para aquellos elementos más representativos dentro del almacén; y por otra obtenida mediante datos proporcionados por la empresa. Mientras que los valores relacionados con la logística como es la rotación de los elementos, han sido proporcionados por la compañía. Los datos de los elementos se pueden ver en el Anexo: Características de los elementos.
22 Todo el producto dañado se desecha directamente pues no es posible su reciclado, en total 6.19 Tn/año. El coste del vertedero para los productos desechados tiene por una parte el componente debido al transporte de estos materiales al mismo vertedero desde la empresa y el referente al tratamiento que se les debe dar para evitar la contaminación que pueden producir: Transporte (€/Tn) Procesado (€/Tn) Total (€/Tn) 5.77 6.97 12.74 Tabla 2 - 3, Costes de eliminación de productos [Fuente: Weber 2016] Coste del material desechado valorando solo el propio producto, se ha obtenido tomando el valor medio de coste de fabricación de los productos desechados el cual es de 80 €/Tn. El coste del reciclado es equivalente a 65 €/Tn, en este coste facilitado por la compañía se incluyen todos aquellos costes referentes a aquellos procesos adicionales que son necesarios hacerle a un producto para que pueda ser comercializado de nuevo. En total el coste de los productos desechados viene dado como: (6.19 Tn/año + 6.6 Tn/año)*(80 €/Tn + 12.74 €/Tn) = 1186.15 €/año. Mientras que el coste del reciclado asciende a: 4.4 Tn/año*65 €/Tn = 286 €/año. En total los costes relacionados con esta problemática ascienden a: 1186.15 €/año + 286 €/año = 1472.15 €/año. Haciendo un sumatorio de estas pérdidas obtenemos el siguiente valor total: 2400 €/año + 1050 €/año + 1472.15 €/año = 4922.15 €/año. Este valor es bastante elevado teniendo en cuenta el coste anual del almacén, y conociendo además que nos encontramos en uno de los mejores almacenes de la compañía; reducir estos sobrecostes sería algo muy beneficioso.
23 3 Descripción de la metodología En el proyecto se ha planteado crear una herramienta informática que permita obtener un posicionamiento del almacén de la compañía con un mejor rendimiento, para ello se usan dos metodologías; por una parte se hace uso de la programación lineal para definir el funcionamiento del almacén mediante un modelo matemático y así poder optimizarlo; y por otra parte se hace uso de la metodología AHP o Proceso de jerarquía Analítica (PJA) en castellano, para evaluar la utilidad de colocar cada elemento en las distintas posiciones. En este tercer capítulo se exponen las dos metodologías usadas para la solución propuesta de manera general, y tras la presentación y definición de las metodologías, se especifica cómo se han integrado dentro de la solución propuesta de una manera detallada. 3.1 Presentación de las metodologías En primer lugar, para la recreación del almacén en un modelo matemático que permita simular como afectan las diversas situaciones al sistema, dando lugar a un conjunto de escenarios posibles, se utiliza la programación lineal. Todo ello viene descrito en el Apartado 3.2.1 Programación lineal, el modelo. Donde podemos ver cuáles son las distintas restricciones que se imponen a los elementos para poder colocarlos en una ubicación concreta así como la evaluación de cada una de las posiciones para cada elemento. En segundo lugar, para evaluar la utilidad de colocar un elemento en una posición determinada se hace uso del método para la toma de decisiones multicriterio llamado AHP. Este método trata de evaluar un conjunto de alternativas basándose en la comparación de las mismas respecto a unos criterios determinados, permitiendo una clasificación de las alternativas de la menos deseable a la más deseable. La explicación de esta metodología viene dada en el Apartado 3.1.1 Metodología AHP. Es necesario un AHP para cada elemento, que clasifique las posiciones según las características del mismo sin tener en cuenta el resto de elementos, y otro AHP que evalúe la importancia de los distintos elementos entrantes entre sí. Ambos tipos de AHP, los referentes a las posiciones y el referente a los elementos, son totalmente independientes entre sí y el valor final de la utilidad para una posición y un elemento determinado vendrá dada por la multiplicación del resultado de ambos AHP.
24 Toda la aplicación del método AHP, y el cálculo de utilidades, para el caso específico vienen explicadas en el Apartado 3.2.2 Metodología AHP dentro del modelo, cálculo de utilidades. 3.1.1 Metodología AHP La metodología AHP permite crear una relación de importancia entre diversas alternativas, usando principalmente para evaluar las diferentes opciones la comparación por pares de las distintas alternativas mediante la aplicación de una estructura jerárquica multinivel (1980, Thomas L.Saaty); es decir: partiendo de la identificación de un problema, este se representa de manera jerárquica incluyendo criterios y alternativas. Ejemplo Figura 3 - 1. Figura 3 - 1, Diagrama de jerarquías [Fuente: Elaboración propia] En esta representación jerárquica cada arco tiene asociado un peso que representa la importancia relativa de los distintos criterios y las importancias relativas de las alternativas respecto a los criterios. En la Figura 3 – 1, Diagrama de jerarquías, están representados por la variable 𝑤𝑖𝑗, siendo esta la importancia relativa del nodo i respecto del nodo j. La importancia global de cada alternativa se calcula agregando su importancia relativa respecto de cada uno de los criterios, ponderando estos de acuerdo con su contribución relativa al objetivo global.
25 Estas importancias relativas se calculan mediante el uso de matrices de comparación por pares, estas matrices se realizan tanto para la comparación de alternativas como de criterios; en nuestro caso las matrices de comparación de criterios y subcriterios no son calculadas en la herramienta sino que se consideran datos de entrada. Como se especifica en el libro: Introduction to the analytic hierarchy process (Matteo Brunelli, 2015) el cual se toma de referencia para las explicaciones sobre las matrices de comparación; las matrices de comparación de alternativas son cuadradas y de tamaño igual al número de alternativas existentes, se debe realizar una matriz de comparación de alternativas distinta para cada criterio o subcriterios, partiendo de dos elementos i, j, el valor de la fila i y columna j representa cuanto más importante es el elemento i sobre el j. En nuestro caso disponemos de valores cuantificables por lo que el valor se calcula mediante la división del valor de i entre el valor de j, siempre que se trate de un criterio positivo, es decir: a mayor valor más importancia debe tener la alternativa. Si nos encontramos ante un criterio negativo el valor se calcula mediante la división del valor de j entre i. Un ejemplo de una matriz de comparación por pares, siendo las 𝑎12,…,𝑎32 los valores obtenidos al hacer la división: 𝐴= [1 𝑎12 𝑎13 𝑎21 1 𝑎23 𝑎31 𝑎32 1] Una vez obtenidas las matrices de comparación por pares se debe calcular el índice de consistencia, siempre y cuando sean sacadas de juicios hechos por la persona que toma las decisiones ya que se pueden generar valores que se contradigan, este índice de consistencia está definido en el libro: Models, Methods, Concepts & Applications of the analytics hierarchy process (Thomas L.Saaty, 2012), capítulo dos: The seven pillars of the analytic hierarchy process. Sin embargo y dado que las matrices que se usan en este caso son matrices sacadas con valores cuantificables no es necesario calcular la consistencia, ya que ésta siempre es aceptable; por lo que no se incluyen más detalles acerca del mismo. Para sacar el vector de importancias relativas existen diversos métodos, aunque se ha usado el método aproximado de media de filas previamente normalizadas por columnas, ya que simplifica en gran medida la programación de la herramienta informática. Ese método se basa en normalizar las columnas de cada matriz y hacer la media de cada fila para calcular la importancia de la alternativa respecto del criterio al que hace referencia la matriz.
26 Ejemplo de normalización y cálculo de un vector de pesos, aplicando la metodología de Thomas L.Saaty a la matriz de comparación expuesta en el ejemplo anterior; 𝐴= [1 𝑎12 𝑎13 𝑎21 1 𝑎23 𝑎31 𝑎32 1]→𝐴′= [ 𝑎11 ′=𝑎11 ∑𝑎𝑖1𝑖 𝑎12 ′=𝑎12 ∑𝑎𝑖2𝑖 𝑎13 ′=𝑎13 ∑𝑎𝑖3𝑖 𝑎21 ′=𝑎21 ∑𝑎𝑖1𝑖 𝑎22 ′=𝑎22 ∑𝑎𝑖2𝑖 𝑎23 ′=𝑎23 ∑𝑎𝑖3𝑖 𝑎31 ′=𝑎31 ∑𝑎𝑖1𝑖 𝑎32 ′=𝑎32 ∑𝑎𝑖2𝑖 𝑎33 ′=𝑎33 ∑𝑎𝑖3𝑖 ] → →𝑊1= [ ∑𝑎1𝑗 ′ 𝑗𝑛 ∑𝑎2𝑗 ′ 𝑗𝑛 ∑𝑎3𝑗 ′ 𝑗𝑛 ] , con n equivalente al número columnas. Siendo 𝑊1 un vector de pesos cualquiera. Una vez calculado este vector lo normalizaremos mediante el modo distribuido, el cual se usa cuando el objetivo es ordenar las alternativas. Es decir; ∑𝑤𝑖=1 𝑖, siendo 𝑤𝑖 los valores de un vector de pesos cualquiera. 3.2.1 Programación lineal, el modelo La programación lineal surge principalmente en el periodo entre 1930 y 1950, donde se estudió por parte de numerosos matemáticos la temática de manera independiente; y en la que se produjeron grandes avances como la creación por parte de George B.Dantzig en 1947 del método simplex o el trabajo de Kantorovich entre 1930-1939; el cual junto a Koopmans en 1975 ganaría el Premio Nobel. En esta metodología se recrean situaciones reales mediante el modelado matemático, los cuales buscan optimizar un valor; ya sea maximizándolo o minimizándolo; existen varios tipos de modelos, aunque se clasifican principalmente en deterministas y probabilísticos; dentro de los cuales existen numerosas subdivisiones en función del tipo de variables usadas y el trato dado a las limitaciones recreadas.
27 La formulación habitual de un modelo de programación lineal viene dada de la siguiente forma: 𝑀𝑖𝑛 ó 𝑀𝑎𝑥 ∑𝐶𝑥 S.A: 𝐴𝑥=𝑏 𝑥≥0 Siendo x el vector de tamaño n que representa las variables de decisión, b un vector de tamaño m, C un vector de tamaño n y A una matriz de tamaño m*n. En este proyecto para poder reproducir la realidad del almacén se hace uso de un modelo lineal de tipo binario; esta clase de modelo usa variables de decisión; aquellas que ofrecen los resultados de tipo binario; es decir: solo pueden tomar dos valores (0,1). El modelo presentado a continuación representa un almacén genérico, lo que nos permite aplicarlo para cualquier almacén de tipo similar pero de distinto tamaño. El objetivo principal del modelo es maximizar una asignación cuyos valores de utilidad varían en función de la situación actual del almacén. En los próximos sub-apartados se explica de manera detallada cada uno de los aspectos relevantes del modelo, incluyendo las variables usadas y los criterios seguidos para la determinación de las limitaciones y la función objetivo. 3.2.1.1 Formulación de las bases para el modelo matemático 1. Índices usados: i = 1…E; Conjunto de elementos de entrada, cada elemento tiene unas características distintas pero conocidas a priori. j = 1…N; Conjunto de baldas, las cuales a su vez están divididas en un número determinado de columnas y que se actualiza cada vez que se produzca una colocación. k = 1…M; Número de columnas existentes en cada balda. l = 1…C; Conjunto de carriles. m=1…D; Tipos de elementos entrantes.
28 2. Datos usados para la formulación del modelo: 𝛼𝑖𝑗𝑘; Parámetro que define la utilidad de colocar el elemento i en la columna k de la balda j. 𝛼𝑖𝑙; Parámetro que define la utilidad de colocar el elemento i en el carril l. 𝐶𝑖; Carga del elemento i. 𝐶𝑗; Carga actual de la balda j. 𝐶𝑀𝐴𝑋𝑗; Carga máxima permitida de la balda j. 𝐴𝑖; Ancho del elemento i. 𝐴𝑗𝑘; Ancho de la columna k de la balda j. 𝐻𝑗𝑘; Altura actual de la columna k de la balda j. 𝐻𝑖; Altura del elemento i. 𝐻𝑀𝐴𝑋𝑗; Altura máxima de la balda j. 𝑁𝑖; Número de palés equivalentes del elemento i. 𝑁𝑙; Número de palés equivalentes en el carril l. 𝑁𝑀𝐴𝑋𝑙; Número máximo de palés equivalentes del carril l. 𝑂𝑖; Ocupación del elemento i. 𝑂𝑀𝐴𝑋𝑗𝑘; Ocupación máxima de la columna k de la balda j. 3. Variables de decisión: Dado que se trata de un problema de asignación, todas las variables de decisión son del tipo binario; además se pueden diferenciar en tres tipos de conjuntos, según el tipo de posicionamiento al que hagan referencia, mientras que en el caso de las variables asociadas con las baldas y los carriles existirán varios subconjuntos en función de si es posible colocar el elemento en esa posición o no.
29 Para las baldas: 𝑥𝑖𝑗𝑘 𝑖=1…𝐸,𝑗=1…𝑁,𝑘=1…𝑀 {1 𝑠𝑖 𝑠𝑒 𝑐𝑜𝑙𝑜𝑐𝑎 𝑒𝑙 𝑒𝑙𝑒𝑚𝑒𝑛𝑡𝑜 𝑖 𝑒𝑛 𝑙𝑎 𝑐𝑜𝑙𝑢𝑚𝑛𝑎 𝑘 𝑑𝑒 𝑙𝑎 𝑏𝑎𝑙𝑑𝑎 𝑗 0 𝑠𝑖 𝑛𝑜 Estarán clasificadas en dos subconjuntos dependiendo de si es factible por limitaciones físicas colocar el producto o no, esto queda recogido dentro de un valor llamado X1. X1 = 0; No es posible colocarlo. X1 = 1; Se puede colocar el producto. Para los carriles: 𝑦𝑖𝑙 𝑖=1…𝐸,𝑙=1…𝐶{1 𝑠𝑖 𝑠𝑒 𝑐𝑜𝑙𝑜𝑐𝑎 𝑒𝑙 𝑒𝑙𝑒𝑚𝑒𝑛𝑡𝑜 𝑖 𝑒𝑛 𝑒𝑙 𝑐𝑎𝑟𝑟𝑖𝑙 𝑙 0 𝑠𝑖 𝑛𝑜 Estarán clasificadas en tres subconjuntos, recogidos dentro de Y1: El primero hará referencia a la imposibilidad de colocar el elemento en el carril l debido a que está ocupado por un tipo de elemento distinto o está completo. Si esto se produce Y1 = 0. El segundo caso se da cuando se pueda colocar el elemento en el carril y ya existan elementos del mismo tipo colocados previamente. Y1 = 1. El último caso se produce cuando el elemento se puede colocar pero el carril está totalmente libre. Y1 = 2. Para la zona de excedentes: 𝑧𝑖 𝑖=1…𝐸{1 𝑠𝑖 𝑒𝑙 𝑒𝑙𝑒𝑚𝑒𝑛𝑡𝑜 𝑖 𝑣𝑎 𝑎 𝑙𝑎 𝑧𝑜𝑛𝑎 𝑑𝑒 𝑒𝑥𝑐𝑒𝑑𝑒𝑛𝑡𝑒𝑠 0 𝑠𝑖 𝑛𝑜 Esta variable hace referencia a la posibilidad de que no exista espacio disponible para el elemento entrante, en cuyo caso lo mandaremos a una zona ficticia de tamaño ilimitado pero que afectará de manera negativa a la F.O.
30 4. Definición de subconjuntos X1 e Y1: Para que sea factible colocar un elemento en una columna (j, k) se deberán de cumplir los siguientes requisitos, si no se cumple cualquiera de los requisitos X1 = 0, impidiendo que aparezca esta variable en el modelo. La carga actual de la balda más la carga del elemento debe ser menor que la carga máxima permitida en la balda: 𝐶𝑗+𝐶𝑖≤𝐶𝑀𝐴𝑋𝑗 El ancho del elemento debe ser menor o igual al ancho de la columna en cuestión, se debe tener en cuenta que estarán incluidas unas tolerancias en las medidas de los elementos para que sea factible su manejo: 𝐴𝑖≤𝐴𝑗𝑘 La altura actual de la columna más la altura del elemento debe ser menor que la máxima permitida en la balda: 𝐻𝑗𝑘+𝐻𝑖≤𝐻𝑀𝐴𝑋𝑗 Todas aquellas posiciones que cumplan estas condiciones tienen asignado un valor de X1 = 1. Para los carriles no tendremos limitaciones por dimensión del elemento, sino por número de palés equivalentes y tipo de elemento que ocupa el carril. Si el carril es interior se calcula Y1 para todos los elementos pero si se trata de un carril exterior solo se calcula para aquellos elementos que permitan su colocación en el exterior. Valores de Y1: Y1 = 0; Solo se produce cuando el carril esté totalmente lleno, cuando el elemento a colocar sea distinto del elemento existente en el carril o cuando el elemento no sea un palé completo. Y1 = 1; Si el elemento del carril coincide con el elemento entrante y además existe espacio en el carril: 𝑁𝑖+𝑁𝑙≤𝑁𝑀𝐴𝑋𝑙
31 Y1 = 2; Si el carril está vacío: 𝑁𝑙=0 5. Definición subconjuntos C1 y C2: Los conjuntos C1 y C2 representan el tipo de posición que es la columna (j, k) en función de su tamaño. En el caso de que sean de la clase C1 significa que ya existe un elemento en la columna o que su ancho es menor que un determinado valor, en nuestro caso cualquier ancho menor que 1.6 metros. El subconjunto C2 representa una columna vacía que permite colocar varios palés de manera contigua, por lo que la trataremos de forma distinta a las del tipo C1 en las restricciones. 6. Función objetivo: Defino la función objetivo como unos parámetros de utilidad por las variables de decisión: 𝐹𝑂=𝑀𝐴𝑋∑∑∑𝛼𝑖𝑗𝑘𝑥𝑖𝑗𝑘+∑𝛼𝑖𝑙𝑦𝑖𝑙− 𝐶 𝑙 𝑀 𝑘 𝑁 𝑗 𝐸 𝑖𝑧𝑖 7. Restricciones: Restricción 1: Obligo a colocar todos los elementos de entrada: ∑∑𝑥𝑖𝑗𝑘+∑𝑦𝑖𝑙+𝑧𝑖=1 ∀ 𝑖 𝐶 𝑙 𝑀 𝑘 𝑁 𝑗 Restricción 2: Obligo a que nunca se supere la carga máxima permitida en cada balda: ∑∑𝐶𝑖𝑥𝑖𝑗𝑘+𝐶𝑗≤𝐶𝑀𝐴𝑋𝑗 𝑀 𝑘 𝐸 𝑖∀𝑗
38 4.2 Planteamiento general Esta aplicación tiene dos utilidades distintas que hacen referencia a la entrada y salida de elementos del almacén, como se muestra en la Figura 4 – 1, Diagrama de flujo general de la herramienta informática, que representa de manera global el funcionamiento de la aplicación. En el primer caso, el proceso de entradas, lee los datos de los distintos documentos de texto, que se usan para la recreación de la situación actual del almacén así como los elementos entrantes, definidos por el usuario, y sus características. Tras la lectura de los datos, realiza una serie de operaciones para calcular los parámetros de entrada del modelo, genera el modelo, realiza unas iteraciones, analiza los datos resultantes y coloca los elementos en las posiciones designadas. Debido al modelo planteado para la optimización se puede dar un problema con los resultados a la salida, pues se podría dar el caso de la asignación de más elementos de los posibles físicamente a cierto tipo de posiciones pertenecientes a la clase C2 definidas en el Apartado 3.2.1.1 Formulación de las bases para el modelo matemático. Para solucionar esta salida de resultados se realizan las iteraciones en las que una vez obtenidos los elementos asignados a cada posición, se calcula que posición aporta más a la función objetivo. Si esta posición no es del tipo C2 los elementos asignados por el modelo quedan fijados y se cierra la posición, evitando que se vuelva a considerar en las siguientes iteraciones. En el caso de que la posición sea del tipo C2 se aplica un método, explicado en el Apartado 4.4.2 Especificación del proceso de entradas, para la colocación de los elementos de esta posición buscando maximizar su valor sin que sobrepase los límites físicos, si ya se hubiera pasado anteriormente por esta posición y el resultado del método coincide con el de la iteración anterior se cierra la posición. Cuando se hayan cerrado todas las posiciones se acaban las iteraciones y se pasa a tratar los datos salientes actualizando el archivo del registro del almacén y la situación actual del almacén con todas las entradas previstas. En el segundo caso, el proceso de retirada, se debe seleccionar que tipo de retirada se quiere realizar, ya que puede deberse a una extracción de un elemento específico del almacén, por ejemplo, porque se encuentra en mal estado, o a una retirada genérica (aquella que no especifica un elemento concreto). Tras leer el documento con los elementos requeridos, busca en el registro de cambios si éstos existen actualmente en el almacén y en caso de ser correcto indica su posición y actualiza la
39 situación del almacén, suponiendo su extracción del mismo. En caso de no existir tales elementos se comunica por pantalla la falta de los mismos. En este caso se puede producir un documento de entrada de elementos el cual deberá ser introducido en el sistema por la primera vía descrita. Figura 4 - 1, Diagrama de flujo general de la herramienta informática [Fuente: Elaboración propia]
40 4.3 Documentos usados o generados por la herramienta Como ya se ha dicho anteriormente los datos necesarios para el buen funcionamiento de la herramienta son introducidos mediante el uso de documentos de texto, pues es un formato fácil de manejar y que permite, con el conocimiento necesario, variaciones sin la necesidad de iniciar la aplicación. Los documentos usados son tanto de escritura como de lectura, actualizándose algunos al ejecutar el programa o creándose algunos nuevos. Una vez conocida la situación sobre la que se basa la aplicación podemos describir como son cada uno de los documentos que existen y aquellos generados, a continuación se describe detalladamente qué significado tienen cada uno de los valores que aparecen en ellos. 4.3.1 Formato de datos Para la introducción de los datos necesarios usados durante el funcionamiento de la herramienta informática se hace uso de una extensa variedad de documentos de texto. A continuación se detallan especificando el nombre, contenido y formato de escritura de datos para cada uno de ellos; incluyendo una imagen como ejemplo de cada uno. En algunos documentos que tienen varias partes se usa una numeración en la figura para explicar con mayor claridad estas divisiones. Antes de nada se debe detallar que todos los datos que se han usado o que aparecen en los documentos son de tipo numérico, excepto en un caso específico relacionado con un documento creado por la herramienta el cual se explica en este apartado. En primer lugar se encuentran los documentos usados para definir las características del almacén, las características de los elementos y los valores de utilidad para la función objetivo, los cuales se mantienen sin modificaciones aunque se haga uso de la herramienta: Características del almacén: este documento describe las limitaciones físicas de cada una de las posiciones existentes, siendo los valores máximos que se pueden alcanzar en cada una de las medidas citadas. Para poder hacer una descripción de estas limitaciones se ha dividido el documento en dos partes:
41 1. Características de las baldas: En la primera parte del documento se detallan los parámetros de las baldas, incluyendo una línea de escritura por cada una de ellas; mediante el uso del siguiente formato: Cantidad máxima de kilos permitidos en la balda || Ancho en metros || Alto en metros || Distancia a zona de fábrica || Distancia a zona de carga Esta parte viene definida en la figura por el valor uno y el cuadro de color rojo. 2. Características de los carriles: De manera análoga a la primera parte donde se especifican los datos relacionados con las baldas, en la segunda parte se incluyen los parámetros relacionados con los carriles, pero se usa otro formato de escritura. Tras la última línea relacionada con las baldas, se incluye justo debajo una línea que especifica el número máximo de palés equivalentes que se pueden colocar en cada uno de los carriles, siguiendo el siguiente formato; donde C es el número de carriles existentes: Número máximo de palés equivalentes en el carril 1 || Número máximo de palés equivalentes en el carril 2 ||…|| Número máximo de palés equivalentes en el carril C Esta línea viene definida en la figura por el valor dos y el cuadro de color azul. Una vez finalizada la especificación del número máximo de palés se incluye una línea adicional por cada carril donde se detallan las distancias de referencia de cada uno siguiendo el siguiente formato: Distancia zona de fábrica || Distancia a zona de carga Esta parte viene definida en la figura por el valor tres y el cuadro de color verde. A continuación se incluye una figura donde se especifica con anotaciones lo que significa cada valor, usando la numeración antes citada:
42 Figura 4 - 2, Documento de características del almacén [Fuente: Elaboración propia] Características de los elementos: en este documento se definen las características de un palé completo para cada elemento. Se incluye una línea con las siguientes características para cada uno de los productos existentes, siguiendo el siguiente formato: Código del elemento || Ancho del palé || Carga del palé || Altura del palé || Número de palés estándar equivalente || Valor que indica si puede ir en el exterior o no (0,1) || Número de capas Figura 4 - 3, Documento de características de elementos [Fuente: Elaboración propia] Documento con valores de utilidad de elementos: este documento incluye las características necesarias para hacer las matrices de comparación del AHP referente a la clasificación de los elementos; aunque estas características hacen referencia a valores relacionados con cada tipo de elemento, como pueden ser variados de manera más regular que las características físicas, y tienen un efecto directo sobre la función objetivo se han incluido en otro documento separado. 1 2 3
43 En este documento está escrita una línea por cada tipo de elemento existente en el almacén, siguiendo el siguiente formato: Código del elemento || Número de movimientos || Rotación || Necesidad Figura 4 - 4, Documento de valores de utilidad de los elementos [Fuente: Elaboración propia] Documento de valores de utilidades: en este documento se incluyen los valores de los pesos de los criterios usados en la resolución de los AHP, para la obtención de una solución. Este documento está dividido en dos partes que hacen referencia a cada uno de los AHP que se han resuelto en la solución propuesta. 1. En la primera parte la cual está compuesta por tres líneas, se hace referencia a los pesos de los criterios relativos a posiciones, siguiendo el siguiente formato: 1. La primera línea de escritura define: Peso criterio distancias || Peso criterio ocupación 2. La segunda línea de escritura define: Peso criterio distancia a carga || Peso criterio distancia a fábrica (Elementos para consumo) 3. La tercera línea de escritura define: Peso criterio distancia a carga || Peso criterio distancia a fábrica (Elementos para ventas) Esta parte está definida en la figura por el valor uno y el cuadro de color rojo. 2. En la segunda parte la cual está formada por una única línea se definen los valores de los pesos referentes a la comparación de elementos, siguiendo el siguiente formato:
44 Peso criterio número de movimientos || Peso criterio rotación || Peso criterio necesidad Esta parte viene definida en la figura con el valor dos y el cuadro de color azul. Figura 4 - 5, Documento de valores de utilidad para los criterios AHP [Fuente: Elaboración propia] En segundo lugar se encuentran aquellos documentos que se usan durante la utilización de la herramienta y que hacen referencia a la situación real del almacén sobre la que se aplican los cambios y las entradas o salidas que se producen, estos documentos pueden ser modificados durante el proceso: Entrada de elementos: en este documento aparecen las cantidades introducidas en el almacén de cualquier tipo de elemento que tenga alguna entrada; debe de ser definido por el usuario. En él cada tipo de elemento entrante debe tener definida una línea de escritura donde se detalle la cantidad entrante y la fecha de caducidad, siguiendo el siguiente formato: Código elemento entrante || Cantidad expresada en kg || Fecha de caducidad año/mes/día Figura 4 - 6, Documento de entradas [Fuente: Elaboración propia] Entradas producidas por las salidas: durante el proceso de salida de los elementos se puede requerir la entrada de nuevo en el almacén de restos generados de palés completos. Por ello he definido un documento que solo es una modificación del documento de 1 2
45 entradas de elementos, en función de las necesidades del almacén para recolocar los restos. Este documento de entradas más allá de su objetivo y de que se crea de manera automática por la herramienta, no tiene ninguna diferencia con el documento anteriormente descrito. Salidas de elementos: en este punto cabe destacar que como se mencionó en apartados anteriores se pueden extraer los elementos del almacén de dos formas distintas.; por lo que se han utilizado dos tipos de documentos de texto distintos. Ambos documentos son creados y seleccionados por el usuario, al igual que el documento de entrada de elementos. Salidas generales: Este documento tiene una codificación bastante similar al de entrada de elementos, pero como no es necesario especificar la fecha de caducidad pues es la herramienta quien define en base al criterio establecido que elemento sale; no es necesario incluir una definición de la misma. En este documento se debe escribir una línea por cada uno de los tipos de elementos que se quiere extraer del almacén, siguiendo el siguiente formato: Código elemento saliente || Cantidad expresada en kg Figura 4 - 7, Documento de salidas del proceso general [Fuente: Elaboración propia] Salidas específicas: para la extracción de un elemento del almacén de una posición específica, se debe definir un tipo de documento nuevo, pues no sirve el documento usado para la extracción general; dado que es necesario una mayor cantidad de datos entrantes en la herramienta para su buen funcionamiento, el formato de escritura que sigue este documento es más complejo que los definidos anteriormente, pues está dividido en tres partes diferenciadas:
46 1. En primer lugar se define una línea de escritura donde se detalla el número de elementos que quieren extraerse y el tipo de posición en el que se encuentran colocados; esta línea de escritura tiene una gran importancia y esta codificada de la siguiente manera: Número de elementos a extraer de las baldas || Número de elementos a extraer de los carriles Esta parte está definida en la figura por el valor uno y el cuadro de color rojo. 2. En la segunda parte se definen mediante la escritura de una línea por cada elemento que se quiera extraer de las baldas, todas las características relevantes para su extracción; utilizando la siguiente codificación: Balda || Columna de la balda || Código del elemento || Peso del elemento || Fecha del elemento Esta parte está definida en la figura por el valor dos y el cuadro de color azul. 3. En la tercera parte del documento se definen de manera análoga a la segunda pero con leves modificaciones, en el segundo valor; los elementos a extraer que se encuentran colocados en los carriles; los cuales deben de tener especificada su posición dentro del carril no una columna de referencia, para ello se sigue la siguiente codificación: Carril || Posición en el carril || Código del elemento || Peso del elemento || Fecha del elemento Esta parte está definida en la figura por el valor tres y el cuadro de color verde. Figura 4 - 8, Documento de salidas del proceso específico [Fuente: Elaboración propia] 2 1 3
47 Definición de la situación del almacén: para definir como se encuentra el almacén en la actualidad e introducir todos los datos necesarios en la herramienta se ha hecho uso de dos documentos; el primero hace referencia a la situación actual en el almacén, mientras que el segundo sirve para tener un listado de todos aquellos elementos que se encuentren colocados en el interior del mismo. Situación del almacén: mediante este documento se puede tener una precisa descripción del almacén en función de los elementos que se encuentren en él. Con este documento se busca representar la situación actual del almacén en cuanto a términos relevantes para el modelo, hay que especificar que no es el registro de elementos que hay en el almacén. Para poder explicar el contenido del documento lo he separado en cuatro partes: 1. En primer lugar tenemos una línea de escritura que define dos características muy diferentes de la situación actual del almacén, la carga total en kilogramos que se encuentra colocada en cada balda y el número de palés estándar que se encuentran colocados en cada carril; pero ambas hacen referencia a cantidades colocadas en sus respectivos tipos de posiciones. Esta línea sigue la siguiente codificación, donde N representa el número de baldas del almacén y C el número de carriles: Carga actual en la balda 1 ||…|| Carga actual en la balda N || Número actual de elementos en el carril 1 ||…|| Número de elementos en el carril C Esta parte está definida en la figura por el valor uno y el cuadro de color rojo. 2. En la segunda parte conformada por una única línea de escritura, se define el número de columnas que actualmente componen las baldas; siguiendo la siguiente codificación, donde N es el número de baldas existentes: Número de columnas en balda 1 ||…|| Número de columnas en balda N Esta parte está definida en la figura por el valor dos y el cuadro de color azul. 3. En la tercera parte se incluye una línea de escritura se define el tipo de elemento colocado en cada carril según su código; para ello se incluye un valor por cada carril. La línea sigue la siguiente codificación; donde C es el número de carriles existentes: Tipo de elemento en carril 1 ||…|| Tipo de elemento en carril C
54 12. Actualización del registro de elementos y la situación del almacén: este es el último paso del proceso de entradas. Se utilizan los documentos auxiliares donde se han guardado los posicionamientos de las permutaciones con el valor máximo y las matrices donde se han ido guardando los datos de los elementos fijados para recrear la nueva situación del almacén sobrescribiendo el documento anterior tanto de registro de elementos como de situación del almacén. Iteraciones: En el paso diez se hace referencia a un conjunto de bucles con condicionales, estos bucles no son más que el resultado de usar un algoritmo, a continuación se describen los pasos que sigue el algoritmo aplicado en las iteraciones: 1. Evaluación de la contribución de las posiciones a la función objetiva, solamente se tienen en cuenta aquellas posiciones abiertas. 2. Clasificación de la posición de máxima contribución, según sea un carril o una columna y éstas a su vez se clasificarán en las de tipo C1 y C2, esta clasificación queda almacenada en una variable definida como tipopos, la cual guarda un valor equivalente a uno si es una columna de tipo C1, dos si es una columna de tipo C2 y tres si se trata de un carril. 3. Evaluación de la posición y creación de restricciones nuevas para el modelo, esto se realiza mediante el uso de la variable tipopos. Dependiendo del valor de la variable definida como tipopos el programa aplica una serie de pasos distintos, los cuales servirán para evaluar la posición: 1. Si la variable tipopos tiene un valor de uno, se añade al modelo un conjunto de restricciones que fijen los elementos colocados en esa posición e impidan que se pueden colocar en otra posición distinta. Además se cierra la posición impidiendo que vuelva a ser considerada en las siguientes iteraciones. 2. Si la variable tipopos tiene un valor de dos se pueden dar dos casos distintos: El primer caso sucede cuando solo se ha asignado a esa posición un único elemento, se procede de manera similar que si tipopos hubiera valido uno.
55 En el segundo caso, hay más de un elemento asignado a esa posición, debido a como se han definido las columnas y sus restricciones en el modelo, Apartado 3.2.1.1 Formulación de las bases para el modelo matemático, es posible que no todos estos elementos se puedan colocar. Para solucionarlo la herramienta sigue un procedimiento detallado al finalizar el paso cinco del algoritmo. 3. Si la variable tipopos tiene un valor de tres, nos encontramos ante un carril. En este caso se añaden un conjunto de restricciones que fijen los elementos colocados en el carril. 4. Actualizar el modelo y sobrescribir solución en el documento auxiliar, una vez evaluada la posición se actualiza el modelo, se resuelve y se sobrescriben los valores de la solución en el documento auxiliar usado anteriormente con el mismo propósito. 5. Comprobar si están todas las posiciones evaluadas, si no lo están volver al paso uno. Si todas las posiciones han sido evaluadas se acaba el proceso. Como se ha mencionado en el paso dos del algoritmo, cuando la variable tipopos tiene un valor de dos puede darse la situación en la que más elementos de los posibles son colocados en una posición, para solucionar ese problema se sigue el siguiente procedimiento: 1. En primer lugar se crea un conjunto de variables, matrices y vectores que permiten almacenar toda la información necesaria para los pasos siguientes. Estas variables son dinámicas, no tienen un valor de tamaño fijo, y se resetean cada vez que se acaba el procedimiento. 2. En segundo lugar se definen todas las permutaciones de los posibles elementos a colocar, para ello se hace uso de una función recursiva definida al principio del código, Anexo: Código del programa en C++. 3. En tercer lugar se evalúa cada permutación posible, para ello se parte del primer elemento de la permutación a evaluar y se coloca en la esquina más cercana a la salida. A partir de este punto se realiza un bucle que va colocando los siguientes elementos, primero calcula si existe la posibilidad de colocar el
56 elemento encima del elemento anterior y si no es posible, intenta colocarlo a su lado. Cuando haya un elemento que no sea posible colocar ni encima ni al lado del elemento anterior el bucle se para y el valor de la permutación es la suma de las utilidades de los elementos colocados en esa posición. Una vez obtenido el valor de la permutación éste se compara con el valor máximo que se haya encontrado en el transcurso del bucle que recorre las distintas permutaciones, si el valor de la nueva permutación es mejor que el valor actual, esta permutación junto con su posicionamiento, una matriz que representa donde se colocan los elementos, se convierten en los valores máximos. En caso de que sean equivalentes los valores se da prioridad a la permutación que forme un menor número de columnas. Hay que tener en cuenta que pueden existir elementos ya fijados en esa posición debido a iteraciones anteriores, los elementos fijados se explican a continuación, en tal caso toda permutación que no contenga los elementos ya fijados tendrá un valor equivalente a cero. Una vez obtenido el valor máximo y el posicionamiento de los elementos se evalúa si hay algún elemento en ese posicionamiento que no estuviese fijado con anterioridad, si se da el caso se añade una restricción que fije el elemento en la posición. El resto de elementos que no han sido posibles colocar en la posición junto con todos los elementos similares, en tamaño y carga, se fijan a cero mediante un conjunto de restricciones. Los valores del posicionamiento del valor máximo se van almacenando en un documento auxiliar llamado valorposmax que usará el programa más adelante y el cual es eliminado al final del proceso de entradas. 4. En cuarto lugar se cierra la columna cuando el posicionamiento de los elementos del valor máximo no contenga ningún elemento no fijado previamente, en cualquier otro caso queda abierta para que se puedan seguir probando permutaciones con conjuntos de elementos distintos.
57 En las Figuras 4 - 12 ,4 - 13 y 4 - 14 que se incluyen a continuación se puede ver como se resolvería una posible permutación de dos elementos y los distintos casos que se pueden dar. Figura 4 - 12, Colocación del elemento 1 durante la valoración de la permutación [Fuente: Elaboración propia] Figura 4 - 13, Colocación del elemento 2 durante la valoración de la permutación, en vertical [Fuente: Elaboración propia]
58 Figura 4 - 14, Colocación del elemento 2 durante la valoración de la permutación, en horizontal [Fuente: Elaboración propia] 4.4.3 Especificación del proceso de salidas Siguiendo la misma estructura del apartado anterior, se explican cada uno de los procesos de la rama de salidas mostrada en la Figura 4 – 1, Diagrama de flujo general de la herramienta informática. 1. Selección de proceso de salidas: tras la selección del proceso de salidas el usuario debe especificar si se trata de una salida normal o una debida a la retirada de un elemento específico del almacén, para ello simplemente debe seleccionar uno o dos según lo que desee realizar. 2. Selección de documento: el usuario debe especificar qué documento es el usado para la extracción, teniendo en cuenta que se usan tipos distintos de documentos en cada tipo de extracción, se debe tener especial cuidado. Aunque la aplicación prevé este tipo de errores y si se produjese, daría por pantalla un aviso al usuario y finalizaría el proceso. 3. A partir de este punto tendremos dos ramas distintas según la extracción, para las del tipo normal usaremos el subíndice uno y para las del tipo específico el subíndice dos.
59 1.1 Lectura de archivo caso 1: En este subproceso esta implementado desde la apertura de los archivos necesarios para la extracción de los documentos, la creación de matrices de tamaño variable para volcar los datos en ellas y la copia de los mismos. Aunque en la segunda rama también se produce la lectura de archivos, las matrices son distintas por lo cual no podemos unificar este subproceso sin crear una complejidad al sistema innecesaria. 1.2 Búsqueda de elementos a extraer: Aquí entra en juego el uso de un conjunto de restricciones dadas por la política de la empresa a la hora de extraer los elementos, a continuación enumeraremos todas estas restricciones. Consideraremos dos tipos de demandas, para explicar el procedimiento en todas las situaciones posibles: No disponemos de la cantidad demandada: Si la cantidad demandada está por encima de la cantidad de ese elemento en el almacén, los restos junto con los demás palés completos podrán ser extraídos, aunque se debe informar de la cantidad restante que no podemos soportar. Disponemos de la cantidad demandada: Si se produce una extracción cuya cantidad es múltiplo del peso equivalente de un palé completo de ese elemento y se dispone de suficiente cantidad en el almacén sin incluir los restos del elemento, los restos no se pueden extraer. Respondes a esa demanda con los palés completos. Si la cantidad demandada no es múltiplo del peso equivalente de un palé completo de ese elemento y además esa cantidad de palé incompleto es inferior a los restos disponibles. La parte incompleta demandada es respondida con los restos y no cambiarán de posición en el sistema. Si la cantidad demandada no es múltiplo del peso equivalente de un palé completo de ese elemento y además esa cantidad de palé incompleto es igual a los restos disponibles. Se extraen la totalidad de restos del almacén para cumplir esta demanda junto con el número de palés completos que sean necesarios. Si la cantidad demandada no es múltiplo del peso equivalente de un palé completo de ese elemento y además esa cantidad de palé incompleto es superior a los restos disponibles. Se extraen la totalidad de restos del almacén junto con el número de
60 palés completos que sean necesarios. Aunque dado que se produce un nuevo resto se debe crear un documento de entrada con la cantidad restante, este documento es ingresado por el usuario mediante el proceso de entradas. Hay que tener en cuenta que siempre que sea posible se debe aplicar FIFO, sacar el elemento más antiguo del sistema, cumpliendo lo anteriormente dicho y que a los carriles les corresponde la fecha del elemento más antiguo situado en ese carril. Una vez determinados los elementos a extraer estos pasan a un nuevo documento que registre todas las salidas del sistema desde la primera vez que se usa el programa. Los restantes permanecen en el documento que guarda la información de los elementos disponibles en el almacén. 2.1 Lectura de archivo caso 2: Se procede de la misma forma que en el caso 1 pero con matrices de distinto tamaño. 2.2 Búsqueda de elementos específicos: En este caso se marca en la matriz donde aparezcan los elementos existentes en el almacén, el elemento a extraer y posteriormente se elimina del registro. 4. Actualización del sistema: Una vez conocidos los elementos a extraer para cumplir la demanda, se hace uso del documento de registro de elementos, en el que solo aparecen los elementos que no han sido extraídos. Este es el subproceso más delicado pues un error puede conllevar la deformación del sistema dando valores totalmente irreales. Hay que diferenciar entre la actualización de los carriles y las baldas, en el caso de los carriles la actualización es prácticamente inmediata ya que solo se sustituye el valor del número de elementos de cada carril por el nuevo número de elementos colocados en el carril y en caso de que sea equivalente a cero modificar el valor referente al tipo de elemento colocado en el carril e igualarlo a cero. Pero las modificaciones a las baldas son más complejas; para este caso el programa sigue una serie de criterios que evalúan todas las situaciones posibles aunque como norma general se busca crear columnas con el mayor espacio disponible. Las diferentes situaciones que se pueden producir y el criterio que sigue la aplicación para cada una vienen detalladas a continuación.
61 Empezaremos por la primera columna de cada balda, en este caso se pueden dar tres situaciones diferentes: La columna se encuentra vacía y tiene un ancho superior a cero, para este caso se comprueba la siguiente columna, si ésta también está vacía se unen ambas columnas, Figura 4 - 15. Figura 4 - 15, Actualización de la primera columna de la balda, situación 1 [Fuente: Elaboración propia] La columna no se encuentra vacía, en este caso puede ser que se haya extraído un elemento de la columna y el ancho máximo haya cambiado o no. Si el ancho cambia se comprueba la siguiente columna y aparecen tres posibilidades distintas: Si la columna posterior está vacía se añade la diferencia de ancho a esta columna, Figura 4 – 16. Figura 4 - 16, Actualización de la primera columna de la balda, situación 2 [Fuente: Elaboración propia] Si la columna posterior también ha cambiado de ancho no se realiza ningún cambio, pues este caso se tiene en cuenta más adelante. Si la columna posterior no cambia de ancho o no existe se comprueba si la diferencia de ancho que se ha producido en la primera columna permite colocar un nuevo elemento en la balda, si es así se crea una nueva columna Figura 4 - 17. Si esta diferencia de ancho no es suficiente la primera columna mantiene el mismo ancho que tenía.
62 Figura 4 - 17, Actualización de la primera columna de la balda, situación 3 [Fuente: Elaboración propia] La columna no se encuentra vacía pero no cambia de ancho, en este caso no se produce ninguna variación. A continuación se exponen los cambios que se hacen para las columnas intermedias y finales de las baldas. Si la columna se encuentra vacía se comprueban las columna anteriores, si estas también están vacías se acumula el ancho total en la última columna vacía que se encuentre, eliminando todas las columnas vacías excepto una, Figura 4 - 18. Figura 4 - 18, Actualización de una columna vacía de la balda [Fuente: Elaboración propia] Si la columna no se encuentra vacía pero no cambia de ancho no se produce ninguna variación. Si la columna no se encuentra vacía pero cambia de ancho pueden darse las siguientes situaciones: Si nos encontramos en la última columna de la balda se van comprobando las columnas anteriores hasta dar con una columna vacía, una columna que no cambie de ancho o se recorran todas las columnas existentes. Mientras se van comprobando las columnas se van sumando las diferencias de anchos de las columnas. Dando lugar a tres posibles situaciones:
63 o En el caso de que se encuentre una columna vacía se le suma las diferencias de ancho acumuladas a la columna vacía, Figura 4 - 19. Figura 4 - 19, Actualización de la última columna de la balda, situación 1 [Fuente: Elaboración propia] o Si se encuentra una columna que no esté vacía pero que no cambie de ancho se comprueba si este ancho acumulado es suficiente para colocar un nuevo elemento; si es así se crea una nueva columna, Figura 4 -20. Figura 4 - 20, Actualización de la última columna de la balda, situación 2 [Fuente: Elaboración propia] o Si no se encuentra una columna vacía o que no cambie de ancho se comprueba si este ancho acumulado es suficiente para colocar un nuevo elemento si es así se crea una nueva columna, Figura 4 - 21.
70 1. Primer caso: En el primer caso se debe diferenciar entre ambas soluciones, dado que los valores son distintos. En la primera solución se ha optado por darle una gran importancia a la ocupación, lo cual puede resultar, a priori, en una solución peor pues la ocupación dentro de las utilidades no está pensada para maximizar una ocupación global sino para dar más importancia a aquellas posiciones que maximicen la ocupación del elemento en particular, no del conjunto. Mientras que en la segunda solución se han intercambiado los valores dándole una gran importancia a las distancias y una menor importancia a la ocupación a la hora de evaluar las posiciones. Los valores de los pesos para las soluciones del primer caso se muestran en la siguiente tabla: Peso utilidad distancia Peso utilidad ocupación Solución 1 0.25 0.75 Solución 2 0.75 0.25 Tabla 5 - 1, Pesos de los valores de distancia y ocupación para ambas soluciones [Fuente: Elaboración propia] 2. Segundo caso: Los pesos usados para valorar la importancia de cada criterio son similares a los usados en la segunda solución del primer caso, pues viendo que ofrecían una solución bastante buena se decidió por mantener tales valores y ver cómo funcionaba en una simulación más realista del funcionamiento del almacén. Aparte de los valores definidos en la tabla se ha hecho referencia a otros pesos que son comunes para todas las soluciones, a continuación se muestran en varias tablas todos estos pesos:
71 Utilidad distancia fábrica Utilidad distancia carga Elementos para venta 0.1 0.9 Elementos para consumo 0.9 0.1 Tabla 5 - 2, Pesos comunes para las soluciones del caso 1 y 2 en el AHP referente a posiciones [Fuente: Elaboración propia] Número de movimientos Rotación Necesidad 0.571 0.2862 0.1428 Tabla 5 - 3, Pesos para la comparación de los elementos [Fuente: Elaboración propia] Posiciones disponibles: Las posiciones disponibles en ambos casos son diferentes, ya que como se explicó anteriormente; se han incluido ciertas limitaciones de uso en el primer caso. Esto implica que el número de posiciones disponibles en el primer caso sea menor y que se encuentren numeradas de distinta forma respecto a la numeración del segundo caso, aunque se usen posiciones que sean físicamente las mismas. A continuación se detallan el número de posiciones disponibles en cada caso y las limitaciones en el posicionamiento que se les aplica por motivos de seguridad. 1. Primer caso: Las posiciones disponibles para la obtención de las soluciones son un total de 328, de las cuales 230 son baldas y 98 son carriles. De los 98 carriles, 96 son carriles exteriores y dos son carriles internos, en el caso de las baldas las 230 posiciones son interiores y todas se clasifican como clase C2, es decir, aquellas con un tamaño superior a 1.6 metros de ancho permitiendo colocar varios palés en paralelo. Los carriles que tienen un trato especial a la hora de calcular los resultados debido a su contacto con una zona peatonal son los codificados desde el 45 al 68. Siendo los carriles codificados desde el valor 45 hasta el 57 limitados a una altura de dos palés por cada columna, mientras que los restantes solo tienen su primera
72 columna limitada a dos palés. Las características físicas de todas las baldas, así como sus distancias a los dos puntos de interés, están determinadas en el Anexo: Características de las baldas, y para los carriles en el Anexo: Características de los carriles para el caso 1. Tras la determinación de las posiciones disponibles todas aquellas que no pueden ser utilizadas son vetadas en la codificación del programa, impidiendo la colocación de elementos en las mismas. 2. Segundo caso: Para el segundo caso están disponibles todas las posiciones existentes del almacén, sumando un total de 379 posiciones entre baldas y carriles. El número de baldas seguirá siendo 230, todas ellas interiores. Pero en el caso de los carriles el número aumentará a 149 de los cuales solo los dos primeros son interiores, la descripción de las características de los carriles viene dada en el Anexo: Características de los carriles para el caso 2. De nuevo existen carriles que tienen un trato especial a la hora de calcular los resultados debido a su contacto con una zona peatonal, son los codificados desde el 58 al 77. Siendo los carriles codificados desde el valor 58 hasta el 66 limitados a una altura de dos palés por cada columna, mientras que los restantes solo tienen su primera columna limitada a dos palés. Dentro de los carriles destacan dos conjuntos de carriles que conforman dos zonas distribuidas en U, teniendo numerosos carriles un equivalente pues se tomaron las distancias de manera rectangular. Elementos entrantes: A continuación se detalla cómo son las entradas de elementos para cada uno de los casos: 1. Primer caso: El número de elementos entrantes es de 1990, de los cuales 533 son elementos que solo pueden colocarse en el interior del almacén. Los 1457 elementos restantes pueden ir tanto dentro como fuera, aunque como se mencionó previamente en el Apartado 5.1 Determinación de los casos, se les prohibió el uso de posiciones interiores.
73 Estos valores vienen determinados por los elementos colocados en la situación que ha dado la empresa, en el Anexo: Entradas de elementos caso 1 y caso 2, se especifica la cantidad de cada tipo de elemento entrante, en el Anexo: Características de los elementos, se pueden ver las distintas características físicas de cada tipo de elemento, y el en Anexo: Valores de utilidad de los elementos para ambos casos, se pueden ver los valores de utilidad usados para cada tipo de elemento. En este caso se consideran irrelevantes las fechas de caducidad de los elementos, dado que no afectan al posicionamiento y no se realiza ninguna salida de elementos del almacén. 2. Segundo caso: El número de elementos entrantes en el segundo caso es variable pues depende de la semana a la que se haga referencia. Por lo que el proceso seguido para simular las entradas del almacén ha sido; partiendo de la previsión de fabricación del mes de Junio, cada semana se van introduciendo las cantidades previstas menos las ya colocadas en semanas anteriores, así pues en la segunda semana se introduce la previsión del mes entero menos; los elementos que realmente se fabricaron en la primera semana y las materias primas entrantes. Los elementos fabricados cada semana y la previsión por parte de la empresa para la fabricación del mes de Junio de 2016, se muestran en el Anexo: Entradas de elementos caso 1 y caso 2. La fecha de caducidad de los elementos está determinada por el primer día de la semana en la que se producen más dos años que se le suele dar al producto en los cuales se considera aceptable su comercialización, en la mayoría de los casos. Pero en caso de ser un producto que tenga restos en el interior del almacén ya sean los previamente extraídos o algún resto existente y que la entrada real del producto genere un nuevo palé de restos, se debe modificar uno de los palés entrantes colocándole la fecha más antigua al mismo. Esto se debe principalmente a que la empresa tiene como política de empresa el no tener más de un palé de restos por cada tipo de elemento dentro del almacén, sin embargo en este caso se simula un error al no aplicar la política de la empresa. Esto se ha realizado para ver el comportamiento de la herramienta ante tal
74 situación. La herramienta al encontrarse en esta situación ignora uno de los palé de restos y toma el otro como único existente dentro del almacén, aunque no se crea un problema en las salidas el elemento de exceso no se elimina ni se reajusta. Se requiere que el encargado lo extraiga mediante la extracción específica el palé sobrante. 5.3 Determinación del procedimiento seguido en cada caso En este apartado se explica el proceso que se ha seguido para obtener las soluciones en cada uno de los casos, detallando el procedimiento usado. 1. Primer caso: En este primer caso teóricamente solo sería necesario introducir los documentos con los valores previamente determinados en el sistema, aunque debido a que el número de elementos entrantes es bastante elevado y a que el almacén se encuentra completamente vacío, junto con las limitaciones técnicas, la obtención de las soluciones se realiza mediante un conjunto de entradas escalonadas de grupos de elementos y utilizando modelos más pequeños; dado que si no se hace de esta forma el consumo de recursos técnicos o informáticos no permite la obtención de una solución admisible. Los modelos más pequeños que se acaban de nombrar utilizan el modelo planteado en el Apartado 3.2.1.1 Formulación de las bases para el modelo matemático, pero incluyen algunas restricciones para limitar el uso de ciertas posiciones, y así reducir el número de variables generadas, o bien para evitar que el tiempo requerido para la obtención de una solución válida sea demasiado extenso. Ambas soluciones planteadas para este caso siguen un procedimiento bastante similar, pero los valores de los pesos en la primera solución dan lugar a que para obtener esta primera solución se tenga que seguir un procedimiento un poco más extenso que para la segunda. En el caso de la primera solución planteada donde el peso de la ocupación tiene un mayor valor se tiene que subdividir el problema en cinco entradas distintas, mientras que para la segunda solución solo es necesario subdividirlo en tres entradas. En primer lugar se procede a la explicación del proceso seguido para la primera
75 solución, y a continuación se hace lo correspondiente con la segunda solución. Primera solución del caso 1: Esta primera solución se obtiene subdividiendo en cinco modelos más pequeños la simulación, las cinco entradas que se plantean para la consecución de una solución admisible son las siguientes: 1. Colocación de los elementos interiores: El conjunto total de entradas de este problema es de 533 elementos y se dispone de 230 baldas y dos carriles. Para poder obtener una solución válida, y debido a que las baldas son consideradas de clase C2, para las cuales se realizan una serie de permutaciones, se limita el número de elementos que se pueden colocar en cada balda a ocho. Esta limitación ya comentada anteriormente, se utiliza para reducir el tiempo requerido para obtener la solución, tanto para la primera solución como para la segunda, ya que si no limitáramos esto el número de elementos que se podrían colocar en esta clase de baldas en el caso de que tuvieran una ocupación mínima y la balda fuera de las más grandes sería de unos 80, algo que resultaría inviable. Utilizando esta limitación el programa tarda unas dos horas y 30 minutos en obtener una solución válida, si se aumentara a nueve elementos el tiempo mínimo sería excesivo y el consumo de memoria del ordenador podría producir fallos en el sistema informático. 2. Colocación de los elementos exteriores con un mayor número de entradas, en los carriles con mayor espacio: Los carriles considerados en este apartado son todos aquellos que permiten colocar una cantidad de elementos equivalentes a 44 palés estándar o superior. Los elementos elegidos para ser colocados en este paso son aquellos que tengan una entrada superior o equivalente a 7200 kilos, posteriormente se ve que ciertos elementos no se pueden colocar por las limitaciones de capacidad de los carriles. Estos elementos sobrantes se introducen junto con el resto de elementos que no han sido seleccionados previamente en
76 el otro grupo de carriles. Aunque se tomen solo los elementos que tengan una entrada superior a 7200 kilos, el número de elementos entrantes sigue siendo demasiado elevado, para las limitaciones informáticas; se sigue el siguiente proceso para dividir el documento de entrada en dos: Conociendo que los mejores carriles, en términos de distancias, a la hora de posicionar los elementos, dentro del grupo de aquellos que previamente hemos limitado, tienen una capacidad para 44 palés estándar, se calcula la suma de utilidades de los elementos en grupos de 44 o hasta que se acaben. A continuación se muestra un ejemplo: El elemento del tipo 2053 tiene una entrada de 60 TN, esto equivale a 50 palés, la necesidad que se toma para la colocación de los elementos es la misma cantidad que entra más uno. Como los elementos del mismo tipo solo se diferencian entre sí por el valor de la necesidad que se les atribuye, se van seleccionando aquellos elementos con una mayor necesidad hasta que formen un grupo de 44. La utilidad de este grupo de elementos es equivalente a la suma de utilidades de los elementos seleccionados, los cuales en conjunto son mejores que cualquier otro grupo de 44 elementos del mismo tipo, pero no tienen por qué serlos en comparación con otros elementos. Los elementos seleccionados se eliminan de la lista y se repite el proceso hasta que no queden elementos del tipo en particular. En este ejemplo se forman dos grupos, uno de 44 palés y otro de seis, con utilidades totales distintas. Una vez determinados los distintos grupos de elementos se ordenan en función de estas utilidades totales y se selecciona aquel conjunto de elementos que maximicen el número de entradas al programa y que tengan un mayor valor de utilidad total, en el caso de la primera solución: 1. La primera entrada está compuesta por 1224 elementos y se colocan sobre un almacén completamente vacío.
77 2. En la segunda entrada se colocan los elementos restantes y es sobre la solución obtenida en la primera entrada. Tras la colocación de los elementos en la segunda entrada solo un conjunto de 1326 son posicionados mientras que los restantes no son colocados y se tienen en cuenta para el paso tres. 3. Colocación de los elementos restantes en los carriles con menor tamaño, también se ha subdividido en dos entradas. El total de elementos no colocados previamente asciende a 131, este número de entradas no es muy elevado sin embargo debido a que algunos carriles pequeños pertenecen a una disposición de tipo U en el almacén, esto produce numerosas soluciones alternativas que provocan problemas informáticos. Por lo que es necesaria la subdivisión del paso en dos partes: 1. En el almacén existen dos disposiciones de tipo U, para la primera parte del paso tres se eliminan los carriles pertenecientes a la segunda U, la cual tiene unos valores de utilidad peores, y se intentan colocar los 131 elementos. 2. Aquellos elementos no colocados en la parte uno del paso tres se introducen en el almacén pero usando únicamente aquellos carriles que pertenecen a la segunda U y que han sido excluidos en la parte uno del paso tres. Tanto en el paso dos como en el paso tres se deben incluir un conjunto de restricciones que limiten el uso de carriles, ya que si no se incluyeran, como no entran todos los elementos posibles y no se penaliza la no colocación de los mismos, podrían quedar elementos sin colocar. Para evitar esto en el paso dos se limita el uso de carriles para cada tipo de elemento al número de grupos de 44 elementos o inferior que se generan, y en el paso tres se aplica el mismo criterio pero tomando grupos de tamaño dos, dado que es el carril más pequeño disponible. Los documentos de la primera solución se encuentran en el Anexo: Solución 1 de la herramienta para el caso 1.
78 Segunda solución del caso 1: La obtención de esta solución es bastante más sencilla que la previamente mencionada pues al dar mayor peso a las distancias de los carriles no se generan tantas soluciones alternativas similares. Sin embargo el número de elementos entrantes sigue siendo demasiado alto por lo que se debe subdividir el caso en tres entradas: 1. Colocación de los elementos interiores: La sistemática que se aplica para este paso es similar a la usada en la obtención de la primera solución. 2. Colocación de los elementos exteriores: En este caso el número de elementos entrantes es lo que generaba problemas en términos informáticos, por lo que se subdividen las entradas en dos: 1. En la primera entrada se procede de manera similar al paso dos de la primera solución, a la hora de seleccionar los elementos entrantes, sin embargo los grupos de 44 elementos se calculan utilizando todos los elementos entrantes. Es decir se utilizan los 1457 elementos entrantes y solo los carriles con una capacidad para 44 palés equivalentes o más. El número de elementos entrantes para este paso es de 1061 ya que si se colocan un mayor valor de entradas, el sistema carecía de las capacidades técnicas para obtener una solución admisible, y además se vuelve a incluir las restricciones para el uso de carriles aunque en este caso no era necesario. 2. Una vez solucionada la primera parte del paso dos, se procede a la colocación de los elementos restantes en el almacén. Para ello se utiliza como situación actual la solución obtenida en la parte uno del paso dos. Al obtener la primera solución admisible existía un elemento que no colocaba el programa debido a que proporcionaba una solución peor, por lo que para esta parte en particular se incluyó
79 una penalización en la función objetivo si algún elemento no era colocado. Los documentos de la segunda solución se encuentran en el Anexo: Solución 2 de la herramienta para el caso 1. 2. Segundo caso: El primer paso para obtener una solución en este segundo caso, consiste en la identificación de todos los elementos colocados en el almacén al inicio del mes de Junio de 2016, así como sus fechas de caducidad, algo que es extremadamente importante a la hora de extraer los elementos destinados a ventas o consumos. Partiendo de la situación en la que se basa el caso uno, que es la localización final de los elementos al finalizar el mes de Mayo de 2016, se incluye la fecha de caducidad de los elementos en el documento, algo que no se tiene en cuenta en el primer caso y que es necesario para el caso dos. Por otra parte se produce un conjunto de salidas de elementos ya colocados inicialmente, esto se debe principalmente a que toda producción que no sea una cantidad exacta hace uso de los restos que actualmente se encuentran en el almacén y todos los restos usados se consideraran extraídos y colocados en una zona reservada al lado de la zona de fabricación, Anexo: Salidas previas a la semana 1 del caso 2. Además de la extracción de todos aquellos restos afectados se produce una salida más; la que viene determinada por la necesidad del laboratorio para una prueba, es la referente a los restos del elemento 2077; al finalizar estas extracciones se llega al documento que se usa de punto de partida para el segundo caso. La situación de partida viene dada en el Anexo: Situación tras las salidas previas del caso 2. En este caso no es necesario subdividir cada entrada de elementos en varias partes, sin embargo cada semana requiere seguir el procedimiento explicado a continuación para sacar la situación final según la herramienta. El conjunto de pasos dados son los siguientes: 1. Extracción de los materiales usados durante la producción de la semana anterior.
86 Gráfica de comparativa sobre el total semanal de los carriles: Figura 5 - 8, Gráfica comparativa de los carriles por semanas [Fuente: Elaboración propia] Gráfica de comparativa sobre el total semanal de las baldas más los carriles: Figura 5 - 9, Gráfica comparativa de valores totales por semanas [Fuente: Elaboración propia] 75000 80000 85000 90000 95000 100000 Semana 1 Semana 2 Semana 3 Comparativa de los carriles por semanas (metros) Empresa Programa 91% 92% 93% 94% 95% 96% 97% 98% 99% 100% Semana 1 Semana 2 Semana 3 Comparativa total por semanas (metros) Solución del programa Diferencia con la empresa
87 5.5 Conclusiones en base a los resultados Las conclusiones finales para cada caso vienen explicadas a continuación. Conclusiones de los resultados del primer caso: Se puede observar claramente que ambas soluciones proporcionan mejores valores tanto en los carriles como en las baldas; en el caso de los carriles la primera solución es ligeramente superior a la segunda solución aunque también es menos realista en el sentido de que se ha limitado en mayor medida la libertad del programa a la hora de tomar las decisiones. Mientras que en el caso de las baldas se puede apreciar una diferencia significativa entre las dos soluciones planteadas por el programa, esto se debe principalmente a que la ocupación no debería tener un valor muy alto a la hora de valorar una posición dentro de la función objetivo que se ha definido, pues está pensada para diferenciar dos posiciones relativamente similares en términos de distancias y además en este caso existe suficiente espacio en el almacén por lo que no sería necesario maximizar la ocupación a costa de disminuir el rendimiento considerando únicamente las distancias a las zonas de referencia. En términos totales se puede ver que la primera solución es un 7% mejor que la que plantea la empresa y la segunda solución un 22%, siendo esta preferible. Estas diferencias se deben principalmente al criterio de la empresa de colocar los elementos en posiciones fijas según su tipo dando lugar a que si no existe suficiente espacio o sus valores de rotación o cualquier otra característica cambia, se generen situaciones que no sean óptimas dentro del almacén en términos teóricos. Tomando la segunda solución, ese 22% de mejora con respecto a la situación de la empresa se puede traducir en ahorro económico y tiempo, pues se reduce el gasto en gasolina, mantenimiento de la carretilla, horas extras debido a tiempos de carga elevado y demás costes relacionados con un menor rendimiento, si se planteara el uso de este programa como una herramienta para posicionar cada cierto tiempo los elementos en el almacén y tomar esas posiciones como ubicaciones fijas.
88 Conclusiones de los resultados del segundo caso: Los resultados obtenidos para el segundo caso son bastante más interesantes que en el primero debido a que la propia situación de partida del almacén es mucho más restrictiva, ya que en la realidad el reubicar todos los elementos en el almacén es tremendamente costoso y no sería recomendable por lo menos de manera habitual. Se puede observar que las baldas dan valores mejores en el caso de la solución obtenida con la herramienta informática, esa mejora en comparación con el total de metros recorridos por elementos de las baldas ronda un valor del 4% en la primera semana, un 5% la segunda semana y un 6% la tercera semana. Sigue una tendencia creciente que se da principalmente por el hecho de haber tenido en consideración los elementos que van a entrar en un futuro no muy lejano y aunque inicialmente esa reserva de posiciones pueda ser perjudicial a la hora de acercarse al óptimo de cada semana, partiendo de una situación determinada, permite adecuar el almacén siendo beneficioso si se controlan aquellos elementos con una rotación muy larga. Pues al depender su posicionamiento exclusivamente de los elementos entrantes en cierto periodo de tiempo, en este caso desde un mes hasta dos semanas siendo en todas las simulaciones el total de entradas superior o equivalente al 50% de elementos entrantes durante el mes, podría dar lugar a que se ubicaran elementos con gran rotación en posiciones muy útiles, algo perjudicial a largo plazo. Este problema solo surgiría con productos acabados pues las materias primas se introducen al inicio del mes junto con la totalidad de la previsión imposibilitando en gran medida que sean colocados en buenas posiciones excepto si son realmente útiles por número de movimientos o rotación. Aun así se aconsejaría controlar este tipo de elementos y reubicarlos si fuera necesario. En el caso de los carriles se puede ver que se han obtenido peores valores durante las dos primeras semanas y en la tercera se ha recuperado gran parte de esas pérdidas llegando hasta una mejora del 5%, el principal motivo de estos resultados es debido a la manera de ubicar los elementos de la empresa, ya que cuando llega un elemento por encima de las cantidades que uso en su día la empresa para ubicar los elementos, estos pueden llegar a ocupar carriles que son más útiles para otro conjunto de elementos que están por venir aunque en un principio obtengan mejores resultados por colocarlos en esos carriles.
89 En términos totales las mejoras de las baldas contrarrestan las pérdidas en los carriles las primeras dos semanas siendo el total en la primera semana un 2%, en la segunda semana del 2.4%, mientras que en la tercera debido a que se mejoran ambos valores el total es de un 5.5%. Hay que tener en cuenta que al entrar menos elementos de manera progresiva se va a producir un aumento simplemente por el hecho de reservar menos posiciones. En resumen los valores obtenidos en la segunda resolución muestran que las soluciones del programa son mejores que las proporcionadas por la empresa y si el almacén se mantiene en una situación donde los cambios en las demandas no sean muy drásticos la opción de usar el programa de manera semanal es bastante interesante y viable.
90
91 6 Conclusiones Finalmente tras la creación de la herramienta informática, la cual es la propuesta de solución, y la evaluación de la misma mediante la experimentación en los dos casos presentados en el capítulo anterior, he llegado a las siguientes conclusiones: En primer lugar basándonos en los resultados obtenidos, los cuales son ligeramente mejores que los resultados reales de la empresa, siendo los más relevantes los del segundo caso; si habláramos únicamente en términos de aprovechamiento del tiempo, no se puede asegurar que estas mejoras en la localización de los productos y materias primas tenga una gran repercusión sobre los momentos de máximo estrés o carga de trabajo hasta el punto de suponer una solución útil. Aunque es cierto que se reducen las distancias entre las posiciones de los elementos y los puntos clave del almacén, permitiendo que se reduzcan los tiempos de carga de los camiones. En segundo lugar se demuestra que la solución propuesta hace un seguimiento preciso de la ubicación de los elementos y de su fecha de caducidad; este punto es de gran importancia pues el sistema de la empresa no hace tal especificación actualmente, si no que trata en cantidades absolutas los elementos que se encuentran en el almacén; es decir: considera que aquellos palés del mismo tipo de elemento que están definidos en la herramienta de manera independiente, son un solo valor equivalente al sumatorio de las cantidades de los mismos. Esta utilidad de la solución propuesta permite por una parte que el empleado obtenga la ubicación del elemento sin depender de su memoria o visión, y por otra parte una selección del palé saliente en función de su fecha de caducidad teniendo en cuenta todos los palés del mismo tipo de elemento. Implicando desde el punto de vista de la operatividad a la salida de los productos del almacén, que se evite una selección errónea del elemento por desconocimiento de la propia posición del elemento, o desconocimiento de la existencia de otro elemento que se adaptara mejor a las características demandadas.
92 En tercer lugar si hablamos del aspecto económico de implantar una herramienta como la planteada en el proyecto, se pueden diferenciar dos casos distintos. El primer caso, en el cual se considera una implementación donde no se tuviera que interactuar de manera directa con el resto del sistema de la compañía; es decir: que se alimente con datos a la herramienta mediante documentos externos al sistema como se ha realizado durante la resolución de los casos del proyecto, el coste no es alto debido al hecho de requerir poco equipo y pocas modificaciones en la programación; estas modificaciones están mayoritariamente relacionadas con la interfaz. Para este caso su mayor coste está establecido o provocado por el factor humano y licencias que fueran necesarias para su funcionamiento. Específicamente las licencias de Gurobi pues el resto de programas utilizados son distribuidos de manera gratuita. Este coste en factor humano puede ser reducido drásticamente e incluso anulado mediante la implicación del propio personal de la empresa, teniendo en cuenta que la herramienta es genérica y que permite un fácil acceso a los datos, el tiempo necesario para aprender a manejarla es muy reducido. Sin embargo en el segundo caso, si se buscara implantar la herramienta informática dentro del sistema de la empresa, las modificaciones necesarias son muy numerosas; pues aunque la compañía dispone actualmente de todos los valores necesarios para el buen funcionamiento de la herramienta, los datos necesarios para alimentarla se manejan dentro del sistema informático mediante el uso de diversos programas que no tienen interrelación entre ellos. Este uso de diferentes programas para el manejo de los datos, debe ser tratado anteriormente a la implantación de la herramienta; pues el tener un sistema totalmente integrado facilita en gran medida no solo la implantación de la herramienta, si no cualquier modificación del sistema a posteriori evitando usar programas puente para compatibilizar los distintos tipos de datos. Finalmente habiendo valorado los dos casos considerados sobre la implantación de la herramienta, opto por un uso externo de la misma respecto al sistema de la compañía, por lo menos a medio y corto plazo; considerándola un soporte para la gestión del almacén. Esto se debe a que la implantación dentro del sistema añade una mayor complejidad a un sistema que no se encuentra normalizado.
93 Como conclusiones finales debo añadir que el proyecto da una posible solución al sistema actual de la empresa en cuanto al manejo del almacén, ofreciendo una gran cantidad de oportunidades debido a la facilidad que tiene la herramienta para ser modificada; por ejemplo la consideración de alguna limitación nueva. Pero existen algunos aspectos que pueden tener efectos adversos sobre su uso como la propia estacionalidad de ciertos elementos en su demanda que podrían provocar un desajuste o el horizonte temporal a definir de las entradas en el almacén; ya que aunque sean almacenes genéricos los productos manejados pueden variar en algunos casos, requiriendo un estudio para cada caso específico y las modificaciones pertinentes.
94
95 7 Bibliografía Riccardo Manzini (2012), Warehousing in the global supply chain, Advanced Models, Tools and Applications for Storage Systems. Springer. George B.Dantzig (1963), Linear programming and extensions, Princeton university press. Saul I.Gass (1985), Linear programming, Methods and applications, Dover publications, Inc. Mineola New York. Fifth edition (2003). José M.Sallan, Joan B.Fonollosa y Albert Suñe Torrents (2002), Métodos cuantitativos de organización industrial I, Edición UPC, segunda edición (2005). Matteo Brunelli (2015), Introduction to the Analytic Hierarchy Process, Springer. Thomas L.Saaty (1980), The analytic hierarchy process, McGraw-Hill. Thomas L.Saaty & Luis G.Vargas (2012), Models, methods, concepts & applications of the analytic hierarchy process, Springer Second edition. Bjame Stroustrup (2002), El lenguaje de programación C++, Pearson education, 2002, Traducción: José Daniel García. [http://www.gurobi.com/] Gurobi Optimization – The state-of-the-art mathematical programming solver [Último acceso: Noviembre 2018]. [http://www.cplusplus.com/reference/] Reference - C++ Reference [Último acceso: Noviembre 2018]. [https://visualstudio.microsoft.com/es/] IDE de Visual Studio, editor de código, VSTS y centro de aplicaciones – Visual Studio [Último acceso: Noviembre 2018].