0

次の問題を解決しようとしています。指定された長さと幅を持つ 192 個のアイテムが与えられた場合、総表面積を最小化する梱包順序を見つけたいと考えています。アイテムはすべて同じ高さです (これは指定されていません)。各パッケージには 12 個を超えるアイテムを含めることはできません。また、アイテムの寸法により、同じレイヤーに複数のアイテムを格納することはできません。アイテムは、その幅と長さが下のアイテムの幅と長さを超えない場合にのみ、別のアイテムの上に積み重ねることができます。

目標は、最大のオブジェクト (底面) の表面である総表面積を最小化することです。

パレットとビンの積み込みに関する膨大な量の文献を見つけましたが、何が必要なのか正確にわかりません。これが私が思いついたものです:

1) 最大の表面 (幅*長さ) を持つアイテム i を選択し、スタック j の一番下に配置します。

2) 2 番目に大きいサーフェスを持つ項目 i を選択します

a) 幅と高さがスタック j の一番下のアイテムの幅と高さを超えない場合、スタック j=1 の一番下のアイテムの上に配置します

b) 幅と高さがスタック j の一番下のアイテムの幅と高さを超える場合、アイテムを回転します。収まる場合は、スタック j=1 の一番下のアイテムの上に配置します。

c) 回転したアイテムの幅と高さがスタック j の一番下のアイテムの幅と高さを超える場合、スタック j+1 = 2 の一番下に配置します

3) 3 番目に大きいサーフェスを持つアイテムを選択し、手順 a、b、c を繰り返します。

等々...

注意点、またはヒントはありますか?これが(最適な)解決策をもたらすかどうかはわかりません。

4

1 に答える 1

1

考えるためのヒント: 「上に積み重ねることができる」という制約は、項目の部分的な順序付けを定義します。部分的な順序付けは、トポロジカルな順序付けによってグラフとして表すことができます。

これで、長さが 12 を超えない、すべての項目から始まるパスを検討できます。グラフが使い果たされるまで、これらのパスをグラフから繰り返し削除することで、暫定的な解決策を試すことができます。(パスを削除すると、共通のアイテムを持つ他のパスを修復する必要があります。)

パスで表現された問題は、ノードで表現された場合よりも解決しやすいかもしれません。

問題を解決する必要があります: パスを削除するとき、パスは常に最大長にすることができますか、それとも短い方がより良いグローバル ソリューションを生成できますか?

于 2012-07-21T11:04:46.490 に答える