多項式時間アルゴリズムがあるかどうかはわかりませんが(NP困難であるように思われます)、実際に解決する必要がある場合に検討できる可能性のあるいくつかの妥当なアルゴリズムアプローチを次に示します。
経験則
よく研究されているアルゴリズムの1つは、Furthest Point First(FPF)です。各反復で、これまでに選択されたポイントのセットから最も遠いポイントを選択します。反復倍。これは貪欲な戦略であるため、これが最適な答えを与える、または最適に近いと予想する理由はなく、わずかに異なる目的関数を最適化するように設計されていました...試してみる価値があるかもしれません。k
FPFはグラフベースのクラスタリングに関する文献から出ており、次の研究論文で紹介されました。
Teofilo F. Gonzalez。 最大クラスタ間距離を最小化するためのクラスタリング。Theoretical Computer Science、vol 38、pp.293-306、1985。
グラフベースのクラスタリングに関する文献を調べて、誰かがあなたの特定の問題を研究したかどうかを確認することができます。
正確なアルゴリズム
この問題が実際にあり、正確な最適解が必要な場合は、ILPソルバーを使用してこれを解決することができます。
方法は次のとおりです。0-OR-1変数導入、あるかどうかを示す選択され、0又は1変数た番目頂点、という意味を意図して場合にのみおよび。次に、制約およびおよびに従って、目的関数最大化します。。次に、既成のILPソルバーを使用してこのILPを解きます。ILPはNPハードであるため、これが効率的である保証はありませんが、一部の問題インスタンスでは機能する可能性があります。xixiiyi,jyi,j=1xi=1xj=1∑i,jd(i,j)yi,j∑xi≤kxi≥yi,jxj≥yi,j
別のアプローチは、重み付きMAX-SATを使用することです。特に、ブール変数導入します。ここで、番目の頂点が選択された場合、はtrue であり、変数です。式は。ここで、はtrueである必要があり(その句には非常に大きなに対して重みがあり)、各句が与えられます重み。式の定義最大でtrueとのの真である(参照、ここでそれを行う方法の詳細については、)とあればxixiiyi,jϕ∧∧i,jyi,jϕWWyi,jd(i,j)ϕkxiyi,j=xi∧xj for all。これで、この重み付きMAX-SAT問題の解決策は元の問題の解決策であるため、問題に重み付きMAX-SATソルバーを投入してみることができます。同じ警告が適用されます。i,j