web-dev-qa-db-ja.com

3次元ビンパッキングアルゴリズム

私は3次元のビンパッキング問題に直面しており、現在、どのアルゴリズム/ヒューリスティックが現在最良の結果をもたらしているかについて、いくつかの予備調査を行っています。問題はNP難しいので、すべての場合に最適な解決策を見つけることは期待していませんが、私は疑問に思っていました:

1)最も正確なソルバーは何ですか?分枝限定法?妥当なコンピューティングリソースでどのような問題のインスタンスサイズを解決できると期待できますか?
2)最高のヒューリスティックソルバーは何ですか?
3)いくつかの実験を行うために、どのような既製のソリューションが存在しますか?

33
BuschnicK

既製のソリューションに関しては、トラックの積み込みについて [〜#〜] maxloadpro [〜#〜] を確認してください。任意の長方形のボリュームをロードするように構成できる可能性がありますが、私はまだ試していません。一般に、3Dビンパッキング問題には、オブジェクトをさまざまな位置に回転できるという複雑さが加わります。そのため、特定の長さ、幅、高さのオブジェクトについては、各位置を表す3つの変数を効果的に作成する必要がありますが、使用するのは1つだけです。ソリューション。

一般に、スタンドアロンMIP定式化(または分枝限定法)は2dまたは3d問題ではうまく機能しませんが、制約プログラミングは2d問題の正確な解決策を生み出すことに成功しています。これをチェックしてください abstract 。論文を見ずに、同じサイズのビンの数を最小限に抑えようとしている問題の分解アプローチが好きです。 3Dの問題についてはそれほど多くの結果は見ていませんが、実装可能な結果があればお知らせください。

幸運を !

6
Grembo

私は3つのさまざまなアルゴリズムをテストする プログラム を書きました。また、これは良い情報源です: ビンをパッキングする千の方法-2次元の長方形のビンパッキングへの実用的なアプローチ 。 2次元の長方形のビン用ですが、いつでも3Dに変換できます。

3
Kris

から ウィキペディア

これらの単純な戦略 で十分なことがよくありますが、十分に大きな入力の最適解の任意の固定パーセンテージ内でビンパッキング問題を解決できる効率的な近似アルゴリズムが実証されています。

これについて彼らが提供する2つの情報源は次のとおりです。

最良の正確なソルバー:使用 動的計画法

状態変数:

  1. 梱包して廃棄したアイテム。
  2. コンテナに埋められたスペース。

コンテナが平行六面体のグリッドであり、アイテムがグリッドの正確なセルに「収まる」場合は、3次元配列を使用して状態変数2を表すことができます。それ以外の場合は、より複雑なデータ構造を使用する必要があります。

最高のヒューリスティックソルバー

知りません。おそらく 可変近傍検索 。あなたの問題と(私が取り組んでいる)時間割構築の問題の間にはいくつかの類似点があるので、同じヒューリスティックが両方に適しているかもしれません。

実験を行うための既製のソリューション

すみません、手がかりすらありません。

1
pyon

dbinpacking は、Nice視覚化で使用するAPIを公開する商用ソリューション(アルゴリズムではありません)です。それは提供します:

  • シングルビンパッキング
  • マルチビンパッキング
  • 3番目の次元を見つける
  • ビンの寸法を見つける
0
hdoghmen

あなたの質問は次のようになります: dビンパッキングアルゴリズム

ただし、ローテーションを許可しないため、かなり良い結果を得ることができます。 FIRST-FIT-DECREASINGソリューションにもっと目を向けることをお勧めします。

0
user320450