What's new

Bin Packing Problem brain teaser...

LogGrad98

Well-Known Member
Contributor
20-21 Award Winner
2022 Award Winner
2023 Award Winner
2024 Award Winner
So I am in distribution, if anyone didn't know that. We are evaluating the use of a swisslog autostore solution for the DC I am currently managing. In doing so I have been doing a LOT of work in cleaning up dimensional data for our entire product catalog to validate which items can fit in the bin system of the autostore. In doing so we are faced with several constraints, and the current one we are working through is one of dimensions and geometric data. We have already filtered for weight limits (55 lbs), and are now looking at the actual physical dimensions of the product and packaging. The autostore consists of 35,000 bins that are identical in size, each being 23"x15"x12" interior dimensions. So the challenge now is looking at our products' physical dimensions and calculating how many of a given item will fit in a bin. If we cannot get at least 4 to 8 in a bin (depending on other factors, like product cost and inventory velocity, etc.) then we won't put that item in the autostore. The more items we can slot into the autostore the more it helps us because of the inherent efficiency of the autostore system and the density of product in the floor-space used.

Here is an autostore bin.

autostore12.png


So, an example, a simple one, is something that comes in a box that is 1"x1"x1", or 1 cubic inches, of which we can get 4140 in a bin (23x15x12=4140 cubic inches). The challenge comes about when we are evaluating boxes that are not symmetrical cubes. Here are a few examples:

8.5"x8.25"x6.5"

Volumetrically this comes out to 455.81 cubic inches, which would theoretically fit 9.08 (so 9 whole units) of product in a bin. However, with the actual physical dimensions of the bins being a constraint this product actually will fit only 4, stacking them on "edge" where the 8x8 side is against the 23x12 long side of the bin, where you can get 2 side by side, and then fitting another layer of 2 next to the first before maxing against the 15 inch width of the bin (6.5x2<15). I should include some pictures which I could do later.

Another is

11.6"x10.7"x1.1"

Again volumetrically we should be able to fit 30 in this bin, however the 11x10 inch side constrains us to fit 2 side by side as a single "layer" against the long side of the tote (23x12) and then stacking them on edge again across the tote (like slices in a loaf of bread) to fit 13 in each stack across the 15 inch width of the bin, giving us a total of 26.

Another is

13.7"x6.5"x2.3"

So again volumetrically it should fit 20 units. However, as we calculate against the dimensions of the bin we get a layer that is 1 wide (to fit the 15 inch width), 3 long (to fit the 23 inch length), and that can be stacked 5 high, to get us to 15 max units.

We have played around with this in access and in excel, using formulas, tables, VB script, etc. with the most luck in excel through some methods using array formulas to approximate a more or less NFDW (next fit decreasing width) algorithm to get to a basic level of fit, but I am looking for a better solution. This gets us there, within a degree of certainty (about 75% to 85% roughly, which is statistically terrible), and there are big gains to be had the more items we can fit in the bins, and making changes within our systems to how we handle inventory is neither easy nor fast, so getting this as close to right the first time will save lots of money in the long run. We have about 80,000 SKUs we need to run this against, and for ease of interface with the swisslog system and our inventory and WM systems it works best in spreadsheet format, or at least something we can convert into spreadsheet format.

There are some programs available on the market that do this exactly (packaging and load maximizing software using proprietary algorithms) but I am again trying to save us some money and not have to purchase anything extra to help us calculate this. I have been working with a couple of packaging engineers and other managers here. And of course the people at swisslog will provide an add-on to SAP to help us get the calculations we need, again for more money.(I tried the solver add-in for excel but the 3 dimensional orientation part makes that basically useless, unless I am just not seeing how to formulate the constraints or the basic formula properly).

So, to any of the mathematically and Microsoft office inclined, or if you just like puzzles since this is basically a packing puzzle, any suggestions or other ways to work this out? It is basically taking variable sized rectangular objects (but only one size rectangle per bin) that can be oriented in any direction 3-dimensionally and finding best fit into a bin of a given size (23x15x12) to maximize how many objects we get in a bin. For any curious or who haven't seen a problem like this before, this is just about its own branch of mathematics/geometry due to the complexity.

Here is a video of the autostore for those who don't get into the math much but like shiny things. Or those who do and still like shiny things. Whatever.

https://www.youtube.com/watch?v=iyVDMp2bL9c
 
The manufacturer of the bins can't make different sized ones to help fit exactly x amount of your products?

I know this would cost more but might that cost more than offset what you'd save by doing this?
 
Do it like my children when they are angry at having to clean up. Throw everything in as hard as possible, yell a lot, and stomp on everything to fit it all in.
 
The manufacturer of the bins can't make different sized ones to help fit exactly x amount of your products?

I know this would cost more but might that cost more than offset what you'd save by doing this?

Watch the video. It's a standard sized bin and then we put whatever can fit into the bins. It's a cool system that will help a lot on efficiency and accuracy. I'm trying to get the most complete data set I can to maximize it and I have until the end if the 1st week of January to get it done.
 
Ain't nobody got time fo dat
 
I recommend playing the game Tetris for a while. This may help you with your problem. The longer you play, the harder each level gets. This will fine tune your 3 dimensional imaging in your brain. You can come up with ways to construct the packages so that they fit together as efficiently as possible.

Or... Maybe just download Tetris into the computer mainframe. Teach the computer to play its own kind of Tetris.
 
I recommend playing the game Tetris for a while. This may help you with your problem. The longer you play, the harder each level gets. This will fine tune your 3 dimensional imaging in your brain. You can come up with ways to construct the packages so that they fit together as efficiently as possible.

Or... Maybe just download Tetris into the computer mainframe. Teach the computer to play its own kind of Tetris.

I need 3 dimensional tetris then.
 
I need 3 dimensional tetris then.

Haha. Oops.

How many different products are in the warehouse that you are thinking of doing this with.

Maybe it would just be easier to try a product out by hand and see what works best.
 
Haha. Oops.

How many different products are in the warehouse that you are thinking of doing this with.

Maybe it would just be easier to try a product out by hand and see what works best.

80,000
 
Is there a reason that you couldn't put multiple different SKUs in the same bin? Just because the dimensions of a given item limits you from how many of that item you can put in the bin doesn't mean that you couldn't fill the remaining space with another item of different dimensions. Two SKUs could essentially become partner objects enabling you to put more of both items in a 10 bin set than you would have been able to if you'd kept them only in separate bins.
 
Is there a reason that you couldn't put multiple different SKUs in the same bin? Just because the dimensions of a given item limits you from how many of that item you can put in the bin doesn't mean that you couldn't fill the remaining space with another item of different dimensions. Two SKUs could essentially become partner objects enabling you to put more of both items in a 10 bin set than you would have been able to if you'd kept them only in separate bins.

This is something we are considering. The problem is the swisslog control software uses a top-off calculation when we put product away to ensure we are using the best cube of the storage space and it isn't set up to handle multiple SKUs per bin. However, if we do not need that, like for slow moving parts that have larger standard receipt quantities (like we have one gasket that is fairly small and our normal receipt quantity is 500 and all 500 fit in one bin and we receive it maybe once a quarter if that), then we can mix SKUs. The biggest issue with mixed SKUs is human error, if the person picks the wrong item or if the people putting stuff into the bins mix SKUs that are too similar and confusing. I am not a fan of SKU mixing in bins for exactly this reason unless it is pretty clear the difference. When I worked at amazon they used primarily library shelves and bin sizes were flexible, so you could have, say 5 different books, 3 CDs and 2 DVDs in the same bin, controlled by the scan, however product drift there was a big problem. With the autostore drift isn't the problem but we are still trying to avoid adding in any sources of ambiguity. Best for the operators is one tote comes to you, you count out the proper quantity and scan the barcodes and then send the bin back. Keep it simple.
 
Why not do it the old fashion way an go out an manually pack the containers to see how to do it right. This is how this country was built not some Nintendo cheat code.
 
Haha. Oops.

How many different products are in the warehouse that you are thinking of doing this with.

Maybe it would just be easier to try a product out by hand and see what works best.


Why not do it the old fashion way an go out an manually pack the containers to see how to do it right. This is how this country was built not some Nintendo cheat code.

See above.
 
So one question, which i don't think has been addressed, is that do these items need to be packed with a certain side up? Or can you turn certain items over onto any side, therefore being able to "manipulate" space?

You may have addressed this (tldr entirely) or it may have mentioned in the videos but this is certainly a huge factor.
 
The vast majority can be oriented any way we want. Which vastly adds to the complexity.
 
Is anyone any good with HTLM? I could use this calculator if I could extract the code behind it and get it into a spreadsheet to populate the Max Boxes at the bottom.

https://www.seafreightcalculator.com/boxes-quantity-calculator/

<title>Box Quantity Calculator | Sea freight Calculator</title>
<link rel="stylesheet" href="https://www.seafreightcalculator.com/wp-content/themes/NIEUWELAYOUTSEAFREIGHT/12313/style.css" type="text/css" media="screen" />
<!--[if IE 6]><link rel="stylesheet" href="https://www.seafreightcalculator.com/wp-content/themes/NIEUWELAYOUTSEAFREIGHT/12313/style.ie6.css" type="text/css" media="screen" /><![endif]-->
<!--[if IE 7]><link rel="stylesheet" href="https://www.seafreightcalculator.com/wp-content/themes/NIEUWELAYOUTSEAFREIGHT/12313/style.ie7.css" type="text/css" media="screen" /><![endif]-->
<link rel="pingback" href="https://www.seafreightcalculator.com/xmlrpc.php" />
 
<title>Box Quantity Calculator | Sea freight Calculator</title>
<link rel="stylesheet" href="https://www.seafreightcalculator.com/wp-content/themes/NIEUWELAYOUTSEAFREIGHT/12313/style.css" type="text/css" media="screen" />
<!--[if IE 6]><link rel="stylesheet" href="https://www.seafreightcalculator.com/wp-content/themes/NIEUWELAYOUTSEAFREIGHT/12313/style.ie6.css" type="text/css" media="screen" /><![endif]-->
<!--[if IE 7]><link rel="stylesheet" href="https://www.seafreightcalculator.com/wp-content/themes/NIEUWELAYOUTSEAFREIGHT/12313/style.ie7.css" type="text/css" media="screen" /><![endif]-->
<link rel="pingback" href="https://www.seafreightcalculator.com/xmlrpc.php" />

Try that.
 
Try that.

never mind, I thought you just wanted to put it on your website or something. That won't really work. They have built a wordpress child theme that contains the calculator for their site. You would have to get into their site to get the actual coding, I think.
 
Back
Top