`
deepfuture
  • 浏览: 4397801 次
  • 性别: Icon_minigender_1
  • 来自: 湛江
博客专栏
073ec2a9-85b7-3ebf-a3bb-c6361e6c6f64
SQLite源码剖析
浏览量:80028
1591c4b8-62f1-3d3e-9551-25c77465da96
WIN32汇编语言学习应用...
浏览量:69998
F5390db6-59dd-338f-ba18-4e93943ff06a
神奇的perl
浏览量:103284
Dac44363-8a80-3836-99aa-f7b7780fa6e2
lucene等搜索引擎解析...
浏览量:285619
Ec49a563-4109-3c69-9c83-8f6d068ba113
深入lucene3.5源码...
浏览量:15001
9b99bfc2-19c2-3346-9100-7f8879c731ce
VB.NET并行与分布式编...
浏览量:67492
B1db2af3-06b3-35bb-ac08-59ff2d1324b4
silverlight 5...
浏览量:32099
4a56b548-ab3d-35af-a984-e0781d142c23
算法下午茶系列
浏览量:45965
社区版块
存档分类
最新评论

字符串-最小后缀自动机与有限状态自动机

阅读更多



  

1、最小后缀自动机
一个串x的最小后缀自动机SA(suffixautomaton),记为SA(x),即识别串x的所有后缀的最小确定自动机.如图1所示,该自动机可以接受串baabbaa的以下所有后缀:
ε,a,aa,baa,bbaa,abbaa,aabbaa,baabbaa.
已经存在以线性复杂度构造SA的算法,对长度为m的串x,构造时间为O(m),且SA(x)的大小(包括节点数与边数)为O(mσ).
从图1中可以看出,该图有多个起始状态和多个终止状态,不要被其表面的后缀2字引诱,只是说可以接受串的后缀,如果某个串能被这个自动机接受,那这个串必须得按从前向后的顺序读入,而不是从后向前的方式。
2、有限状态自动机
本文所用到的正向有限状态自动机FFA(forward finiteautomata)实际上就是正向识别模式的一般有限状态自动机,只是在运行方式上有所不同.由于在反向后缀自动机运行结束时算法已经匹配了模式的一个(或多个)前缀,所以正向有限状态自动机运行时不是从传统的开始状态开始,而是从已匹配的最大前缀所对应的状态开始.开始状态集合中不包含传统的初始状态,这是因为当前一阶段识别的前缀为ε时,不需要使用FFA进行扫描.在实现中,常常用已识别前缀的长度来表示状态.如图2所示,该自动机使用不同的开始状态1,2,3,4,5,6,7,分别可以接受串aabbaab的不同后缀:abbaab,bbaab,baab,aab,ab,b,ε.
FFA的构造也是一个简单的问题,使用与DFA匹配算法[10]相同的构造算法构造模式的FFA,其构造时间复杂度是O(m+σ),空间复杂度是O(mσ).
  • 大小: 19.2 KB
分享到:
评论

相关推荐

    后缀自动机_陈立杰.pptx

    后缀自动机(Suffix Automaton)是一种特殊类型的有限状态自动机,主要被用于字符串处理,特别是在计算机科学的算法中,特别是在解决与字符串模式匹配、最长公共子串等问题相关的任务时非常有用。它能够识别给定字符...

    字符匹配后缀自动机

    描述:“字符匹配后缀自动机”这一主题涉及计算机科学中的模式识别与字符串处理技术,特别关注后缀自动机在高效查找文本中特定模式的应用。 知识点详述: 1. **后缀自动机简介**: - 后缀自动机是一种特殊的有限...

    后缀自动机的应用

    3. **最小表示**:对于字符串的最小表示问题,通过将字符串复制一次形成循环字符串,构建后缀自动机,并始终选择最小边前进,可以得到最小表示。 4. **处理回文串**:尽管后缀自动机不是处理回文串的最佳工具,但在...

    后缀自动机的详解

    **后缀自动机**(Suffix Automaton, SAM)是一种特殊的自动机,它主要用于处理字符串问题,特别是涉及字符串匹配的问题。对于一个给定的字符串 \(S\),能够识别 \(S\) 的所有后缀的自动机 \(A\)(即 \(A(x)=\text{...

    后缀自动机 陈立杰演讲稿

    首先,后缀自动机是一种有限状态自动机(Finite State Machine, FSM),它能够识别字符串。自动机由五个部分组成:字符集(alpha)、状态集合(state)、初始状态(init)、结束状态集合(end)和状态转移函数...

    2012年noi冬令营陈立杰讲稿

    与常见的后缀数组、后缀树等数据结构相比,后缀自动机具有在线构建的特点,即可以随着输入字符串的增长而动态构建,非常适合处理动态变化的数据。 #### 二、自动机基础概念 ##### 2.1 有限状态自动机 有限状态...

    AC自动机 C语言 ACM 字符串匹配|AC自动机C语言.rar

    AC自动机的核心思想是构建一个状态转移图,每个状态代表一个前缀字符串,状态间的边表示添加一个字符后的转移。一旦构建完成,可以一次性检查文本中的所有模式字符串是否存在,避免了对每个模式单独进行匹配的开销。...

    (APIO2018)从DFA到后缀自动机_张云帆.pdf

    本文件标题为“(APIO2018)从DFA到后缀自动机_张云帆.pdf”,该标题揭示文档所涉及的主要内容是关于从确定性有限自动机(DFA)到后缀自动机(SAM)的转换过程,并且提到了作者“张云帆”,同时标记了与信息学奥林匹克...

    后缀自动机.pptx

    ACM程序设计竞赛字符串问题常用算法讲解,后缀自动机的基本知识点讲解以及常见应用举例,PPT资源。。

    suffix-automaton-vis:交互式应用程序,用于可视化如何构建后缀自动机O(n)

    后缀自动机的构建过程是一个逐步将所有字符串后缀添加到自动机的过程。每个状态代表一个前缀,而边则表示从一个前缀到另一个前缀的转换。在"suffix-automaton-vis"中,用户可以观察到这个过程的可视化展示,有助于...

    oi国家集训队2015论文集

    而后缀自动机则是一种高效处理字符串后缀的技术,它能够快速地构建出一个字符串的所有后缀的有限状态自动机。结合这两种数据结构的优点,可以解决一些复杂的字符串处理问题。 #### 关键知识点: 1. **字典树(Trie...

    后缀数组((处理字符串的有力工具))

    6. **文本索引**:构建后缀树或后缀自动机,可以实现高效的文本检索和查询。 后缀数组的优化还包括压缩后缀数组和部分后缀数组等,这些变种可以节省空间,同时保持高效的查询性能。此外,还有并行化和分布式构建...

    sublex.tar.gz_SUBLEX_spoj SUBLEX

    后缀自动机,顾名思义,是一种能够处理字符串所有后缀的有限状态自动机。它的核心思想是将字符串的所有后缀转化为一个最小的确定有限状态自动机,每个状态代表字符串的一个后缀。在自动机中,从一个状态到另一个状态...

    多模式的字符串匹配算法--AC_BM算法的实现代码

    《多模式字符串匹配算法——AC_BM算法的深度解析与实现》 字符串匹配算法是计算机科学中的一个重要领域,尤其在文本处理、搜索引擎、数据挖掘等领域有着广泛应用。其中,AC_BM算法,即Aho-Corasick算法结合Boyer-...

    [NOI2016]优秀的拆分_C++_优秀的拆分_

    后缀自动机是一种字符串处理工具,它能够快速地处理字符串的前缀、后缀以及子串查询,具有高效查找和匹配的特点。在C++中,实现后缀自动机通常会用到AC自动机(Aho-Corasick Machine),这是一个特殊的字典树结构,...

    字符串匹配算法之BNDM

    ### 字符串匹配算法之BNDM:结合位并行与后缀自动机的高效灵活匹配 在计算机科学领域,字符串匹配算法是处理文本搜索、数据挖掘和生物信息学等应用中的关键工具。《字符串匹配算法之BNDM》一文深入探讨了一种创新的...

    字符串问题详解

    后缀自动机是一种用于处理字符串问题的自动机,能够有效处理字符串的某些子串问题。 Trie树、KMP算法、AC自动机和后缀树等数据结构之间存在着密切的联系。在了解这些数据结构时,需要掌握如何计算next数组、最长...

    形式语言与自动机第一章作业

    这里的证明可能基于定义1.25,它可能是一个关于有限状态自动机(FSA)的性质,比如接受语言的前缀闭包,或者自动机状态转换的某种特性。由于具体证明内容缺失,无法详细展开讨论。 总结起来,这些作业问题涵盖了...

    字符串多模匹配算法之AC自动机理解心得.doc

    当目标字符串的一个字符与当前字典树节点的出边不匹配时,算法会回溯到一个能匹配目标字符串后缀的节点,或者回溯到根节点。如果回溯的节点有标记,表示已经找到了一个字典中的单词,可以立即输出。例如,在搜索字符...

Global site tag (gtag.js) - Google Analytics