2011-11-21 37 views
2

從序列中提取分層結構有哪些好的算法?什麼是提取結構/壓縮序列的好算法?

我主要關心的是壓縮這個序列,並且序列有一些層次結構。我並不擔心算法的運行時間,儘管序列的長度高達256k個符號,並且它不應該運行超過幾秒鐘。

到目前爲止,我知道sequitur algorithm,我想知道任何其他類似的算法/思想。

編輯:解壓縮需要非常簡單。

編輯2:我正在壓縮代碼。我已經詳細闡述了一個相當大的函數,這個代碼的大部分運行速度比原始遞歸函數的速度快一些,但隨着代碼的變化,代碼變得笨重和龐大。我一直在試驗sequitur來壓縮完全細化的函數,它運行良好 - 它允許我在遞歸函數和完全精細的基本塊之間取得一些中間地帶。我現在想知道是否還有其他算法,我應該嘗試。

+0

部分匹配預測是否符合您的要求? – harold

+0

@harold我還沒有想過PPM - 我認爲解壓縮對於這個應用來說計算量太大了 –

+0

有很多壓縮算法在那裏......除了一兩個'已經提到。同樣,瞭解數據也很重要。例如,有許多圖像數據的多分辨率方法。一般來說,你對數據的層次結構有什麼先驗知識? – Iterator

回答

1

LZ77 and LZ78Burrows-Wheeler Transform是一個很好的開始。前兩種技術適用於流式數據,並且可以有非常快的實現。 LZ78的純字典風格非常適合提取分層結構。

如果你不太關心快速壓縮,只想要結構,sequitur算法將很難被擊敗 - AFAICT,它是同類中最好的。