收藏 分享(赏)

计算理论习题解答.doc

上传人:gnk289057 文档编号:6178246 上传时间:2019-03-31 格式:DOC 页数:44 大小:664KB
下载 相关 举报
计算理论习题解答.doc_第1页
第1页 / 共44页
计算理论习题解答.doc_第2页
第2页 / 共44页
计算理论习题解答.doc_第3页
第3页 / 共44页
计算理论习题解答.doc_第4页
第4页 / 共44页
计算理论习题解答.doc_第5页
第5页 / 共44页
点击查看更多>>
资源描述

1、- 1 -计算理论习题解答练习1.1 图给出两台 DFA M1 和 M2 的状态图. 回答下述有关问题.a. M1 的起始状态是 q1b. M1 的接受状态集是q 2c. M2 的起始状态是 q1d. M2 的接受状态集是q 1,q 4e. 对输入 aabb,M1 经过的状态序列是 q1,q 2,q 3,q 1,q 1f. M1 接受字符串 aabb 吗?否g. M2 接受字符串 吗?是1.2 给出练习 2.1 中画出的机器 M1 和 M2 的形式描述.M1=(Q1, 1,q1,F1) 其中1) Q1=q1,q2,q3,;2) =a,b;3) 1 为:a bq1q2q3q2 q1q3 q3q2

2、 q14) q1 是起始状态5) F1=q2M2=(Q2, 2,q2,F2) 其中1) Q2=q1,q2,q3,q4;2) =a,b;3) 2 为:a bq1q2q3q4q1 q2q3 q4q2 q1q3 q43) q2 是起始状态4) F2=q1,q41.3 DFA M 的形式描述为 ( q1,q 2,q 3,q 4,q 5,u,d,q 3,q 3),其中 在表 2-3 中给出。试画出此机器的状态图。q1 q5q4q2 q3u du u u udddd- 2 -1.6 画出识别下述语言的 DFA 的状态图。a)w | w 从 1 开始以 0 结束b)w | w 至少有 3 个 1c) w |

3、 w 含有子串 0101d) w | w 的长度不小于 3,且第三个符号为 0e) w | w 从 0 开始且为奇长度,或从 1 开始且为偶长度或f) w | w 不含子串 110001110,10010 01 10,10,110011 0 100,100,10,1110,1 00,10,10,100,11 0,100,110,1010 11 0- 3 -g) w | w 的长度不超过 5h)w | w 是除 11 和 111 以外的任何字符i)w | w 的奇位置均为 1j) w | w 至少含有 2 个 0,且至多含有 1 个 1k) ,0l) w | w 含有偶数个 0,或恰好两个 1m

4、) 空集 n) 除空串外的所有字符串1.7 给出识别下述语言的 NFA,且要求符合规定的状态数。0,1 0,1 0,1 0,1 0,1 0,10,11 1 10,10 0 000100111110 00,10 0,1 0,1110 0,10,1110 01 11 1 10 00 00 010,1 0,10,1- 4 -a. w | w 以 00 结束,三个状态b. 语言w | w 含有子串 0101,即对某个 x 和 y,w=x0101y ,5 个状态.c. 语言w | w 含有偶数个 0 或恰好两个 1 ,6 个状态。d. 语言0 ,2 个状态。e. 语言 0*1*0*0,3 个状态。f.

5、语言,1 个状态。g. 语言 0*,1 个状态。2.11 证明每一台 NFA 都能够转换成等价的只有一个接受状态的 NFA。证明:设 NFA M=Q,,q 0,F,F=r i1, rik.添加一个状态 p 后,r i1, rik 分别向 p 引 箭头,将 ri1, , rik 变为非接受状态,p 变为接受状态。又因为添加 箭头不影响 NFA 识别语言,所以命题成立。2.14 a 证明:设 M 是一台语言 B 的 DFA,交换 M 的接状态与非接受状态得到一台新的 DFA,则这台新的 DFA 是识别 B 的补集,因此,正则语言类受在补运算下封闭。b 举例说明:设 M 是一台识别语言 B 的 NF

6、A,交换 M 的接受状态与非接受状态得到一台新的NFA,这台新的 NFA 不一定识别 B 的补集。NFA 识别的语言类在补集下封闭吗?解释你的回答。解:0 00,10 10,10 10,1011 1010 0 00 00 1 00- 5 -a. M 是 DFA, M 是Q,q 0,F,令 N=Q,q 0,Q-F,设 =12 n 是字母表上任意字符串,因为 M 与 N 均为 DFA,所以必然存在 Q 中状态序列 r0,r1,rn,使得:r 0=q0, (r i, i+1)=ri+1, i=0,n-11)若 rnF 则 B;2)若 rnF,则 rnQ-F,即 N 接受 ,若 B,所以 N 接受 B

7、 的补集,即 B 的补集正则。所以,正则语言类在补运算下封闭。b. 设 B 为0。NFA M :可识别它。依题对它作变换,得到 N:则 N 识别的语言不是 B 的子集。所以交换 M 的接受状态与非接受状态得到的新的 NFA 不一定识别 B 的补集。但是由于 NFA 识别的语言类与 DFA 识别的语言类相同,即正则语言类。由 a 的证明,正则语言类在补运算封闭,可知,NFA 识别的语言类- 正则语言类在补运算下封闭。若 NFA 识别语言 A,必有 等价的 DFA 识别 A,从而由 a 知,可交换 DFA 的接受与非接受状态构造识别 A 的补集的 DFA,则必有等价的 NFA 识别 A 的补集。只

8、是,该 NFA 未必有原 NFA 交换接受与非接受状态构造而成。1.15 给出一个反例,说明下述构造不能证明定理 2.24,即正则语言类在星号运算下封闭。设N=(Q 1, 1,q1,F1)识别 A1。如下构造 N=(Q 1, 1,q1,F1) 。N 应该识别 A1*。a. N 的状态集是 N1 的状态集。b. N 的起始状态是 N1 的起始状态相同。c. F=q 1F 1。F 的接受状态是原来的接受状态加上它的起始状态。d. 定义 如下:对每一个 q 属于 Q 和每一个 a 属于 。解:设 N1 识别语言 A=至少含有一个 1,其中输入字母表为 0,1,可知 A*=空串或至少含有一个 1。N1

9、: N:按上述规定构造 N 的状态图如上。可以看出 L(N)=0,1*不等于 A*. 所以如此构造的 N 不一定识别 A*.1.16 使用定理 2.19 中给出的构造,把下图中的两台非确定型有穷自动机转换成等价的确定型有穷自动机。00Fa ,),( ),(111且若 或若10,1 0,110,1 0,1a,bab1 2aa,bba1 23- 6 -a), b),解:a), b)2.13 给出生成练习 2.4 中语言的正则表达式。(注: 答案不唯一)a. w | w 从 1 开始以 0 结束 1 *0.b. w | w 至少有 3 个 1 *1*1*1*.c. w | w 含有子串 0101 *

10、0101*.d. w | w 的长度不小于 3,且第三个符号为 0 0*.e. w | w 从 0 开始且为奇长度,或从 1 开始且为偶长度 0()*1()*.f. w | w 不含子串 110 (010) *1*.g. w | w 的长度不超过 5 .h. w | w 是除 11 和 111 以外的任何字符 0*10*110*111*.i. w | w 的奇位置均为 1 (1)*( 1).j. w | w 至少含有 2 个 0,且至多含有 1 个 1 0*(00010001100) 0*.k. ,0. 0.l. w | w 含有偶数个 0,或恰好两个 1 (1*01*0)*1*0*10*10

11、*.m. 空集. .n. 除空串外的所有字符串 *.1.19 对下述每一个语言,给出 4 个字符串,2 个是这个语言的成员,2 个不是这个语言的成员。这里假设字母表 =a,b.a. a*b* 成员:ab ,aab 非成员:aba,bab. a(ba)* 成员:ab,abab 非成员:abb,aac. a*b* 成员:aaa ,bbb 非成员:ab,bad. (aaa)* 成员:aaa,aaaaaa 非成员:a ,aae.*a*b*a* 成员:aba,aaba 非成员:aa,abbf. ababab 成员:aba,bab 非成员:a,bg. (a)b 成员:b,ab 非成员:a ,bbh. (a

12、babb) * 成员:a,bb 非成员: ,b1.21 使用引理 2.32 中叙述的过程,把图 2-38 中的有穷自动机转换成正则表达式。a,bab12b12a a,baab123b123aba,bbba,baa1 23- 7 -a), b),解: a) a*b(aba*b)*b) (ab)a*b(aaabb)a*b*(a).(注:答案不唯一)1.29 利用泵引理证明下述语言不是正则的。a. A1=0n1n2n | n0。证明:假设 A1 是正则的。设 p 是泵引理给出的关于 A1 的泵长度。令 S=0p1p2p,S 是 A1 的一个成员且 S 的长度大于 p,所以泵引理保证 S 可被分成 3

13、 段 S=xyz 且满足泵引理的3 个条件。根据条件 3,y 中只含 0,xyyz 中,0 比 1、2 多,xyyz 不是 A1 的成员。违反泵引理的条件 1,矛盾。A 1 不是正则的。b. A2=www | wa,b*.证明:假设 A2 是正则的。设 p 是泵引理给出的关于 A2 的泵长度。令 S=apbapbapb,S 是 A2 的一个成员且 S 的长度大于 p,所以泵引理保证 S 可被分成 3 段 S=xyz 且满足泵引理的3 个条件。根据条件 3,y 中只含 a,所以 xyyz 中第一个 a 的个数将比后两个 a 的个数多,故 xyyz不是 A2 的成员。违反泵引理的条件 1,矛盾。A

14、 2 不是正则的。c. A3=a2n | n0.(在这里,a 2n 表示一串 2n 个 a .)证明:假设 A3 是正则的。设 p 是泵引理给出的关于 A3 的泵长度。令 S= a2p,S 是 A2 的一个成员且 S 的长度大于 p,所以泵引理保证 S 可被分成 3 段 S=xyz 且满足泵引理的3 个条件。即对任意的 i0,xy iz 都应在 A3 中,且 xyiz 与 xyi+1z 的长度都应是 2 的幂. 而且 xyi+1z的长度应是 xyiz 的长度的 2n 倍(n 1)。于是可以选择足够大的 i,使得|xy iz|=2np. 但是|xy i+1z|-|xyiz|=|y|p. 即|xy

15、 i+1z|0。由泵引理条件 3 知,|xy|p,故 y 一定由 0 组成,从而字符串 xyyz 中 1 前后 0 的数目不同,即 xyyz 不属于该语言,这与泵引理矛盾。所以该语言不是正则的。b) 假设0 n1n|n0的补集是正则的,则根据正则语言在补运算下封闭可得0 n1n|n0是正则的,这与已知矛盾,故假设不成立。所以该语言不是正则的。记 c=0m1n|mn,c 为 c 的补集,c0 *1*=0n1n|n0,已知0 n1n|n0 不是正则的。若 c 是正则的,由于 0*1*是正则的,那么c0 *1*也应为正则的。这与已知矛盾,所以 c 不是正则的。由正则语言在补运算下的封闭性可知 c 也

16、不是正则的。c) w | w0,1*不是一个回文 的补集是w | w0,1*是一个回文,设其是正则的,令 p 是由泵引理给出的泵长度。取字符串 s=0p1q0p,显然 s 是一个回文且长度大于 p。由泵引理条件 3 知|xy|p,故 y只能由 0 组成。而 xyyz 不再是一个回文,这与泵引理矛盾。所以w | w0,1*是一个回文不是正则的。由正则语言在补运算下的封闭性可知w | w 0,1*不是一个回文也不是正则的。1.31 对于任意的字符串 w=w1w2wn,w 的反转是按相反的顺序排列 w 得到的字符串,记作 wR,即wR=wnw2w1。对于任意的语言 A,记 AR=wR | A证明:如

17、果 A 是正则的,则 AR 也是正则的。证明:因为 A 是正则语言,所以可以用 NFA 来表示该语言,现在来构造 AR 的 NFA,将 NFA A 中的接受态变为中间态,起始态变为接受态,再添加一新的起始态,并用 箭头连接至原来的接受态,其它所有的箭头反向。 经过变换后得到 NFA 变成描述 AR 的 NFA.1.32 令3 包括所有高度为 3 的 0 和 1 的列向量。 3 上的字符串给出三行 0 和 1 的字符串。把每一行看作一个二进制数,令B= w3* | w 最下面一行等于上面两行的和 例如,1/00/11/10/0q1 q2000001,010, , ,1113=, 而B B0011

18、00110001101- 10 -证明 B 是正则的。证明:由题设 B 的定义可知, w 上面两行之和减去下面一行结果为零,由此可设计 NFA M (Q, , , q0, F),其中= 3。Q=q 0,q1。q 0 状态表示上一次运算的进位为 0,q 1 状态表示上一次运算的进位为 1。 由下表给出:000001010011100101110111q0 q0 q0 q0 q1 q1 q0 q1 q1 q1F=q0状态图为:所以可知自动机 M 识别的是语言 BR,因此 BR 是正则的。由题 2-24 的结论可知 B 也是正则的。1.33 令2 包含所有高度为 2 的 0 和 1 的列。 2 上的

19、字符串给出两行 0 和 1 的字符串。把每一行看作一个二进制数,令C= w2* | w 下面一行等于上面一行的 3 倍 。证明 C 是正则的。可以假设已知问题 2.24 中的结果。证明:如下的 NFA 识别 CR:其中 q0 状态表示上一次运算的进位为 0,q1 状态表示上一次运算的进位为 1, q2 状态表示上一次运算的进位为 2。如下的 NFA 识别 C:其中状态 q0,q1,q2 分别表示目前读到的下面的数减上面的数的 3 倍余 0,1,2 的情况。, , ,2= 00 01 1110q0 q1001110101101000111100010, , , ,q0 q1 q200 11110

20、00110q0 q1 q200 1101101100, , ,2= 00 01 1110- 11 -1.34 令2 包含所有高度为 2 的 0 和 1 的列。 2 上的字符串给出两行 0 和 1 的字符串。把每一行看作一个二进制数,令D= w2* | w 上一行大于下一行 。证明 D 是正则的。证明:由题设可设计自动机 M=(Q, , , q, F),其中 Q=q1,q2,F=q 2,转移函数与状态图为:00011011q1 q1 q2 q1q2 q2 q2 q2 q21.35 设 2 与问题 2.26 中的相同。把每一行看作 0 和 1 的字符串,令 E=w2* | w 的下一行是上一行的反

21、转,证明 E 不是正则的。证明:假设 E 是正则的,令 p 是有泵引理给出的泵长度。选择字符串 s= 。于是 s 能够被划分为 xyz 且满足泵引理的条件。根据条件 3,y 仅能取包含 的部分,当添加一个 y 时,xyyz 不属于 E. 所以 E 不是正则的.1.36 令 Bn=ak | k 是 n 的整数倍 。证明对于每一个 n1, Bn 是正则的。证明:设字母表为a,则 an 是一正则表达式。所以,(a n)*也是正则表达式。由题意 Bn=(an)*,即 Bn可以用正则表达式表示。所以,B n 也是正则的。1.37 令 Cn=x | x 是一个二进制数,且是 n 的整数倍 。证明对于每一个

22、 n1, Cn 是正则的。证明:下面的 DFA 识别 Cn:( 正向读)M=( Q, 0,1 , , q0 , F ), 其中 Q0,1,2,,n-1,( i,1)=2i+1 mod n, ( i,0 )=( 2i mod n), i=0,1,2,,n-1,起始状态为 0, F0.这里 i 表示当前数 mod n 余 i.下面的 DFA 识别 CnR:(反向读 )M=( Q, 0,1 , , q0 , F ), 其中 Q(i,j)|i,j=0,1,2, ,n-1,(i,j),1)=( 2i mod n, (2i+j)mod n ), (i,j),0)=( 2i mod n, j ), i,j=

23、0,1,2,,n-1起始状态为(1,0), F (i,0) | i=0,1,,n-1.这里(i,j)表示当前数 mod n 余 j, 而下一位所表示单位数 mod n 余 i(例如,若读下一位将达到 k 位,则下一位所表示单位数为 10k-1).1.38 考虑一种叫做全路径 NFA 的新型有穷自动机。一台全路径 NFA M 是 5 元组 ( Q, , , q0, F). 如果q1 q200 11 0110 110010 ,10p 01p10- 12 -M 对 x*的每一个可能的计算都结束在 F 中的状态,则 M 接受 x。注意,相反的,普通的 NFA 只需有一个计算结束在接受状态,就接受这个字

24、符串。证明:全路径 NFA 识别正则语言。证明:一个 DFA 一定是一个全路径 NFA。所以下面只需证明,任意全路径 NFA,都有一个与之等价的 DFA。设有一全路径 NFA N=( Q, , , q0, F),构造一个新与 N 等价的全路径 NFA N1( Q 1, , 1, q0, F), 其中 Q1=Qs, sQ。对于任意 qQ1, a (q,a), q s, 且 (q,a) ;1(q,a) = s, q s, 且 (q,a) =;s, q=s.现在来构造一个与全路径 NFA N1 等价的 DFA M(Q 2, , 2, q1, F2). 其中1) Q2=Power(Q1), 即 Q1

25、的所有子集组成的集合 (也即 Q1 的幂集) ;2) 定义函数 E: Q2Q2 为:对任意 RQ2, ;,(rER3) q1=E(q0);4) 对于任意的 R 属于 Q2, a 属于 , .),(),(12aaRr5) F2= RQ2 | RF。综上所述,DFA 等价于全路径 NFA。1.40 如果存在字符串 z 使得 xz=y,则称字符串 x 是字符串 y 的前缀。如果 x 是 y 的前缀且 xy,则称 x 是 y的真前缀。下面每小题定义一个语言 A 上的运算。证明:正则语言类在每个运算下封闭。a) NOPREFIX(A)=A| 的任意真前缀都不是 A 的元素b)NOEXTEND(A)= A

26、| 不是 A 中任何字符串的真前缀证明:假设 DFA M=( Q, , , q0, F)识别语言 A。a) 构造 NFA N1=( Q, , 1, q0, F)识别语言 NOPREFIX(A)。其中,对任意 qF, a , ;,;,),()(1 aQqF所以,即 NOPREFIX(A)为正则语言,亦即正则语言类 A 在 NOPREFIX(A)运算下封闭。b) 构造 NFA N2=( Q, , , q0, F2)识别语言 NOEXTEND(A)。F 2 构造如下:对 M 中的任一接受状态 qi, 若存在一条从它出发到达某接受状态(含本身)的路径,则将状态 qi 改为非接受状态; 最后剩下的接受状

27、态集记为 F2. 所得的 NFA N2 即识别 NOEXTEND(A)。所以,NOEXTEND(A)为正则语言,亦即正则语言类 A 在运算 NOEXTEND(A)下封闭。1.48 证明:构造 NFA N 如下:01011011 001100 01- 13 -由于该 NFA 识别 D,故 D 是正则语言。1.50 参见练习 1.24 中给出的有穷状态转换器的非形式定义。证明不存在 FST 对每一个输入 w 能够输出wR,其中输入和输出的字母表为0,1。证明:假设存在一台 FST 对每个输入 w 能够输出 wR。则对于输入串 w1 =100, w2=101. 该 FST 可分别输出 w1R=001

28、,w 2R=101,于是对于它的起始状态和输入字符 1,会输出 1 和 0 两个不同字符,这与 FST 是确定性有穷自动机相矛盾。所以,不存在一台 FST 对每个输入 w 能够输出 wR。1.51证明: 1) 自反性。即对任意字符串 x,x Lx。这是因为对于每个字符串 z 均有 xz 和 xz 同时是或不是 L 的成员。2) 对称性。即对任意字符串 x 和 y, 若 xLy,则 yLx。这是因为若 xLy,则对于每个字符串 z, xz和 yz 同时是或不是 L 的成员,那么 yz 和 xz 同时是或不是 L 的成员, 于是 yLx。3) 传递性。即对任意字符串 x,y 和 z, 若 xLy

29、且 yLz,则 xLz。这是因为对任意字符串 u, 由xLy 知 xu 和 yu 同时是或不是 L 的成员, 由 yLz 知 yu 和 zu 同时是或不是 L 的成员, 所以 xu和 zu 同时是或不是 L 的成员 , 此即 xLz。综上所述, L 是自反的,对称的,传递的,所以是一个等价的关系。1.53 令 =0,1,+ ,=和ADD= x=y+z | x,y,z 是二进制整数,且 x 是 y 与 z 的和证明 ADD 不是正则的。证明:假设 ADD 是正则的。设 P 是泵引理给出的关于 ADD 的泵长度。令 s 为 1P=10P-1+1P-1。于是 s 能够被划分成 xyz,且满足泵引理的

30、条件。根据条件 3,y=1 i, i0. 所以 xyyz 为 1P+i=10P-1+1P-1ADD。故 ADD 不是正则的。1.54 证明:语言 F=aibjck | i,j,k0 且若 i=1,则 j=k满足泵引理的 3 个条件,虽然它不是正则的。解释这个事实为什么与泵引理不矛盾。证明:对任意正数 p1,设 S 是 F 中的一个成员且 S 的长度不小于 p。将 S 分成 3 段 S=xyz。(1) i=0,j=0. 此时 S=ck (k0)。取 x=, y=c, z=ck-1. 则对任意 i0, xyizF。(2) i=0,j0. 此时 S=bjck(j0, k0).取 x=, y=b, z

31、=bj-1ck. 则对任意 i0, xyizF。(3) i=1. 此时 S=abjck(j0, k0).取 x=, y=a, z=bjck. 则对任意 i0, xyizF。(4) i=2. 此时 S= a2bjck(j0, k0).取 x=, y=a2, z=bjck. 则对任意 i0, xyizF。(5) i2. 此时 S= aibjck(i3, j0, k0). 取 x=, y=a, z=ai-1bjck. 则对任意 i0, xyizF。综上所述,语言 F 满足泵引理的 3 个条件。这一事实不与泵引理矛盾是因为泵引理是正则语言的必要不- 14 -充分条件。1.55 求最小泵长度。a. 00

32、01*的最小泵长度为 4.因为对任何 s 若|s|=3 则 s 只含有 0,不能被抽取。若|s|4 时,把 s 划分为 x=000 y=1 z 为其余部分,则 xyiz0001*。b. 0*1*最小泵长度为 1.若|s|1 时,S 分两种情况:1 S 以 0 开头,令 x=, y=0, z 为其余则 xyiz0*1*.2 S 以 1 开头,令 x=, y=1, z 为其余则 xyiz0*1*.c. (01)*最小泵长度为 2.若|s|2 时,令 x=, y=01, z 为其余, 则 xyiz(01)*.d. 01,其最小泵长度为 3。因为语言中只有有限个字符串时,任何一个字符串都不能被抽取。所

33、以有限语言的泵长度为其最长字符串的长度加 1。此时没有比泵长度长的字符串,前提假所以命题真。e. ,其最小泵长度为 1.理由类似于 d 中所述。2.39 证明:设对于每一个 k1,A k= w | w 包含子串 1k-11*,下面证明 Ak 能被一台 k 个状态的 DFA识别,而不能被只有 k1 个状态的 DFA 识别。显然,A k 能被 k 个状态的 DFA M=(q1,q2,qk, 1, , q1, qk).识别, 其中(q i,1)=qi+1(i=1,2,k-1), (qk,1)=qk。假设 AK 可以被只有 k-1 个状态的 DFA M 1 识别。考虑这样一个输入串 s=1k-1,设

34、M 识别 s 的状态序列是 r1, r2,rk,由于 M 的状态只有 k-1 个,根据鸽巢原理,r 1,r2,rk 中必有两个重复的状态,假设是 ri=rj (0i1,存在 AK,使得 AK 能被 K 个状态的 DFA 识别,而不能被只有 k-1 个状态的DFA 识别。2.1 略。2.2 a. 利用语言 A=ambncn | m,n0和 A=anbncm | m,n0以及例 3.20,证明上下文无关语言在交的运算下不封闭。b. 利用(a)和 DeMorgan 律(定理 1.10),证明上下文无关语言在补运算下不封闭。证明:a.先说明 A,B 均为上下文无关文法,对 A 构造 CFG C1SaS

35、|T|TbTc|对 B,构造 CFG C2SSc|R|RaRb由此知 A,B 均为上下文无关语言。但是由例 3.20, AB=anbncn|n0不是上下文无关语言,所以上下文无关语言在交的运算下不封闭。b.用反证法。假设 CFL 在补运算下封闭,则对于(a) 中上下文无关语言 A,B, , 也为 CFL,且 CFL 对AB- 15 -并运算封闭,所以 也为 CFL,进而知道 为 CFL,由 DeMorgan 定律 AB,由此BABABAAB 是 CFL,这与 (a)的结论矛盾,所以 CFL 对补运算不封闭。2.3 略。2.4 和 2.5 给出产生下述语言的上下文无关文法和 PDA,其中字母表=

36、0,1。a. w | w 至少含有 3 个 1SA1A1A1AA0A|1A|b. w | w 以相同的符号开始和结束S0A0|1A1A0A|1A|c. w | w 的长度为奇数S0A|1AA0B|1B|B0A|1Ad. w | w 的长度为奇数且正中间的符号为 0S0S0|1S1|0S1|1S0|0e. w | w 中 1 比 0 多SA1AA0A1|1A0|1A|AA|f. w | w=wRS0S0|1S1|1|0g. 空集,1 1, 10, ,1 ,1 1,11,0,0,01,10,01,0,1,0,1,00,0,01,00,0,$ ,$1,1,10,0,1,$ ,$1,00,11,10,

37、0,01,10,0,$ ,$1,- 16 -SS2.6 给出产生下述语言的上下文无关文法:a 字母表a,b上 a 的个数是 b 的个数的两倍的所有字符串组成的集合。SbSaSaS|aSbSaS|aSaSbS| b语言a nbn|n0的补集。见问题 3.25 中的 CFG:SaSb|bY|TaTaT|bT|cw#x | w, x0,1*且 wR 是 x 的子串。SUVU0U0|1U1|WWW1|W0|#V0V|1V|dx 1#x2#x k|k1, 每一个 xia,b* , 且存在 i 和 j 使得 xix jR。SUVWUA|AaA|bA|#A|#VaVa|bVb|#B|#BaB|bB|#B|#

38、WB|2.8 证明上下文无关语言类在并,连接和星号三种正则运算下封闭。a. AB方法一:CFG 。设有 CFG G1(Q 1,R1,S1)和 G2=(Q2,R2,S2)且 L(G1)=A, L(G2)=B。构造 CFG G=(Q,R,S0),其中Q= Q1Q2S0, S0 是起始变元, R= R1R2S0 S1|S2.方法二:PDA 。设 P1=(Q1,1,1,q1,F1)识别 A,P 2=(Q1,2,2,q2,F2)是识别 B。则如下构造的 P=(Q,q0,F)识别 AB,其中1) Q=Q1Q2q0是状态集,2) 12,是栈字母表,3) q0 是起始状态,4) FF 1F2 是接受状态集,5

39、) 是转移函数,满足对任意 qQ, a,b(q,a,b)= .,)(,)(,221021elsbQbaq若若若b. 连接 AB方法一:CFG 。设有 CFG G1(Q 1,R1,S1)和 G2=(Q2,R2,S2)且 L(G1)=A, L(G2)=B。构造 CFG G=(Q,R,S0),其中Q= Q1Q2S0, S0 是起始变元, R= R1R2S0 S1S2.方法二:PDA 。- 17 -设 P1=(Q1,1,1,q1,F1)识别 A,P 2=(Q1,2,2,q2,F2)是识别 B,而且 P1 满足在接受之前排空栈(即若进入接受状态,则栈中为空)这个要求。则如下构造的 P=(Q,q1,F)识

40、别 AB,其中1) Q=Q1Q2 是状态集,2) 12,是栈字母表,3) q1 是起始状态,4) FF 1F2 是接受状态集,5) 是转移函数,满足对任意 qQ, a,b(q,a,b)= ., ,)(,)(, )(),( 222 112 1elsbQqbaqF 若若 若若c. A*方法一:CFG 。设有 CFG G1(Q 1,R1,S1),L(G 1)=A。构造 CFG G=(Q,R,S0),其中 Q= Q1 S0, S0 是起始变元,R= R 1S0S0S0|S1|.方法二:PDA 。设 P1=(Q1,1,1,q1,F1)识别 A,而且 P1 满足在接受之前排空栈 (即若进入接受状态,则栈中

41、为空)这个要求。则如下构造的 P=(Q,q1,F)识别 A*,其中1) Q=Q1q0是状态集,2) 1,是栈字母表,3) q0 是起始状态,4) FF 1q0是接受状态集,5) 是转移函数,满足对任意 qQ, a,b(q,a,b)=., ,)( )(, ,),(0111 1elsbaqqFbaQ若若 若 若2.9 证明在 3.1 节开始部分给出的文法 G2 中,字符串 the girl touches the boy with the flower 有两个不同的最左派生,叙述这句话的两个不同意思。a_a_girl_a_girl_a_girl_- 18 -a_girl_touches_ a_gi

42、rl_touches_a_girl_touches_a_girl_touches_the_a_girl_touches_the_boy_a_girl_touches_the_boy_a_girl_touches_the_boy_with_a_girl_touches_the_boy_with_a_girl_touches_the_boy_with_the_a_girl_touches_the_boy_with_the_flower含义是 :女孩碰这个带着花的男孩a_a_girl_a_girl_a_girl_a_girl_touches_a_girl_touches_a_girl_touches

43、_the_a_girl_touches_the_boy_a_girl_touches_the_boy_a_girl_touches_the_boy_with_a_girl_touches_the_boy_with_a_girl_touches_the_boy_with_the_a_girl_touches_the_boy_with_the_flower含义是: 女孩用花碰这个男孩2.10 给出产生语言 A=aibjck| i,j,k0 且或者 i=j 或者 j=k的上下文无关文法。你给出的文法是歧义的吗?为什么?解:下面是产生 A 的一个 CFG:SUV|ABUaUb|VcV|AaA|BbUc

44、|这个 CFG 是歧义的,因为字符串 abc 有如下两种不同的最左派生:SUVaUbVabVabcVabcSABaAVaVabVcabc2.11 给出识别 2.10 中语言 A 的下推自动机的非形式描述。解:其非形式描述为:- 19 -此 PDA 有两个非确定性的分支:一个分支先读 a,并且每读一个 a 将一个 a 推入栈中,当碰到 b 时,每读一个 b 从栈中弹出一个 a,若没有 a 可弹出则拒绝,最后读 c 且不改变栈中的内容,若此时栈为空则接受。另一个分支也是先读 a,但不改变栈中内容,当碰到 b 时,每读一个 b 将一个 b 推入栈中,再读 c, 每读一个 c 从栈中弹出一个 b,若没

45、有 a 可弹出则拒绝,若 c 读完后栈为空则接受。开始时,读输入串的字符,非确定性的选择一个分支运行,若有一个分支接受则接受,否则拒绝。2.14 设有上下文无关文法 G:STT|UU0U00|#T0T|T0|#a. 用普通的语言描述 L(G)。b. 证明 L(G)不是正则的。解: a. A=0i#0j#0k | i, j, k00i#02i | i0。b. 取 s=0p#02p, 则对于任意划分 s=xyz(|xy|p, |y|0), xynz=0p+i#02pA, 所以不是正则的。2.15 用定理 2.6 中给出的过程,把下述 CFG 转换成等价的乔姆斯基范式文法。ABAB|B|B00|解:添加新起始变元 S0, 去掉 BS0A S0AABAB|B| ABAB|AB|BA|B|B00| B00去掉 A, 去掉 ABS0A S0AABAB|AB|BA|B|BB ABAB|AB|BA|00|BBB00 B00去掉 S0A, 添加新变元S0BAB|AB|BA|00|BB S0VB|AB|BA|UU|BBABAB|AB|BA|00|BB AVB|AB|BA|UU|BBB00 BUUVBAU02.x 先说明如何把正则表达式直接转换成等价

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 中等教育 > 试题课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报