私はNJ Larsson、A. Moffat:Offline Dictionary-Based Compressionの論文を読んでいます。これは、私が正しく理解していれば、バイトペアエンコーディングに非常に似ている圧縮アルゴリズムについて説明しています。
長さnの文字列が与えられた場合、この圧縮方法を使用して線形O(n )時間で圧縮する方法を理解しようとしています。これはどのように正確に行われますか?私はこの論文を読みましたが、どのようにして線形時間を達成するのかまだ理解していません。そのため、別の方法で説明されているのかもしれません。
私の最初の混乱は、アルゴリズムの最初のステップで発生します。たとえばabcababcabc
、最も一般的なペアab
が新しいシンボルに置き換えられる場合などXcXXcXc
です。最も一般的なペアをすばやく見つける方法がわかりません。私の素朴なアプローチは、最初のペアab
を最初に見て、bc
発生数を数え、次に次のペアを見て、発生数を数えるなどです。しかし、これは、最も多くを見つけるためだけにすでに与えます。共通のペア1回。
次に、時間で最も一般的なペアを見つける方法を理解したとしても。私の次の問題は、O(n )回までの最も一般的なペアを見つける必要がないかということです。したがって、これはO(n 2)の合計時間を与えますか?
より具体的な質問をする必要があります。別の言葉で論文を繰り返すことは、このサイトにとっては広いようです。論文のどこで著者はあなたを失いますか?
—
adrianN
@adrianN私が特に困惑していることについてもう少し書きました。
—
2016