lecture notes for db

88
1 CS_Dept.Sichaun Univ. 可可可可可 Lecture Notes Lecture Notes for DB for DB Book : 可可可可可可 by Michel Sipser Chapter 0 可可可可可 , 可 1 可 可可可可可 Prof : 可可可 [email protected] Http://teacher.scu.edu.cn/~chjtang Students : MS in CS . 2003, SCU Style : Lecture / Seminar

Upload: marcin

Post on 10-Jan-2016

33 views

Category:

Documents


2 download

DESCRIPTION

Lecture Notes for DB. Book : 计算理论引论 by Michel Sipser Chapter 0 概念与语言 , 第 1 章 确定自动机 Prof : 唐常杰 [email protected] Http://teacher.scu.edu.cn/~chjtang Students : MS in CS . 2003, SCU Style : Lecture / Seminar. 第 0 章 概念与语言 , 第 1 章 确定自动机. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Lecture Notes  for DB

1CS_Dept.Sichaun Univ.可计算理论

Lecture NotesLecture Notes for DB for DB

Book : 计算理论引论 by Michel Sipser

Chapter 0 概念与语言 , 第 1 章 确定自动机

Prof : 唐常杰

[email protected]

Http://teacher.scu.edu.cn/~chjtang

Students : MS in CS . 2003, SCU

Style : Lecture / Seminar

Page 2: Lecture Notes  for DB

2CS_Dept.Sichaun Univ.可计算理论

第 第 00 章 概念与语言章 概念与语言 , , 第 第 11 章 确定自动机章 确定自动机

•Outline for today•Chapter 0: (中文 1 章)•set notation and languages

•Chapter 1: (中文 2 章)•deterministic finite automata (DFA) 确定自动机•nondeterministic FA (NFA) 不确定自动机

•教学方法:以教材为基础,适当补充,调整次序•讲课 : 讲思想、方法,难易 ,想得正确,直观,理解•写文章:要正规,形式化,严格,说得明白,写得清楚•笔记:可以记下幻灯篇页数 (sp1-15) ,书页数( ep15,cp15)• 再记录心得,可少记一些

Page 3: Lecture Notes  for DB

3CS_Dept.Sichaun Univ.可计算理论

第 第 00 章 概念与语言章 概念与语言 , , 第 第 11 章 确定自动机章 确定自动机•课程背景 可计算理论把 程序或算法 作不同级别的简化和抽象,抓出其特征,根据忽略和抽象的等级依次得到:抽象模型 变种 对应语言 相当于程序或算法 备注

自动机 不确定 NFA •正则语言 •3型

If ,case ,goto, 无变量(内存)无数组

下推机 不确定下推机 前后文无关语言, 2型

增加: 堆栈。仍无变量(内存)无数组

不确定线性界限下推机

前后文有关语言1 型 语言

一定停机的图灵机

XXX的图灵机 多带 ,随机,有界

递归语言族 增加数组,变量,内存保证了不会死循环

图灵机 0 型,递归可枚举

输入在语言外时,可能死循环,

数学模型,简洁,易分析

不要程序细节,易于分析本质

绿星表示此页有补充内容

Page 4: Lecture Notes  for DB

4CS_Dept.Sichaun Univ.可计算理论

Standard Set Theory:Standard Set Theory:集合论 传统,已经学过 只复习要点, 集合论 传统,已经学过 只复习要点, ep.3-7 , cp.ep.3-7 , cp.

Conditional: A = { x | x N , f(x)=0 }

Union: AB

Intersection: AB

Complement:

Cartesian Product: AB

Power set: P (A) 或 2A

( 介绍记号的来源 |P (A)| = 2|A| )

A

Page 5: Lecture Notes  for DB

5CS_Dept.Sichaun Univ.可计算理论

Some Examples ep6.Some Examples ep6.

L<6 = { x | x N , x<6 }L<6 Lprime = {2,3,5}

= {0,1} 字母表= {(0,0), (0,1), (1,0), (1,1)}

Formal: AB = { x | xA and xB}

Page 6: Lecture Notes  for DB

6CS_Dept.Sichaun Univ.可计算理论

Power set Power set 幂集幂集

Formal: P (A) = { S | S A} 一切子集的集合

Example: A = {x,y}P (A) = { {} , {x} , {y} , {x,y} } A={x1, x2,…,Xn}, 子集 编码 0,0,0.,0,0 0,0,0.,0,1

0,0,0.,1,0

1,1,1… 1 共 2n 个Note the different sizes:

|P (A)| = 2|A| 个数是幂,名称的来源

|AA| = |A|2

Page 7: Lecture Notes  for DB

7CS_Dept.Sichaun Univ.可计算理论

悖论 (补充)悖论 (补充)

可计算理论中用了许多证明技巧,对角线方法,哥德尔定可计算理论中用了许多证明技巧,对角线方法,哥德尔定理等,有必要补充 推理的正确性和避免悖论 的理等,有必要补充 推理的正确性和避免悖论 的

两个相互矛盾的命题之合乎逻辑的相互推出 称为悖论。 由真(命题)可以合乎逻辑地推出假(命题)。这意味着逻辑不可靠。

罗素 (B.Russell) 悖论”。集合可分为两类:一类以自身为元素,另一类则不以自身为元素。所有不以自身为元素的集合构成一个集合 称为“罗素集”。 问题:该集合是否以自身为元素? 有: 如果罗素集以自身为元素,则有罗素集不以自身为元素; 如果罗素集不以自身为元素,又有罗素集以自身为元素。

Page 8: Lecture Notes  for DB

8CS_Dept.Sichaun Univ.可计算理论

悖论 (补充)悖论 (补充)

可计算理论中用了许多证明技巧,对角线方法,哥德尔定可计算理论中用了许多证明技巧,对角线方法,哥德尔定理等,有必要补充 推理的正确性和避免悖论 的理等,有必要补充 推理的正确性和避免悖论 的

两个相互矛盾的命题之合乎逻辑的相互推出 称为悖论。 由真(命题)可以合乎逻辑地推出假(命题)。这意味着逻辑不可靠。

罗素 (B.Russell) 悖论”。集合可分为两类:一类以自身为元素,另一类则不以自身为元素。所有不以自身为元素的集合构成一个集合 称为“罗素集”。 问题:该集合是否以自身为元素? 有: 如果罗素集以自身为元素,则有罗素集不以自身为元素; 如果罗素集不以自身为元素,又有罗素集以自身为元素。

Page 9: Lecture Notes  for DB

9CS_Dept.Sichaun Univ.可计算理论

悖论实例 补充

说谎者悖论 : “本语句为假”如果“本语句为假”为真,则有“本语句为假”为假; 如果“本语句为假”为假,则有“本语句为假”为真。 爱匹门尼德( Epimenides )悖论”。爱匹门尼德是公元前六世纪时古希腊的一位先知,居住于克里特岛上,他说过这样一句话:“克里特岛人都是说谎者。” “ 爱匹门尼德悖论”“悖”得还不够彻底,只“悖”了一半, 避免句子自我相关的悖论 A :句子 B 是真的。 B :句子 A 是假的。 表明,避免句子的自我相关 不足以消解“悖论”。

自引用是证明哥德尔定理,图灵机停机 问题的重要技巧,不是悖论

Page 10: Lecture Notes  for DB

10CS_Dept.Sichaun Univ.可计算理论

悖论实例 补充

说谎者悖论 : “本语句为假”如果“本语句为假”为真,则有“本语句为假”为假; 如果“本语句为假”为假,则有“本语句为假”为真。 爱匹门尼德( Epimenides )悖论”。爱匹门尼德是公元前六世纪时古希腊的一位先知,居住于克里特岛上,他说过这样一句话:“克里特岛人都是说谎者。” “ 爱匹门尼德悖论”“悖”得还不够彻底,只“悖”了一半, 避免句子自我相关的悖论 A :句子 B 是真的。 1010 B :句子 A 是假的。 表明,避免句子的自我相关 不足以消解“悖论”。

自引用是证明哥德尔定理,图灵机停机 问题的重要技巧,不是悖论

Page 11: Lecture Notes  for DB

11CS_Dept.Sichaun Univ.可计算理论

悖论实例 补充

说谎者悖论 : “本语句为假”如果“本语句为假”为真,则有“本语句为假”为假; 如果“本语句为假”为假,则有“本语句为假”为真。 爱匹门尼德( Epimenides )悖论”。爱匹门尼德是公元前六世纪时古希腊的一位先知,居住于克里特岛上,他说过这样一句话:“克里特岛人都是说谎者。” “ 爱匹门尼德悖论”“悖”得还不够彻底,只“悖”了一半, 避免句子自我相关的悖论 A :句子 B 是真的。 B :句子 A 是假的。 表明,避免句子的自我相关 不足以消解“悖论”。

自引用是证明哥德尔定理,图灵机停机 问题的重要技巧,不是悖论

Page 12: Lecture Notes  for DB

12CS_Dept.Sichaun Univ.可计算理论

“ 说谎者”之所言 不是命题 而是多义句

不妨假设“本语句为假”是命题。 此时便有,“本语句为假”要么为真要么为假;并且,“说谎者悖论”的推理也因此而合乎逻辑。 如果“本语句为假”为真,则有“本语句为假”为假;亦即“本语句为假”既真且假,矛盾。 由反证法即有,“本语句为假”为假。 如果“本语句为假”为假,则有“本语句为假”为真;亦即“本语句为假”既真且假,矛盾。 由反证法即有,“本语句为假”为真。 综合以上两个子证明的结果即有,“本语句为假”既真且假,因而 不是命题 而是多义句。证毕。 两个貌似相互矛盾命题的多义句的不合逻辑的相互推出,不是真正意义上的悖论。

Page 13: Lecture Notes  for DB

13CS_Dept.Sichaun Univ.可计算理论

“ 说谎者”之所言 不是命题 而是多义句

不妨假设“本语句为假”是命题。 此时便有,“本语句为假”要么为真要么为假;并且,“说谎者悖论”的推理也因此而合乎逻辑。 如果“本语句为假”为真,则有“本语句为假”为假;亦即“本语句为假”既真且假,矛盾。 由反证法即有,“本语句为假”为假。 如果“本语句为假”为假,则有“本语句为假”为真;亦即“本语句为假”既真且假,矛盾。 由反证法即有,“本语句为假”为真。 综合以上两个子证明的结果即有,“本语句为假”既真且假,因而 不是命题 而是多义句。证毕。 两个貌似相互矛盾命题的多义句的不合逻辑的相互推出,不是真正意义上的悖论。

Page 14: Lecture Notes  for DB

14CS_Dept.Sichaun Univ.可计算理论

“ 说谎者”之所言 不是命题 而是多义句

不妨假设“本语句为假”是命题。 此时便有,“本语句为假”要么为真要么为假;并且,“说谎者悖论”的推理也因此而合乎逻辑。 如果“本语句为假”为真,则有“本语句为假”为假;亦即“本语句为假”既真且假,矛盾。 由反证法即有,“本语句为假”为假。 如果“本语句为假”为假,则有“本语句为假”为真;亦即“本语句为假”既真且假,矛盾。 由反证法即有,“本语句为假”为真。 综合以上两个子证明的结果即有,“本语句为假”既真且假,因而 不是命题 而是多义句。证毕。 两个貌似相互矛盾命题的多义句的不合逻辑的相互推出,不是真正意义上的悖论。

Page 15: Lecture Notes  for DB

15CS_Dept.Sichaun Univ.可计算理论

理发匠定理

罗素悖论”有两个通俗化的“版本”——“理发匠悖论”和“目录悖论”,  “理发匠悖论”是罗素本人为使“罗素悖论”更易于理解提出的,是后者的通俗版。萨尔维村有这样一位理发匠,他是本村的男人,并且给且只给该村所有不给自己刮胡子的男人刮胡子。现在的问题是,这位理发匠是否给自己刮胡子 ?显然,如果他给自己刮胡子,他就不给自己刮胡子;如果他不给自己刮胡子,他就给自己刮胡子。 “ 悖论”。

Page 16: Lecture Notes  for DB

16CS_Dept.Sichaun Univ.可计算理论

理发匠定理

罗素悖论”有两个通俗化的“版本”——“理发匠悖论”和“目录悖论”,  “理发匠悖论”是罗素本人为使“罗素悖论”更易于理解提出的,是后者的通俗版。萨尔维村有这样一位理发匠,他是本村的男人,并且给且只给该村所有不给自己刮胡子的男人刮胡子。现在的问题是,这位理发匠是否给自己刮胡子 ?显然,如果他给自己刮胡子,他就不给自己刮胡子;如果他不给自己刮胡子,他就给自己刮胡子。 “ 悖论”。

Page 17: Lecture Notes  for DB

17CS_Dept.Sichaun Univ.可计算理论

目录悖论

目录悖论”是“罗素悖论”的另一变种,由瑞士数学家贡赛斯( Gonseth )提出。 所有可能的目录可分为两大类: 一类是未收入自身的目录,在这样的目录中查不到关于它自身的条目, 另一类则是收入自身的目录。所有未收入自身的目录有一个总目录,这个总目录既然也是目录,便有个是否收入自身的问题。显然,如果该总目录未收入自身,它便收入了自身;如果它收入了自身,则又未收入自身。 在推理中,要严格定义,严格推理,避免偷换概念,避免悖论。

Page 18: Lecture Notes  for DB

18CS_Dept.Sichaun Univ.可计算理论

目录悖论

目录悖论”是“罗素悖论”的另一变种,由瑞士数学家贡赛斯( Gonseth )提出。 所有可能的目录可分为两大类: 一类是未收入自身的目录,在这样的目录中查不到关于它自身的条目, 另一类则是收入自身的目录。所有未收入自身的目录有一个总目录,这个总目录既然也是目录,便有个是否收入自身的问题。显然,如果该总目录未收入自身,它便收入了自身;如果它收入了自身,则又未收入自身。 在推理中,要严格定义,严格推理,避免偷换概念,避免悖论。

Page 19: Lecture Notes  for DB

19CS_Dept.Sichaun Univ.可计算理论

Languages Languages 语言,字词的集合 语言,字词的集合 ep.42,cp.25ep.42,cp.25

Given an alphabet , we can make a word or string by concatenating the letters of . 字母表

Concatenation of “x” and “y” is “xy” 字母的链接 Typical example: ={0,1}, the possible words over are

the finite bit strings. 01 位串为单词

A language is a set of words. 语言,字词的集合 定义: 设 是字母表, 则称 2 的子集 A 为上的语言。

Page 20: Lecture Notes  for DB

20CS_Dept.Sichaun Univ.可计算理论

More about LanguagesMore about Languages

The empty string is the unique string with zero length.

Concatenation of two langauges: A•B = { xy | xA and yB }

两个语言的链接 : 字集之链 = 链字之集 Typical examples:

L = { x | x is a bit string with two zeros } L = { anbn | n N } L = {1n | n is prime} 每个词是素数个 1链成

Page 21: Lecture Notes  for DB

21CS_Dept.Sichaun Univ.可计算理论

A Word of Warning A Word of Warning 注意注意Do not confuse the concatenation of languages with the Cartesian product of sets.语语连接 != 迪卡积

For example, let A = {0,00} then

A•A = { 00, 000, 0000 } with |A•A|=3, 连接 一维AA = { (0,0), (0,00), (00,0), (00,00) } 叉乘 二维with |AA|=4

Page 22: Lecture Notes  for DB

22CS_Dept.Sichaun Univ.可计算理论

自动机的直观概念 火车车次表自动机的直观概念 火车车次表

成都 重庆

昆明 贵阳

207 208189 190

Page 23: Lecture Notes  for DB

23CS_Dept.Sichaun Univ.可计算理论

自动机直观概念自动机直观概念 电子手表 上 4 个键 {a,b,c,d} 有若干个状态,用自动机表示操作过程,比较简单,比现行说明书好用。

可用自动机表达的日常设备:(作为练习题目)

录音机上的键和状态转换 , , .

菜单驱动的多层菜单

电视机遥控

实质:现状+输入 下一状态

书上 cp19, 用超市自动门说明,自学。

Page 24: Lecture Notes  for DB

24CS_Dept.Sichaun Univ.可计算理论

Recognizing Languages Recognizing Languages 识别语言 识别语言 cp22cp22

Let L be a language S

自动机识别语言的直观描述(后面有形式化定义)用有限描述无限。

: 入语言, 出判定( Y:N)

a machine M recognizes L if

MxS

“accept”

“reject” if and only if xL

if and only if xL

Page 25: Lecture Notes  for DB

25CS_Dept.Sichaun Univ.可计算理论

Finite Automaton Finite Automaton 有限自动机有限自动机 ep.55,cp.34ep.55,cp.34

The most simple machine that is not just a finite list of words. 最简:有限个词的集合

“Read once”, “no write” procedure.只读,不写, ,无内存,无变量,无数组,无堆栈 ,无推理,无想象力

Typical is its limited memory. 内存有限, 只有寄存器,能记住状态(窍门:造自动机时遇到困难加状态,等于是加寄存器扩大了记忆力)Think cell-phone, elevator door, etc.简单例子,火车线路图,电梯, 录音机, 电子表 状态和按扭

Page 26: Lecture Notes  for DB

26CS_Dept.Sichaun Univ.可计算理论

Finite Automaton Finite Automaton 有限自动机有限自动机 ep.55,cp.34ep.55,cp.34

The most simple machine that is not just a finite list of words. 最简:有限个词的集合

“Read once”, “no write” procedure.只读,不写, ,无内存,无变量,无数组,无堆栈 ,无推理,无想象力Typical is its limited memory. 内存有限, 只有寄存器,能记住状态(窍门:造自动机时遇到困难加状态,等于是加寄存器扩大了记忆力),状态相当于标号, goto ,增加标号相当与增加语句和转向语句Think cell-phone, elevator door, etc.简单例子,火车线路图,电梯, 录音机, 电子表 状态和按扭

Page 27: Lecture Notes  for DB

27CS_Dept.Sichaun Univ.可计算理论

Finite Automaton Finite Automaton 有限自动机有限自动机 ep.55,cp.34ep.55,cp.34

The most simple machine that is not just a finite list of words. 最简:有限个词的集合

“Read once”, “no write” procedure.只读,不写, ,无内存,无变量,无数组,无堆栈 ,无推理,无想象力

Typical is its limited memory. 内存有限, 只有寄存器,能记住状态(窍门:造自动机时遇到困难加状态,等于是加寄存器扩大了记忆力)Think cell-phone, elevator door, etc.简单例子,火车线路图,电梯, 录音机, 电子表 状态和按扭

Page 28: Lecture Notes  for DB

28CS_Dept.Sichaun Univ.可计算理论

A Simple Automaton (0) ep34, cp20 cp22A Simple Automaton (0) ep34, cp20 cp22

q1 q2 q3

1 0

0,1

0 1

States状态transition rules 变换规则

始态 starting state

accepting state 受态,粗圈或双线圈

Page 29: Lecture Notes  for DB

29CS_Dept.Sichaun Univ.可计算理论

A Simple Automaton (1) cp22A Simple Automaton (1) cp22

q1 q2 q3

1 0

0,1

0 1

on input “0110”, the machine goes:q1 q1 q2 q2 q3 = “reject”

start

accept

非接受态

理解为依次按两个按按扭后电子表的状态错误

Page 30: Lecture Notes  for DB

30CS_Dept.Sichaun Univ.可计算理论

A Simple Automaton (1) cp22A Simple Automaton (1) cp22

q1 q2 q3

1 0

0,1

0 1

on input “0110”, the machine goes:q1 q1 q2 q2 q3 = “reject”

start

accept

非接受态

理解为依次按两个按按扭后电子表的状态错误

Page 31: Lecture Notes  for DB

31CS_Dept.Sichaun Univ.可计算理论

A Simple Automaton (2) ep34 cp22A Simple Automaton (2) ep34 cp22

q1 q2 q3 q2 = “accept”

q1 q2 q3

1 0

0,1

0 1

on input “101”, the machine goes:

Page 32: Lecture Notes  for DB

32CS_Dept.Sichaun Univ.可计算理论

A Simple Automaton (3) cp22A Simple Automaton (3) cp22

010: reject11: accept010100100100100: accept010000010010: reject: reject

q1 q2 q3

1 0

0 1

0,1

Page 33: Lecture Notes  for DB

33CS_Dept.Sichaun Univ.可计算理论

用用 CC 语言描述语言描述 FA

q1 q2 q3

1 0

0 1

0,1

Char *input ,*pCurr //全局量Bool FA_func( )

{ start:

q1:if (*pCurr==0) goto q1;

else if (*pCurr==1) goto q2;q2: if (*pCurr==0) goto q3; else if (*pCurr==1) goto q2q3: if (*pCurr==0 || *pCurr==1) goto q2;}自动机对应于只有 if,goto ,无数组,无内部变量的程序, 程序不如图形直观,程序容易使用超标的资源(内存,栈,数组等)状态相当于 goto 标号

Page 34: Lecture Notes  for DB

34CS_Dept.Sichaun Univ.可计算理论

用用 CC 语言描述语言描述 FA

q1 q2 q3

1 0

0 1

0,1

Char *input ,*pCurr //全局量Bool FA_func( )

{ start:

q1:if (*pCurr==0) goto q1;

else if (*pCurr==1) goto q2;q2: if (*pCurr==0) goto q3; else if (*pCurr==1) goto q2q3: if (*pCurr==0 || *pCurr==1) goto q2;}自动机对应于只有 if,goto ,无数组,无内部变量的程序, 程序不如图形直观,程序容易使用超标的资源(内存,栈,数组等)

Page 35: Lecture Notes  for DB

35CS_Dept.Sichaun Univ.可计算理论

A Simple Automaton (3) A Simple Automaton (3) 用用 CC 语言描述语言描述对不熟悉 C 语言的读者, FA更直观,

对熟悉 C 语言的读者, C 语言解释自动机更简单(查旧则可知新,人们总是用熟悉的知识解释新的知识)

注意一点,不要超标用资源,

只能用 if goto

不能用数组,变量,只能用状态作记忆

在后面的推理中, SCU教案将广泛用 C 语言表示自动机、下推机、图灵机。

Page 36: Lecture Notes  for DB

36CS_Dept.Sichaun Univ.可计算理论

A Simple Automaton (3) A Simple Automaton (3) 用用 CC 语言描述语言描述对不熟悉 C 语言的读者, FA更直观,

对熟悉 C 语言的读者, C 语言解释自动机更简单(查旧则可知新,人们总是用熟悉的知识解释新的知识)

注意一点,不要超标用资源,

只能用 if goto(状态)

不能用数组,变量,只能用状态作记忆

在后面的推理中, SCU教案将广泛用 C 语言表示自动机、下推机、图灵机。

Page 37: Lecture Notes  for DB

37CS_Dept.Sichaun Univ.可计算理论

自动机的背景 在词法分析中是如何用的自动机的背景 在词法分析中是如何用的 造一个 C 语言, Basic ,DOS 解释器, HBASE 解释器 语法分析器, 先把拟实现的语句设计好,例如

List Field A1,A1 for age>5 to printer Display [All] field for …. To … Index On Name to Name.NDX

抽象 找规律 ,巴克斯范式,状态转换函数的变形 命令行 = 动词 [user_str][ 介词短语 ]*动词 =List|Display|Index介词短语 = 介词 [ 表达式 |UserStr]介词短语 =for|on|to|fieldUserStr=[a-z,A-Z,_][a-z,A-Z|0-9]*

Page 38: Lecture Notes  for DB

38CS_Dept.Sichaun Univ.可计算理论

自动机的背景 在词法分析中是如何用的自动机的背景 在词法分析中是如何用的 造一个 C 语言, Basic ,DOS 解释器, HBASE 解释器 语法分析器, 先把拟实现的语句设计好,例如

List Field A1,A1 for age>5 to printer Display [All] field for …. To … Index On Name to Name.NDX

抽象 找规律 ,巴克斯范式,状态转换函数的变形 命令行 = 动词 [user_str][ 介词短语 ]*动词 =List|Display|Index介词短语 = 介词 [ 表达式 |UserStr]介词短语 =for|on|to|fieldUserStr=[a-z,A-Z,_][a-z,A-Z|0-9]*

Page 39: Lecture Notes  for DB

39CS_Dept.Sichaun Univ.可计算理论

自动机的背景 在词法分析中是如何用的自动机的背景 在词法分析中是如何用的范式的每行对应一系列 状态转换 (自动机) 如 第一句 命令行 = 动词 [user_str][ 介词短语 ]*

初始状态 —如首词不是动词进入出错状态 否则动词分析状态

动词分析状态如动词出错 user_str 分析状态 OK 介词短语分析状态…..

60年代,手工分析巴克斯范式,画出自动机,然后写成 case, if goto 语句, 能否让机器来做?能。

软件 PaserGenerater 处理 Alex.exe 词法分析器, AYacc.exe 词法分析器

Page 40: Lecture Notes  for DB

40CS_Dept.Sichaun Univ.可计算理论

用软件用软件 PaserGenerater PaserGenerater 处理处理 含 Alex.exe 词法分析器, AYacc.exe 词法分析器 先写一个说明巴克斯范式的文件 HbaseSyntax.Y HbaseSyntax. YACC处理 {HSyntax.Y, HSyntax.H,

HSyntax.V} 例子 HSyntax.Y, %{#include<ctype.h> #include <stdio.h> }% %% Lines: verv userstr {simle.cmd( ); } | verb ‘\n’ {simle.cmd( ); } | Verb Prop_phrase * {simle.cmd( ); } · error ‘\n’

命令行

响应函数的语义处理

Page 41: Lecture Notes  for DB

41CS_Dept.Sichaun Univ.可计算理论

例子例子 HbaseSyntax.Y,HbaseSyntax.Y,

Verb: List { do_list( );}

|Display { do_display( );}

|Index {do_index( ) ; }

Prop_phase: Prop UserStr { Null}

Prop: For {do_for( );}

|to {null (); }

|On {…..}

%%

….

响应函数的语义处理

Page 42: Lecture Notes  for DB

42CS_Dept.Sichaun Univ.可计算理论

运行命令 运行命令 Yacc.exe HSyntax.Y HSyntax.c Yacc.exe HSyntax.Y HSyntax.c HSyntax.HHSyntax.H

产生 HSyntax.c 如下 #include <ctype.h>

…… . 不好理解,后面说 要说明 List for HBase.EXE ---caxp查询结果或错误号 下面讲 HSyntax.V

 

Page 43: Lecture Notes  for DB

43CS_Dept.Sichaun Univ.可计算理论

HSyntax.VHSyntax.V 第一部分,重复巴克斯范式,称为与法规者 如 Lines: verv userstr {simle.cmd( ); } ,… .. 第二部分 状态转换( case ,标号 和 goto 语句 自动机在这里) State : 1 $accept : ,lines $end lines: .(3) lines: goto 2 State :1 liness error State:2 … State:3 …. 10 tokens, 5 nonterminal , 11| grammar rules 30 states 更多的细节参考有关书籍

状态转换(自动机)

总结

Page 44: Lecture Notes  for DB

44CS_Dept.Sichaun Univ.可计算理论

Finite Automaton (def.) Finite Automaton (def.) 有限自动机定义 有限自动机定义 cp21cp21

A deterministic finite automaton (DFA) M is defined by a 5-tuple M=(Q,,,q0,F)

Q: finite set of states 状态集: finite alphabet 字母表: transition function :QQ 转换函数q0Q: start state 始态FQ: set of accepting states 受态介绍集中定义方法;元组式,递归式,Let 式 Let, It is said to be …. If …….

Page 45: Lecture Notes  for DB

45CS_Dept.Sichaun Univ.可计算理论

Finite Automaton (def.) Finite Automaton (def.) 有限自动机定义 有限自动机定义 cp21cp21

A deterministic finite automaton (DFA) M is defined by a 5-tuple M=(Q,,,q0,F)

Q: finite set of states 状态集: finite alphabet 字母表: transition function :QQ 转换函数q0Q: start state 始态FQ: set of accepting states 受态介绍集中定义方法;元组式,递归式,Let 式 Let, It is said to be …. If …….

Page 46: Lecture Notes  for DB

46CS_Dept.Sichaun Univ.可计算理论

M = (Q,M = (Q,,,,q,F) ep36 cp22,q,F) ep36 cp22

states Q = {q1,q2,q3}

alphabet = {0,1}

start state q1

accept states F={q2}

transition function :

转换函数用矩阵

223

232

211

qqq

qqq

qqq

10

q1 q2 q3

1 0

0 1

0,1

Page 47: Lecture Notes  for DB

47CS_Dept.Sichaun Univ.可计算理论

Recognizing Languages (def) Recognizing Languages (def) 识别语言 识别语言 cp21cp21

FA 的定义(元组式定义法)A Finite Automaton M = (Q,,,q,F) accepts a string/word w = w1…wn if and only if there is a sequence r0…rn of states in Q such that:

1) r0 = q0 起态

2) (ri,wi+1) = ri+1 for all i = 0,…,n–1

3) rn F 按图

Page 48: Lecture Notes  for DB

48CS_Dept.Sichaun Univ.可计算理论

Regular Languages Regular Languages 正规语言,正规语言, 33 型语言 型语言 被被 FAFA接受的语言 接受的语言 cp24cp24

The language recognized by a finiteautomaton M is denoted by L(M).

A regular language is a language for which there exists a recognizingfinite automaton.

Page 49: Lecture Notes  for DB

49CS_Dept.Sichaun Univ.可计算理论

Two DFA Questions Two DFA Questions 确定 有限 自动机确定 有限 自动机问题: 给机 ( 图形,有限描述),找语(符号集合) : Given the description of a finite automaton M = (Q,,,q,F), what is the language L(M) that it

recognizes?问题 :给机,找语言族: In general, what kind of languages can be recognized by finite automata?(What are the regular languages?)应用技巧 1 :语言 L1找机 M1, 语言 L2找机 M2 ,两机合成 h(M1,M2)=M3, M3识别 L3, 从而证明L3 也是正规语言 合成可以是连接、并 、星运算思想类似 xlog(x), ylog(y), log(x)+log(y)= log(x*y),然后求出 x*y技巧 2 造自动机时,遇到困难加状态,等于是加寄存器扩大了记忆力)

Page 50: Lecture Notes  for DB

50CS_Dept.Sichaun Univ.可计算理论

Two DFA Questions Two DFA Questions 确定 有限 自动机确定 有限 自动机问题: 给机 ( 图形,有限描述),找语(符号集合) : Given the description of a finite automaton M = (Q,,,q,F), what is the language L(M) that it

recognizes?问题 :给机,找语言族: In general, what kind of languages can be recognized by finite automata?(What are the regular languages?)应用技巧 1 :语言 L1找机 M1, 语言 L2找机 M2 ,两机合成 h(M1,M2)=M3, M3识别 L3, 从而证明L3 也是正规语言 合成可以是连接、并 、星运算思想类似 xlog(x), ylog(y), log(x)+log(y)= log(x*y),然后求出 x*y技巧 2 造自动机时,遇到困难加状态,等于是加寄存器扩大了记忆力)

Page 51: Lecture Notes  for DB

51CS_Dept.Sichaun Univ.可计算理论

Two DFA Questions Two DFA Questions 确定 有限 自动机确定 有限 自动机问题: 给机 ( 图形,有限描述),找语(符号集合) : Given the description of a finite automaton M = (Q,,,q,F), what is the language L(M) that it

recognizes?问题 :给机,找语言族: In general, what kind of languages can be recognized by finite automata?(What are the regular languages?)应用技巧 1 :语言 L1找机 M1, 语言 L2找机 M2 ,两机合成 h(M1,M2)=M3, M3识别 L3, 从而证明L3 也是正规语言 合成可以是连接、并 、星运算思想类似 xlog(x), ylog(y), log(x)+log(y)= log(x*y),然后求出 x*y技巧 2 造自动机时,遇到困难加状态,等于是加寄存器扩大了记忆力)

Page 52: Lecture Notes  for DB

52CS_Dept.Sichaun Univ.可计算理论

Union of Two Languages Union of Two Languages 语言并集 语言并集 ep45 cp35-36ep45 cp35-36

Theorem 1.12: If A1 and A2 are regular languages, then so is A1 A2.(The regular languages are ‘closed’ underthe union operation.) 正规语言之并集仍正规

Proof idea: A1 and A2 are regular, hence there are two DFA M1 and M2, with A1=L(M1) and A2=L(M2).Out of these two DFA, we will make a third automaton M3 such that L(M3) = A1 A2. 注意三个机器都是确定的,所以证明很艰苦,后面有简化方法思想 :并机识别并语 , 类似 xlog(x), ylog(y), log(x)+log(y)= log(x*y),然后求出 x*y

Page 53: Lecture Notes  for DB

53CS_Dept.Sichaun Univ.可计算理论

Union of Two Languages Union of Two Languages 语言并集 语言并集 ep45 ep45 cp35-36cp35-36

Theorem 1.12: If A1 and A2 are regular languages, then so is A1 A2.(The regular languages are ‘closed’ underthe union operation.) 正规语言之并集仍正规

Proof idea: A1 and A2 are regular, hence there are two DFA M1 and M2, with A1=L(M1) and A2=L(M2).Out of these two DFA, we will make a third automaton M3 such that L(M3) = A1 A2. 注意三个机器都是确定的,所以证明很艰苦,后面有简化方法思想 :并机识别并语 , 类似 xlog(x), ylog(y), log(x)+log(y)= log(x*y),然后求出 x*y

Page 54: Lecture Notes  for DB

54CS_Dept.Sichaun Univ.可计算理论

Union of Two Languages Union of Two Languages 语言并集 语言并集 ep45 ep45 cp35-36cp35-36

Theorem 1.12: If A1 and A2 are regular languages, then so is A1 A2.(The regular languages are ‘closed’ underthe union operation.) 正规语言之并集仍正规

Proof idea: A1 and A2 are regular, hence there are two DFA M1 and M2, with A1=L(M1) and A2=L(M2).Out of these two DFA, we will make a third automaton M3 such that L(M3) = A1 A2. 注意三个机器都是确定的,所以证明很艰苦,后面有简化方法思想 :并机识别并语 , 类似 xlog(x), ylog(y), log(x)+log(y)= log(x*y),然后求出 x*y

Page 55: Lecture Notes  for DB

55CS_Dept.Sichaun Univ.可计算理论

Proof Union-Theorem (1) Proof Union-Theorem (1) 证明并机定理证明并机定理 ep45 ep45 cp-35cp-35

给定 M1=(Q1,,1,q1,F1) and M2=(Q2,,2,q2,F2)

Define M3 = (Q3,,3,q3,F3) by: 造机(并机)并机)• Q3 = Q1Q2 = {(r1,r2) | r1Q1 and r2Q2} 状态:两个公司 强强联合后,办事机构作迪卡积

• 3((r1,r2),a) = (1(r1,a), 2(r2,a)) 转换函数 : r1,r2 两个公司的机构,对同一输入 a ,先自治,再转入联合的下一办事机构

• q3 = (q1,q2) 起态联合成为起态

F3 = {(r1,r2) | r1F1 or r2F2} 接受态 ”或’两个公司之一的检验员检验合格即可,注意 如果换为 and , 则接受两个语言的交集

Page 56: Lecture Notes  for DB

56CS_Dept.Sichaun Univ.可计算理论

Proof Union-Theorem (1) Proof Union-Theorem (1) 证明并机定理证明并机定理ep45 cp-35ep45 cp-35

给定 M1=(Q1,,1,q1,F1) and M2=(Q2,,2,q2,F2)

Define M3 = (Q3,,3,q3,F3) by: 造机(并机)并机)• Q3 = Q1Q2 = {(r1,r2) | r1Q1 and r2Q2} 状态:两个公司 强强联合后,办事机构作迪卡积

• 3((r1,r2),a) = (1(r1,a), 2(r2,a)) 转换函数 : r1,r2 两个公司的机构,对同一输入 a ,先自治,再转入联合的下一办事机构

• q3 = (q1,q2) 起态联合成为起态

F3 = {(r1,r2) | r1F1 or r2F2} 接受态 ”或’两个公司之一的检验员检验合格即可,注意 如果换为 and , 则接受两个语言的交集

Page 57: Lecture Notes  for DB

57CS_Dept.Sichaun Univ.可计算理论

Proof Union-Theorem (1) Proof Union-Theorem (1) 证明并机定理证明并机定理ep45 cp-35ep45 cp-35

给定 M1=(Q1,,1,q1,F1) and M2=(Q2,,2,q2,F2)

Define M3 = (Q3,,3,q3,F3) by: 造机(并机)并机)• Q3 = Q1Q2 = {(r1,r2) | r1Q1 and r2Q2} 状态:两个公司 强强联合后,办事机构作迪卡积

• 3((r1,r2),a) = (1(r1,a), 2(r2,a)) 转换函数 : r1,r2 两个公司的机构,对同一输入 a ,先自治,再转入联合的下一办事机构

• q3 = (q1,q2) 起态联合成为起态

F3 = {(r1,r2) | r1F1 or r2F2} 接受态 ”或’两个公司之一的检验员检验合格即可,注意 如果换为 and , 则接受两个语言的交集

Page 58: Lecture Notes  for DB

58CS_Dept.Sichaun Univ.可计算理论

Proof Union-Theorem (2) Proof Union-Theorem (2) 证明并机定理证明并机定理 1.12 1.12 ep45 ep45 cp35cp35

The automaton M3 = (Q3,,3,q3,F3) runs M1 and M2 in ‘parallel’ on a string w. 因为联合政策即政策的联合,联合识别 刚好等于 识别的联合

In the end, the final state (r1,r2) ‘knows’if wL1 (via r1F1?) and if wL2 (via r2F2?)

The accepting states F3 of M3 are such thatwL(M3) if and only if wL1 or wL2, for:F3 = {(r1,r2) | r1F1 or r2F2}.

证明方法 2 :用双包含,证明 L(M3) = A1 A2.

Page 59: Lecture Notes  for DB

59CS_Dept.Sichaun Univ.可计算理论

Proof Union-Theorem (2) Proof Union-Theorem (2) 证明并机定理证明并机定理 1.12 1.12 ep45 ep45 cp35cp35

The automaton M3 = (Q3,,3,q3,F3) runs M1 and M2 in ‘parallel’ on a string w. 因为联合政策即政策的联合,联合识别 刚好等于 识别的联合

In the end, the final state (r1,r2) ‘knows’if wL1 (via r1F1?) and if wL2 (via r2F2?)

The accepting states F3 of M3 are such thatwL(M3) if and only if wL1 or wL2, for:F3 = {(r1,r2) | r1F1 or r2F2}.

证明方法 2 :用双包含,证明 L(M3) = A1 A2.

Page 60: Lecture Notes  for DB

60CS_Dept.Sichaun Univ.可计算理论

Concatenation of LConcatenation of L11 and L and L2 2 链接链接

Definition: L1• L2 = { xy | xL1 and yL2 } 字集链接 = 链接字集

Example: {a,b} • {0,11} = {a0,a11,b0,b11}

Theorem 1.13: If L1 and L2 are regular langues, then so is L1•L2. (The regular languages are ‘closed’ underconcatenation.) 正规语言之链接仍正规,链接定理

大数学家哈代( G.H.Hardy )认为,真正伟大的定理应具有三个特点,即:精炼、必然、意外。(参见威廉 ·邓纳姆( W.Dunham )《天才引导的历程》,中国对外翻译出版公司 1994年版, 319 页)

Page 61: Lecture Notes  for DB

61CS_Dept.Sichaun Univ.可计算理论

Concatenation of LConcatenation of L11 and L and L2 2 链接链接

Definition: L1• L2 = { xy | xL1 and yL2 } 字集链接 = 链接字集

Example: {a,b} • {0,11} = {a0,a11,b0,b11}

Theorem 1.13: If L1 and L2 are regular langues, then so is L1•L2. (The regular languages are ‘closed’ underconcatenation.) 正规语言之链接仍正规,链接定理

大数学家哈代( G.H.Hardy )认为,真正伟大的定理应具有三个特点,即:精炼、必然、意外。(参见威廉 ·邓纳姆( W.Dunham )《天才引导的历程》,中国对外翻译出版公司 1994年版, 319 页)

Page 62: Lecture Notes  for DB

62CS_Dept.Sichaun Univ.可计算理论

Concatenation of LConcatenation of L11 and L and L2 2 链接链接

Definition: L1• L2 = { xy | xL1 and yL2 } 字集链接 = 链接字集

Example: {a,b} • {0,11} = {a0,a11,b0,b11}

Theorem 1.13: If L1 and L2 are regular langues, then so is L1•L2. (The regular languages are ‘closed’ underconcatenation.) 正规语言之链接仍正规,链接定理

大数学家哈代( G.H.Hardy )认为,真正伟大的定理应具有三个特点,即:精炼、必然、意外。(参见威廉 ·邓纳姆( W.Dunham )《天才引导的历程》,中国对外翻译出版公司 1994年版, 319 页)

Page 63: Lecture Notes  for DB

63CS_Dept.Sichaun Univ.可计算理论

为证明链接定理遇到困难,暂时放下,引入不确定性为证明链接定理遇到困难,暂时放下,引入不确定性

Consider the concatenation: 考虑下列链接{1,01,11,001,011,…} • {0,000,00000,…}(That is: the bit strings that end with a “1”,followed by an odd number of 0’s.)

Problem is: given a string w, how does the automaton know where the L1 partstops and the L2 substring starts? 如何知道 L1 何处停止? L2 何处开始。分句问题。直接可以证明, 但很难叙述。We need an M with ‘lucky guesses’.

Page 64: Lecture Notes  for DB

64CS_Dept.Sichaun Univ.可计算理论

Nondeterminism Nondeterminism 不确定性,猜不确定性,猜——测测

Nondeterministic machines are capable of being lucky, no matter how small the probability. 不确定性,猜—测

A nondeterministic finite automatonhas transition rules/possibilities like 不确定:转换规则 一入多出 , 是空字,无入转态

q1 q2

q1

q21

q31

Page 65: Lecture Notes  for DB

65CS_Dept.Sichaun Univ.可计算理论

A Nondeterministic Automaton NFA A Nondeterministic Automaton NFA

q1 q2 q3

1 0,

0,1

不确定性表现: q11 Y ? Y 有三个可能状态 : q1,q2,q3 1 导致 q2 自动漂移 到 3

以状态 y 为开始的子自动机 FA_y设 FA_y 对应的函数为 bool FA_func(y ), y 是状态,输入串 是外部变量, 接受输入则返回 ture

q4

1

0,1

Page 66: Lecture Notes  for DB

66CS_Dept.Sichaun Univ.可计算理论

A Nondeterministic Automaton NFA A Nondeterministic Automaton NFA

q1 q2 q3

1 0,

0,1

不确定性表现: q11 Y ? Y 有三个可能状态 : q1,q2,q3 1 导致 q2 自动漂移 到 3

以状态 y 为开始的子自动机 FA_y设 FA_y 对应的函数为 bool FA_func(y ), y 是状态,输入串 是外部变量, 接受输入则返回 ture

q4

1

0,1

Page 67: Lecture Notes  for DB

67CS_Dept.Sichaun Univ.可计算理论

q1 q2 q3

1 0,

0,1

用并行 C 语言描述 不确定性自动机:

FA( ) // 设 char *p指向当前输入{ start: q1: if (*p==0) goto q1; else if(*p==1) { CPU1: return FA_func(q1) || // 并行 CPU2: return FA_func(q2) || CPU3: return FA_func(q3}} // 也可解释为在树上搜索回溯 cp 29 —30

q4

1

0,1

Page 68: Lecture Notes  for DB

68CS_Dept.Sichaun Univ.可计算理论

A Nondeterministic Automaton NFA A Nondeterministic Automaton NFA

q1 q2 q3

1 0,

0,1

This automaton accepts “0110”, because there is a possible path that leads to anaccepting state, namely: q1 q1 q2 q3 q4 q4

q4

1

0,1

Page 69: Lecture Notes  for DB

69CS_Dept.Sichaun Univ.可计算理论

A Nondeterministic Automaton A Nondeterministic Automaton (( NFA) ep48NFA) ep48

q1 q2 q3

1 0,

0,1

The string 1 gets rejected: on “1” the automaton can only reach: {q1,q2,q3}. 所达集合不含接受态

q4

1

0,1

Page 70: Lecture Notes  for DB

70CS_Dept.Sichaun Univ.可计算理论

Nondeterminism ~ Parallelism Nondeterminism ~ Parallelism 不确定性与并行不确定性与并行

For any (sub)string w, the nondeterministicautomaton can be in a set of possible states.一入多态,多种前途If the final set contains an accepting state,then the automaton accepts the string.多种前途中,含接受态就可“The automaton processes the input in aparallel fashion. Its computational pathis no longer a line, but a tree.” (Fig. 1.16) 路径不惟一,是树

Page 71: Lecture Notes  for DB

71CS_Dept.Sichaun Univ.可计算理论

Nondeterministic FA (def.1.17) ep53Nondeterministic FA (def.1.17) ep53 ,, cp32cp32 NFA 定义 A nondeterministic finite automaton (NFA) M is

defined by a 5-tuple M=(Q,,,q0,F), with (也可用 where)

Q: finite set of states

: finite alphabet

: transition function :QP (Q)

惟一差别: 的像是幂集中的一个元素 源确定后 函数的像必须是惟一的,否则只能称为关系q0Q: start state , FQ: set of accepting states

参见 CP 32 例 2.18中的状态转矩阵(一起读)注意学习元组式定义的写法 , 适合描述由几个部件组件

组成的对象

Page 72: Lecture Notes  for DB

72CS_Dept.Sichaun Univ.可计算理论

Nondeterministic FA (def.1.17) ep53Nondeterministic FA (def.1.17) ep53 ,, cp32cp32 NFA 定义 A nondeterministic finite automaton (NFA) M is

defined by a 5-tuple M=(Q,,,q0,F), with (也可用 where)

Q: finite set of states

: finite alphabet

: transition function :QP (Q)

惟一差别: 的像是幂集中的一个元素 源确定后 函数的像必须是惟一的,否则只能称为关系q0Q: start state , FQ: set of accepting states

参见 CP 32 例 2.18中的状态转矩阵(一起读)注意学习元组式定义的写法 , 适合描述由几个部件组件

组成的对象

Page 73: Lecture Notes  for DB

73CS_Dept.Sichaun Univ.可计算理论

Sec1.2 Nondeterministic Sec1.2 Nondeterministic :Q:QPP (Q) (Q) 不确定性 不确定性 ep53ep53

The function :QP (Q) is the crucial difference. It means: “When reading symbol “a” while in state q,one can go to one of the states in (q,a)Q.”

在 q态读 a , 可到 (q,a)中某一状态

The in = {} takes care of the empty string transitions.

无输入 跳转状态,某些状态可无原因漂移

Page 74: Lecture Notes  for DB

74CS_Dept.Sichaun Univ.可计算理论

Recognizing Languages (def)Recognizing Languages (def) NFANFA 识别识别 ep54 ep54 cp29cp29

A nondeterministic FA M = (Q,,,q,F) accepts a string w = w1…wn if and only if we can rewrite w as y1…ym with yi and there is a sequence r0…rm of states in Q such that:

不怕失败的路径多,只要一条成功即可 , 不确定方法通常 在指数大小的空间不确定地搜索,(不一定是有规律地遍历)

1) r0=q0 起态2) ri+1 (ri,yi+1) for all i=0,…,m–1 树型路径之一3) rm F 到接受态

买彩票 是不确定计算,现在没成功,不能说将来不成功只要一次成功了,就算识别了。

Page 75: Lecture Notes  for DB

75CS_Dept.Sichaun Univ.可计算理论

NFANFA 的确定化的确定化,给定,给定 NFA M1,NFA M1, 造造 DFA M2 DFA M2 使使得识别结果一样 得识别结果一样 , cp33. , cp33. 定理 定理 C2.19C2.19

思想:捆绑箭头,

新机的在状态的原来状态幂集中找

把同源同标识的箭头绑到一起

{q1 } { q2,q3,q5} , 依此类推原来 n 个状态,新机可能有 2n 个状态

比喻 把箭头标号理解为车票价,状态为旅游点,上图:从q1, 花 1 个单位费用,可以旅游 q2 或 q3 或 q5 ,显然,一定可以画出一个等价的 旅游点集合到点集合的旅游图,使得从一个集合,花一定费用序列,至多一个目的集合(如果还有两个,就把他们合并)捆绑过程, 见下页

q1

q21

q31

q5

1

Page 76: Lecture Notes  for DB

76CS_Dept.Sichaun Univ.可计算理论

NFANFA 的确定化的确定化,给定,给定 NFA M1,NFA M1, 造造 DFA M2 DFA M2 使使得识别结果一样 得识别结果一样 , cp33. , cp33. 定理 定理 C2.19C2.19

思想:捆绑箭头,

从开始状态起,顺藤摸瓜

把同源同标识的箭头绑到一起

下页有解释

q1

q21

q31

q4 q52

1

1

1

q0

3

3

q1 q4

q2 q3 q51

q0

3

q5

2

Page 77: Lecture Notes  for DB

77CS_Dept.Sichaun Univ.可计算理论

NFANFA 的确定化的确定化,给定,给定 NFA M1,NFA M1, 造造 DFA M2 DFA M2 使使得识别结果一样 得识别结果一样 , cp33. , cp33. 定理 定理 C2.19C2.19

解释:花费序列为 3,1, 可以旅游,{q2 q3 q5} 之任一,

花费序列为 3,2, 可以旅游, {q5} 之任一二者识别的语言一样

q1

q21

q31

q4 q52

1

1

1

q0

3

3

q1q4

q2 q3 q51

q0

3

q5

2

不确定NFA

确定 FA

Page 78: Lecture Notes  for DB

78CS_Dept.Sichaun Univ.可计算理论

NFANFA 的确定化的确定化,给定,给定 NFA M1,NFA M1, 造造 DFA M2 DFA M2 使使得识别结果一样 得识别结果一样 , cp33. , cp33. 定理 定理 C2.19C2.19

思想:捆绑箭头,

新机的在状态的原来状态幂集中找

把两个同源同标识的箭头绑到一起

{q1} { q2,q3} , 依此类推原来 n 个状态,新机可能有 2n 个状态

原来要多个 CPU 并行,现在要 指数个 寄存器保存状态。识别结果显然一致,下页有例,关键技术 0步集E(R) cp34 严格证明见书。

DFA 和 NFA 能力等价, DFA 机器易算, NFA 人易制造, 通常,人造 NFA,让机器把它变成 DFA (yacc.exe)

q1

q21

q31

Page 79: Lecture Notes  for DB

79CS_Dept.Sichaun Univ.可计算理论

NFANFA 的确定化的确定化,给定,给定 NFA M1,NFA M1, 造造 DFA M2 DFA M2 使使得识别结果一样 得识别结果一样 , cp33. , cp33. 定理 定理 C2.19C2.19

关键技术 : x 的 0步集 E(x)

起点 E(1)={1,3},

由起点,经 a到达 {1,3} , 经 b到达 {2}

由 {2} ,经 a到达 {2,3} , 经 b到达 {3},…

参见 cp35 图 2.22

有 23=8 个状态(最大状态数),简化后 6 个

注意 { x,… }中要包含 x 的 0步集 E(x)

学习方法,先看例子,后看形式化证明

2 3

1

a,b

b

έa

a

Page 80: Lecture Notes  for DB

80CS_Dept.Sichaun Univ.可计算理论

DFA 和 NFA 能力等价

DFA 机器易算, NFA 人易制造, 通常,人造 NFA,让机器把它变成 DFA (yacc.exe)

当用并行技术去实现时实际上是用 NFA,

当对有指数个节点的树搜索和回溯(可能这里广度优先比深度优先好),是用 DFA

直观解释:对应于 NFA 这样的简单并行程序中可以串行化

Page 81: Lecture Notes  for DB

81CS_Dept.Sichaun Univ.可计算理论

证明 正则语言族 对 证明 正则语言族 对 并 并 封闭 封闭 cp36-37cp36-37

用用 CC 语言表达语言表达 FAFA 的并的并

Bool M3_func( x)Bool M3_func( x)

{ return({ return(M1_func( x) ||M1_func( x) ||

M2_func( x) );M2_func( x) );

}}

M1

M2

M3

Page 82: Lecture Notes  for DB

82CS_Dept.Sichaun Univ.可计算理论

证明 正则语言族 对 证明 正则语言族 对 连接连接 封闭 封闭 cp36-37cp36-37

M1 M2

M4

用用 CC 语言表达语言表达 DFA DFA 的的连接连接Bool M4_func( x)Bool M4_func( x){ { for each y and z such that x=yzfor each y and z such that x=yz if (M1_func( y) &&if (M1_func( y) && M2_func( z) );M2_func( z) ); return true;return true;

return false;return false;}}

这里体现了不确定性

猜测分割点 , 用 for each .全部作

Page 83: Lecture Notes  for DB

83CS_Dept.Sichaun Univ.可计算理论

证明 正则语言族 对 证明 正则语言族 对 星星运算 运算 cp36-37cp36-37

M1

M5

用用 CC 语言表达语言表达 FAFA 星运算星运算 Bool M5_func( x)Bool M5_func( x)

{ {

if ( (x==y*) and (if ( (x==y*) and (M1_func( y))M1_func( y))

return true; // acceptreturn true; // accept

return false;return false;

}}

x== yyy…y0 个或多个 y

Page 84: Lecture Notes  for DB

84CS_Dept.Sichaun Univ.可计算理论

证明 正则语言族 对 并、连接、星运算、 证明 正则语言族 对 并、连接、星运算、 补,交补,交 封闭 封闭 cp36-37cp36-37

设 NFA MK 识别 RL LK , K=1,2 造 M3 M4 M5 如下

1 则 M3,M4,M5 分别识别 L1Ụ L2 , L1●.L2 和 (L1)*

一起看书 cp36-37 (即书上的定理 c2.23 , c2.24 , c2.25)

2 补充定理 正则语言族对补 封闭,证明:作机正则语言族对补 封闭,证明:作机 M1M1 识别识别 L1,L1, 交换终交换终止与非终止态得 止与非终止态得 M2M2 ,识别其补集 ,识别其补集 (∑*- L1)(∑*- L1) 。。

33 补充 正则语言族对 交 也封闭 证法正则语言族对 交 也封闭 证法 1 1 :构造:构造 DFADFA 并机中改一点并机中改一点

证法证法 22 :: LL11 ∩ L ∩ L22=∑* -(∑*- L=∑* -(∑*- L11) ) Ụ (∑*- L (∑*- L22))

M1

M2

M3

M1 M2

M4

M1

M5

Page 85: Lecture Notes  for DB

85CS_Dept.Sichaun Univ.可计算理论

证明 正则语言族 对 并、连接、星运算、 证明 正则语言族 对 并、连接、星运算、 补,交补,交 封 封闭 闭 cp36-37cp36-37

设 NFA MK 识别 RL LK , K=1,2 造 M3 M4 M5 如下

1 则 M3,M4,M5 分别识别 L1Ụ L2 , L1●.L2 和 (L1)*

一起看书 cp36-37 (即书上的定理 c2.23 , c2.24 , c2.25)

2 补充定理 正则语言族正则语言族对补 封闭对补 封闭,,证明:作机证明:作机 M1M1 识别识别 L1,L1, 交换终交换终止与非终止态得 止与非终止态得 M2M2 ,识别其补集 ,识别其补集 (∑*- L1)(∑*- L1) 。。

33 补充 正则语言族对 交 也封闭 证法正则语言族对 交 也封闭 证法 1 1 :构造:构造 DFADFA 并机中改一点并机中改一点

证法证法 22 :: LL11 ∩ L ∩ L22=∑* -(∑*- L=∑* -(∑*- L11) ) Ụ (∑*- L (∑*- L22))

M1

M2

M3

M1 M2

M4

M1

M5

Page 86: Lecture Notes  for DB

86CS_Dept.Sichaun Univ.可计算理论

证明 正则语言族 对 并、连接、星运算、 证明 正则语言族 对 并、连接、星运算、 补,交补,交 封 封闭 闭 cp36-37cp36-37

设 NFA MK 识别 RL LK , K=1,2 造 M3 M4 M5 如下

1 则 M3,M4,M5 分别识别 L1Ụ L2 , L1●.L2 和 (L1)*

一起看书 cp36-37 (即书上的定理 c2.23 , c2.24 , c2.25)

2 补充定理 正则语言族正则语言族对补 封闭对补 封闭,证明:作机,证明:作机 M1M1 识别识别 L1,L1, 交换终交换终止与非终止态得 止与非终止态得 M2M2 ,识别其补集 ,识别其补集 (∑*- L1)(∑*- L1) 。。

33 补充 正则语言族对正则语言族对 交交 也封闭 也封闭 证法证法 1 1 :构造:构造 DFADFA 并机中改一点并机中改一点

证法证法 22 :: LL11 ∩ L ∩ L22=∑* -(∑*- L=∑* -(∑*- L11) ) Ụ (∑*- L (∑*- L22))

M1

M2

M3

M1 M2

M4

M1

M5

Page 87: Lecture Notes  for DB

87CS_Dept.Sichaun Univ.可计算理论

引理引理 c2.29 c2.29 正则表达式描述的语言是正则语言正则表达式描述的语言是正则语言

证明对表达式 E中的运算符号的个数 n 用归纳法(与书上不同 )N=0, E 是单个字母,如 a 造自动机识别它 q1 a

q2

设 i 定理对 n=K-1 成立, n=k 时,对最后计算的一个符号分情况 (连接,并,星)

用上页的引理 (书上的定理 c2.23. c2.24.c2.25) 即得。

下次要用此引理。作为定理 c2.28中 “当且仅当“ 中的 “当“ 部

分。

预告下次内容:定理 c2.28 :语言 L 为正则,当且仅当 可以用正则表达式描述 L 。

Page 88: Lecture Notes  for DB

88CS_Dept.Sichaun Univ.可计算理论

Any Question ? Any Question ? 下次从不确定性开始下次从不确定性开始

Thank you !!!Thank you !!!