0

最適化 – 特定の種類のアイテムを再配置しますか? これは、私が取り組んでいる個人的なプロジェクトの最適化に関する小さな問題です。アイテムが入った箱がたくさんあり、各箱の中で、アイテムをさまざまな場所に発送する必要があることがわかっているとします。

例:

ボックス 1: 1000 個のアイテム、場所 A に 500 個、場所 B に 500 個。

ボックス 2: 1000 個のアイテム、場所 A に 500 個、場所 B に 500 個。

できるだけ多くのフル ボックスを 1 つの宛先に発送できるように、アイテムを再配置できるようにしたいと考えています。たとえば、上記の例では、new_box 1 が場所 A に 1000 個のアイテムを持ち、場所 B に 1000 個のアイテムを持つように、アイテムを再配置できます。

これで、この完全な再配置のケースが常に発生するとは限らないことが想像できます。私が持っていたらどうしますか:

ボックス 1: 1000 個のアイテム、場所 A に 500 個、場所 B に 300 個、場所 C に 200 個。

ボックス 2: 1000 個のアイテム、場所 A に 500 個、場所 B に 500 個。

次に、(a) 1 つの宛先へのフル ボックスの数を最適化し、(b) 他のすべてのボックスの異なる場所の数を最小限に抑えます。たとえば、それぞれ 2 つの異なる宛先を持つ 3 つのボックスを持つ方が、3 つの異なる宛先を持つ 3 つのボックスを持つよりも優れています。上記の 2 番目の例の最適な再配置は次のようになります。

New_box_1: 1000 個のアイテム、ロケーション A に 1000 個。

New_box_2: 1000 個のアイテム、800 個がロケーション B に、200 個がロケーション C に。

私の質問は次のとおりです。任意の数のボックスとボックスごとの任意の数の宛先に対して、この状況をどのように処理しますか? 問題のために、各ボックスには同じ数のアイテムがあると仮定することから始めましょう。

私が今考えているのは、貪欲なアプローチを取ることです:

  1. 後続の各ボックスの行を下に移動し、配送先の現在の合計とそこに配送されるアイテムの数を記録します.
  2. これらのいずれかの合計がボックスの容量よりも大きい値になる場合、これらのアイテムを独自のボックスに配置します。
  3. 次に、残っている 1 つの宛先にアイテムの最大数を取り、これを「x」と呼び、値 (ボックスの容量 – x)、(これを「y」と呼びます) を取り、アイテム数の値を 1 に見つけます。 「y」より上で「y」に最も近い目的地。
  4. 次に、「x」個のアイテムを最初の目的地に、「y」個のアイテムを第 2 の目的地に配置し、これを繰り返します。

他の提案や洞察はありますか?本当にありがとう。

4

1 に答える 1