私はこの問題のための合理的なアルゴリズムを考え出そうとしています:
あなたがたくさんのボールを持っているとしましょう。各ボールには少なくとも1つの色がありますが、多色にすることもできます。各ボールにも番号が付いています。それぞれが1色だけの箱もたくさんあります。目標は、ボックス内のボールの数の合計を最大化することであり、唯一のルールは次のとおりです。
- ボックスにボールを配置するには、少なくともボックスの色が含まれている必要があります
- 各ボックスに入れることができるボールは1つだけです。
たとえば、青と緑のボールを青いボックスまたは緑のボックスに入れることはできますが、赤いボックスに入れることはできません。
実行時間の点で大いに役立ついくつかの最適化を考え出しました。たとえば、ポイント値の降順でボールを並べ替えることができます。次に、最大数から最小数に進むにつれて、ボールの色が1つだけで、その色を含む高得点のボールが他にない場合は、そのボックスに入れることができます(したがって、そのボックスとそのボールを残りの組み合わせ)。
このタイプの問題にはある種の動的アルゴリズムがあるのか、それとも巡回セールスマン問題に変装しているだけなのか、私はただ興味があります。最大でX色あることを知っていれば役に立ちますか?どんな助けでも大歓迎です。ありがとう!
編集-簡単な例を次に示します。
ボール:
- 赤いボール1個-5ポイント
- 青いボール1個-3ポイント
- 緑/赤のボール1個-2ポイント
- 緑/青のボール1個-4ポイント
- 赤/青のボール1個-1ポイント
ボックス:
- 赤1個
- 青1個
- 1グリーン
最適なソリューション:
- 赤いボックス内の赤いボール
- 青いボックスの青いボール
緑のボックスに緑/青のボール
合計値:12ポイント(5 + 3 + 4)