如何利用有穷自动机来处理字符串

    有穷自动机可分成确定型的有穷自动机和非确定型的有穷自动机。

确定型自动机简称DFA,它包含一个有穷的状态集合Q,一个有穷的输入符号集合∑,一个转移函数T,一个初始状态q0 ,一个终结状态或接受状态的集合F。通常可用一个五元组来表示,如:

A={Q,∑,Tq0 F}

非确定型自动机简称NFA,和DFA一样,也可用这个五元组表示,和DFA唯一的区别就是NFA的转移函数T返回值的类型不同,在DFA的情况下,T返回值勤是单个状态;而在NFA状态下,返回值是一个状态的集合。

先来看下DFA如何处理字符串:

DFA的语言是这个DFA接受的所有的串的集合。假设a1a2...an是输入符号序列,让这个DFA从初始状态q0开始运行。查询转移函数为T,如T(q0, a1)= q1 ,以找出DFA A在处理了第一个输入符号a1 之后进入的状态。处理下一个输入符号a2,再求T(q1, a2)的值,如果这个状态是q2 ,以这种方式继续找下去,找出状态q3, q4 ,q5… qn ,使得每个i ,都有T(qi-1, ai)= qi 。如果qn 属于F,则接受输入a1a2...an, 否则就拒绝。从而就完成了一个字符串的匹配过程。

由于NFADFA具有等价性,故所有在NFA处理字符串的问题都可以转换为DFA处理字符串问题。这里不再说明。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值