THIS IS A VERY DIFFICULT QUESTION
Posted on 2006-11-02
Ok well here is the scoop. My boss laid a project on me that is pretty much... hasn't really been done before? At least that's the impression I get when I try googling it.
He wants me to make an automated packaging system. Meaning the system knows it has boxes of a certain dimension and size, and then you have a set amount of products and their dimensions. Well it needs to determine the best way to package the products in order to use the least space possible. And there should never be a small item just in a box by itself, the packages should be "weighted". What I mean by weighted, is that if you are going to be forced to use a second box, simply cause of one or two products, then even the boxes out to make the load lighter for each box.
Basically, it should replicate someone who has been boxing packages their entire life and knows the best way to put items into boxes.
The basic layout I have so far is a class Box that has the width, height, length, and contents (triple subscripted array to simulate each 1in x 1in x 1in location inside the box, this is basically a switch Y or null if its filled in. I have also thought about a code system to help me determine the layout of the box. Everything but 0 means its filled in, 0 is empty. And then the codes will tell me ALL of the different combinations of what can be filled around it.. but that might be slower than actually just checked the array values.)
What I need help with is determining how to efficiently place the boxes into each other, and be able to track it(?) if I have too. So that I can repeadidly try different combinations till the best 2 or 3 are found.
This is sort of like finding the best way through a maze, you go through the maze successfully and retract your steps to try different turns until the shortest path is found.
I will probably be working on this for a very long time so I have some time to talk about it. I'd offer alot more than 500pts for this but apparently I can't.