【计算理论】【《计算理论导引(原书第3版)》笔记】第一章:正则语言

1.1|有穷自动机

有穷自动机的状态图
  • 起始状态用一个指向它的无出发点的箭头表示
  • 接受状态带有双圈
  • 从一个状态指向另一个状态的箭头称为转移
有穷自动机的形式化定义
  • 有穷自动机是一个 5 5 5元组 ( Q , Σ , δ , q 0 , F ) (Q , \Sigma , \delta , q_{0} , F) (Q,Σ,δ,q0,F),其中

    • Q Q Q是一个有穷集合,称为状态集
    • Σ \Sigma Σ是一个有穷集合,称为字母表
    • δ : Q × Σ → Q \delta : Q \times \Sigma \rightarrow Q δ:Q×ΣQ是转移函数
    • q 0 ∈ Q q_{0} \in Q q0Q是起始状态
    • F ⊆ Q F \subseteq Q FQ是接受状态集
  • A A A是机器 M M M接受的全部字符串集,则称 A A A是机器 M M M的语言,记作 L ( M ) = A L(M) = A L(M)=A,又称 M M M识别 A A A

  • 如果机器不接受任何字符串,它仍然识别一个语言,即空语言 ∅ \emptyset

有穷自动机计算的形式化定义
  • M = ( Q , Σ , δ , q 0 , F ) M = (Q , \Sigma , \delta , q_{0} , F) M=(Q,Σ,δ,q0,F)是一台有穷自动机, w = w 1 w 2 ⋯ w n w = w_{1} w_{2} \cdots w_{n} w=w1w2wn是一个字符串并且其中任一 w i w_{i} wi是字母表 Σ \Sigma Σ的成员,如果存在 Q Q Q中的状态序列 r 0 r_{0} r0 r 1 r_{1} r1 ⋯ \cdots r n r_{n} rn满足下述条件

    • r 0 = q 0 r_{0} = q_{0} r0=q0

    • δ ( r i , ω i + 1 ) = r i + 1 , i = 0 , ⋯   , n − 1 \delta(r_{i} , \omega_{i + 1}) = r_{i + 1} , i = 0 , \cdots , n - 1 δ(ri,ωi+1)=ri+1,i=0,,n1

    • r n ∈ F r_{n} \in F rnF

  • M M M接受 w w w

正则语言
  • 如果一个语言被一台有穷自动机识别,则称它是正则语言
正则运算

A ∪ B = {   x ∣ x ∈ A 或 x ∈ B   } A \cup B = \set{x \mid x \in A 或 x \in B} AB={ xxAxB}

连接(并置)

A ∘ B = {   x y ∣ x ∈ A 且 y ∈ B   } A \circ B = \set{xy \mid x \in A 且 y \in B} AB={ xyxAyB}

星号

A ∗ = {   x 1 x 2 ⋯ x k ∣ k ≥ 0 且每一个 x i ∈ A   } A^{*} = \set{x_{1} x_{2} \cdots x_{k} \mid k \geq 0 且每一个 x_{i} \in A} A={ x1x2xkk0且每一个xiA}

定理 1 1 1
  • 正则语言类在并运算下封闭,换言之,如果 A 1 A_{1} A1 A 2 A_{2} A2是正则语言,则 A 1 ∪ A 2 A_{1} \cup A_{2} A1A2也是正则语言
证明
  • M 1 M_{1} M1识别 A 1 A_{1} A1 M 2 M_{2} M2识别 A 2 A_{2} A2,其中 M 1 = ( Q 1 , Σ , δ 1 , q 1 , F 1 ) M_{1} = (Q_{1} , \Sigma , \delta_{1} , q_{1} , F_{1}) M1=(Q1,Σ,δ1,q1,F1) M 2 = ( Q 2 , Σ , δ 2 , q 2 , F 2 ) M_{2} = (Q_{2} , \Sigma , \delta_{2} , q_{2} , F_{2}) M2=(Q2,Σ,δ2,q2,F2),构造识别 A 1 ∪ A 2 A_{1} \cup A_{2} A1A2 M M M,这里 M = ( Q , Σ , δ , q 0 , F ) M = (Q , \Sigma , \delta , q_{0} , F) M=(Q,Σ,δ,q0,F)

  • Q = {   ( r 1 , r 2 ) ∣ r 1 ∈ Q 1 且 r 2 ∈ Q 2   } Q = \set{(r_{1} , r_{2}) \mid r_{1} \in Q_{1} 且 r_{2} \in Q_{2}} Q={ (r1,r2)r1Q1r2Q2}

  • 转移函数 δ \delta δ定义如下:对每一对 ( r 1 , r 2 ) ∈ Q (r_{1} , r_{2}) \in Q (r1,r2)Q和每一个 a ∈ Σ a \in \Sigma aΣ,令 δ ( ( r 1 , r 2 ) , a ) = ( δ 1 ( r 1 , a ) , δ 2 ( r 2 , a ) ) \delta((r_{1} , r_{2}) , a) = (\delta_{1}(r_{1} , a) , \delta_{2}(r_{2} , a)) δ((r1,r2),a)=(δ1(r1,a),δ2(r2,a))

  • q 0 q_{0} q0是有序对 ( q 1 , q 2 ) (q_{1} , q_{2}) (q1,q2)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值