计算理论习题答案CHAP1newedit
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
练习
1.1 图给出两台DFA M 1和M 2的状态图. 回答下述有关问题.
a. M 1的起始状态是q 1
b. M 1的接受状态集是{q 2}
c. M 2的起始状态是q 1
d. M 2的接受状态集是{q 1,q 4}
e. 对输入aabb,M 1经过的状态序列是q 1,q 2,q 3,q 1,q 1
f. M 1接受字符串aabb 吗?否
g. M 2接受字符串ε吗?是
1.2 给出练习
2.1中画出的机器M 1和M 2的形式描述.
M 1=(Q 1,Σ,δ1,q 1,F 1) 其中
1)Q 1={q 1,q 2,q 3,};
2)Σ={a,b};
3
415)F 1={q 2}
M 2=(Q 2,Σ,δ2,q 2,F 2) 其中
1)Q 2={q 1,q 2,q 3,q 4};
2)Σ={a,b};
3
324)F 2={q 1,q 4}
1.3 DFA M 的形式描述为 ( {q 1,q 2,q 3,q 4,q 5},{u,d},δ,q 3,{q 3}),其中δ在表2-3中给出。试画出此机器的状态图。
d
1.6 画出识别下述语言的DFA 的状态图。
a){w | w 从1开始以0结束}
b){w | w 至少有3个1}
c) {w | w 含有子串0101}
d) {w | w 的长度不小于3,且第三个符号为0}
e) {w | w 从0开始且为奇长度,或从1开始且为偶长度}
或
f) {w | w 不含子串110}
g) {w | w 的长度不超过
5}
h){w | w 是除11和111以外的任何字符}
i){w | w 的奇位置均为1}
j) {w | w 至少含有2个0,且至多含有1个1}
k) {ε,0}
l) {w | w 含有偶数个0,或恰好两个1}
0,1 1
m) 空集 n) 除空串外的所有字符串
1.7 给出识别下述语言的NFA ,且要求符合规定的状态数。
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. 语言{ε},1个状态。
g. 语言0*,1个状态。
2.11证明每一台NFA 都能够转换成等价的只有一个接受状态的NFA 。
证明:设NFA M={Q ,Σ,δ,q 0,F},F={r i1,……,r ik }.添加一个状态p 后,r i1,……,r ik 分别向p 引ε箭头,将r i1,……,r ik 变为非接受状态,p 变为接受状态。又因为添
加ε箭头不影响NFA 识别语言,所以命题成立。
2.14 a 证明:设M 是一台语言B 的DFA ,交换M 的接状态与非接受状态得到一台新的DFA ,则这台新的DFA 是识别B 的补集,因此,正则语言类受在补运算下封闭。
b 举例说明:设M 是一台识别语言B 的NFA ,交换M 的接受状态与非接受状态得到一台新的NFA ,这台新的NFA 不一定识别B 的补集。NFA 识别的语言类在补集下封闭吗?解释你的回答。
解:
a. M 是DFA, M 是{Q,∑,δ,q 0,F},令N={Q,∑,δ,q 0,Q-F},设ω=ω1ω2…ωn 是字母表上任意字符串,因为M 与N 均为DFA,所以必然存在Q 中状态序列r 0,r 1,…,r n ,使得:r 0=q 0, δ(r i , ωi+1)=r i+1, i=0,…,n-1
1)若r n ∈F 则ω∈B;
2)若r n ∉F,则r n ∈Q-F,即N 接受ω,若ω∉B,
所以N 接受B 的补集,即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 的补集。只是,该NFA 未必有原NFA 交换接受与非接受状态构造而成。
1.15 给出一个反例,说明下述构造不能证明定理
2.24,即正则语言类在星号运算下封闭。设N=(Q 1,Σ,δ1,q 1,F 1)识别A 1。如下构造N=(Q 1,Σ,δ1,q 1,F 1)。N 应该识别A 1*。
a. N 的状态集是N 1的状态集。
b. N 的起始状态是N 1的起始状态相同。
c. F={q 1}∪F 1。F 的接受状态是原来的接受状态加上它的起始状态。
d. 定义δ如下:对每一个q 属于Q 和每一个a 属于Σ。
⎩⎨⎧≠∈⋃≠∉=ε
δεδδa F q q a q a F q a q a q },{),( ),,(),(11111且若或若
解:设N 1识别语言A={至少含有一个1},其中输入字母表为{0,1},可知A *={空串或至少含有一个1}。
N 1:
N:
所以如此构造的N 不一定识别A *.
1.16 使用定理
2.19中给出的构造,把下图中的两台非确定型有穷自动机转换成等价的确定型有穷自动机。
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} Σ*0101Σ*.
d. {w | w 的长度不小于3,且第三个符号为0} ΣΣ0Σ*.
e. {w | w 从0开始且为奇长度,或从1开始且为偶长度} 0(ΣΣ)*⋃1Σ(ΣΣ)*.
f. {w | w 不含子串110} (0⋃10) *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*(00⋃010⋃001⋃100) 0*. k. {ε,0}. ε⋃0.
l. {w | w 含有偶数个0,或恰好两个1} (1*01*0)*1*⋃0*10*10*.
m. 空集. ∅.
n. 除空串外的所有字符串ΣΣ*.
a,b b