计算理论习题答案CHAP2new_第1页
计算理论习题答案CHAP2new_第2页
计算理论习题答案CHAP2new_第3页
计算理论习题答案CHAP2new_第4页
计算理论习题答案CHAP2new_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2 2 a 利用语言 A ambncn m n 0 和 A anbncm m n 0 以及例 3 20 证明上下文无关语言在交的运算下不封闭 b 利用 a 和 DeMorgan 律 定理 1 10 证明上下文无关语言在补运算 下不封闭 证明 a 先说明 A B 均为上下文无关文法 对 A 构造 CFG C1 S aS T T bTc 对 B 构造 CFG C2 S Sc R R aRb 由此知 A B 均为上下文无关语言 但是由例 3 20 A B anbncn n 0 不是上下文无关语言 所以上下文无 关语言在交的运算下不封闭 b 用反证法 假设 CFL 在补运算下封闭 则对于 a 中上下文无关语言 A B 也为也为 CFL 且 CFL 对并运算封闭 所以也为也为 CFL 进而知道ABBA 为为 CFL 由 DeMorgan 定律 A B 由此 A B 是 CFL 这与 a 的BA BA 结论矛盾 所以 CFL 对补运算不封闭 2 4 和 2 5 给出产生下述语言的上下文无关文法和 PDA 其中字母表 0 1 a w w 至少含有 3 个 1 S A1A1A1A A 0A 1A 1 1 1 0 1 1 b w w 以相同的符号开始和结束 S 0A0 1A1 A 0A 1A c w w 的长度为奇数 S 0A 1A A 0B 1B B 0A 1A d w w 的长度为奇数且正中间的符号为 0 S 0S0 1S1 0S1 1S0 0 1 1 1 0 0 0 1 1 0 0 1 0 1 0 1 0 0 0 0 1 0 0 0 e w w 中 1 比 0 多 S A1A A 0A1 1A0 1A AA f w w wR S 0S0 1S1 1 0 g 空集 S S 2 6 给出产生下述语言的上下文无关文法 a 字母表 a b 上 a 的个数是 b 的个数的两倍的所有字符串组成的集合 S bSaSaS aSbSaS aSaSbS b 语言 anbn n 0 的补集 见问题 3 25 中的 CFG S aSb bY Ta 1 1 1 0 0 1 1 0 0 1 1 1 0 0 0 1 1 0 0 1 T aT bT c w x w x 0 1 且 wR是 x 的子串 S UV U 0U0 1U1 W W W1 W0 V 0V 1V d x1 x2 xk k 1 每一个 xi a b 且存在 i 和 j 使得 xi xjR S S UVW U A A aA bA A V aVa bVb B B aB bB B W B 2 8 证明上下文无关语言类在并 连接和星号三种正则运算下封闭 a A B 方法一 CFG 设有 CFG G1 Q1 R1 S1 和 G2 Q2 R2 S2 且 L G1 A L G2 B 构造 CFG G Q R S0 其中 Q Q1 Q2 S0 S0是起始变元 R R1 R2 S0 S1 S2 方法二 PDA 设 P1 Q1 1 1 q1 F1 识别 A P2 Q1 2 2 q2 F2 是识别 B 则如下构造的 P Q q0 F 识别 A B 其中 1 Q Q1 Q2 q0 是状态集 2 1 2 是栈字母表 3 q0是起始状态 4 F F1 F2是接受状态集 5 是转移函数 满足对任意 q Q a b q a b 22 11 0 2 1 21 else bQq bQq baqq baq baq qq 若 若 若 b 连接 AB 方法一 CFG 设有 CFG G1 Q1 R1 S1 和 G2 Q2 R2 S2 且 L G1 A L G2 B 构造 CFG G Q R S0 其中 Q Q1 Q2 S0 S0是起始变元 R R1 R2 S0 S1S2 方法二 PDA 设 P1 Q1 1 1 q1 F1 识别 A P2 Q1 2 2 q2 F2 是识别 B 而且 P1满足在接受之前排空栈在接受之前排空栈 即若进入接受状态 则栈中为空 这个要求 则如下构造的 P Q q1 F 识别 A B 其中 1 Q Q1 Q2是状态集 2 1 2 是栈字母表 3 q1是起始状态 4 F F1 F2是接受状态集 5 是转移函数 满足对任意 q Q a b q a b 222 11 121 1111 else bQqbaq baFqbaq baFqqbaq bFQqbaq 若 若 若 若 c A 方法一 CFG 设有 CFG G1 Q1 R1 S1 L G1 A 构造 CFG G Q R S0 其中 Q Q1 S0 S0是起始变元 R R1 S0 S0S0 S1 方法二 PDA 设 P1 Q1 1 1 q1 F1 识别 A 而且 P1满足在接受之前排空栈在接受之前排空栈 即若进 入接受状态 则栈中为空 这个要求 则如下构造的 P Q q1 F 识别 A 其中 1 Q Q1 q0 是状态集 2 1 是栈字母表 3 q0是起始状态 4 F F1 q0 是接受状态集 5 是转移函数 满足对任意 q Q a b q a b 01 11 111 111 else baqqq baFqbaq baFqqbaq FQqbaq 若 若 若 若 2 9 证明在 3 1 节开始部分给出的文法 G2中 字符串 the girl touches the boy with the flower 有两个不同的最左派生 叙述这句话的两个不同意思 a a girl a girl a girl a girl touches a girl 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 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 k 0 且或者 i j 或者 j k 的上下文无关 文法 你给出的文法是歧义的吗 为什么 解 下面是产生 A 的一个 CFG S UV AB U aUb V cV A aA B bUc 这个 CFG 是歧义的 因为字符串 abc 有如下两种不同的最左派生 S UV aUbV abV abcV abc S AB aAV aV abVc abc 2 11 给出识别 2 10 中语言 A 的下推自动机的非形式描述 解 其非形式描述为 此 PDA 有两个非确定性的分支 一个分支先读 a 并且每读一个 a 将一个 a 推入栈中 当碰到 b 时 每读一个 b 从栈中弹出一个 a 若没有 a 可弹出则 拒绝 最后读 c 且不改变栈中的内容 若此时栈为空则接受 另一个分支也 是先读 a 但不改变栈中内容 当碰到 b 时 每读一个 b 将一个 b 推入栈中 再读 c 每读一个 c 从栈中弹出一个 b 若没有 a 可弹出则拒绝 若 c 读完后 栈为空则接受 开始时 读输入串的字符 非确定性的选择一个分支运行 若有一个分支接受则接受 否则拒绝 2 14 设有上下文无关文法 G S TT U U 0U00 T 0T T0 a 用普通的语言描述 L G b 证明 L G 不是正则的 解 a A 0i 0j 0k i j k 0 0i 02i i 0 b 取 s 0p 02p 则对于任意划分 s xyz xy p y 0 xynz 0p i 02p A 所以不是正则的 2 15 用定理 2 6 中给出的过程 把下述 CFG 转换成等价的乔姆斯基范式文法 A BAB B B 00 解 添加新起始变元 S0 去掉 B S0 AS0 A A BAB B A BAB AB BA B B 00 B 00 去掉 A 去掉 A B S0 AS0 A A BAB AB BA B BBA BAB AB BA 00 BB B 00B 00 去掉 S0 A 添加新变元 S0 BAB AB BA 00 BBS0 VB AB BA UU BB A BAB AB BA 00 BBA VB AB BA UU BB B 00B UU V BA U 0 2 x 先说明如何把正则表达式直接转换成等价得上下文无关文法 然后利用 问题 xxx 的结果 给出每一个正则语言都是上下文无关文法的一个证明 解 设有正则表达式 T 将其转化为上下文无关文法 1 首先添加 S T 且令 S 为起始变元 2 根据 T 的不同形式 按如下方式添加规则 若 T a 则在规则集中添加 T a 若 T 则在规则集中添加 T 若 T 则在规则集中添加 T T 若 T A B 则在规则集中添加 T A B 若 T A B 则在规则集中添加 T AB 若 T A 则在规则集中添加 T A 和 A AA 3 若有新添加的变元 则根据其所对应的表达式转第 2 步 直到没有新的 变元出现 下面来证明每一个正则语言都是上下文无关的 由正则语言与正则表达式的等价性可知 对于一个正则语言都存在一个 描述他的正则表达式 由前述讨论可知 这个正则表达式可转换为一个与之 等价的上下文无关的文法 因此 此正则语言能由这个上下文无关文法产生 所以正则语言是上下文无关的 2 18 a 设 C 是上下文无关语言 R 是正则语言 证明语言 C R 是上下文无 关的 b 利用 a 证明语言 A w w a b c 且含有数目相同的 a b c 证明 a 设 P Q1 1 q1 F1 是一个识别 C 的 PDA N Q2 2 q2 F2 是 识别 R 的一台 NFA 下面构造识别 C R 的 PDA 如下 S Q q0 F 1 Q Q1 Q2 是状态集 2 q0 q1 q2 是起始状态 3 F F1 F2 是接受状态集 4 是转移函数 满足对任意 q Q1 r Q2 a b q r a b q r c q 1 q a r c 2 r a b b A a b c anbncn n 0 若 A 是上下文无关的 则由 a 中命题知 anbncn n 0 也是上下文无关的 矛盾 2 26 证明 设 G 是一个 Chomsky 范式 CFG 则对任一长度 2 的字符串 w L G w 的任何派生恰好有 2n 1 步 证明 用数学归纳法 当 n 2 时 对于 Chomsky 范式 CFG 长度为 2 的字符 串必由 3 步派生 此时命题为真 假设当 2 n k 时命题为真 当 n k 1 时 对于长度为 k 1 的字符串 s s1s2 sk 1 存在 S0的一个直接派生 S0 AB 使得 A 产生子串 s1s2 sp B 产生子串 sp 1sp 2 sk 1 其中 1 p k 1 由归纳假设 A 产生子串 s1s2 sp需 要 2p 1 步派生 而 B 产生子串 sp 1sp 2 sk 1需要 2 k 1 p 1 步派生 因此 S0产生字符串 s 共需 2 k 1 1 步派生 即当 n k 1 时命题亦真 因此 由 G 产生长度为 n 2 的字符串需要 2n 1 派生 2 30 用泵引理证明下述语言不是上下文无关的 a 0n1n0n1n n 0 假设语言上下文无关 设 p 为泵长度 取 S 0p1p0p1p 由泵引理知 S 可以划 分为 uvxyz 且满足泵引理条件 考察子串 vxy 首先 它一定横跨 S 的中点 否则 若 vxy 位于 S 的前半段 由于 vxy p 则 uv2xy2z 中 1 将是后半段字 符串的第一个字符 即不可能是 0n1n0n1n的形式 同理 vxy 也不可能位于 S 后半段的位置上 但是 若 vxy 跨越 S 的中点时 将 S 抽取成 uxz 它形如 0p1i0j1p i j 不可能都为 p 即 uxz 不可能是 0n1n0n1n的形式 综上 可知 S 不能被抽取 因此 该语言不是上下文无关的 b 0n 02n 03n n 0 假设语言上下文无关 设 p 为泵长度 取 S 0p 02p 03p 由泵引理知 S 可以 划分为 uvxyz 且满足泵引理条件 考察子串 vxy 首先 v y 中不能有 否 则 S 抽取成 uxz 后 其中 个数 1 由条件 3 vxy 或者位于第 2 个 之前 或者位于第 1 个 之后 下面讨论这两种情况 此时 uv2xy2z 中第 3 部分 0 的个数保持不变 而前面部分的 0 的 个数至少有一个增加 因此 uv2xy2z 不在该语言中 此时 uv2xy2z 中第 1 部分 0 的个数保持不变 而第 2 3 部分 0 的 个数至少有一个增加 也有 uv2xy2z 不在该语言中 因此 该语言不是上下文无关的 c w x w x a b w 是 x 的子串 假设该语言上下文无关 设 p 为泵长度 取 S 0p1p 0p1p 由泵引理知 S 可 以划分为 uvxyz 且满足泵引理条件 显然 v y 中不包含 不然抽取后的 S uxz 中将不含 从而不在该语言中 子串 vxy 不能落在 的左侧 否则 uv2xy2z 中 左侧的字符串长度将大于右边 子串 vxy 不能落在 的右侧 否则 uxz 中 左侧的字符串长度也会大于右边 现在假设 x 则必存在不全为 0 的 i j 使得 vy 1i0j 下面分两种情况考 虑 j 0 则 uxz 0p1p i 0p j1p不在该语言中 j 0 则 uv2xy2z 中 左侧的字符串长度大于右边 不在该语 言中 因此 该语言不是上下文无关的 d x1 x2 xk k 2 每一个 xi a b 且存在 xi xj 假设该语言上下文无关 设 p 为泵长度 取 S apbp apbp 由泵引理知 S 可 以划分为 uvxyz 且满足泵引理条件 显然 v y 中不包含 不然抽取后的 S uxz 中将不含 从而不在该语言中 子串 vxy 不能落在 的左侧 否则 uv2xy2z 中 左侧的字符串长度将大于右边 子串 vxy 不能落在 的右侧 否则 uxz 中 左侧的字符串长度也会大于右边 于是 vxy 跨越 两侧 此时 S 经抽取成 uxz 后 具有 apbi ajbp的形式 其中 i j 不全为 p 因此 uxz 不在该语言中 综上该语言不是上下文无关的 2 34 考虑语言 B L G 其中 G 是练习 3 13 中给出的文法 定理 3 19 关于 上下文无关语的泵引理称存在关于 B 的泵长度 p p 的最小值等于多少 要求 给出证明 证明 p 的最小值为 4 令 D 0i 0j 0k i j k 0 E 0i 02i i 0 则 L G D E L G 中长度为 1 的字符串仅有 不能被抽取 L G 中长度为 2 的字符串仅有 也不能被抽取 D 中长度 3 的字符串必含有 0 所以一定可以被抽取 E 中长度 3 的字符串也可以被抽取 E 中没有长度等于 3 的字符串 只 需令 uvxyz 分别为 v 0 x y 00 u z 为两边其余的字符串即可 注意到此 时 vxy 4 但是泵长度不能等于 3 因为若 p 3 则要求 vxy 3 但是对于 E 中的 字符串来说 每在 左边抽取 1 个 0 则同时必须在 右边抽取 2 个 0 即 vy 3 又 x 必须包含 所以任何有效的抽取必有 vxy 4 综上所述 p 的最小值为 4 2 35 设 G 是一个含有 b 个变元的乔姆斯基范式 CFG 证明 如果 G 产生某个 字符串使用了至少 2b步的派生 则 L G 是无穷的 证明 设 G 产生字符串 S 需要至少 2b步 由于一个分支点 变元 对应一次派生 所以 S 的语 法树 至少有 2b个分支点 又由于在乔姆斯基范 式下 一个分支点至多有两个子分支点 这意味着 层数 n 的结点个数 2b 1 从而 的由分支点组 成的子树的高度大于等于 b 1 有一条路径上分 支点 变元 个数 b 1 由鸽巢原理 必有某个变元 R 在该路径上出现至少两次 不妨假设 R 出现在路 径上最下面的 b 1 个变元中 按上图所示 将 S 划分为 uvxyz 在每一个 R 的下面有一棵子树 它产生 S 的一部分 上面的 R

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论