土場で使うアプリケーションを書いています。ボードまたはビームの長さの数を考えると、目標は、無駄を最小限に抑えながら必要なボードの数を計算することです。たとえば、ある特定のディメンションについて、次のショッピングリストがあるとします。
3x2.9
メートル5x1.6メートル
21x0.9メートル
土場では、利用可能なボードの長さを確認し、アプリケーションに入力します。この寸法は4.8メートルの長さで利用可能であるとしましょう。
簡単なアプローチは、残りのボードを降順の長さに合わせてみることです。
2.9 + 2.9 = 5.8なので、4.8メートルのボードには収まりません。2.9+
1.6 = 4.5なので、問題ありません。
残りの0.3メートルより短い長さはないので、このボードは「フル」です。このタイプをさらに2つ装着すると、次の長さが残ります。
2x1.6メートル
21x0.9メートル
さて、このアルゴリズムはかなりうまく機能します。しかし、2.9 + 1.6をフィッティングする代わりに、2.9 + 0.9 + 0.9=4.7をフィッティングするとどうなるでしょうか。その後、0.3メートルではなく、ボードごとに0.1メートルの廃棄物が発生します。
考えられるすべての組み合わせを列挙する際の問題の1つは、各長さがボードに複数回表示される可能性があり、ボードに取り付けられる長さの数も異なることです。すべてのボードの無駄を最小限に抑えるために使用できる既知のアルゴリズムはありますか?
また、土場で2つ以上の長さが利用できる場合はどうなりますか?たとえば、5.4、4.8、3.6メートル?これは確かに物事を複雑にします。利用可能な長さごとに選択したアルゴリズムを実行し、無駄の少ない長さを選択できます。しかし、最も洗練されたソリューションでは、使用可能な長さを混合できるため、最適な答えは1x 5.4、3x 4.8、6x3.6のようになります。しかし、初心者にとっては、答えを1つの長さに制限することに満足しています。