配布に関連する次の問題を解決しようとしています-
アイテム (I1、I2、....In) のリスト L が重要な順に並べられており、I1 が最も重要です。各アイテムには複数のタグが割り当てられており、これらのタグの組み合わせはアイテムごとに異なる可能性があるため、I1 はタグ T1 と T2 を持つことができ、I2 はタグ t2、t3 と t4 を持つことができ、I3 はタグ T1 を持つことができます。 .
ここで、このリスト L からバッチを作成する必要があり、(タグに従って) アイテムの分布は次の制約に従います。
- 各バッチのサイズは固定 B
- 各タグには、最小から最大までの範囲のバッチ配布内のアイテムの範囲があります。したがって、B には、タグ t1 を持つ最小 x1 アイテム、タグ t2 を持つ x2 アイテム、最大 t1 の y1 アイテム、t2 の y2 アイテムなどを含める必要があります。
- L の一番上からアイテムを選び始め、制約を満たす最終的な分布に到達するまでバッチを埋め続けます。たとえば、L に 300 個のアイテムがあり、50 個のバッチ サイズを作成する必要がある場合、リスト内の任意の数のアイテムまで移動して、目的の分布を作成するアイテムを選択できます。
- アイテムがリストから選択されると、それに割り当てられたすべてのタグの数が 1 増えることに注意してください。
最初に、特定のタグごとに対応するアイテムのリストを作成するソリューションを考えていました。リストから特定のタグに最低限必要な項目を選択します。したがって、アイテムに他のタグが含まれているかどうかに関係なく、タグ t1 を持つアイテムのリストからタグ t1 を持つ x1 アイテムを選択します。このようにして、すべてのタグの「最小」基準が確実に満たされるようにします。しかし、最大の部分では、各タグは間違いなく船外に出ます。バッチのアイテムを L の残りのアイテムに再帰的に置き換えて、最終的な目的の配布を行うにはどうすればよいですか?
他のソリューションは素晴らしいでしょう。または、この問題にアプローチするための正しい方向に導くことができる既存のアルゴリズム。
質問が少し冗長で、おそらく少し混乱していることはわかっていますが、できる限り説明しようとしました。もちろん、問題は非常に興味深いものになると思います。