Loading article…
ベストフィットはビンパッキングのオンラインアルゴリズムです。入力は異なるサイズのアイテムのリストです。出力はパッキングです。パッキングとは、各ビンのアイテムのサイズの合計が最大で容量以下になるように、アイテムを固定容量のビンに分割することです。理想的には、ビンの数はできるだけ少なくしたいのですが、ビンの数を最小化することは NP 困難な問題です。ベストフィットアルゴリズムは、次のヒューリスティックを使用します。
- 最初は空である、開いているビンのリストを保持します。
- アイテムが到着すると、アイテムが収まる最大荷重のビンがあればそれを見つけます。ビンの
荷重は、新しいアイテムを配置する前のビン内の既存のアイテムのサイズの合計として定義されます。
- そのようなビンが見つかった場合、新しいアイテムはその中に配置されます。
- それ以外の場合は、新しいビンが開かれ、その中に新しいアイテムが配置されます。
近似比
Best-Fit で使用されるビンの数を BF(L) で表し、リスト L で可能な最適なビンの数を OPT(L) で表します。BF(L) の分析はいくつかのステップで実行されました。
- の最初の上限は1971年に ウルマン[1]によって証明されました。
- 改良された上限はGarey、Graham、Ullman、[2] Johnson、Demersによって証明されました。[3]
- その後、Garey、Graham、Johnson、Ullman、Yao、Chi-Chih [4]によって改良されました 。
- 最終的に、この境界はDósaとSgallによってに改良されました。 [5]彼らはまた、この境界に一致するの例としての入力リスト も提示しています。
最悪の適合
Worst-Fit は、Best-Fit の「デュアル」アルゴリズムです。つまり、最小の負荷で次のアイテムをビンに入れようとします。
このアルゴリズムはNext-Fitと同じくらい悪い動作をする可能性があり、その最悪のケースのリストに載るでしょう。[6]さらに、それは成り立ちます。
Worst-FitはAnyFitアルゴリズムなので、次のようなAnyFitアルゴリズムが存在する。[6]
参考文献
- ^ Ullman, JD (1971). 「メモリ割り当てアルゴリズムのパフォーマンス」.技術レポート 100 プリンストン大学.
- ^ Garey, M. R; Graham, R. L; Ullman, JD (1972). 「メモリ割り当てアルゴリズムの最悪ケース分析」。第 4 回 ACM コンピューティング理論シンポジウム議事録 - STOC '72 。pp . 143–150。doi : 10.1145/800152.804907。S2CID 26654056。
- ^ David S. Johnson、Alan J. Demers、Jeffrey D. Ullman、MR Garey、Ronald L. Graham。単純な 1 次元パッキング アルゴリズムの最悪ケース パフォーマンス境界。SICOMP、第 3 巻、第 4 号。1974 年。
- ^ Garey, M. R; Graham, R. L; Johnson, D. S; Yao, Andrew Chi-Chih (1976). 「一般化ビンパッキングとしてのリソース制約スケジューリング」Journal of Combinatorial Theory, Series A . 21 (3): 257–298. doi : 10.1016/0097-3165(76)90001-7 . ISSN 0097-3165.
- ^ György, Dósa; Sgall, Jirí (2014). 「ベストフィットビンパッキングの最適分析」.オートマトン、言語、プログラミング. コンピュータサイエンスの講義ノート. 第8572巻. pp. 429–441. doi :10.1007/978-3-662-43948-7_36. ISBN 978-3-662-43947-0。
- ^ ab Johnson, David S (1973). 「近似最適ビンパッキングアルゴリズム」(PDF) .マサチューセッツ工科大学.
