タイトルについて申し訳ありませんが、SOは「問題」という言葉を許可していませんでした。次の問題があります。
売りたいもののパッケージがあり、各パッケージには価格があります。誰かが 、 、 を要求したときX
、私はすべてのパッケージを調べたいY
とZ
思います。パッケージの中には複数のアイテムが含まれているものもあり、ユーザーのアイテムをカバーし、最小価格のパッケージの組み合わせをユーザーに提供します。
たとえば、 11 ドルかかる[(X, Y), (Z, Q)]
ので、10 ドルを提案するかもしれません[(X), (Y), (Z)]
。これらは価格であるため、貪欲な加重セット カバー アルゴリズムは使用できません。2 人が異なる価格で同じものを手に入れるのは良くないからです。
ただし、加重集合カバー問題の最適なアルゴリズムを詳述した論文 (または何か) を見つけることができませんでした。誰かが実装(私はPythonを使用しています)、論文、またはそれがどのように機能するかについての高レベルの説明を手伝ってもらえますか?
私が持っているパッケージは数百あり、その数は 5 ~ 6 であるため、実行時間は実際には問題になりません。
ありがとう!