複雑な名前で申し訳ありませんが、当然のことです。問題を提示させてください。
コンテキスト: パーティショニングを行いたいタイプのロケーション ネットワークがあります。
問題の定義: 頂点 V、辺 E、および辺の重み W のセットを持つ無向重み付きグラフ G = {V,E,w} があります。辺は V のすべての頂点の間に存在します。
ここで、サイズ |C1|...|CN| のサイクル C = {C1...CN} があります。st |C1|...|CN| の合計 頂点の総数 |V| に等しい。サイクル Ci のスコアは、パスに含まれるすべてのエッジの重みの合計です。
最後に、目的は次のとおりです。C のサイクルが互いに交差しないという制約の下で、C のすべてのサイクルを組み合わせたスコアが最大になるように、C のすべてのサイクルを G に適合させたいと考えています。
したがって、素人の言葉で言えば、定義された長さのサイクルでグラフを埋めたいと思います。グローバルな重みは最適です。
この問題に対する私の見解: この問題は、パッキング問題やハミルトン サイクルのようなものに還元できるため、少なくとも NP 困難です。
最適解は疑似多項式でさえない可能性があります。問題をいくつかの異なる方法 (グラフ) で定式化しようとしましたが、常に状態爆発が発生するため、扱いやすい 2D 動的プログラミング アプローチはおそらく不可能です (間違っている場合は訂正してください)。
したがって、おそらく近似アプローチを使用する必要があるようです。頭に浮かぶことの 1 つは、独自の近似アプローチを使用して、グラフ全体のハミルトニアン パスを見つけようとすることです。次に、次のステップは、局所最適ハミルトニアン パスを「カット」してサイクルを生成する場所を見つけることです。|C|!*|V| があります。これらの「カットサイト」を配置する方法。階乗は、これらのサイクルと |V| の順序の順列から得られます。開始位置の総数から得られます。剪定を行っても (つまり、同じサイズのサイクルが存在する場合)、これは大きな |C| に対しては依然として扱いにくいものです。小さい |C| の場合は力ずくで問題ないと思いますが、大きい |C| の場合は局所最適配置の近似値を得るために山登り法が必要になります。
ところで、皆さんどう思いますか?