确定性有限状态机:NO - ABAA 实例详解
1. 设计机器
我们要为语言 $L = {w | w \text{ 不包含 } abaa}$ 实现一个确定性有限状态自动机(DFA),将其命名为 NO - ABAA,其字母表 $\Sigma = {a, b}$。通过以下测试用例可以说明该机器的预期行为:
(check-equal? (sm-apply NO-ABAA '()) 'accept)
(check-equal? (sm-apply NO-ABAA '(a a b a b b)) 'accept)
(check-equal? (sm-apply NO-ABAA '(a b b a a a b b b a b b a a b)) 'accept)
(check-equal? (sm-apply NO-ABAA '(a b a a)) 'reject)
(check-equal? (sm-apply NO-ABAA '(a b a b a a b a)) 'reject)
(check-equal? (sm-apply NO-ABAA '(a b a b b b a a b a a b b)) 'reject)
在处理输入单词时,我们需要跟踪已检测到的禁止模式 '(a b a a) 的部分。由于该模式长度为 4,所以有 5 种情况需要跟踪:
| 情况 | 状态 | 是否为最终状态 |
| ---- | ---- | ---- |
| 未检测到任何部分 | S | 是 |
| 检测到 a | A | 是 |
| 检测到 a
超级会员免费看
订阅专栏 解锁全文
14

被折叠的 条评论
为什么被折叠?



