すべての要素をカバーしながら、要素の合計が最小になる最大のサブセットを見つけることができる最適なアルゴリズムを見つけようとしています。
例:- ABC が小売業者で、WXYZ が製品であると想像してください。目標は訪問を最小限に抑え、価格を下げることです。
A B C
W 4 9 2
X 1 3 4
Y 9 3 9
Z 7 1 1
So it appears my top two choices are
a) B:{XYZ} - 7 C:{W} - 2
b) C:{WXZ} - 7 B:{Y} - 3
So a) is picked because since it has a lower cost, i.e 9.
この問題は、頂点カバーやその他の線形計画法のアルゴリズムに似ているように見えますが、正しいものを見つけ出すことができません。
アップデート:
追加の変数を追加する必要があるようです。T.をご紹介します。訪問する小売業者の数が最も少なく、次に少ない小売業者の費用が > t の場合、次の前者が選択されます。
Continuing with the example.
say t = 5,
The largest subset containing all elements would be B:{WXYZ} with a cost of 16.
The next largest subset(s) is B:{XYZ} - 7 C:{W} - 2 with a cost of 9.
t = 16 - 9 > 5. So we pick B:{XYZ} - 7 C:{W} - 2
but if we did A:{X}, B:{Y}, C:{WZ} - 5, t = 9 - 5 < 5.
So B:{XYZ} - 7 C:{W} - 2 is picked
このパターンに適合するアルゴリズムが既に存在するかどうか、本当に興味があります。この種の最適化を必要とする最初の人になることはできません。