这两周开始学习了《计算理论导引》一书中有关自动机的内容。首先学习了确定性有穷自动机(DFA)进而引出了表示一个自动机的形式化定义方法,之后定义了正则语言。今天下午又学习了(NFA)的有关知识。刘老师上课风趣幽默,详实透彻。下面说说我在学习这写内容时的心得。
1)一个自动机的形式化定义是一个5元组(Q,Σ,δ,q0,F),注意这里需要用中括号。
2)F是一个接收状态集合,记得用大括号。
3)在DFA中转移函数δ的定义域和值域是一一对应的;而在NFA中转移函数δ的定义域是状态集,而值域是不确定的若干个状态的集合,即Q×Σ=ρ(Q):Q的幂集。
4)NFA转化为DFA时,δ'的Σ'没有ε---"零漂"。
5)NFA转化为DFA时,DFA中的状态集共有2^k个状态(k表示NFA中的状态数)
6)相应的DFA中的F'接收状态集有包含NFA中的F的所有子集。
以下用上课的两道练习来更加深入的理解NFA转化为DFA的方法。
1.给出下图表示的NFA转换成DFA的形式化定义。
ANS:
注意:1)对于这种多状态的DFA,只需先求出每个单元集合的对应值域即可,之后用∪的方式来计算后面的值域。
2)注意δ'的定义域和值域都是集合。
2.画出下列正则语言的NFA
1)A:三个状态,其中{w|w以00结束}
2)B:两个状态,只接受{0};
3)A∪B
4)A°
5) A*
ANS:
1)
2)
3)A∪B