📜  具有有限自动机的DAA字符串匹配

📅  最后修改于: 2020-12-11 01:43:46             🧑  作者: Mango

使用有限自动机进行字符串匹配

字符串匹配自动机是在字符串匹配算法中使用的非常有用的工具。它只检查一次文本中的每个字符,并报告所有O(n)时间的有效移位。字符串匹配的目的是在较大的文本主体(句子,段落,书等)中找到特定文本模式的位置。

有限自动机:

甲有限自动机M是5元组(Q,Q 0,A,Σδ),其中

  • Q是一组有限的状态
  • Q 0∈Q开始状态
  • A⊆Q是一组显着的接受状态
  • ∑是一个有限的输入字母
  • δ是自Q的函数Q个称为M过渡函数

有限自动机从状态q 0开始,并一次读取其输入字符串的字符。如果自动机处于状态q并读取输入字符a,则自动机将从状态q移至状态δ(q,a)。每当其当前状态q是A的成员时,机器M都会接受到目前为止读取的字符串。不允许的输入将被拒绝

的有限自动机M诱导的函数∅称为称为最终状态函数,从Σ*至Q使得∅(w)为M在扫描所述字符串瓦特后结束的状态。因此,当且仅当∅(w)∈A时,M才接受字符串w。

函数f定义为

FINITE-AUTOMATON-MATCHER的主要循环结构表明,它在长度为n的文本字符串上的运行时间为O(n)。

计算转移函数:以下过程根据给定模式P [1 …… m]计算转移函数δ

示例:假设一个有限自动机接受偶数个a,其中∑ = {a,b,c}

解:

q 0是初始状态。