计算理论复习(一)
一、字符串
- 串: x = 01001 , w = madam
- 连接: xw = 01001madam , xx = x 2 ^{2} 2 = 0100101001
- 串长度: |x|= 5
- 空串: ε \varepsilon ε , | ε \varepsilon ε|= 0 , x 0 ^{0} 0 = ε \varepsilon ε (表示0个字符串连接,即为空串)
- 字串: 字符串中连续的一串字符
- 子序列: 字符串中不连续的字符
二、语言
-
Σ ∗ \Sigma^{*} Σ∗ = {x| x是 Σ \Sigma Σ上有穷长度的串}
-
Σ + \Sigma^{+} Σ+ = {x| x是 Σ \Sigma Σ上正有穷长度的串}
-
Σ ∞ \Sigma^{∞} Σ∞ = {x| x是 Σ \Sigma Σ上无穷长度的串}
-
语言: 是串的集合
A ⊆ \subseteq ⊆ Σ ∗ \Sigma^{*} Σ∗ -
空语言: ∅ \emptyset ∅
空串语言:{ ε \varepsilon ε}
空串: ε \varepsilon ε -
语言连接:
AB = {xy | x ∈ \in ∈ A 且 y ∈ \in ∈B }
{ ε \varepsilon ε} A = A{ ε \varepsilon ε} = A
∅ \emptyset ∅ A = A ∅ \emptyset ∅ = ∅ \emptyset ∅
三、标准序
- 排序规则: 先短后长,等长的则一位一位的按顺序比较大小后排列
- 举例: Σ ∗ \Sigma^{*} Σ∗ = { ε \varepsilon ε , 0 , 1 , 00 , 01 , 10 , 11 , 000 , 001…}
四、字典序
- 排序规则: 只比较第一位后进行排序
五、有穷自动机
- 状态图
- 状态: 初始状态、接受状态
- 转移: 输入符号
- 举例: 初始状态为q1,如果遇到输入0则保持q1状态不变,如果遇到输入1则转到q2状态,此时q2状态遇到输入1则保持q2状态,遇到输入0则转为状态q3,q3状态遇到输入0或1则转到状态q2。
六、有穷自动机
-
M = (Q , ∑ , δ \delta δ , q 0 _{0} 0 , F)
Q: 有穷状态集
∑: 输入字母表
δ \delta δ: Qx∑ ⟶ \longrightarrow ⟶ Q , 转移函数(Qx∑ ∗ ^{*} ∗ ⟶ \longrightarrow ⟶ Q , 扩展转移函数) (需要借助表或图来描述它)
q 0 _{0} 0 ∈ \in ∈Q: 初始状态
F ⊆ \subseteq ⊆ Q : 接受状态(终结状态) -
举例:
(这个自动机接受所有以1结束的串)
(这个自动机接受空串或者所有以0为结束的串)
(这个自动机接受开头和结尾相同的非空字符串)
七、正则语言
-
正则语言的定义: 由有穷自动机所识别的语言的集合。
L :L(M)
M:有穷自动机 -
根据正则语言画自动机: