形式化定义
我们用5元组 (Q,∑,δ,q0,F) ( Q , ∑ , δ , q 0 , F ) 定义确定性有限自动机
Q Q 是状态的有限集
- 是字母表
- δ δ 是转移函数,映射关系为 Q×∑→Q Q × ∑ → Q
- q0 q 0 表示开始状态
- F⊆Q F ⊆ Q 是accept状态集
- 既然有了以上定义,接下来定义一个DFA M M accepts 字符串,其中: w=w1w2...wn,wi∈∑ w = w 1 w 2 . . . w n , w i ∈ ∑ , r0,r1,...,rn r 0 , r 1 , . . . , r n 是 Q Q 状态集元素的一个排列:
- δ(ri,wi+1)=ri+1,i=0,...,n−1 δ ( r i , w i + 1 ) = r i + 1 , i = 0 , . . . , n − 1
- rn∈F r n ∈ F
- A A 是一个包含所有有限自动机accepts的字符串的集合,即 A={w∣M accepts w} A = { w ∣ M a c c e p t s w } ,那么 A A 就是的语言,记作 L(M)=A L ( M ) = A 。对此,我们称 M M recognizes 。注意:一个有限自动机可能会accepts很多字符串,但它只能recognizes一个语言。如果这个有限自动机不接受任何字符串,那它仍然recognizes一个语言,the empty language ∅ ∅ 。如果一个语言可以被某个有限自动机recognizes,那么这个语言被称为正则语言regular language。
正则语言的操作(regular operation)
设
A
A
和都是正则语言
1. union并:
A∪B={x∣x∈A or x∈B}
A
∪
B
=
{
x
∣
x
∈
A
o
r
x
∈
B
}
2. concatenation 连接:
AºB={xy∣x∈A and y∈B}
A
º
B
=
{
x
y
∣
x
∈
A
a
n
d
y
∈
B
}
3. star:
A∗={x1x2...xk∣k≥0 and each xi∈A}
A
∗
=
{
x
1
x
2
.
.
.
x
k
∣
k
≥
0
a
n
d
e
a
c
h
x
i
∈
A
}
以上三种regular operation都是封闭(closed)的。在另几篇文章中会证明封闭性。