当前位置: 首页 > article >正文

图解BWT FM-Index算法

FM-Index(Full-text Minute Index)是一种用于高效搜索和压缩全文数据的索引结构, 广泛应用于生物信息学和文本检索领域.
它基于 Burrows-Wheeler Transform (BWT) 和辅助数据结构, 能够在压缩存储的同时支持快速的子串搜索, 计数和定位操作.

算法核心

LF 变换是 BWT 算法的核心. FM-Index 使用巧妙的办法来实现 LF 变换.

BWM(Burrows Wheeler Matrix)

BWM 是由源字符串不断循环移位产生的. 可以参考我之前的博客: 图解 BWT(Burrows-Wheeler Transform) 算法.

"mississippi$"为例, 它的 BWM 矩阵如图所示:

BWM

FM-Index 查询字符串

示例 1: 查询字符串"ssi"

在 BWT 字符串中, 查询是倒序进行的. 也就是匹配是从字符'i'开始

  1. 第一步: 在 F 行找出所有的以'i'开头的行, 如图所有, 有 4 行. 我们知道这个 BW 矩阵是由S的循环移位产生的, 因此L行的字符出现在对应F行的字符的左边. 具体来说就是这四个'i'与其左侧元素构成的字符串为:

    • p 0 i 0 \textrm{p}_0\textrm{i}_0 p0i0
    • s 0 i 1 \textrm{s}_0\textrm{i}_1 s0i1
    • s 1 i 2 \textrm{s}_1\textrm{i}_2 s1i2
    • m 0 i 3 \textrm{m}_0\textrm{i}_3 m0i

http://www.kler.cn/a/537922.html

相关文章:

  • Elasticsearch 生产集群部署终极方案
  • DeepSeek-r1和O1、O3mini谁更强?
  • 基于大模型的围术期脆弱性评估系统研究报告
  • 学习threejs,使用Lensflare模拟镜头眩光
  • Redis深入学习
  • Day 32 卡玛笔记
  • 如何在Excel内,完成excel到json的转换,excel另存为json,excel-to-json插件
  • mysql自连接 处理层次结构数据
  • 【CAPL实战】LIN调度表操作
  • 6.【BUUCTF】[极客大挑战 2019] Http(HTTP头伪造)
  • 《从安全到定制:软件私有化部署业务实战案例解析》
  • 5.Python字典和元组:字典的增删改查、字典遍历、访问元组、修改元组、集合(set)
  • 编写一个自定义 Exporter
  • SpringSecurity:授权服务器与客户端应用(入门案例)
  • 2.9 配置文件状态管理
  • devmem命令之自定义/dev/mem
  • sip协议如何与isdn协议进行通信
  • 【LeetCode Hot100 动态规划】
  • MySQL第五次作业
  • 【Linux】29.Linux 多线程(3)
  • RUST项目编译
  • Java 大视界 -- Java 大数据在智能金融监管中的应用与实践(77)
  • 基于FreeSurfer 7.1、6.0和5.3版本的脑部指标在多站点重测信度和兼容性研究
  • 黑马 Linux零基础快速入门到精通 笔记
  • stm32-wifi模块
  • ARM嵌入式学习--第十四天(SPI)