共通部分列


29

文字列には2nサブシーケンスがありますが、通常はすべてが異なるわけではありません。サブシーケンスの最大頻度を見つけることの複雑さは何ですか?

たとえば、文字列「subsequence」にはサブシーケンス「sue」のコピーが7つ含まれており、これが最大です。

http://ideone.com/UIp3tのブルートフォースコードのサンプル

関連する構造定理はありますか?これらは両方とも偽であることが判明しました

  • 最大頻度サブシーケンスの最長は一意です
  • 任意の長さ-の最大周波数kサブシーケンスは単峰性であるk

おそらく関連するリンク:

10日後に編集:ご覧いただきありがとうございます!これにより、多項式時間で解けるプログラミングコンテストの問題が発生するのではないかと考えていました。私はそうは思いませんが、後でもう一度考えたいと思います。


5
おそらく素朴な最初の質問:この問題がNPにさえあることは明らかですか?つまり、n文字の文字列に少なくともk回出現するサブシーケンスがあるかどうかを判断する問題については、証明書はどのように見えるでしょうか?たとえば、特定のサブシーケンスのインスタンスを示すインデックスのすべてのタプルをリストすると、文字列aaa ... aaの多項式サイズに失敗します(それは退屈な入力ですが、およそn Cn / 2 発生)。nC(n/2)
ニール・ド・ボードラップ

7
@Niel de Beaudrap:動的計画法により、多項式時間のサブシーケンスとして発生数をカウントでき、サブシーケンス自体を証明書として使用できるようになると思います。
伊藤剛

2
私は少し混乱しています。質問は「文字列を与えられ、最大回数発生するサブシーケンスを見つけますか?」
Suresh Venkat

2
@SureshVenkat:はい、それは私の理解です。たとえば、入力として Xのシーケンスが与えられた場合、正解はn / 2個の Xのシーケンスになります。nn/2
ジェフ

2
@ marzio-de-biasi:あなたがリンクした質問は異なります(そしてずっと簡単です):サブシーケンスが与えられます。
デビッド

回答:


4

検索から、ここに大学院レベルの研究のためのいくつかの研究と発見がありますが、(注意)参照はありません。問題に関するいくつかの発見的方法、推定値、経験的結果と解説、およびその(近似)複雑さの証明に関するいくつかのアイデアなどがあります。

最も頻繁な サブシーケンスの特定
CSE 549計算生物学プロジェクト最終報告書
ミハイルバウチン2006

(例えばElzinga等の論文でやや似ている&研究されているいくつかの標準的なサブシーケンス問題がありますが、この特定のサブシーケンス問題はあまり研究されていない可能性がありますか?)


4
これがなぜ投票されたのか理解できません。それほど深い論文ではないかもしれませんが、直接話題になっているようです。
デビッドエップシュタイン

fyi / addendum Bautinは、論文の最後に、問題/論文に関する5K行のC ++およびPythonコードを興味がある人のために持っていると
述べています。

@David、ダウン投票はリンクされたペーパーのためではないと思いますが、おそらく、この答えは(本質的に)1行のリンクの答えのように見えるという事実とおそらく関係がありますそれに答えます)。これはコメントとしてより適切だったかもしれません。
カベ

1
わかりました、Kaveh、それから綴ります:論文は問題の正確な複雑さが今までのところ未知/未解決であることを明らかにしていますPSpace / ExpTime)およびこれまでの問題を解決するための最もよく知られた分析/アプローチが含まれている可能性があります
-vzn

私は以前にこの論文を見つけましたが、上記にリンクしていないことをおizeびしました。これは、多くの具体的な情報を提供するとは思わなかったからです。少し前に著者にメールを送信しました。書かれてから起こったことについて、彼がそれ以上言うことができるかどうか尋ねましたが、まだ返事はありませんでした。
-daveagp

3

答えではなく、単なる補題です。

したがって、まず、12..t12..t12..t ..のような文字列の最も一般的なサブシーケンスが何であるか疑問に思うかもしれません。少し考えてみると、12..t12..t12 ..の形式も必要であることがわかります。元の文字列の長さがntであり、この特殊形式のサブシーケンスの長さがkである場合、その出現回数は正確に(n+kk/tk)=(n+kk/tnk/t)tkt

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.