在全文检索中通常要对索引进行压缩存储,在压缩之前如果对文本进行一定的可逆变换能够使之更易压缩,BWT就是这样一种变换.
通过一个例子来介绍BWT,假设一段待转换的文本为:ababc, 则BWT的过程如下:
在T后插入结束符#得到新的文本串T#,循环左移,每次一位,得到一个|T#|行的矩阵,按首字母排序得到M
F = first column of M
L = last column of M
BMT使用L来代表T,这样做的原因是L通常比T更容易压缩(具有很多连续的相同元素),那么怎么通过L恢复出F呢?
注意下面的性质:
1、L的第一个元素是T中的最后一个元素
2、对于M中的每一行(第一行除外)第一个元素都是最后一个元素的下一个元素
利用这两个性质以上面的例子说明怎么恢复T:
c是最后一个元素,然后找c的前一个元素,因为M中仅有最后一行是以c开头的,则这一行的b是c的前一个元素,
再找b的前一个元素,在M中找以b开头的元素,有两行(4、5),到底是哪一行呢?只需看刚才以c开头的那一行之前,在L中出现了几个b,这里出现了一个,
所以应该看第5行,也就是b之前是a。继续找a的前一个元素。。。。。
显然不能整个存储M,那们上面的过程如何在实际中运用,答案是建立
一个L-M Mapping(LF)的辅助向量
LF[i]=C[L[i]]+ri
其中 C[c]是字符c在F中的zeroth
occurrence位置(也就是c-1字符最后出现的位置),ri是c在L[1,i]中c的出现次数
所以使用BWT,我们最后得到的是L和LF,回复T的算法为:
For each i = u-1, …, 1
do:
s = LF[s] (threading backwards)
T[i] = L[s] (read off the next letter back)
(完)
create@2009-10-28
- 大小: 11.9 KB
分享到:
相关推荐
Burrows-Wheeler Transformation(BWT)压缩算法介绍
基于BWT的文本压缩算法研究的pdf常见压缩与解压软件出发,通过分析哈夫曼编码能够压缩一般文件的原理,详细说明了通过哈夫曼编码实现文件的压缩与解压的过程,并通过几个不同类型文件的压缩效果
BWT的完整算法,包括SA,Occ等数组的建立。用于在基因链中快速匹配基因。
针对BoyerMoore匹配算法对压缩文本文件搜索的不足,分析了当前对于压缩文件搜索的主要方法,提出了一种基于BW转换的高效的搜索算法并予以验证。
BWT(Burrows-Wheeler Transformation)算法在人类基因组测序方面有很重要的应用,开放源码的bzip就是bwt压缩算法的成功案例。关于这里的其他知识可以去看维基百科。这篇文章主要介绍我设计的一个生成BWT算法所需的 L...
该程序包中包含了传感压缩算法中的五个经典算法源码:COSAMP,GBP,IHT,IRLS,OMP,SP
压缩编码之BWT,用于BWT压缩算法前的建模部分,然后可进行适当的能量集中后可以采用算术编码或其他类型编码
是图像的二维小波变换加上压缩编码,效果好
将算术编译码和BWT编译码结合在一起 实现文本的压缩
BWT算法代码资源包括有: 1:BWT算法代码(对应文件ibwt.py) 2:mergesort算法代码(对应文件mergesort.py) 3:mergesort排序法实现的BWT算法(对应文件mergebwt.py)
针对有损数据压缩的局限性,基于数据分块和BWT变换思想,提出了一种改进的无损数据压缩算法-B-LZW,保证了数据的完整性。通过信息熵理论分析及实验仿真,比较了B-LZW算法与传统的LZW算法的性能。结果表明,在对实时...
数据压缩原理 以及常用的数据压缩方法。 霍夫曼编码,算术编码,变动长度编码,BWT
基于BWT的快速DNA比对系统的设计与实现_周渝东 (1).caj )
AstroBWT 是一种基于 Burrows-Wheeler 变换 (BWT) 的工作量证明 (PoW) 算法。 这个怎么运作 第一步:计算输入数据的SHA3 第 2 步:使用 Salsa20 扩展数据 第三步:计算第二步的BWT 第四步:计算 BWT 数据的 SHA3 ...
通过将的安全性与最新的BWT实现和压缩技术相结合,Dark旨在成为满足您日常压缩需求的值得信赖的工具。 它使用 ,并与该库合作开发。 逻辑块在稳定时会迁移到生锈压缩中(算术表,DC,即将线性BWT)。 当前状态 ...
BWT-133电台说明书 单边带电台说明书
bwt133军用退役电台说明书,烽火电子出品
BWT 转换 源代码,包括bzip2代码及可执行程序。
大数据-算法-基于BWT的DNA重叠群序列合并算法研究.pdf
采用BWT 的多核并行的子串匹配算法