Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1)

Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1)

Neste artigo, vamos explicar como resolvemos o problema da falta de espaços vagos no armazém e o desenvolvimento de um algoritmo de otimização discreta para resolver essa tarefa. Vamos falar sobre como "construímos" o modelo matemático do problema de otimização e sobre as dificuldades inesperadas que encontramos ao processar os dados de entrada para o algoritmo.

Se você está interessado nas aplicações da matemática nos negócios e não tem medo de transformações de fórmulas a nível de 5ª série, sinta-se à vontade para continuar!

Este artigo será útil para aqueles que implementam sistemas WMS, trabalham na indústria de logística de armazém ou produção, além de programadores que se interessam pelas aplicações da matemática nos negócios e otimização de processos na empresa.-системы, работает в отрасли складской или производственной логистики, а также программистам, которые интересуются приложениями математики в бизнесе и оптимизацией процессов на предприятии.

Parte introdutória

Esta publicação dá continuidade a uma série de artigos onde compartilhamos nossa experiência bem-sucedida na implementação de algoritmos de otimização nos processos de armazém.

Em artigo anterior descreve as especificidades do armazém onde implementamos sistemas WMS, trabalham na indústria de logística de armazém ou produção, além de programadores que se interessam pelas aplicações da matemática nos negócios e otimização de processos na empresa.o sistema, e também conta por que precisávamos resolver o problema de clusterização de lotes de produtos remanescentes durante a implementação sistemas WMS, trabalham na indústria de logística de armazém ou produção, além de programadores que se interessam pelas aplicações da matemática nos negócios e otimização de processos na empresa.do sistema, e como realocamos esse processo.

Quando terminamos de escrever o artigo sobre algoritmos de otimização, ele ficou muito extenso, então decidimos dividir o material acumulado em duas partes:

  • Na primeira parte (este artigo), falaremos sobre como "construímos" o modelo matemático da tarefa e as grandes dificuldades que encontramos inesperadamente ao processar e transformar os dados de entrada para o algoritmo.
  • Na segunda parte, examinaremos detalhadamente a implementação do algoritmo na linguagem C++, realizaremos um experimento computacional e resumiremos a experiência que obtivemos durante a implementação dessas "tecnologias inteligentes" nos processos de negócios do cliente.

Como ler o artigo. Se você leu o artigo anterior, pode ir direto para a seção "Revisão das soluções existentes"; caso contrário, a descrição do problema a ser resolvido está no spoiler abaixo.

Descrição do problema a ser resolvido no armazém do cliente

O ponto crítico nos processos

Em 2018, realizamos um projeto de implementação do sistemas WMS, trabalham na indústria de logística de armazém ou produção, além de programadores que se interessam pelas aplicações da matemática nos negócios e otimização de processos na empresa.sistema no armazém "Casa Comercial LD" na cidade de Chelyabinsk. Implantamos o produto "1C-Logística: Gestão de Armazém 3" em 20 estações de trabalho: operadores sistemas WMS, trabalham na indústria de logística de armazém ou produção, além de programadores que se interessam pelas aplicações da matemática nos negócios e otimização de processos na empresa., armazenistas, motoristas de empilhadeiras. O armazém tem uma área média de cerca de 4 mil m², com 5000 células e 4500 SKUs. No armazém, são armazenadas válvulas de esfera de fabricação própria em diversos tamanhos, de 1 kg a 400 kg. Os estoques são mantidos por lotes, uma vez que é necessário selecionar os produtos pelo FIFO.

Durante o projeto dos esquemas de automação dos processos de armazenagem, nos deparamos com o problema existente do armazenamento ineficiente dos estoques. A especificidade do armazenamento e empilhamento das válvulas é tal que em uma célula de armazenamento unitário pode estar somente a nomenclatura de um lote (veja a figura 1). Os produtos chegam ao armazém diariamente e cada entrega é um lote separado. Assim, ao final de um mês de operação do armazém, são criados 30 lotes distintos, sendo que cada um deve ser armazenado em uma célula separada. Os itens são frequentemente retirados não em paletes inteiros, mas unidade por unidade, e como resultado, na área de seleção unitária, muitas células apresentam a seguinte situação: em uma célula com volume superior a 1m3, estão armazenadas várias válvulas que ocupam menos de 5-10% do volume da célula.

Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1)
Figura 1. Foto de várias unidades em uma célula

Há um claro uso não otimizado da capacidade do armazém. Para ilustrar a gravidade da situação, posso fornecer números: em média, existem de 100 a 300 dessas células com volume superior a 1m3 contendo "restos mínimos" em diferentes períodos de operação do armazém. Como o armazém é relativamente pequeno, durante as temporadas de carga, esse fator se torna um "gargalo" que atrasa significativamente os processos de recebimento e expedição.

Ideia para resolver o problema

A ideia surgiu: reunir os lotes com datas mais próximas em um único lote e armazenar esses restos com um lote unificado compactamente juntos em uma célula, ou em várias, se houver falta de espaço em uma para acomodar toda a quantidade de restos. Um exemplo dessa "compactação" é ilustrado na figura 2.

Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1)
Figura 2. Diagrama de compactação de restos nas células

Isso permite reduzir significativamente o espaço de armazenamento utilizado, que será destinado a novos produtos. Em situações de sobrecarga das capacidades de armazenamento, essa medida é extremamente necessária, pois, caso contrário, pode simplesmente não haver espaço livre para a colocação de novos produtos, o que levará a um impasse nos processos de armazenamento e alimentação e, consequentemente, a um bloqueio na aceitação e expedição. Antes da implementação do sistema WMS, essa operação era realizada manualmente, o que era ineficiente, já que o processo de busca por estoques adequados nas células era bastante demorado. Agora, com a implementação do sistema WMS, decidimos automatizar, acelerar e tornar o processo mais inteligente.

O processo de resolução dessa tarefa é dividido em 2 etapas:

  • na primeira etapa, encontramos grupos de partidas próximos em data para compactação (essa tarefa é dedicada artigo anterior);
  • na segunda etapa, calculamos o arranjo mais compacto possível dos estoques de produtos nas células para cada grupo de partidas.

Neste artigo, focaremos na segunda etapa do algoritmo.

Análise das soluções existentes

Antes de passar à descrição dos algoritmos que desenvolvemos, é importante fazer uma breve análise dos sistemas que já existem no mercado sistemas WMS, trabalham na indústria de logística de armazém ou produção, além de programadores que se interessam pelas aplicações da matemática nos negócios e otimização de processos na empresa., nos quais esse tipo de funcionalidade de compressão ideal foi implementado.

Em primeiro lugar, é necessário destacar o produto '1C: Enterprise 8. WMS Logística. Gestão de Armazém 4', que pertence e é distribuído pela empresa 1C e está relacionado à quarta geração sistemas WMS, trabalham na indústria de logística de armazém ou produção, além de programadores que se interessam pelas aplicações da matemática nos negócios e otimização de processos na empresa.- sistemas, desenvolvidos pela empresa AXELOT. Este sistema possui a funcionalidade de compressão, que visa unir estoques dispersos de produtos em uma única célula comum. Vale ressaltar que a funcionalidade de compressão nesse sistema inclui também outras capacidades, como a correção do posicionamento dos produtos nas células de acordo com suas classes ABC, mas não abordaremos esses pontos.

Ao analisar o código do sistema "1C: Empresa 8. WMS Logística. Gestão de Armazém 4" (que nesta parte da funcionalidade é aberto), pode-se concluir o seguinte. O algoritmo de compressão de resíduos implementa uma lógica linear bastante primitiva e não há como falar de uma compressão "otimizada". Evidentemente, ele não prevê a clusterização de lotes. Vários clientes que tiveram esse sistema implementado reclamaram dos resultados do planejamento de compressão. Por exemplo, frequentemente na prática, ao realizar a compressão, surgia a situação em que 100 unidades de estoque de um determinado item eram planejadas para serem movidas para outro local onde havia 1 unidade, embora o ideal em termos de economia de tempo fosse fazer o contrário.

Da mesma forma, a funcionalidade de compressão de resíduos de produtos nas posições é anunciada em muitos sistemas estrangeiros, sistemas WMS, trabalham na indústria de logística de armazém ou produção, além de programadores que se interessam pelas aplicações da matemática nos negócios e otimização de processos na empresa.-mas, infelizmente, não temos nem avaliações reais sobre a eficácia do funcionamento dos algoritmos (isso é um segredo comercial), nem uma ideia da profundidade de sua lógica (software proprietário com código fechado), portanto, não podemos julgar.

Busca de um modelo matemático para o problema

Para projetar algoritmos de qualidade para a resolução do problema, é necessário primeiro formular esse problema de maneira clara e matemática, o que faremos.

Existem muitas posições Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1), nas quais estão os resíduos de um determinado produto. Daqui em diante, chamaremos essas posições de posições-doadoras. Denotemos Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1) o volume do produto que está na posição Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1)$.

É importante mencionar que, no procedimento de compressão, pode participar apenas um produto de um único lote, ou de vários lotes, previamente agrupados em um cluster (leia-se artigo anterior), o que é devido à particularidade de armazenamento e arrumação dos produtos. Para produtos diferentes ou diferentes clusters de lotes, deve ser iniciada uma sua própria e separada procedimento de compressão.

Existem muitas posições Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1), nos quais os resíduos das posições-doadoras podem ser potencialmente colocados. Chamaremos essas posições de posições-conteiner. Podem ser tanto posições livres no armazém quanto posições-doadoras de um conjunto Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1). Sempre um conjunto Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1) é um subconjunto Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1).

Para cada posição Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1) do conjunto Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1) foram estabelecidas restrições de capacidade Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1), medidos em dm³. Um dm³ representa um cubo com lados de 10 cm. A produção armazenada no armazém é suficientemente grande, portanto, neste caso, essa discretização é mais do que adequada.

Dada uma matriz das menores distâncias Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1) em metros entre cada par de células Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1), onde Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1) e Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1) pertencem a conjuntos Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1) e Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1) respectivamente.

Denotemos Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1) os 'custos' de movimentação de produtos da célulaMatemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1) para a célula Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1). Denotemos Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1) os 'custos' de selecionar um contêiner Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1) para mover os restos de outras células. Como e em quais unidades de medida os valores serão calculados Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1) e Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1) veremos adiante (veja a seção preparação dos dados de entrada), por enquanto, é suficiente dizer que tais grandezas serão diretamente proporcionais às quantidades Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1) e Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1) respectivamente.

Denotemos através de Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1) uma variável que assume o valor 1, se os restos da célula Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1) são movidos para o contêiner Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1), e 0 caso contrário. Denotemos através de Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1) uma variável que assume o valor 1, se o contêiner Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1) contém restos do produto, e 0 caso contrário.

A tarefa é formulada da seguinte maneira: é necessário encontrar um conjunto de contêineres Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1) e assim 'anexar' as células doadoras aos contêineres, de modo a minimizar a função

Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1)

sob restrições

Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1)

Assim, durante o cálculo da solução do problema, buscamos:

  • em primeiro lugar, economizar espaço de armazenamento;
  • em segundo lugar, economizar o tempo dos estoquistas.

A última restrição significa que não podemos mover produtos para um contêiner que não foi escolhido, e, consequentemente, não 'incorremos em custos' pela sua escolha. Essa restrição também significa que o volume de produtos movidos das células para o contêiner não deve exceder a capacidade do contêiner. Consideraremos a solução do problema como um conjunto de contêineres Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1) e métodos de anexação das células doadoras aos contêineres.

Essa formulação do problema de otimização não é nova e foi estudada por muitos matemáticos desde o início dos anos 80 do século passado. Na literatura estrangeira, existem 2 problemas de otimização com um modelo matemático apropriado: Single-Source Capacitated Facility Location Problem e Multi-Source Capacitated Facility Location Problem (sobre as diferenças das tarefas, falaremos mais adiante). Vale ressaltar que, na literatura matemática, a formulação dessas duas tarefas de otimização é feita em termos de localização de empresas no território, daí o nome 'Localização de Instalações'. Em grande parte, isso é uma questão de tradição, pois a necessidade de resolver tais problemas combinatórios surgiu da área de logística, principalmente da indústria militar nos anos 50 do século passado. Em termos de localização de empresas, esses problemas são formulados assim:

  • Há um conjunto finito de cidades onde é potencialmente possível localizar empresas de produção (daqui em diante chamadas de cidades-producers). Para cada cidade-producer, são especificados os custos de abertura de uma empresa nela, assim como a limitação em relação à capacidade de produção da empresa que será aberta.
  • Há um conjunto finito de cidades onde, de fato, estão os clientes (daqui em diante chamadas de cidades-clientes). Para cada cidade-cliente, é especificado o volume de demanda pelo produto. Para simplificar, vamos considerar que o produto que é produzido pelas empresas e consumido pelos clientes é o mesmo.
  • Para cada par de cidade-producer e cidade-cliente, é especificado o valor dos custos de transporte para entregar o volume necessário de produto do produtor para o cliente.

É necessário encontrar em quais cidades abrir empresas e como vincular os clientes a essas empresas, de modo que:

  • Os custos totais de abertura das empresas e os custos de transporte sejam mínimos;
  • O volume de demanda dos clientes vinculados a alguma empresa aberta não exédia a capacidade de produção dessa empresa.

Agora vale a pena mencionar a única diferença entre essas duas tarefas clássicas:

  • Single-Source Capacitated Facility Location Problem – o cliente é atendido apenas por uma única empresa aberta;
  • Multi-Source Capacitated Facility Location Problem – o cliente pode ser atendido por várias empresas abertas ao mesmo tempo.

Essa distinção entre as duas tarefas, à primeira vista, parece insignificante, mas, na verdade, leva a uma estrutura combinatória completamente diferente dessas tarefas e, como consequência, a algoritmos de solução também completamente diferentes. A diferença entre as tarefas é demonstrada na figura abaixo.

Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1)
Fig.3. a) Multi-Source Capacitated Facility Location Problem

Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1)
Fig.3. b) Single-Source Capacitated Facility Location Problem

Ambas as tarefas Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1)-são difíceis, ou seja, não existe um algoritmo exato que resolva tal problema em tempo polinomial em relação ao tamanho dos dados de entrada. Em termos mais simples, todos os algoritmos exatos para resolver o problema funcionarão em tempo exponencial, embora possam ser mais rápidos do que uma busca exaustiva. Dado que o problema Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1)-é difícil, vamos considerar apenas heurísticas aproximadas, ou seja, algoritmos que calcularão soluções que são consistentemente muito próximas das ótimas e que funcionarão de forma suficientemente rápida. Se houver interesse em tais problemas, você pode encontrar uma boa visão geral em russo aqui.

Se traduzirmos isso para a terminologia do nosso problema de compressão ótima de produtos em células, temos:

  • cidades-clientes – são células-doadoras Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1) com os estoques remanescentes,
  • cidades-produtoras – são células-conteineres Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1), nas quais se propõe colocar os restos de outras células,
  • custos de transporte – custos de tempo Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1) do operador de armazém para mover o volume de produto da célula-doadora Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1) para a célula-conteiner Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1);
  • custos de abertura de empresa – custos de escolha do container Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1), iguais ao volume da célula-conteiner Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1), multiplicado por um certo coeficiente de economia de volumes livres (o valor do coeficiente é sempre > 1) (ver seção preparação dos dados de entrada).

Depois que a analogia com os clássicos problemas de entrega foi traçada, é importante responder a uma pergunta crucial, que condiciona a escolha da arquitetura do algoritmo de solução: a movimentação de restos da célula-doadora é possível em apenas um único contêiner (Single-Source) ou é possível a movimentação de restos para várias células-conteineres (Multi-Source)?

Vale a pena notar que, na prática, ambas as formulações do problema são válidas. Vamos apresentar todos os "prós" e "contras" para cada uma dessas formulações abaixo:

Opção do problemaPrós da opçãoContras da opção
Single-SourceOperações de movimentação de produtos calculadas por esta opção do problema:
  • exigem menos controle por parte do operador de armazém (pegou TUDO de uma célula, colocou TUDO em outra célula-conteiner), o que elimina os riscos: de erros ao contar o número de produtos ao executar as operações "Colocar na célula"; erros na entrada da quantidade contada no TSD;
  • Não é necessário tempo para recalcular a quantidade de produtos ao realizar operações de "Colocar na célula" e inserir dados no TSD.
Multi-SourceAs compressores calculadas para esta variante de tarefa são geralmente mais compactas em 10-15% em comparação com as compressores calculadas para a variante "Single-Source". Mas também notamos que quanto menor a quantidade de estoques nas células doadoras, menor é essa diferença de compactação.Operações de movimentação de produtos calculadas por esta opção do problema:
  • exigem maior controle por parte do estoquista (é necessário recalcular a quantidade de produtos movidos para cada uma das células-contêineres planejadas), o que elimina o risco de erro ao recalcular a quantidade de produtos e inserir dados no TSD ao realizar operações de "Colocar na célula".
  • É necessário tempo para recalcular a quantidade de produtos ao realizar operações de "Colocar na célula".
  • É necessário tempo para "despesas gerais" (parar, ir até o palete, escanear o código de barras da célula-conteiner) ao realizar operações de "Colocar na célula".
  • Às vezes, o algoritmo pode "dividir" a quantidade de um palete quase completo entre um grande número de células-conteineres, onde já há produtos adequados, o que, do ponto de vista do cliente, era inaceitável.

Tabela 1. Prós e contras das variantes Single-Source e Multi-Source.

Uma vez que a quantidade de prós da variante Single-Source é maior, além do fato de que quanto menor a quantidade de restos nas células doadoras, menor é a diferença na compactação entre as duas variantes de tarefa, nossa escolha recaiu sobre a variante Single-Source.

Vale a pena mencionar que a solução da variante Multi-Source também é válida. Existem muitos algoritmos eficazes para sua solução, a maioria dos quais se resume a resolver uma série de problemas de transporte. Há também algoritmos não apenas eficazes, mas elegantes, como aqui.

Preparação dos dados de entrada

Antes de começarmos a análise e o desenvolvimento do algoritmo para resolver a tarefa, é necessário decidir quais dados e de que forma iremos fornecê-los como entrada. Não há problemas com os volumes de estoques de produtos nas células-doadoras e a capacidade das células-conteineres, uma vez que isso é trivial - esses valores serão medidos em m3, mas os custos de uso da célula-conteiner e a matriz de custos de movimentação são mais complicados!

Primeiro, vamos considerar o cálculo custo de movimentação de mercadorias da célula-doadora para a célula-conteiner. Primeiro, é necessário decidir em quais unidades de medida iremos calcular os custos de movimentação. As duas opções mais óbvias são metros e segundos. Contar os custos de movimentação em "metros limpos" é sem sentido. Vamos mostrar isso com um exemplo. Suponha que a célula Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1) está situada no primeiro nível, a célula Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1) está a 30 metros de distância e está localizada no segundo nível:

  • Mover de Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1) em Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1) é mais caro do que mover de Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1) em Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1), pois descer do segundo nível (1,5-2 metros do chão) é mais fácil do que subir para o segundo, mesmo que a distância percorrida seja a mesma;
  • Mover 1 unidade de mercadoria da célula Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1) em Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1) será mais fácil do que mover 10 unidades da mesma mercadoria, embora a distância percorrida seja a mesma.

Os custos de movimentação devem ser melhor considerados em segundos, pois isso permite levar em conta tanto a diferença nos níveis quanto a diferença na quantidade de mercadorias movidas. Para contabilizar os custos de movimentação em segundos, devemos dividir a operação de movimentação em componentes elementares e medir o tempo gasto em cada uma dessas componentes.

Suponha que da célula Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1) movem-se Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1) unidades de mercadoria para o recipiente Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1). Suponha que Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1) é a velocidade média de movimentação do trabalhador no armazém, medida em m/s. Suponha que Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1) e Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1) são as velocidades médias para a execução das operações de pegar e colocar, respectivamente, para um volume de mercadoria igual a 4 dm3 (volume médio que o funcionário pega de uma só vez ao realizar as operações no armazém). Suponha que Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1) e Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1) são as alturas das células das quais as operações de pegar e colocar são realizadas, respectivamente. Por exemplo, a altura média do primeiro nível (chão) é de 1 m, o segundo nível 2 m e assim por diante. Então, a fórmula para calcular o tempo total para realizar a operação de movimentação Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1) é a seguinte:

Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1)

Na Tabela 2, estão estatísticas sobre o tempo de execução de cada operação elementar, coletadas pelos funcionários do armazém, considerando a especificidade das mercadorias armazenadas.

Nome da operaçãoSímboloValor médio
Velocidade média de movimentação do trabalhador no armazémMatemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1)1,5 m/s
Velocidade média para a execução de uma operação de colocar (para um volume de mercadoria 4 dm3)Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1)2,4 seg

Tabela 2. Tempo médio para a execução das operações de armazém

Com a forma de cálculo dos custos de movimentação definida, agora precisamos entender como calcular os custos para a escolha da célula-conteinerAqui tudo é muito mais complicado do que os custos de movimentação, pois:

  • em primeiro lugar, os custos devem estar diretamente relacionados ao volume da célula - o mesmo volume de itens a serem movidos de células doadoras é melhor colocado em um contêiner menor do que em um grande, desde que esse volume se encaixe totalmente em ambos os contêineres. Assim, minimizando os custos totais na escolha dos contêineres, buscamos economizar a capacidade de armazém "deficitária" na área de seleção, para realizar as operações subsequentes de colocação dos produtos nas células. Na figura 4 são demonstradas as opções de movimentação de itens em contêineres grandes e pequenos e as consequências dessas opções de movimentação durante a execução das operações de armazém subsequentes.
  • Em segundo lugar, como precisamos minimizar os custos totais na solução do problema original, que é a soma tanto dos custos de movimentação quanto dos custos de escolha dos contêineres, os volumes das células em metros cúbicos precisam de alguma forma estar alinhados com segundos, o que não é trivial.

Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1)
Fig. 4. Opções de movimentação de itens para contêineres de diferentes capacidades.

Na figura 4, a quantidade de itens que já não cabe mais no contêiner na segunda etapa da colocação dos produtos é mostrada em vermelho.

Os seguintes requisitos para as soluções computacionais da tarefa ajudarão a correlacionar metros cúbicos de custos na escolha do contêiner com segundos de custos de movimentação:

  • É necessário que os itens da célula doadora sejam movidos para a célula contêiner em todos os casos, se isso reduzir o número total de células-contêiner onde o produto está localizado.
  • É necessário manter um equilíbrio entre os volumes dos contêineres e os custos de tempo de movimentação: por exemplo, se na nova opção de solução do problema em comparação com a opção anterior houver um grande ganho de volume, enquanto a perda de tempo for pequena, deve-se escolher a nova opção.

Começaremos pelo último requisito. Para concretizar a palavra ambígua "equilíbrio", fizemos uma pesquisa com os funcionários do armazém a fim de descobrir o seguinte. Suponha que haja uma célula contêiner de volume Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1), para a qual está programada a movimentação dos itens das células doadoras, e o tempo total dessa movimentação é igual a Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1). Suponha que existem várias opções alternativas para alocar a mesma quantidade de produtos das mesmas células doadoras em outros contêineres, onde cada alocação possui suas próprias avaliações. Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1), onde Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1)<Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1) e Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1), onde Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1)>Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1).

A questão que se coloca é: qual é o ganho mínimo em volume Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1) aceitável, dado um valor de perda de tempo. Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1)? Поясним на примере. Изначально остатки полагалось размещать в контейнер объема 1000 дм3 (1 м3) и время на перемещение составило 70 секунд. Есть вариант размещения остатков в другой контейнер объема 500 дм3 и временем 130 секунд. Вопрос: готовы ли мы тратить еще дополнительные 60 секунд времени кладовщика на выполнение перемещения для того, чтобы сэкономить 500 дм3 свободного объема? По результатам опроса сотрудников склада была составлена следующая диаграмма.

Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1)
Fig. 5. Diagrama da relação entre a economia mínima de volume aceitável e o aumento da diferença no tempo de execução da operação.

Ou seja, se os custos adicionais de tempo totalizam 40 segundos, estamos dispostos a gastá-los apenas quando o ganho em volume for de pelo menos 500 dm³. Apesar de haver uma leve não linearidade na relação, para simplificar os cálculos subsequentes, vamos assumir que a relação entre as quantidades é linear e é descrita pela desigualdade.

Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1)

Na figura abaixo, consideraremos as seguintes formas de alocar produtos em contêineres.

Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1)
Fig. 6. Opção (a): 2 contêineres, volume total de 400 dm³, tempo total de 150 seg.
Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1)
Fig. 6. Opção (b): 2 contêineres, volume total de 600 dm³, tempo total de 190 seg.
Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1)
Fig. 6. Opção (c): 1 contêiner, volume total de 400 dm³, tempo total de 200 seg.

A opção (a) de escolha dos contêineres é mais preferível do que a opção inicial, pois a desigualdade se mantém: (800-400)/10 >= 150-120, o que resulta em 40 >= 30. A opção (b) é menos preferível do que a opção inicial, pois a desigualdade não se mantém: (800-600)/10 >= 190-150, resultando em 20 >= 40. Mas a opção (c) não se encaixa nessa lógica! Vamos examinar essa opção mais de perto. Por um lado, a desigualdade (800-400)/10 >= 200-120 se aplica, portanto, a desigualdade 40 >= 80 não se mantém, o que indica que o ganho em volume não vale a grande perda de tempo.

Mas, por outro lado, nessa opção (c) não apenas reduzimos o volume total ocupado, mas também diminuímos o número de células ocupadas, o que é o primeiro de dois requisitos importantes para as soluções computacionais dos problemas citados acima. Obviamente, para que esse requisito comece a ser atendido, é necessário adicionar uma constante positiva ao lado esquerdo da desigualdade. Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1), sendo que essa constante deve ser adicionada apenas quando o número de contêineres diminui. Lembremos que Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1) — é uma variável igual a 1 quando o contêiner Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1) é escolhido, e 0 quando não é. Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1) não selecionado. Vamos denote, Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1) – múltiplos contêineres na solução original e Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1) – múltiplos contêineres na nova solução. De maneira geral, a nova desigualdade será:

Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1)

Transformando a desigualdade acima, obtemos

Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1)

A partir disso, temos a fórmula para calcular o custo total Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1) de alguma variante da solução do problema:

Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1)

Mas agora surge a questão: qual valor deve ter essa constante Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1)? Очевидно, что ее значение должно быть достаточно большим, для того, чтобы всегда выполнялось первое требование к решениям задачи. Можно конечно взять значение константы равное 103 или 106, но хотелось бы избежать таких «magic numbers». Если будем рассматривать специфику выполнения складских операций, мы можем вычислить несколько вполне обоснованных числовых оценок величины такой константы.

Seja Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1) – a distância máxima entre as células do armazém de uma zona ABC, que é, neste caso, igual a 100 m. Seja Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1) – o volume máximo de uma célula-conteiner no armazém, que é, neste caso, igual a 1000 dm3.

O primeiro método para calcular a magnitude Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1). Vamos considerar a situação em que há 2 contêineres no primeiro andar, nos quais já está fisicamente localizado o produto, ou seja, eles próprios são células-doadoras, e os custos de mover o produto para essas mesmas células, naturalmente, são iguais a 0. Precisamos encontrar tal valor para a constante Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1), para o qual seria sempre vantajoso mover os restos do contêiner 1 para o contêiner 2. Substituindo os valores Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1) e Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1) na desigualdade mencionada acima, obtemos:

Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1)

o que implica

Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1)

Substituindo os valores do tempo médio de execução das operações elementares na fórmula acima, obtemos

Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1)

O segundo método para calcular a magnitude Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1). Vamos considerar a situação em que existem Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1) células-doadoras de onde se planeja mover o produto para o contêiner 1. Definimos Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1) – a distância da célula-doadora Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1) até o contêiner 1. Também existe o contêiner 2, que já contém produtos e cujo volume permite acomodar os restos de todas Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1) as células. Para simplificar, vamos supor que o volume do produto movido das células-doadoras para os contêineres é igual a Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1). É necessário encontrar tal valor para a constante Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1), para que a alocação de todos os restos das Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1) células no contêiner 2 seja sempre mais vantajosa do que a alocação em diferentes contêineres:

Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1)

Transformando a desigualdade, obtemos

Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1)

Para "intensificar" o valor da magnitude Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1), tomamos que Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1) = 0. O número médio de células que normalmente participam do procedimento de compactação de restos no armazém é igual a 10. Substituindo os valores conhecidos das magnitudes, temos o seguinte valor da constante

Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1)

Pegamos o maior valor calculado para cada variante, esse será o valor da magnitude Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1) para os parâmetros dados do armazém. Agora, para completar, escrevamos a fórmula para calcular os custos totais Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1) para alguma solução aceitável Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1):

Matemática discreta para WMS: algoritmo de compactação de produtos em células (parte 1)

Agora, após todos os esforços titânicos para a transformação dos dados de entrada, podemos afirmar que todos os dados foram transformados para a forma necessária e estão prontos para uso no algoritmo de otimização.

Conclusão

Como a prática mostra, a complexidade e a importância da etapa de preparação e transformação dos dados de entrada para o algoritmo muitas vezes são subestimadas. Neste artigo, dedicamos muita atenção a essa etapa para mostrar que apenas dados de entrada preparados de maneira competente e de alta qualidade podem tornar as decisões calculadas pelo algoritmo verdadeiramente valiosas para o cliente. Sim, houve muitas deduções de fórmulas, mas nós o avisamos antes do corte 🙂

No próximo artigo, finalmente chegaremos ao que era o objetivo das duas publicações anteriores – o algoritmo de otimização discreta.

O artigo foi preparado por
Roman Shanguin, programador do departamento de projetos,
empresa Primeiro Bit, cidade de Chelyabinsk


Fonte: habr.com

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster