1

最初に、英語は私の母国語ではないことを明確にしたいので、少し我慢してください :)

3D ビンのパッキング問題を 1 つのコンテナー (ナップザック) のみで解決しようとしていますが、目的関数の定式化に問題があります。コンテナーとパッケージのリストがあります。

容器:

  • 深さ
  • 身長
  • 容量
  • 三次元行列

パッケージ:

  • 深さ
  • 身長
  • 位置 (X、Y、Z)
  • 重さ
  • 位置係数

各パッケージには、パッケージを積み込みたい位置を示す位置係数があります。係数は 1 から 5 の範囲です。1 はパッケージをコンテナの前に配置し、5 はコンテナの後ろに配置する必要があることを意味します。容器。

私の目的関数は、コンテナのスペースを最大化することであり、より大きな係数を持つパッケージはコンテナの後ろに、より小さな係数を持つパッケージはトラックの前に配置する必要があります。

スペースを最大化したい場合は、すべてのパッケージの体積の合計を最大化する必要がありますが、これを目的関数へのペナルティと組み合わせる必要があります。たとえば、係数 5 のパッケージが前面の位置にある場合コンテナの。

同じサイズのパッケージを一列に並べた例で何かを明確にしたい

  1. 後ろ 5 1 5 4 4 4 3 3 2 2 前
  2. 後ろ 5 5 4 4 4 3 3 2 1 2 前

最初の配布パケットでは、係数 1 のパッケージがコンテナーのほぼ背面にあることがわかりますが、2 番目の配布では、係数 1 のパッケージはあるべき位置 (前面) の近くに配置されているため、 2番目の分布の方が優れています。

問題は、パケットのサイズが異なり、任意の位置に配置できることです。あなたが私を助けてくれることを願っています:D!

4

1 に答える 1

0

目的関数の特定の形式は、解法によって異なります。

ビン パッキング問題は NP 困難な問題であるため、ヒューリスティックを使用して解決すると思います。この場合、候補ソリューションは、塗りつぶされた位置 (X、Y、Z) 属性を持つすべてのパッケージ (P) のセットです。目的関数は次のようになります。

F({P}) -> int

したがって、パッケージ ファクターによって結果に重みを加えることができます。私が理解しているように、最良のレイアウトは 1 から 5 までのファクターでソートされます。それと現在のレイアウトの違いはあなたの係数です(最小二乗法を使用してください):

ideal:   back 5 5 4 4 4 3 3 2 2 1 front
current: back 5 1 5 4 4 4 3 3 2 2 front 
coefficient: (5-5)^2 + (5-1)^2 + ... + (1-2)^2
于 2015-09-12T18:03:35.327 に答える