第三章 右线性文法和有限自动机

右线性文法和有限自动机

有限状态系统的概念

状态:状态是可以将事物区分开的一种标识

离散状态系统:状态数有限,不能连续变化

连续状态系统:状态可以连续变化,状态数无限

有限状态系统必然是离散状态系统


有限自动机的概念

  • 具有离散输入输出的系统的一种数学模型(可以没有输入和输出)
  • 有限的状态
  • 状态 + 输入 -> 状态转移
    • 确定有限状态自动机(DFA):在特定输入下,每次转换的后继状态唯一
    • 不确定有限状态自动机(NFA):在特定输入下,每次转换的后继状态不唯一

有限自动机的五要素

  • 有限状态集
  • 有限输入符号集
  • 转移函数
  • 开始状态
  • 终态集合

确定有限自动机

DFA 的形式定义

DFA 是一个五元组M=(Q,T,δ,q0,F)

  • Q:有限的状态集合
  • T:有限的输入字母表
  • δ:转换函数
  • q0Q:初始状态
  • FQ:终止状态集

扩展转移函数适合于输入字符串

δ:Q×TQ

对于qQ,有

  • δ(q,ϵ)=q
  • w 是字符串,a是字符,δ(q,wa)=δ(δ(q,w),a)

DFA 接受的语言

  • DFA 接受的字符串:输入结束后使 DFA 到达终止状态的字符串
  • DFA 接受的语言:被 DFA 接受的字符串的集合
  • L(A)={w|δ(q0,w)F}

格局:描述有限自动机某一个时刻的工作状态

  • 由当前状态 q 和待输入字符串 w 构成
  • 初始格局:(q0,w)
  • 终止格局:(q,ϵ),qF

不确定有限自动机

NFA 的形式定义:后继状态是 Q 的子集,其余和 DFA 一样

NFA 接受的字符串:接收一个字符串后 NFA 进入的状态集包含一个或以上的终止状态,则 NFA 接受该字符串

NFA 的状态转移函数扩展

  • δ(q,ϵ)=q 空串状态不变
  • δ(q,wa)={p|\existrδ(q,w)pδ(r,a)}
    • 含义:δ(q,wa) 对应的状态集合是 δ(q,w) 对应的状态集合的每一个状态再接收字符 a 后到达的状态集合的并集

NFA 接受的语言:L(A)={w|δ(q0,w)Fϕ}


NFA 和 DFA 的等价性

显然,DFA 可以看作是 NFA 的特例(状态子集只含有一个状态)

所以只需证明 NFA 可以转化成 DFA

定理:NFAL,\existDFAL

证明:子集构造法

NFAMN=(Q,T,δ,q0,F)DFAMD=(QD,T,δD,q0,FD)QD=2Q


ε 转换的 NFA

定义:当输入 ε 空串(无输入)的时候,也能引起状态转移

ε 闭包的概念

定义:一个状态 q 的 ε 闭包是状态 q 经过 ε 可以到达的所有状态(每个状态接收 ε 都可以保持不变)

一个状态集 I 的 ε 闭包就是每个状态的 ε 闭包的并集,记为 εClosure(I)

Ia 的概念:

对于状态子集 IQ,aT;Ia=εClosure(P),P=δ(I,a),即状态集 I 经过标 a 的边可以到达的状态集的 ε 闭包

ε - NFA 的状态转移函数扩展

  • δ(q,ϵ)=εClosure(q) 空串状态转移成空闭包
  • δ(q,wa)=εClosure(p),{p|\existrδ(q,w)pδ(r,a)}
    • 含义:δ(q,wa) 对应的状态集合是 δ(q,w) 对应的状态集合的每一个状态再接收包含空转换的字符 a 后到达的状态集合的并集的 ε 闭包

ε - NFA 接受的语言:L(A)={w|δ(q0,w)Fϕ}(与 NFA 一样,但是 δ 函数的定义不一样)

posted @   DrinkLessMilkTea  阅读(110)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示