[HIT-FLAA]哈工大2020春形式语言与自动机复习笔记 (1)

本文介绍了确定的有穷自动机(DFA)和非确定的有穷自动机(NFA),包括它们的形式化定义、构造方法、正则语言以及DFA的最小化问题。此外,还探讨了DFA与NFA的等价性,并通过实例展示了如何构造和转换自动机。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本系列文章

1. 确定的有穷自动机 (DFA)

1. 形式化定义

确定的有穷自动机 (Deterministic Finite Automata):DFA是一个五元组,如: M = ( Q ,    Σ ,    δ ,    q 0 ,    F ) M=(Q,\; \Sigma,\; \delta,\;q_0,\; F) M=(Q,Σ,δ,q0,F) ,其中,

  • Q Q Q 是有限的状态集,包含DFA中所有的状态;
  • Σ \Sigma Σ 是有限的输入字符集,也就是DFA的字母表;
  • q 0 q_0 q0 是初始状态,并且 q 0 ∈ Q q_0\in Q q0Q
  • F F F 是终解状态的集合,并且 F ∈ Q F \in Q FQ
  • δ \delta δ 是状态转移函数,它是一个映射: Q × Σ → Q Q \times \Sigma \to Q Q×ΣQ

δ \delta δ 要对 Q Q Q 中所有的状态和 Σ \Sigma Σ 中所有的状态的组合都要有定义,也就是笛卡尔积是一个单射

例:以自动门为例,使用 0 0 0 表示关门信号, 1 1 1 表示开门信号, p p p 表示关门状态, q q q 表示开门状态,则DFA如下:

  • 状态集: { p ,    q } \{p,\; q\} { p,q}

  • 输入字符集: { 0 ,    1 } \{0,\;1\} { 0,1}

  • 初始状态: p p p

  • 终解状态: p p p

  • 状态转移函数: δ \delta δ
    δ ( p ,    0 ) = p δ ( p ,    1 ) = q δ ( q ,    1 ) = q δ ( q ,    0 ) = p \delta(p,\; 0)=p\\ \delta(p,\; 1)=q\\ \delta(q,\; 1)=q\\ \delta(q,\; 0)=p δ(p,0)=pδ(p,1)=qδ(q,1)=qδ(q,0)=p
    故该DFA的定义为: { { p ,    q } ,    { 0 ,    1 } ,    δ ,      p ,    { p } } \{ \{p,\; q\},\;\{0,\;1\},\;\delta,\;\;p,\;\{p\}\} { { p,q},{ 0,1},δ,p,{ p}}

用图表示: 单线圈表示普通状态,双线圈表示终解状态,弧表示状态转移函数

在这里插入图片描述

用表格表示: → \to 标识出初始状态,用 ∗ * 标识出终解状态

0 1
→ ∗ p \to*p p p p p q q q
q \qquad q q p p p q q q

DFA的目的是区分字符串,于是,按照如上例子构造的DFA就把字符串分成了两类:

L 1 = { w ∈ { 0 , 1 } ∗    ∣    w    e n d    w i t h    0 } ∪ {   ε   } L 2 = { w ∈ { 0 , 1 } ∗    ∣    w    e n d    w i t h    1 } L_1=\{ w\in\{0,1\}^* \;|\; w \; end \; with \; 0 \}\cup \{\,\varepsilon\,\} \\ L_2=\{ w\in\{0,1\}^* \;|\; w \; end \; with \; 1 \} L1={ w{ 0,1}wendwith0}{ ε}L2={ w{ 0,1}wendwith1}

L 1 L_1 L1 就是该DFA所接受的字符串集合,就能够判断任意的字符串 w w

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值