最短スーパーストリング問題の正確な複雑さについて何が知られていますか?よりも速く解けるか?TSPに減らすことなく最短スーパーストリングを解決する既知のアルゴリズムはありますか?
UPD: は、多項式因子を抑制します。
最短スーパーストリング問題は、その答えが、ストリングの特定のセットからの各ストリングを含む最短ストリングである問題です。問題は、有名なNP困難問題Shortest Superstringの最適化拡張についてです(Garey and Johnson、p.228)。
最短スーパーストリング問題の正確な複雑さについて何が知られていますか?よりも速く解けるか?TSPに減らすことなく最短スーパーストリングを解決する既知のアルゴリズムはありますか?
UPD: は、多項式因子を抑制します。
最短スーパーストリング問題は、その答えが、ストリングの特定のセットからの各ストリングを含む最短ストリングである問題です。問題は、有名なNP困難問題Shortest Superstringの最適化拡張についてです(Garey and Johnson、p.228)。
回答:
文字列が長さ多項式ていると仮定すると、[はい、少なくともある2 N - Ω (√時間ソリューション。理由は、最短の一般的なスーパーストリング問題から多項式サイズの整数の重みを持つATSPへの既知の削減です。これは、有向マルチグラフでハミルトニアンサイクルをカウントできる場合は、多項式補間によって解決できます。後者の問題には時間ソリューション。 ビョークランド2012
重みw u vによるATSPからの削減頂点各ペアのを使用からハミルトニアンサイクルカウントへは、次のようになります。
ため、wの和上部の全ての和で結合しているN ATSPインスタンスにおける重み、ビルド1つのグラフGのRは、各重みを交換wはUがVとR wはuがVからアークをUにV。
各ハミルトニアンサイクルカウント解くことにより、使用すると、多項式補間構築多項式を介して、できΣ wの和 L = 0リットルのR LとL量の元のグラフにおけるTSPツアーの数に等しいL。したがって、a lがゼロ以外になるように最小のlを見つけると、問題が解決します。
私は問題を研究し、いくつかの結果を見つけました。最短共通スーパーストリング(SCS)は、多項式空間のみで時間で解くことができます(、 Kohn、Gottlieb、Kohn ; Karp ; Bax、Franklin)。
最もよく知られている近似は(パルチ)。
圧縮の最もよく知られている近似は (パルチ)。
SCSがバイナリアルファベット上の係数で近似できる場合、任意のアルファベット上の係数αで近似できます(Vassilevska-Williams)。
P = NP(Karpinski、Schmied)でない限り、SCSはよりも良い比率で近似できません。
P = NP(Karpinski、Schmied)でない限り、最大圧縮はよりも良い比率で近似できません。
追加や提案に感謝します。
最短スーパーストリングの問題は次のとおりです文字列s 1、… 、s nがアルファベットΣにわたって与えられ、各s iを連続文字のサブシーケンス、つまり部分文字列として含むΣ上の最短ストリングを検索します。
私たちは、問題のための正確なアルゴリズムについて語るとき、長さの発見最短超弦のは、最大圧縮見つけることと等価であるC最終超弦内のすべての連続した文字列の重複の和である、すなわちC = Σ I | s i | − L。
私の知る限り、最短スーパーストリングの最速の正確なアルゴリズムは(2 n)で実行されます。ここで、nはストリングの数です。これは、最長パス(およびその他の問題)の動的プログラミングアルゴリズムに類似した単純な動的プログラミングアルゴリズムです。
ストリングの各サブセットについてと文字列VにおけるS我々は上のすべての超弦にわたる最大圧縮計算S Vが C((としてこれを記憶する超弦に現れる最初の文字列であり、V 、Sを))。我々は最初の唯一の要素を持つすべてのサブセットを処理し、次いでCを構築することによってこれを行う((Vは、S))のサブセットの値はS上のk上のものからの文字列のk - 1つのストリング。具体的には:
各文字列の場合は、我々はすべてのサブセットを見てS "上のk - 1つの含まれていない文字列のu(および値設定U 、U ∪ Sを「文字列を最大限に)VでS "最大の和のをuとvの C((v 、S ′))とのオーバーラップ。
最終的なランタイムはO()以下です。ここで、lは最大文字列長です。
が小さい、またはペアワイズのオーバーラップが小さい、アルファベットサイズが小さいなどと仮定した場合、より良いアルゴリズムがありますが、2 nより速いアルゴリズムは知りません。