私は、郵便物のための最も便利なサイズにオブジェクトを積み重ねる問題を解決しようとしています。オブジェクトのサイズと形状は変更されます。すべてのオブジェクトの長さ、幅および高さは既知である。スタッキングアルゴリズム - 可能な限り小さな領域に3Dオブジェクトを積み重ねます
たとえば、顧客は、2つの50x50x50cmのオブジェクト(立方体)と一緒に(長さx幅x高さ)200x100x10cmオブジェクト(幅広、長さおよび幅)を注文することができます。もし私がこれを梱包したら、平らなワイドオブジェクトを下に、2つのキューブを横に並べて並べます。
誰にでも、これに対する合理的に効率的なアルゴリズムソリューションがありますか?あるいは、私がこれを解決することを考えなければならない方法へのアプローチさえ。私は一週間中にコーディングしています、それは遅く、私の脳は揚げられています。私はまだ必死ではないが、明日は休みを取っていたい。
3次元空間を表す配列を作成することです。各配列要素は、その空間で1平方センチメートル/ cmを表します。 3D空間の長さと幅は、最も長いオブジェクトと最も広いオブジェクトに基づいています。次に、最大のオブジェクトから最小のオブジェクトまで作業し、十分な「穴」を見つけて、あなたが行くようにそれらを埋めるだけです。
私は確信していますが、これはもっと効率的にこれを行う数学的な式です。
アイデア?
まず、制約を定義する必要があります。 *全体の長さ、幅、高さ、音量、またはすべて4を最小限に抑えようとしていますか? *複数のディメンションを制約する場合、それぞれに関連付けられた相対コストを定義する必要があります。たとえば、ボリュームが半分になりますが、別のソリューションの長さの3倍の場合、ソリューションは改善されますか? – mbeckish
http://en.wikipedia.org/wiki/Bin_packing_problem –
私は一般的に音量を制限しようとしています。私は最終的には私が思っているキューブを作ってみようと思います。 –