从序列中提取层次结构有哪些好的算法?
我主要关心的是压缩序列,序列有一些层次结构。我并不太担心算法的运行时间,尽管序列的长度高达256k符号,并且运行时间不应超过几秒。
到目前为止,我知道sequitur algorithm,我想知道其他任何可能同样有用的算法/想法。
编辑:解压缩需要非常简单。
EDIT2:我正在压缩代码。我已经将一个相当大的函数详细说明为一个巨大的基本代码块,它比某些大小的原始递归函数运行得更快,但随着我改变参数,代码变得笨重而且变大。我一直在尝试使用sequitur来压缩完全精细的功能,并且效果很好 - 它允许我在递归函数和完全精细化的基本块之间取得一些中间点。我现在想知道是否还有其他算法我也应该尝试。
答案 0 :(得分:1)
LZ77 and LZ78和Burrows-Wheeler Transform是一个很好的开始方式。前两个与流数据配合良好,可以实现非常快速的实现。 LZ78的纯字典风格非常适合提取层次结构。
如果你不太关心快速压缩而只是想要结构,那么sequitur算法将很难被击败 - AFAICT,它是同类中最好的。