2009-10-13 2 views
9

私は3Dビンパッキングアルゴリズムのための決定論的な実装を探しています。解決策は最適なものとは異なる可能性があります。3dビンパッキングアルゴリズム

C、C++、Java、C#、IronPython、IronRuby、または他の言語で書かれていなければなりません。

私はこのCアルゴリズムhttp://www.diku.dk/hjemmesider/ansatte/pisinger/3dbpp.cを見つけましたが、最も適したものを見つけるために直方体を回転させません。私はそれらを逆さに回転させないで大丈夫ですが、水平回転が可能でなければなりません。

+0

@Mouk:この宿題はありますか? – Asaph

+4

あなたはアルゴリズムを探していると主張していますが、プログラミング言語をリストしています。ジェネリックアルゴリズムや実装をお探しですか? –

+0

あなたは最適なソリューションを望んでいますか、それともかなり良いですか?立方体はすべて同じですか?あなたが回転を言うとき、あなたは90度、または任意の角度を意味するのですか? – Beta

答えて

8

私はあなたが記述したケース、すなわち直交回転の3D長方形ボックスの近似アルゴリズムをC++で書いています。私はJavaScriptにwknechtel/3d-bin-pack Cコードを変換 http://www.cs.ukzn.ac.za/publications/erick_dube_507-034.pdf

+3

ソースまたはC++アプリケーションはどこでもオンラインで利用できますか? –

+0

これは単純な解決策には適していますが、実際にはうまく機能しません。説明をしたい人には、この本をお勧めします。Martello and Toth著ナップザック問題、ISBN:0471924202 – ars265

1

この問題はNP困難です。あなたの最善の策は近似アルゴリズムです(天才の人がNPの問題を解決するまで、あるいは非常に幸運な人が解決策を見つけ出すまで)。私はこの問題の近似アルゴリズムを残念ながら知っていません。

+3

多項式時間でNP完全な問題を解決するには、NP困難な問題の多項式解を与えることはできません:) –

1

: あなたは発表された論文での結果とアルゴリズムを見つけることができます。簡単にC#に移植することができます。

https://github.com/keremdemirer/3dbinpackingjs

あなたはindex.htmlファイルから例の計算を実行し、生成されたレポートを確認することができます。 pack1.jsファイルには、アプリとアルゴリズムが含まれています。アルゴリズムの仕組みはわかりませんが、結果はパッケージングの計算には充分です。