“后缀树把后缀压缩成带边标签的树,压缩后缀数组与FM index则围绕后缀序、BWT、rank 与采样构造静态压缩索引。后缀自动机接受所有子串并按 endpos 合并状态,不直接提供 suff…”
从显式 SA 到导航排列 ​
显式后缀数组的每个条目需要
令
它从某个后缀行跳到文本起点前进一字符的行。反向排列
令起点后退一字符,因此
SA 值采样与恢复 ​
固定采样步长
的行及其 SA 值,并用采样 bit-vector 的 rank把行映射到紧凑样本数组。样本约有
外加 bit-vector 索引。
恢复
若一次 LF/rank 为
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.