{"id":37108,"date":"2019-10-31T22:15:47","date_gmt":"2019-10-31T19:15:47","guid":{"rendered":"https:\/\/prohoster.info\/blog\/diskretnaya-matematika-dlya-wms-algoritm-szhatiya-tovarov-v-yachejkah-chast-1\/"},"modified":"2019-10-31T22:15:47","modified_gmt":"2019-10-31T19:15:47","slug":"diskretnaya-matematika-dlya-wms-algoritm-szhatiya-tovarov-v-yachejkah-chast-1","status":"publish","type":"post","link":"https:\/\/prohoster.info\/es\/blog\/news\/diskretnaya-matematika-dlya-wms-algoritm-szhatiya-tovarov-v-yachejkah-chast-1","title":{"rendered":"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/89e9927c86cd36ee5b4ab37b5c0753c9.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEn este art\u00edculo, hablaremos sobre c\u00f3mo resolvimos el problema de la falta de espacios libres en el almac\u00e9n y sobre el desarrollo de un algoritmo de optimizaci\u00f3n discreta para abordar esta tarea. Comentaremos c\u00f3mo 'construimos' el modelo matem\u00e1tico del problema de optimizaci\u00f3n y sobre las dificultades inesperadas que enfrentamos al procesar los datos de entrada para el algoritmo.<\/p>\n<p>Si te interesan las aplicaciones de la matem\u00e1tica en los negocios y no temes a las rigurosas transformaciones algebraicas en el nivel de quinto grado, \u00a1bienvenido a leer m\u00e1s!<\/p>\n<p>El art\u00edculo ser\u00e1 \u00fatil para aquellos que implementan <i>WMS<\/i>-sistemas, trabajan en la industria de la log\u00edstica de almacenes o producci\u00f3n, as\u00ed como para programadores que se interesan por las aplicaciones de la matem\u00e1tica en los negocios y la optimizaci\u00f3n de procesos en la empresa.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h4>Parte introductoria<\/h4>\n<p>\nEsta publicaci\u00f3n contin\u00faa una serie de art\u00edculos en los que compartimos nuestra exitosa experiencia en la implementaci\u00f3n de algoritmos de optimizaci\u00f3n en procesos de almac\u00e9n. <\/p>\n<p>En <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/463289\/\">art\u00edculo anterior<\/a><\/noindex> se describe la especificidad del almac\u00e9n en el que implementamos <i>WMS<\/i>-sistema, as\u00ed como se explica por qu\u00e9 necesit\u00e1bamos resolver el problema de clustering de lotes de productos restantes al implementar <i>WMS<\/i>-sistema, y c\u00f3mo lo hicimos.<\/p>\n<p>Cuando terminamos de escribir el art\u00edculo sobre algoritmos de optimizaci\u00f3n, result\u00f3 ser muy extenso, por lo que decidimos dividir el material acumulado en 2 partes:<\/p>\n<ul>\n<li>En la primera parte (este art\u00edculo) hablaremos sobre c\u00f3mo 'construimos' el modelo matem\u00e1tico del problema y sobre las grandes dificultades que inesperadamente encontramos al procesar y transformar los datos de entrada para el algoritmo.<\/li>\n<li>En la segunda parte, analizaremos en detalle la implementaci\u00f3n del algoritmo en el lenguaje <i>C++<\/i>, realizaremos un experimento computacional y resumiremos la experiencia que obtuvimos al implementar estas 'tecnolog\u00edas inteligentes' en los procesos comerciales del cliente.<\/li>\n<\/ul>\n<p>\nC\u00f3mo leer el art\u00edculo. Si has le\u00eddo el art\u00edculo anterior, puedes pasar directamente al cap\u00edtulo 'Revisi\u00f3n de soluciones existentes', si no lo has hecho, la descripci\u00f3n del problema a resolver est\u00e1 en el spoiler a continuaci\u00f3n.<\/p>\n<p><b class=\"spoiler_title\">Descripci\u00f3n del problema a resolver en el almac\u00e9n del cliente.<\/b><\/p>\n<h4>Cuello de botella en los procesos.<\/h4>\n<p>\nEn 2018, realizamos un proyecto para implementar <i>WMS<\/i>-sistema en el almac\u00e9n 'Casa Comercial LD' en Chelyabinsk. Implementamos el producto '1C-Log\u00edstica: Gesti\u00f3n de almacenes 3' en 20 puestos de trabajo: operadores. <i>WMS<\/i>, operadores de montacargas. El almac\u00e9n tiene un tama\u00f1o medio de alrededor de 4,000 m2, con 5000 ubicaciones y 4500 SKU. En el almac\u00e9n se almacenan v\u00e1lvulas esf\u00e9ricas de producci\u00f3n propia en diferentes tama\u00f1os, desde 1 kg hasta 400 kg. Las existencias en el almac\u00e9n se mantienen en lotes, ya que hay necesidad de seleccionar productos seg\u00fan FIFO.<\/p>\n<p>Durante el dise\u00f1o de los esquemas de automatizaci\u00f3n de los procesos de almac\u00e9n, nos encontramos con el problema existente del almacenamiento no \u00f3ptimo de las existencias. La especificidad del almacenamiento y apilamiento de las v\u00e1lvulas es tal que en una ubicaci\u00f3n de almacenamiento unitario puede haber solo un tipo de lote (ver figura 1). Los productos llegan al almac\u00e9n a diario y cada llegada representa un lote separado. En total, como resultado de un mes de operaci\u00f3n del almac\u00e9n, se generan 30 lotes individuales, y cada uno debe almacenarse en una ubicaci\u00f3n separada. Los productos a menudo se seleccionan no en palets completos, sino por unidades, y como resultado, en la zona de selecci\u00f3n de unidades, en muchas ubicaciones se observa la siguiente situaci\u00f3n: en una ubicaci\u00f3n de m\u00e1s de 1m3 hay varias v\u00e1lvulas que ocupan menos del 5-10% del volumen de la ubicaci\u00f3n. <\/p>\n<p><img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/a7c03f2302c3be02c00c670453353f16.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Fig. 1. Foto de varias unidades en una ubicaci\u00f3n<\/i><\/p>\n<p>Se observa un uso no \u00f3ptimo de las capacidades del almac\u00e9n. Para ilustrar la magnitud del problema, puedo proporcionar cifras: en promedio, hay entre 100 y 300 de estas ubicaciones de m\u00e1s de 1m3 con \"m\u00ednimas\" existencias en diferentes per\u00edodos de operaci\u00f3n del almac\u00e9n. Dado que el almac\u00e9n es relativamente peque\u00f1o, durante las temporadas de carga este factor se convierte en un \"cuello de botella\" que ralentiza significativamente los procesos de recepci\u00f3n y despacho del almac\u00e9n.<\/p>\n<h4>Idea para solucionar el problema<\/h4>\n<p>\nSurgi\u00f3 la idea: agrupar los lotes con las fechas m\u00e1s cercanas en un solo lote unificado y almacenar estos lotes con una partida estandarizada de manera compacta en una ubicaci\u00f3n, o en varias si no hay suficiente espacio en una para almacenar toda la cantidad de existencias. Un ejemplo de esta \"compresi\u00f3n\" se ilustra en la figura 2.<\/p>\n<p><img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/792f114a7afa6272a6d152a784650681.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Fig. 2. Esquema de compresi\u00f3n de existencias en las ubicaciones<\/i><\/p>\n<p>Esto permite reducir significativamente el espacio de almacenamiento requerido, que ser\u00e1 utilizado para el nuevo producto que se va a colocar. En una situaci\u00f3n de sobrecarga de capacidad de almacenamiento, esta medida es absolutamente necesaria; de lo contrario, podr\u00eda simplemente no haber espacio disponible para alojar el nuevo producto, lo que llevar\u00e1 a un estancamiento en los procesos de almacenamiento y suministro, y, como consecuencia, a un estancamiento en la recepci\u00f3n y el env\u00edo. Antes, antes de implementar el sistema WMS, esta operaci\u00f3n se realizaba manualmente, lo cual era ineficiente, ya que el proceso de b\u00fasqueda de existencias adecuadas en las ubicaciones era bastante largo. Ahora, con la implementaci\u00f3n del sistema WMS, hemos decidido automatizar, acelerar y hacer m\u00e1s inteligente el proceso.<\/p>\n<p>El proceso de resolver esta tarea se divide en 2 etapas: <\/p>\n<ul>\n<li>en la primera etapa, encontramos grupos de partidas que son cercanas en fecha para comprimir (a esta tarea se dedica <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/463289\/\">el art\u00edculo anterior<\/a><\/noindex>);<\/li>\n<li>en la segunda etapa, calculamos para cada grupo de partidas la ubicaci\u00f3n m\u00e1s compacta de las existencias en las ubicaciones. <\/li>\n<\/ul>\n<p>\nEn este art\u00edculo, nos detendremos en la segunda etapa del algoritmo.<\/p>\n<h4>Revisi\u00f3n de soluciones existentes<\/h4>\n<p>\nAntes de pasar a la descripci\u00f3n de los algoritmos que hemos desarrollado, es conveniente realizar una breve revisi\u00f3n de los sistemas que ya existen en el mercado <i>WMS<\/i>, en los que se implementa una funcionalidad similar de compresi\u00f3n \u00f3ptima.<\/p>\n<p>En primer lugar, es necesario se\u00f1alar el producto \"1C: Enterprise 8. WMS Log\u00edstica. Gesti\u00f3n de Almacenes 4\", que pertenece y es distribuido por la empresa 1C y se refiere a la cuarta generaci\u00f3n <i>WMS<\/i>-de sistemas, desarrollados por la compa\u00f1\u00eda AXELOT. En este sistema se declara una funcionalidad de compresi\u00f3n que est\u00e1 destinada a unificar existencias dispares de productos en una \u00fanica ubicaci\u00f3n com\u00fan. Cabe mencionar que la funcionalidad de compresi\u00f3n en este sistema tambi\u00e9n incluye otras capacidades, como la correcci\u00f3n del posicionamiento de productos en las ubicaciones de acuerdo con sus clases ABC, pero no nos detendremos en ellas. <\/p>\n<p>Al analizar el c\u00f3digo del sistema \u00ab1C: Empresa 8. WMS Log\u00edstica. Gesti\u00f3n de Almacenes 4\u00bb (que en esta parte del funcionalidad es abierto), se puede concluir lo siguiente. El algoritmo de compresi\u00f3n de existencias implementa una l\u00f3gica lineal bastante primitiva y no se puede hablar de una compresi\u00f3n \u00ab\u00f3ptima\u00bb. Naturalmente, no prev\u00e9 la agrupaci\u00f3n de lotes. Varios clientes que han implementado este sistema se han quejado de los resultados de la planificaci\u00f3n de compresi\u00f3n. Por ejemplo, a menudo, en la pr\u00e1ctica, al comprimir, ocurr\u00eda la siguiente situaci\u00f3n: 100 unidades de existencias de un art\u00edculo se planifican para mover a otra ubicaci\u00f3n, donde hay 1 unidad del art\u00edculo, aunque lo \u00f3ptimo desde el punto de vista de los costos de tiempo ser\u00eda hacer lo contrario.<\/p>\n<p>La funcionalidad de compresi\u00f3n de existencias de productos en ubicaciones tambi\u00e9n se ha declarado en muchos sistemas extranjeros, <i>WMS<\/i>pero, desafortunadamente, no tenemos ni opiniones reales sobre la efectividad de los algoritmos (eso es un secreto comercial), ni tampoco una idea de la profundidad de su l\u00f3gica (software propietario con c\u00f3digo cerrado), por lo que no podemos juzgar.<\/p>\n<h4>B\u00fasqueda de un modelo matem\u00e1tico del problema<\/h4>\n<p>\nPara dise\u00f1ar algoritmos de calidad para resolver el problema, es necesario primero formularlo claramente desde una perspectiva matem\u00e1tica, lo que haremos.<\/p>\n<p>Hay muchas ubicaciones <img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/bfff1fb95dd0c633ada02b9398778eab.jpeg\" style=\"display:block;margin: 0 auto;\" \/>, donde hay existencias de alg\u00fan producto. A continuaci\u00f3n, llamaremos a estas ubicaciones celdas donantes. Denotemos <img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/50ef693482cd4cb27410b30b0bc107b1.jpeg\" style=\"display:block;margin: 0 auto;\" \/> el volumen de producto que se encuentra en la ubicaci\u00f3n <img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/dc7faf1656fb12c8e467fe3a5b8977fa.jpeg\" style=\"display:block;margin: 0 auto;\" \/>$.<\/p>\n<p>Es importante decir que en el procedimiento de compresi\u00f3n solo puede participar un producto de un lote, o varios lotes, previamente agrupados en un cl\u00faster (lee <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/463289\/\">el art\u00edculo anterior<\/a><\/noindex>), lo que se debe a la especificidad del almacenamiento y la colocaci\u00f3n de productos. Para diferentes productos o diferentes cl\u00fasteres de lotes, debe iniciarse un procedimiento de compresi\u00f3n separado.<\/p>\n<p>Hay muchas ubicaciones <img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/b9aafca691626263d8ecc2faed8dfcfe.jpeg\" style=\"display:block;margin: 0 auto;\" \/>, en los que potencialmente pueden colocarse las existencias de las celdas donantes. Estas celdas las llamaremos celdas contenedoras. Pueden ser tanto celdas libres en el almac\u00e9n como celdas donantes de un conjunto de <img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/25731bc72091e2284e76c434d2abdcfd.jpeg\" style=\"display:block;margin: 0 auto;\" \/>. Siempre un conjunto <img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/d407f97344131a3056b1eab1d3dd7dcd.jpeg\" style=\"display:block;margin: 0 auto;\" \/> es un subconjunto de <img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/581806d446f3d8c91927045249698e71.jpeg\" style=\"display:block;margin: 0 auto;\" \/>.<\/p>\n<p>Para cada celda <img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/b084d5852a1e4f00d2498640534d66e9.jpeg\" style=\"display:block;margin: 0 auto;\" \/> del conjunto <img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/236efb40a21865f78240c8e14303cc2e.jpeg\" style=\"display:block;margin: 0 auto;\" \/> se establecen restricciones sobre la capacidad <img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/fe253cfe5f2aa39bc8e064674fb206f8.jpeg\" style=\"display:block;margin: 0 auto;\" \/>, medidos en dm3. Un dm3 representa un cubo con lados de 10 cm. La mercanc\u00eda almacenada en el almac\u00e9n es bastante grande, por lo que en este caso tal discretizaci\u00f3n es suficiente. <\/p>\n<p>Se ha establecido una matriz de distancias m\u00e1s cortas <img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/48c133b0affa17f6a2367a02241d5f17.jpeg\" style=\"display:block;margin: 0 auto;\" \/> en metros entre cada par de celdas <img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/8fd860e331a8e42dd258857bdf580c05.jpeg\" style=\"display:block;margin: 0 auto;\" \/>, donde <img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/feb9a48c6e9e4ccd8e9fa1db5565e96e.jpeg\" style=\"display:block;margin: 0 auto;\" \/> y <img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/d9a48a8a22ea984d0769373c5620c99a.jpeg\" style=\"display:block;margin: 0 auto;\" \/> pertenecen a conjuntos <img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/e2dd20fda8a8b0b5ea2173c14f04fe00.jpeg\" style=\"display:block;margin: 0 auto;\" \/> y <img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/0dabafdb55ac6b8495f6d5f657d6c01d.jpeg\" style=\"display:block;margin: 0 auto;\" \/> correspondientemente. <\/p>\n<p>Denotemos <img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/2994defad9bb0a44741f31a85273abf2.jpeg\" style=\"display:block;margin: 0 auto;\" \/> los \u00abcostos\u00bb de mover mercanc\u00eda de una celda<img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/a2e54425ec786d3a88290dda47f4b9cb.jpeg\" style=\"display:block;margin: 0 auto;\" \/> a otra celda <img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/bf4a9f1a1f396a9b7b6244cf8c77ecc8.jpeg\" style=\"display:block;margin: 0 auto;\" \/>. Denotemos <img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/6f4c10386fc638f6ca37e0ccdcf4ccb4.jpeg\" style=\"display:block;margin: 0 auto;\" \/> los \u00abcostos\u00bb de elegir un contenedor <img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/613d619ea5951551427f0cd45c7f79bf.jpeg\" style=\"display:block;margin: 0 auto;\" \/> para mover restos de otras celdas. C\u00f3mo y en qu\u00e9 unidades se calcular\u00e1n los valores <img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/22130f203fde6271e33cba0db14d6a80.jpeg\" style=\"display:block;margin: 0 auto;\" \/> y <img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/d75c50be3ee4f8e02a9523f2d2109f0d.jpeg\" style=\"display:block;margin: 0 auto;\" \/> lo veremos m\u00e1s adelante (ver secci\u00f3n preparaci\u00f3n de datos de entrada), por ahora es suficiente decir que tales magnitudes ser\u00e1n directamente proporcionales a las magnitudes <img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/5e4e80f122ac1fe43f94de2726c0d3b7.jpeg\" style=\"display:block;margin: 0 auto;\" \/> y <img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/1b6a9d41ba4ad68d5a5fbae883b80596.jpeg\" style=\"display:block;margin: 0 auto;\" \/> correspondientemente.<\/p>\n<p>Denotemos por <img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/1ebfe4179740aff474a78d11a004aaa7.jpeg\" style=\"display:block;margin: 0 auto;\" \/> una variable que toma el valor 1 si los restos de la celda <img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/48f9789788c38746ba4ac0c947e0a4ca.jpeg\" style=\"display:block;margin: 0 auto;\" \/> se trasladan al contenedor <img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/58ce0b4c9bfb946c00bffdc0c50a05d6.jpeg\" style=\"display:block;margin: 0 auto;\" \/>, y 0 en caso contrario. Denotemos por <img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/642d5627193c55922be5274826b75cb4.jpeg\" style=\"display:block;margin: 0 auto;\" \/> una variable que toma el valor 1 si el contenedor <img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/6939c9f4daf2ecd531d9c2518c03401d.jpeg\" style=\"display:block;margin: 0 auto;\" \/> contiene restos de mercanc\u00eda, y 0 en caso contrario.<\/p>\n<p><b>El problema se plantea as\u00ed<\/b>: es necesario encontrar un conjunto de contenedores <img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/d6065db66f210083181dabb39f0e9e16.jpeg\" style=\"display:block;margin: 0 auto;\" \/> y de esta manera \u00abacoplar\u00bb las celdas donantes a las celdas contenedoras, de modo que se minimice la funci\u00f3n<\/p>\n<p><img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/68d7f0271f9761fff2c762e0fe6f5207.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>sujeta a restricciones<\/p>\n<p><img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/d57b8752aa4a8140e239dfa7fdc9ec36.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>En resumen, durante el c\u00e1lculo de la soluci\u00f3n del problema, buscamos: <\/p>\n<ul>\n<li>en primer lugar, ahorrar espacio de almacenamiento; <\/li>\n<li>en segundo lugar, ahorrar tiempo a los almacenistas. <\/li>\n<\/ul>\n<p>\nLa \u00faltima restricci\u00f3n significa que no podemos mover mercanc\u00edas a un contenedor que no hemos elegido, y por lo tanto no hemos \u00abincurrido en costos\u00bb por su elecci\u00f3n. Tambi\u00e9n, esta restricci\u00f3n significa que el volumen de mercanc\u00edas trasladadas de las celdas al contenedor no debe exceder la capacidad del contenedor. La soluci\u00f3n del problema se entender\u00e1 como el conjunto de contenedores <img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/db0f987f2d388ad1394d21404e183c93.jpeg\" style=\"display:block;margin: 0 auto;\" \/> y las formas de acoplar las celdas donantes a los contenedores.<\/p>\n<p>Esta formulaci\u00f3n del problema de optimizaci\u00f3n no es nueva y ha sido investigada por muchos matem\u00e1ticos desde principios de los a\u00f1os 80 del siglo pasado. En la literatura extranjera hay 2 problemas de optimizaci\u00f3n con un modelo matem\u00e1tico adecuado: <noindex><a rel=\"nofollow\" href=\"http:\/\/www.math.nsc.ru\/AP\/benchmarks\/CFLP\/cflp.html\">Problema de Localizaci\u00f3n de Instalaciones Capacitado de Fuente \u00danica<\/a><\/noindex> y <noindex><a rel=\"nofollow\" href=\"https:\/\/waset.org\/publications\/10002290\/a-survey-of-discrete-facility-location-problems\">Problema de Localizaci\u00f3n de Instalaciones Capacitado de M\u00faltiples Fuentes<\/a><\/noindex> (hablemos m\u00e1s adelante sobre las diferencias de las tareas). Vale la pena mencionar que en la literatura matem\u00e1tica, la formulaci\u00f3n de estas dos tareas de optimizaci\u00f3n se presenta en t\u00e9rminos de la ubicaci\u00f3n de instalaciones en el territorio, de ah\u00ed el nombre \u00abFacility Location\u00bb. En su mayor parte, esto es una cuesti\u00f3n de tradici\u00f3n, ya que la necesidad de resolver tales problemas combinatorios surgi\u00f3 por primera vez en el \u00e1mbito de la log\u00edstica, mayormente en la industria militar en la d\u00e9cada de 1950. En t\u00e9rminos de ubicaci\u00f3n de instalaciones, estas tareas se formulan as\u00ed: <\/p>\n<ul>\n<li>Hay un conjunto finito de ciudades donde potencialmente se pueden ubicar instalaciones de producci\u00f3n (en adelante, ciudades-productoras). Para cada ciudad-productora, se han determinado los costos de apertura de una instalaci\u00f3n en ella, as\u00ed como las restricciones sobre la capacidad de producci\u00f3n de la instalaci\u00f3n que se abrir\u00e1.<\/li>\n<li>Hay un conjunto finito de ciudades donde est\u00e1n ubicados los clientes (en adelante, ciudades-clientes). Para cada una de estas ciudades-clientes se ha establecido el volumen de demanda de productos. Para simplificar, consideraremos que el producto que producen las instalaciones y que consumen los clientes es el mismo.<\/li>\n<li>Para cada par ciudad-productora y ciudad-cliente se ha determinado el costo de transporte para entregar el volumen requerido de productos desde el productor al cliente.<\/li>\n<\/ul>\n<p>\nEs necesario encontrar en qu\u00e9 ciudades abrir instalaciones y c\u00f3mo asignar a los clientes a tales instalaciones, de modo que:<\/p>\n<ul>\n<li>Los costos totales de apertura de instalaciones y los costos de transporte sean m\u00ednimos;<\/li>\n<li>El volumen de demanda de los clientes asignados a alguna instalaci\u00f3n abierta no supere la capacidad de producci\u00f3n de esta instalaci\u00f3n.<\/li>\n<\/ul>\n<p>\nAhora vale la pena mencionar la \u00fanica diferencia entre estas dos tareas cl\u00e1sicas:<\/p>\n<ul>\n<li>Single-Source Capacitated Facility Location Problem \u2013 el cliente es suministrado solo desde una instalaci\u00f3n abierta;<\/li>\n<li>Multi-Source Capacitated Facility Location Problem \u2013 el cliente puede ser suministrado desde varias instalaciones abiertas simult\u00e1neamente.<\/li>\n<\/ul>\n<p>\nEsta diferencia entre las dos tareas, a primera vista, parece insignificante, pero en realidad conduce a una estructura combinatoria completamente diferente de tales tareas y, como consecuencia, a algoritmos de soluci\u00f3n muy distintos. La diferencia entre las tareas se ilustra en la imagen a continuaci\u00f3n.<\/p>\n<p><img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/77962906c7de2fced174d4a2b7785cc2.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Fig. 3. a) Multi-Source Capacitated Facility Location Problem<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/0242437e488a1aea0f00ce9ede02886d.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Fig. 3. b) Single-Source Capacitated Facility Location Problem<\/i><\/p>\n<p>Ambas tareas <img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/b16678811fceca32d18c94e71cfaa603.jpeg\" style=\"display:block;margin: 0 auto;\" \/>-dificil, es decir, no existe un algoritmo exacto que pueda resolver tal problema en tiempo polin\u00f3mico respecto al tama\u00f1o de los datos de entrada. En otras palabras, todos los algoritmos exactos para resolver el problema funcionar\u00e1n en tiempo exponencial, aunque pueden ser m\u00e1s r\u00e1pidos que un agotador m\u00e9todo de prueba y error. Dado que el problema <img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/09f42b4b905d9bdc3f00f21098f84ad7.jpeg\" style=\"display:block;margin: 0 auto;\" \/>-es complicado, solo consideraremos heur\u00edsticas aproximadas, es decir, algoritmos que calculen soluciones que sean consistentemente muy cercanas a las \u00f3ptimas y que funcionen lo suficientemente r\u00e1pido. Si hay inter\u00e9s en tales problemas, aqu\u00ed se puede encontrar una buena revisi\u00f3n en ruso.<\/p>\n<p>Si trasladamos a la terminolog\u00eda de nuestra tarea de compresi\u00f3n \u00f3ptima de productos en celdas, entonces:<\/p>\n<ul>\n<li>las ciudades-clientes son las celdas donantes <img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/e6db70dbb85d1c7249f4c30e97e2942e.jpeg\" style=\"display:block;margin: 0 auto;\" \/> con los remanentes de productos, <\/li>\n<li>las ciudades-productoras son las celdas contenedoras <img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/5ef31fe0483d2bc9a0c18b5dc25e9867.jpeg\" style=\"display:block;margin: 0 auto;\" \/>, en las que se espera colocar los remanentes de otras celdas,<\/li>\n<li>los costos de transporte son el tiempo <img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/afac567e9057a46de6e0f3d29df9315a.jpeg\" style=\"display:block;margin: 0 auto;\" \/> del almacenero para mover el volumen de productos desde la celda donante <img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/829df82255e40cb99024d7c8dd408d41.jpeg\" style=\"display:block;margin: 0 auto;\" \/> a la celda contenedora <img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/b87c9d9260adb26ce623dbe80b4f22c2.jpeg\" style=\"display:block;margin: 0 auto;\" \/>; <\/li>\n<li>los costos de apertura de la empresa son los costos de selecci\u00f3n del contenedor <img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/db4d21fc2067a23b5af5bb01c412323a.jpeg\" style=\"display:block;margin: 0 auto;\" \/>, que son iguales al volumen de la celda contenedora <img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/b631a01a65f1ffd3348cbcaeeab11f0d.jpeg\" style=\"display:block;margin: 0 auto;\" \/>, multiplicado por un cierto coeficiente de ahorro de vol\u00famenes libres (el valor del coeficiente siempre es &gt; 1) (ver secci\u00f3n preparaci\u00f3n de los datos de entrada).<\/li>\n<\/ul>\n<p>\nDespu\u00e9s de haber trazado la analog\u00eda con los conocidos problemas cl\u00e1sicos de suministro, es necesario responder a una pregunta importante, de la cual depende la elecci\u00f3n de la arquitectura del algoritmo de soluci\u00f3n: \u00bfes posible mover los remanentes desde la celda donante solo a un \u00fanico contenedor (Single-Source), o es posible mover los remanentes a varias celdas contenedoras (Multi-Source)?<\/p>\n<p>Cabe destacar que en la pr\u00e1ctica, ambas formulaciones del problema son relevantes. A continuaci\u00f3n, enumeraremos todos los 'pros' y 'contras' de cada una de estas formulaciones:<\/p>\n<table>\n<tr>\n<th>Opci\u00f3n del problema<\/th>\n<th>Ventajas de la opci\u00f3n<\/th>\n<th>Desventajas de la opci\u00f3n<\/th>\n<\/tr>\n<tr>\n<td>Single-Source<\/td>\n<td>Las operaciones de movimiento de productos, calculadas seg\u00fan esta opci\u00f3n del problema:<\/p>\n<ul>\n<li>requieren menos control por parte del almacenero (tom\u00f3 TODO de una celda, coloc\u00f3 TODO en otra celda contenedora), lo que elimina los riesgos: errores al contar la cantidad de productos al realizar las operaciones 'Colocar en la celda'; errores al ingresar la cantidad reclasificada en el TSD;<\/li>\n<li>No se requiere tiempo para volver a contar la cantidad de productos al realizar las operaciones 'Colocar en la celda' e ingresarlos en el TSD.<\/li>\n<\/ul>\n<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>Multi-Source<\/td>\n<td>Las compresiones calculadas para esta variante del problema suelen ser m\u00e1s compactas entre un 10 y un 15% en comparaci\u00f3n con las compresiones calculadas para la variante 'Single-Source'. Sin embargo, tambi\u00e9n hay que mencionar que cuanto menor sea la cantidad de existencias en las celdas donadoras, menor es esta diferencia en compactaci\u00f3n.<\/td>\n<td>Las operaciones de movimiento de productos, calculadas seg\u00fan esta opci\u00f3n del problema:<\/p>\n<ul>\n<li>Requieren un mayor control por parte del encargado de almac\u00e9n (es necesario volver a contar la cantidad de producto trasladado a cada una de las celdas contenedoras planificadas), lo que elimina el riesgo de error al contar la cantidad de producto e ingresar datos en el TSD al realizar las operaciones 'Colocar en la celda'.<\/li>\n<li>Se requiere tiempo para volver a contar la cantidad de productos al realizar las operaciones 'Colocar en la celda'.<\/li>\n<li>Se requiere tiempo para los 'gastos generales' (detenerse, acercarse al palet, escanear el c\u00f3digo de barras de la celda contenedora) al realizar las operaciones 'Colocar en la celda'.<\/li>\n<li>A veces el algoritmo puede 'dividir' la cantidad de un palet pr\u00e1cticamente completo entre un gran n\u00famero de celdas contenedoras que ya tienen productos adecuados, lo que, desde el punto de vista del cliente, es inaceptable.<\/li>\n<\/ul>\n<\/td>\n<\/tr>\n<\/table>\n<p><i>Tabla 1. Pros y contras de las variantes Single-Source y Multi-Source.<\/i><\/p>\n<p>Dado que el n\u00famero de ventajas de la variante Single-Source es mayor, y considerando tambi\u00e9n que cuanto menor es la cantidad de existencias en las celdas donadoras, menor es la diferencia en el grado de compactaci\u00f3n de la compresi\u00f3n calculada para ambas variantes del problema, hemos optado por la variante Single-Source.<\/p>\n<p>Cabe decir que la soluci\u00f3n de la variante Multi-Source tambi\u00e9n es v\u00e1lida. Existen numerosos algoritmos efectivos para su soluci\u00f3n, la mayor\u00eda de los cuales se reducen a resolver una serie de problemas de transporte. Tambi\u00e9n hay algoritmos no solo eficaces, sino tambi\u00e9n elegantes, por ejemplo,<noindex><a rel=\"nofollow\" href=\"http:\/\/www.mathnet.ru\/php\/archive.phtml?wshow=paper&amp;jrnid=da&amp;paperid=791&amp;option_lang=rus\"> aqu\u00ed.<\/a><\/noindex><\/p>\n<h4>Preparaci\u00f3n de los datos de entrada<\/h4>\n<p>\nAntes de comenzar el an\u00e1lisis y desarrollo de un algoritmo para resolver el problema, es necesario definir qu\u00e9 datos y en qu\u00e9 formato se le proporcionar\u00e1n. No hay problema con los vol\u00famenes de existencias de productos en las celdas donadoras ni con la capacidad de las celdas contenedoras, ya que esto es trivial: esas cantidades se medir\u00e1n en m3. Pero los costos asociados al uso de la celda contenedora y la matriz de costos de traslado no son tan simples.<\/p>\n<p>Primero consideraremos el c\u00e1lculo <b>costos de movimiento de mercanc\u00edas<\/b> de la celda donante a la celda contenedora. Primero, es necesario decidir en qu\u00e9 unidades de medida calcularemos los costos de movimiento. Las dos opciones m\u00e1s evidentes son metros y segundos. Contar los costos de movimiento en \u00abmetros puros\u00bb no tiene sentido. Mostremos esto con un ejemplo. Supongamos que la celda <img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/990a5fae8988ddf41395483263de2bcc.jpeg\" style=\"display:block;margin: 0 auto;\" \/> est\u00e1 ubicada en el primer nivel, la celda <img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/9d17b98e807444f431d01f2e77fc96f7.jpeg\" style=\"display:block;margin: 0 auto;\" \/> se encuentra a 30 metros y est\u00e1 en el segundo nivel:<\/p>\n<ul>\n<li>Mover desde <img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/3188fd9853d5cda2834a5083539ac11d.jpeg\" style=\"display:block;margin: 0 auto;\" \/> en <img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/e212a0be19ea687b1017c3aacec3df19.jpeg\" style=\"display:block;margin: 0 auto;\" \/> es m\u00e1s costoso que mover desde <img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/d65e60dec37fb3b83c83ca1c566f1ee9.jpeg\" style=\"display:block;margin: 0 auto;\" \/> en <img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/4168198a4c90bdd3dd4b7f0c904b06e0.jpeg\" style=\"display:block;margin: 0 auto;\" \/>, ya que bajar desde el segundo nivel (1.5-2 metros del suelo) es m\u00e1s f\u00e1cil que subir al segundo, aunque la distancia recorrida ser\u00e1 la misma;<\/li>\n<li>Mover 1 unidad de mercanc\u00eda de la celda <img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/039864ccd0a2bd14a99a83494f056fa3.jpeg\" style=\"display:block;margin: 0 auto;\" \/> en <img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/9f9bc7a256119b110f47760b145e174b.jpeg\" style=\"display:block;margin: 0 auto;\" \/> ser\u00e1 m\u00e1s f\u00e1cil que mover 10 unidades de la misma mercanc\u00eda, aunque la distancia ser\u00e1 la misma.<\/li>\n<\/ul>\n<p>\nLos costos de movimiento se deben considerar mejor en segundos, ya que esto permite tener en cuenta tanto la diferencia en los niveles como la diferencia en la cantidad de mercanc\u00eda movida. Para contabilizar los costos de movimiento en segundos, debemos descomponer la operaci\u00f3n de movimiento en componentes elementales y medir el tiempo para realizar cada componente elemental.<\/p>\n<p>Supongamos que desde la celda <img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/538c4304e37f340a5a5a8e47e0ee2865.jpeg\" style=\"display:block;margin: 0 auto;\" \/> se mueven <img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/6c7e32728f4771726f8ef9b2d78111d6.jpeg\" style=\"display:block;margin: 0 auto;\" \/> unidades de mercanc\u00eda al contenedor <img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/fc2ad051b500eae5884404f4b9419841.jpeg\" style=\"display:block;margin: 0 auto;\" \/>. Supongamos que <img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/6733192a31618a03e51e8e3133cb96ee.jpeg\" style=\"display:block;margin: 0 auto;\" \/> es la velocidad promedio de un trabajador en el almac\u00e9n, medida en m\/s. Supongamos que <img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/97f7e9c65c2196fa586f957618d1c8a2.jpeg\" style=\"display:block;margin: 0 auto;\" \/> y <img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/bbe48d987f180e2f9ccec6e090e6f942.jpeg\" style=\"display:block;margin: 0 auto;\" \/> son las velocidades promedio para realizar operaciones de tomar y colocar respectivamente para un volumen de mercanc\u00eda de 4 dm3 (el volumen promedio que un empleado toma en una vez al realizar operaciones en el almac\u00e9n). Supongamos que <img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/267d74648f49d5a2d063b1377c6d2fe6.jpeg\" style=\"display:block;margin: 0 auto;\" \/> y <img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/fefdd606d5a81ba4e2ce57b107dfe1e6.jpeg\" style=\"display:block;margin: 0 auto;\" \/> son las alturas de las celdas desde las cuales se realizan las operaciones de tomar y colocar respectivamente. Por ejemplo, la altura promedio del primer nivel (suelo) es 1 m, el segundo nivel es 2 m, etc. Entonces, la f\u00f3rmula para calcular el tiempo total para realizar la operaci\u00f3n de movimiento <img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/a48ae3c2e9dc8f2c3108cb2be1f96c40.jpeg\" style=\"display:block;margin: 0 auto;\" \/> es la siguiente:<\/p>\n<p><img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/55afb96b1141bb5656351bdaeba31ae4.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>La tabla 2 muestra las estad\u00edsticas del tiempo de ejecuci\u00f3n de cada operaci\u00f3n elemental, recopiladas por los empleados del almac\u00e9n teniendo en cuenta la especificidad de la mercanc\u00eda almacenada.<\/p>\n<table>\n<tr>\n<th>Nombre de la operaci\u00f3n<\/th>\n<th>Designaci\u00f3n<\/th>\n<th>Valor promedio<\/th>\n<\/tr>\n<tr>\n<td>Velocidad promedio de movimiento del trabajador en el almac\u00e9n<\/td>\n<td><img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/dadbfb13d2b84b95ab2c5d653a21668b.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/td>\n<td>1.5 m\/s<\/td>\n<\/tr>\n<tr>\n<td>Velocidad promedio para realizar una operaci\u00f3n de colocar (para un volumen de mercanc\u00eda de 4 dm3)<\/td>\n<td><img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/aa619b43a70a7cf646ad35d5c8883329.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/td>\n<td>2.4 s<\/td>\n<\/tr>\n<\/table>\n<p><i>Tabla 2. Tiempo promedio de ejecuci\u00f3n de operaciones en el almac\u00e9n<\/i><\/p>\n<p>Hemos definido el m\u00e9todo de c\u00e1lculo de los costos de movimiento. Ahora es necesario averiguar c\u00f3mo calcular <b>los costos de selecci\u00f3n de la celda contenedora<\/b>Aqu\u00ed todo es mucho, mucho m\u00e1s complejo que con los costos de traslado, ya que: <\/p>\n<ul>\n<li>en primer lugar, los costos deben depender directamente del volumen de la celda; el mismo volumen de existencias trasladadas desde las celdas donantes es mejor colocar en un contenedor de menor volumen que en uno grande, siempre que dicho volumen quepa completamente en ambos contenedores. As\u00ed, minimizando los costos totales de selecci\u00f3n de contenedores, buscamos ahorrar en capacidades de almacenamiento 'deficitarias' en la zona de selecci\u00f3n, para llevar a cabo las operaciones posteriores de colocaci\u00f3n de productos en las celdas. En la figura 4 se muestran las opciones para mover existencias a contenedores grandes y peque\u00f1os y las consecuencias de tales opciones de movimiento al ejecutar las operaciones de almac\u00e9n posteriores.<\/li>\n<li>en segundo lugar, dado que en la soluci\u00f3n del problema inicial necesitamos minimizar los costos totales, que son la suma de los costos de traslado y los costos de selecci\u00f3n de contenedores, los vol\u00famenes de las celdas en metros c\u00fabicos deben de alguna manera relacionarse con los segundos, lo cual no es nada trivial.<\/li>\n<\/ul>\n<p>\n<img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/2c906f9e80b32fcb111fcba7000ea2ba.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Fig. 4. Opciones para mover existencias a contenedores de diferente capacidad.<\/i><\/p>\n<p>En la figura 4, en color rojo, se representa el volumen de existencias que ya no cabe en el contenedor en la segunda etapa de colocaci\u00f3n de productos posteriores. <\/p>\n<p>Ayudar\u00e1n a relacionar los metros c\u00fabicos de costos de selecci\u00f3n de contenedores con los segundos de costos de traslado los siguientes requisitos para las soluciones calculadas del problema:<\/p>\n<ul>\n<li>Es necesario que las existencias de la celda donante se trasladen a la celda contenedor en cualquier caso si esto reduce el n\u00famero total de celdas contenedoras en las que se encuentra el producto.<\/li>\n<li>Es necesario mantener un equilibrio entre los vol\u00famenes de los contenedores y los costos de tiempo de traslado: por ejemplo, si en la nueva opci\u00f3n de soluci\u00f3n del problema, en comparaci\u00f3n con la opci\u00f3n anterior, hay una ganancia significativa en volumen, pero una p\u00e9rdida peque\u00f1a en costos de tiempo, entonces se debe elegir la nueva opci\u00f3n.<\/li>\n<\/ul>\n<p>\nComencemos con el \u00faltimo requisito. Para concretar la polisemia de la palabra 'equilibrio', llevamos a cabo una encuesta entre el personal del almac\u00e9n con el fin de averiguar lo siguiente. Supongamos que hay una celda contenedor de volumen <img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/2b831b12448ccaee33c528ac622b7ee3.jpeg\" style=\"display:block;margin: 0 auto;\" \/>, a la que se ha asignado el traslado de existencias de productos desde celdas donantes y el tiempo total de dicho traslado es igual a <img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/8050f4b02464164d334048bda86b3923.jpeg\" style=\"display:block;margin: 0 auto;\" \/>. Supongamos que hay varias opciones alternativas para ubicar la misma cantidad de mercanc\u00eda de las mismas celdas donantes en otros contenedores, donde cada ubicaci\u00f3n tiene sus propias evaluaciones. <img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/76f11cd5ab85f9092c8f458d01ac347b.jpeg\" style=\"display:block;margin: 0 auto;\" \/>, donde <img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/9e735d8a9c4cff3c69fd926eac8c85aa.jpeg\" style=\"display:block;margin: 0 auto;\" \/>&lt;<img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/d963e193a263a1505467c19e874f0aab.jpeg\" style=\"display:block;margin: 0 auto;\" \/> y <img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/ff5d990cf5a1752d7bb45da9fd58cd7a.jpeg\" style=\"display:block;margin: 0 auto;\" \/>, donde <img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/485f34b3e720011c38740712cdb8edd9.jpeg\" style=\"display:block;margin: 0 auto;\" \/>&gt;<img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/c66b20d93fd1791e9f186f707b1517bb.jpeg\" style=\"display:block;margin: 0 auto;\" \/>. <\/p>\n<p>Surge la pregunta: \u00bfcu\u00e1nto es el m\u00ednimo beneficio en volumen <img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/86861ad2236d827efdc683d759d4c120.jpeg\" style=\"display:block;margin: 0 auto;\" \/> aceptable, dado un determinado valor de p\u00e9rdida de tiempo? <img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/3d49171042fd83244c054dfd84e5c6bb.jpeg\" style=\"display:block;margin: 0 auto;\" \/>? \u041f\u043e\u044f\u0441\u043d\u0438\u043c \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435. \u0418\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u043e\u0441\u0442\u0430\u0442\u043a\u0438 \u043f\u043e\u043b\u0430\u0433\u0430\u043b\u043e\u0441\u044c \u0440\u0430\u0437\u043c\u0435\u0449\u0430\u0442\u044c \u0432 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 \u043e\u0431\u044a\u0435\u043c\u0430 1000 \u0434\u043c3 (1 \u043c3) \u0438 \u0432\u0440\u0435\u043c\u044f \u043d\u0430 \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u0441\u043e\u0441\u0442\u0430\u0432\u0438\u043b\u043e 70 \u0441\u0435\u043a\u0443\u043d\u0434. \u0415\u0441\u0442\u044c \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u043e\u0441\u0442\u0430\u0442\u043a\u043e\u0432 \u0432 \u0434\u0440\u0443\u0433\u043e\u0439 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 \u043e\u0431\u044a\u0435\u043c\u0430 500 \u0434\u043c3 \u0438 \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c 130 \u0441\u0435\u043a\u0443\u043d\u0434. \u0412\u043e\u043f\u0440\u043e\u0441: \u0433\u043e\u0442\u043e\u0432\u044b \u043b\u0438 \u043c\u044b \u0442\u0440\u0430\u0442\u0438\u0442\u044c \u0435\u0449\u0435 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 60 \u0441\u0435\u043a\u0443\u043d\u0434 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043a\u043b\u0430\u0434\u043e\u0432\u0449\u0438\u043a\u0430 \u043d\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0441\u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0442\u044c 500 \u0434\u043c3 \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043c\u0430? \u041f\u043e \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430\u043c \u043e\u043f\u0440\u043e\u0441\u0430 \u0441\u043e\u0442\u0440\u0443\u0434\u043d\u0438\u043a\u043e\u0432 \u0441\u043a\u043b\u0430\u0434\u0430 \u0431\u044b\u043b\u0430 \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0430\u044f \u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u0430.<\/p>\n<p><img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/283289c63fe1232e95b73d1dffdaa030.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Fig. 5. Diagrama de la relaci\u00f3n entre el ahorro m\u00ednimo de volumen permitido y el aumento de la diferencia en el tiempo de ejecuci\u00f3n de la operaci\u00f3n.<\/i><\/p>\n<p>Es decir, si el costo adicional en tiempo es de 40 segundos, solo estamos dispuestos a gastarlo cuando el ahorro en volumen sea de al menos 500 dm3. A pesar de que la relaci\u00f3n muestra una peque\u00f1a no linealidad, para simplificar los c\u00e1lculos posteriores, asumiremos que la relaci\u00f3n entre las cantidades es lineal y se describe mediante una desigualdad.<\/p>\n<p><img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/666802648033d918a1119e58963feffe.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>En la figura a continuaci\u00f3n, consideraremos las siguientes maneras de ubicar la mercanc\u00eda en los contenedores.<\/p>\n<p><img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/a1cb3a5bce4c369f63b3ebeebb738911.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Fig. 6. Opci\u00f3n (a): 2 contenedores, volumen total 400 dm3, tiempo total 150 seg.<\/i><br \/>\n<img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/a13f35b0e2a188e9a8cbf27bcfbf0292.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Fig. 6. Opci\u00f3n (b): 2 contenedores, volumen total 600 dm3, tiempo total 190 seg.<\/i><br \/>\n<img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/35699c8bd00546c9828dbe50d4b53c46.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Fig. 6. Opci\u00f3n (c): 1 contenedor, volumen total 400 dm3, tiempo total 200 seg.<\/i><\/p>\n<p>La opci\u00f3n (a) de selecci\u00f3n de contenedores es m\u00e1s preferible que la opci\u00f3n inicial, dado que se cumple la desigualdad: (800-400)\/10 &gt;= 150-120, de lo cual se deduce que 40 &gt;= 30. La opci\u00f3n (b) es menos preferible que la opci\u00f3n inicial, ya que la desigualdad no se cumple: (800-600)\/10 &gt;= 190-150, de lo cual se deduce que 20 &gt;= 40. Sin embargo, la opci\u00f3n (c) no se ajusta a tal l\u00f3gica. Veamos esta opci\u00f3n con m\u00e1s detalle. Por un lado, la desigualdad (800-400)\/10 &gt;= 200-120 no se cumple, lo que indica que el ahorro de volumen no justifica tal gran p\u00e9rdida de tiempo. <\/p>\n<p>Pero por otro lado, en tal opci\u00f3n (c) no solo estamos reduciendo el volumen total ocupado, sino tambi\u00e9n disminuyendo la cantidad de celdas ocupadas, lo cual es el primero de dos requisitos importantes para las soluciones de las tareas mencionadas anteriormente. Es obvio que, para que se comience a cumplir este requisito, es necesario a\u00f1adir una constante positiva en el lado izquierdo de la desigualdad. <img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/61d6b2cb21474a2f4512d6a130a15a0a.jpeg\" style=\"display:block;margin: 0 auto;\" \/>, adem\u00e1s, esta constante debe a\u00f1adirse solo cuando se reduce la cantidad de contenedores. Recordemos que <img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/d80d33679896035041d0ca9a78e8177a.jpeg\" style=\"display:block;margin: 0 auto;\" \/> \u2014 es una variable que es igual a 1 cuando se selecciona un contenedor, y 0 cuando no se selecciona. <img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/a83cd6273e544b63099939e6845740fb.jpeg\" style=\"display:block;margin: 0 auto;\" \/> seleccionado, y 0 cuando el contenedor <img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/bc94d9e952782e630125a6e8919ba5ad.jpeg\" style=\"display:block;margin: 0 auto;\" \/> no seleccionado. Definimos, <img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/1e3fb5d7013e60f67c56a56899630852.jpeg\" style=\"display:block;margin: 0 auto;\" \/> \u2013 m\u00faltiples contenedores en la soluci\u00f3n original y <img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/26ac9732af37e865cea1bb10a343175c.jpeg\" style=\"display:block;margin: 0 auto;\" \/> \u2013 m\u00faltiples contenedores en la nueva soluci\u00f3n. En t\u00e9rminos generales, la nueva desigualdad se ver\u00e1 as\u00ed:<\/p>\n<p><img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/1237914e5fdafcc6013203e2624009d0.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Transformando la desigualdad anterior, obtenemos <\/p>\n<p><img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/80b039f9ef44301c3b624ada42c28db8.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>A partir de esto, tenemos una f\u00f3rmula para calcular el costo total <img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/cb5bce584fee0156b23adbab83f66b33.jpeg\" style=\"display:block;margin: 0 auto;\" \/> de alguna variante de la soluci\u00f3n del problema:<\/p>\n<p><img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/34f382d40368a980674914916c65b4ec.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><b>Pero ahora surge la pregunta<\/b>: \u00bfqu\u00e9 valor debe tener tal constante? <img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/e4754f88bcddfba85b3c785512bee697.jpeg\" style=\"display:block;margin: 0 auto;\" \/>? \u041e\u0447\u0435\u0432\u0438\u0434\u043d\u043e, \u0447\u0442\u043e \u0435\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0431\u043e\u043b\u044c\u0448\u0438\u043c, \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0432\u0441\u0435\u0433\u0434\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u043b\u043e\u0441\u044c \u043f\u0435\u0440\u0432\u043e\u0435 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u0435 \u043a \u0440\u0435\u0448\u0435\u043d\u0438\u044f\u043c \u0437\u0430\u0434\u0430\u0447\u0438. \u041c\u043e\u0436\u043d\u043e \u043a\u043e\u043d\u0435\u0447\u043d\u043e \u0432\u0437\u044f\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b \u0440\u0430\u0432\u043d\u043e\u0435 103 \u0438\u043b\u0438 106, \u043d\u043e \u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u0431\u044b \u0438\u0437\u0431\u0435\u0436\u0430\u0442\u044c \u0442\u0430\u043a\u0438\u0445 \u00abmagic numbers\u00bb. \u0415\u0441\u043b\u0438 \u0431\u0443\u0434\u0435\u043c \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0442\u044c \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0443 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0441\u043a\u043b\u0430\u0434\u0441\u043a\u0438\u0445 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439, \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0432\u043f\u043e\u043b\u043d\u0435 \u043e\u0431\u043e\u0441\u043d\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0447\u0438\u0441\u043b\u043e\u0432\u044b\u0445 \u043e\u0446\u0435\u043d\u043e\u043a \u0432\u0435\u043b\u0438\u0447\u0438\u043d\u044b \u0442\u0430\u043a\u043e\u0439 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b.<\/p>\n<p>Sea <img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/50deefe99bf1d5f948a49591904a8bfe.jpeg\" style=\"display:block;margin: 0 auto;\" \/> \u2013 la distancia m\u00e1xima entre las celdas del almac\u00e9n de una zona ABC, que es de 100 m en nuestro caso. Sea <img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/466892dd75279d08b4835a42e62444d4.jpeg\" style=\"display:block;margin: 0 auto;\" \/> \u2013 el volumen m\u00e1ximo de la celda-contenedor en el almac\u00e9n, que es de 1000 dm3 en nuestro caso.<\/p>\n<p><b>El primer m\u00e9todo para calcular el tama\u00f1o<\/b> <img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/29b94b534da709020cbef206cb0d7dac.jpeg\" style=\"display:block;margin: 0 auto;\" \/>. Consideremos la situaci\u00f3n en la que hay 2 contenedores en la primera capa, en los que ya hay f\u00edsicamente mercanc\u00eda, es decir, ellos mismos son celdas donantes, y los costos de mover la mercanc\u00eda a esas mismas celdas son, por supuesto, 0. Es necesario encontrar un valor para la constante <img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/5cf81db57dd2a18cc0ec29bb7ca3da62.jpeg\" style=\"display:block;margin: 0 auto;\" \/>, para el cual ser\u00eda ventajoso siempre trasladar los residuos del contenedor 1 al contenedor 2. Sustituyendo los valores <img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/20bbd09e167edc3eb1ed49d8078ecf19.jpeg\" style=\"display:block;margin: 0 auto;\" \/> y <img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/605017af48e7b3ca4a323642db4227cd.jpeg\" style=\"display:block;margin: 0 auto;\" \/> en la desigualdad mencionada anteriormente, obtenemos:<\/p>\n<p><img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/2794955b8f9f3d64ffe4e2b449547555.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>de lo que se sigue<\/p>\n<p><img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/292a6e80c646c7eed80e888c8805990c.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Sustituyendo los valores del tiempo medio para realizar operaciones elementales en la f\u00f3rmula anterior obtenemos<\/p>\n<p><img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/1f56bf1f98c1a3bbd65a4cea99da7efb.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><b>El segundo m\u00e9todo para calcular el tama\u00f1o<\/b> <img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/78e3dff7183b15136d9e03f4a5724479.jpeg\" style=\"display:block;margin: 0 auto;\" \/>. Consideremos la situaci\u00f3n en la que hay <img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/02daff1eff70a2963ab8eaa067f15584.jpeg\" style=\"display:block;margin: 0 auto;\" \/> celdas donantes desde las cuales se planea trasladar mercanc\u00eda al contenedor 1. Denotemos <img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/df20c3f27815f2060aae20d260210893.jpeg\" style=\"display:block;margin: 0 auto;\" \/> \u2013 la distancia desde la celda donante <img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/a29ace66656cf1680c9e00258a9ff597.jpeg\" style=\"display:block;margin: 0 auto;\" \/> hasta el contenedor 1. Tambi\u00e9n hay un contenedor 2, en el que ya hay mercanc\u00edas, y cuyo volumen permite contener los restos de todas las <img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/e25f0828e7d794f8d804528395f6dc7e.jpeg\" style=\"display:block;margin: 0 auto;\" \/> celdas. Para simplificar, supongamos que el volumen de la mercanc\u00eda que se traslada de las celdas donantes a los contenedores es igual a <img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/35c3392a83fc3b7eef928ddb5e93961a.jpeg\" style=\"display:block;margin: 0 auto;\" \/>. Se requiere encontrar un valor para la constante <img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/c9bc10aade46cc3c63628c0ba100b364.jpeg\" style=\"display:block;margin: 0 auto;\" \/>, para el cual colocar todos los restos de <img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/e610d9981da2857a541f028a217f2306.jpeg\" style=\"display:block;margin: 0 auto;\" \/> las celdas en el contenedor 2 siempre ser\u00eda m\u00e1s ventajoso que colocarlos en diferentes contenedores:<\/p>\n<p><img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/27f4f99a920799fba9725f30a04c8ebc.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Transformando la desigualdad, obtenemos<\/p>\n<p><img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/56abddb4fc3e54eeb1fe466c68e5d8d7.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Para \"reforzar\" el valor de la cantidad <img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/d77359ea816f9d45a8910cb26649f717.jpeg\" style=\"display:block;margin: 0 auto;\" \/>, asumiremos que <img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/9edf13fb4e34b5da26957e451300046f.jpeg\" style=\"display:block;margin: 0 auto;\" \/> = 0. El n\u00famero medio de celdas que normalmente participan en el procedimiento de compactaci\u00f3n de residuos en el almac\u00e9n es de 10. Sustituyendo los valores conocidos, tenemos el siguiente valor para la constante<\/p>\n<p><img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/40323791fd8cd2be3f29a2becf78e175.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Tomamos el mayor valor calculado para cada variante, este ser\u00e1 el valor de la cantidad <img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/fd018460792c79b8a7953c06b839711d.jpeg\" style=\"display:block;margin: 0 auto;\" \/> para los par\u00e1metros dados del almac\u00e9n. Ahora, para completar, escribamos la f\u00f3rmula para el c\u00e1lculo de los costos totales <img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/d4cb2c81bcc788380f1f0c1123b0eeda.jpeg\" style=\"display:block;margin: 0 auto;\" \/> para alguna soluci\u00f3n aceptable <img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/052e710199e9417aaea94b16dbed47d3.jpeg\" style=\"display:block;margin: 0 auto;\" \/>:<\/p>\n<p><img decoding=\"async\" alt=\"Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1)\" src=\"\/wp-content\/uploads\/2019\/08\/8dd672c7b91639fe1872ef50dca7a220.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Ahora, despu\u00e9s de todos <b>los tit\u00e1nicos esfuerzos<\/b> para transformar los datos de entrada, podemos decir que todos los datos de entrada han sido transformados a la forma necesaria y est\u00e1n listos para su uso en el algoritmo de optimizaci\u00f3n.<\/p>\n<h4>Conclusi\u00f3n<\/h4>\n<p>\nComo muestra la pr\u00e1ctica, la complejidad y la importancia de la etapa de preparaci\u00f3n y transformaci\u00f3n de los datos de entrada para el algoritmo a menudo se subestiman. En este art\u00edculo, hemos dedicado mucho tiempo a esta etapa para demostrar que solo los datos de entrada preparados de manera cualitativa e inteligente pueden hacer que las decisiones calculadas por el algoritmo sean realmente valiosas para el cliente. S\u00ed, hubo muchas formulaciones de conclusiones, pero ya lo advertimos antes del corte \ud83d\ude42<\/p>\n<p>En el pr\u00f3ximo art\u00edculo, finalmente llegaremos a lo que motiv\u00f3 las 2 publicaciones anteriores: al algoritmo de optimizaci\u00f3n discreta.<\/p>\n<p><i>El art\u00edculo fue preparado por<br \/>\nRoman Shanguin, programador del departamento de proyectos,<br \/>\ncompa\u00f1\u00eda Primer Bit, ciudad de Cheli\u00e1binsk<\/i><br \/>\n<br \/>Fuente: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/463481\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0412 \u0441\u0442\u0430\u0442\u044c\u0435 \u043c\u044b \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0435\u043c, \u043a\u0430\u043a \u0440\u0435\u0448\u0430\u043b\u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443 \u043d\u0435\u0445\u0432\u0430\u0442\u043a\u0438 \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u044b\u0445 \u044f\u0447\u0435\u0435\u043a \u043d\u0430 \u0441\u043a\u043b\u0430\u0434\u0435 \u0438 \u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u0434\u0438\u0441\u043a\u0440\u0435\u0442\u043d\u043e\u0439 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u0434\u043b\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0442\u0430\u043a\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438. \u0420\u0430\u0441\u0441\u043a\u0430\u0436\u0435\u043c \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u043c\u044b \u00ab\u0441\u0442\u0440\u043e\u0438\u043b\u0438\u00bb \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u043c\u043e\u0434\u0435\u043b\u044c \u0437\u0430\u0434\u0430\u0447\u0438 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438, \u0438 \u043e \u0442\u043e\u043c \u0441 \u043a\u0430\u043a\u0438\u043c\u0438 \u0442\u0440\u0443\u0434\u043d\u043e\u0441\u0442\u044f\u043c\u0438 \u043c\u044b \u043d\u0435\u043e\u0436\u0438\u0434\u0430\u043d\u043d\u043e \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u043b\u0438\u0441\u044c \u043f\u0440\u0438 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u0432\u0445\u043e\u0434\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u043b\u044f \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430. \u0415\u0441\u043b\u0438 \u0432\u0430\u043c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u043a\u0438 \u0432 \u0431\u0438\u0437\u043d\u0435\u0441\u0435 \u0438 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":27819,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-37108","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0412 \u0441\u0442\u0430\u0442\u044c\u0435 \u043c\u044b.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/es\/blog\/news\/diskretnaya-matematika-dlya-wms-algoritm-szhatiya-tovarov-v-yachejkah-chast-1\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"es_ES\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0414\u0438\u0441\u043a\u0440\u0435\u0442\u043d\u0430\u044f \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u043a\u0430 \u0434\u043b\u044f WMS: \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0441\u0436\u0430\u0442\u0438\u044f \u0442\u043e\u0432\u0430\u0440\u043e\u0432 \u0432 \u044f\u0447\u0435\u0439\u043a\u0430\u0445 (\u0447\u0430\u0441\u0442\u044c 1) | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0412 \u0441\u0442\u0430\u0442\u044c\u0435 \u043c\u044b.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/es\/blog\/news\/diskretnaya-matematika-dlya-wms-algoritm-szhatiya-tovarov-v-yachejkah-chast-1\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:15:47+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:15:47+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Matem\u00e1ticas discretas para WMS: algoritmo de compresi\u00f3n de productos en celdas (parte 1) | ProHoster","description":"En el art\u00edculo hablamos sobre.","canonical_url":"https:\/\/prohoster.info\/es\/blog\/news\/diskretnaya-matematika-dlya-wms-algoritm-szhatiya-tovarov-v-yachejkah-chast-1","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"es_ES","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0414\u0438\u0441\u043a\u0440\u0435\u0442\u043d\u0430\u044f \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u043a\u0430 \u0434\u043b\u044f WMS: \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0441\u0436\u0430\u0442\u0438\u044f \u0442\u043e\u0432\u0430\u0440\u043e\u0432 \u0432 \u044f\u0447\u0435\u0439\u043a\u0430\u0445 (\u0447\u0430\u0441\u0442\u044c 1) | ProHoster","og:description":"\u0412 \u0441\u0442\u0430\u0442\u044c\u0435 \u043c\u044b.","og:url":"https:\/\/prohoster.info\/es\/blog\/news\/diskretnaya-matematika-dlya-wms-algoritm-szhatiya-tovarov-v-yachejkah-chast-1","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:15:47+00:00","article:modified_time":"2019-10-31T19:15:47+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"37108","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-22 06:08:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 01:33:24","updated":"2026-01-22 06:08:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts\/37108","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/comments?post=37108"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts\/37108\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/media\/27819"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/media?parent=37108"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/categories?post=37108"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/tags?post=37108"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}