2011-11-21 72 views
2

从序列中提取分层结构有哪些好的算法?什么是提取结构/压缩序列的好算法?

我主要关心的是压缩这个序列,并且序列有一些层次结构。我并不担心算法的运行时间,尽管序列的长度高达256k个符号,并且它不应该运行超过几秒钟。

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

编辑:解压缩需要非常简单。

编辑2:我正在压缩代码。我已经详细阐述了一个相当大的函数,这个代码的大部分运行速度比原始递归函数的速度快一些,但随着代码的变化,代码变得笨重和庞大。我一直在试验sequitur来压缩完全细化的函数,它运行良好 - 它允许我在递归函数和完全精细的基本块之间取得一些中间地带。我现在想知道是否还有其他算法,我应该尝试。

+0

部分匹配预测是否符合您的要求? – harold

+0

@harold我还没有想过PPM - 我认为解压缩对于这个应用来说计算量太大了 –

+0

有很多压缩算法在那里......除了一两个'已经提到。同样,了解数据也很重要。例如,有许多图像数据的多分辨率方法。一般来说,你对数据的层次结构有什么先验知识? – Iterator

回答

1

LZ77 and LZ78Burrows-Wheeler Transform是一个很好的开始。前两种技术适用于流式数据,并且可以有非常快的实现。 LZ78的纯字典风格非常适合提取分层结构。

如果你不太关心快速压缩,只想要结构,sequitur算法将很难被击败 - AFAICT,它是同类中最好的。