労働者はN
で、M
チームの1人に割り当てる必要があります。各チームは、最大でK
人の労働者を持つことができます。各作業者は、最も優先度の高いチームの場合は1
から、優先度の低いチームの場合はM
に、優先度の順にチームをランク付けします。問題はマッチングを見つけることで、各チームが最大でK
人の労働者を持つことができるという条件で、最も好むチームで作業を終えることができます。労働者嗜好に基づいてチームに労働者を割り当てるアルゴリズム
最初は私が考えていたが、これはHungarian Algorithmを使用して解決できるAssignment problemだと思った。しかし、ハンガリーのアルゴリズムは、各作業者が正確に1つのアイテムに割り当てられている場合にのみ使用できることを認識しました。しかし、私の場合、複数の労働者を同じチームに割り当てることができます。
今、私はこれが本当にどんな種類の問題であるか確信しています。これは(複数の)Knapsack problemですか、Bin packing problemですか?どのような種類のアルゴリズムを使って問題を解決できますか?そして、あなたがチームに各ワーカーを割り当てる必要がありますし、各チームが唯一することができます - あなたは1の容量を持つK
のチームに各チームが重複した場合は
は:小さな調整で
それで、それぞれの労働者はM * Kの好みを与えなければならないだろうか? – asmaier
いいえ、設定は変更できない質問の入力です。むしろ、割り当てのコストを定義する際には、初期設定を考慮する必要があります –