“Burrows–Wheeler 变换可由后缀序导出,压缩后缀数组用简洁结构减少显式 $SA$ 空间,FM index则在 BWT 上提供 backward search 与采样定位。它们分别…”
形式陈述 ​
从显式 SA 到导航排列 ​
显式后缀数组的每个条目需要
令
它从某个后缀行跳到文本起点前进一字符的行。反向排列
令起点后退一字符,因此
SA 值采样与恢复 ​
固定采样步长
的行及其 SA 值,并用采样 bit-vector 的 rank把行映射到紧凑样本数组。样本约有
外加 bit-vector 索引。
恢复
若一次 LF/rank 为
直觉
显式后缀数组为每一行保存绝对文本位置,CSA 则只稀疏保留锚点,并用 LF 或
例子与边界
banana$ 的恢复轨迹 ​
banana$ 的
取
行
ISA 采样与文本位置访问 ​
要恢复
SA sampling 按“后缀行查文本位置”,ISA sampling 按“文本位置查后缀行”;两张样本表服务不同方向。只保存一张却声称两种 access 都有同一界,通常漏掉了逆向导航代价。
推论与应用
与 FM-index 组合后的 Locate ​
若另有 BWT backward search,模式
这个 locate 界包含搜索、逐输出恢复和实际输出数。CSA 本身的核心接口是压缩 SA/ISA access;没有 BWT rank 结构时,它不会凭空获得 backward search。
FM-index把 BWT、rank、count、locate 与 extract。CSA 强调压缩后缀排列访问;二者可共享 LF/采样组件,却不能把 FM-index 的所有操作都归给 CSA。
空间界的组成 ​
一个完整空间式至少分为:BWT 或
“压缩”应与显式 SA 的
失败边界 ​
唯一终止符固定模
采样只改变访问速度,不修复近似匹配、动态文本更新或正则搜索。向文本中插一字符会全局改变后缀序与 BWT,静态 CSA 不能靠局部数组插入维护。
参考资料
- Roberto Grossi and Jeffrey Scott Vitter, “Compressed Suffix Arrays and Suffix Trees with Applications to Text Indexing and String Matching,” SIAM Journal on Computing 35(2), 2005.
- Paolo Ferragina and Giovanni Manzini, “Indexing Compressed Text,” Journal of the ACM 52(4), 2005.
- Gonzalo Navarro and Veli Mäkinen, “Compressed Full-Text Indexes,” ACM Computing Surveys 39(1), 2007.