Skip to content

Instantly share code, notes, and snippets.

@brendomaciel
Last active April 26, 2017 20:40
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save brendomaciel/4c57312b52dd00ba83badabbb1d967e1 to your computer and use it in GitHub Desktop.
Save brendomaciel/4c57312b52dd00ba83badabbb1d967e1 to your computer and use it in GitHub Desktop.
É interessante:
• Considerar itens frágeis
• Considerar posição item (quando precisar)
• O objeto possuir medidas específicas para envio. Por exemplo: o objeto dobra ou é flexível, como no caso de tecidos
• Empacotar objetos maiores primeiro
• Posicionar ao lado dos itens já empacotados anteriormente, se couber
• Não permitir saliências para que não haja dobras/quebras durante o trânsito (lados lisos)
• Balancear caixas para que não haja muita discrepância de tamanho e peso. Por exemplo: Três caixas médias, são melhores do que 1 caixa pequena e 2 grandes, por exemplo
• Exibir modelo 3D com o resultado
Algoritmo de empacotamento:
• Normalizar posição dos objetos
• Organizar objetos por volume em ordem decrescente
• Agrupar objetos recursivamente
Algoritmos de agrupamento 1:
• Define-se o tipo de objeto
• Se o tipo do objeto for diferente dos outros, mas couber em uma das caixas já abertas, deve-se colocá-lo nela
• Se a menor medida multiplicada pela quantidade de itens for proxima ou igual à maior medida, deve-se colocar o objeto do lado que possui a medida intermediária
Tipo 1: Cúbico
Tipo 2: Retangular
Tipo 3: Plano
Quando agrupar:
• Cubos Tentar formar um retangulo
• Retangulos Tentar formar um plano
• Planos Tentar formar um cubo
Assim, evita-se extrapolar os limites máximos prematuramente
Algoritmo de agrupamento 2:
• Se o objeto couber na embalagem, prossiga
• Testar combinações e selecionar a que gera menor volume
Referências:
https://www.researchgate.net/publication/273121476_A_genetic_algorithm_for_the_three-dimensional_bin_packing_problem_with_heterogeneous_bins
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment