基本图灵机及图灵机的构造技术0分.ppt

上传人:sh****n 文档编号:7429359 上传时间:2020-03-21 格式:PPT 页数:31 大小:376KB
返回 下载 相关 举报
基本图灵机及图灵机的构造技术0分.ppt_第1页
第1页 / 共31页
基本图灵机及图灵机的构造技术0分.ppt_第2页
第2页 / 共31页
基本图灵机及图灵机的构造技术0分.ppt_第3页
第3页 / 共31页
点击查看更多>>
资源描述
1 SchoolofComputerScience Technology BUPT 第五章图灵机 A Turing在1936年介绍了这样一个通用的计算模型 该模型具有以下两个性质该模型的每个过程都是有穷可描述的 过程必须是由离散的 可以机械执行的步骤组成 图灵机是计算机的一种简单数字模型 尽管简单 但它具有模拟通用计算机的计算能力 通过研究TM来研究递归可枚举集和部分递归函数为算法和可计算性研究提供了形式化描述工具 2 SchoolofComputerScience Technology BUPT 主要内容 TM的基本定义TM的格局TM接受的语言TM的构造技术TM的变形 重点 TM的定义 TM的构造 难点 TM的构造 3 SchoolofComputerScience Technology BUPT 读写头在每一时刻扫描带上的一个单元带有一个最左单元 向右则是无限的 带的每个单元可容纳一个带符号开始时 最左边n个单元装着输入 n 0 n为有限数 它是一个字符串 符号都选自 带符号 的一个子集 即所谓的 输入符号集合 余下的有穷个单元都存放空白符 它是一个特殊的带符号 但不是输入符号 图灵机的基本模型 4 SchoolofComputerScience Technology BUPT 在一个图灵机的动作中 图灵机根据带头 读写头 所扫描的符号和有限控制器的状态可能作改变状态在被扫描的带单元上重新写一个符号 以代替原来写在该单元上的符号 将带头向左或者右移一个单元 图灵机和双向有限自动机的区别 图灵机能改变它带上的符号 图灵机的工作机制 5 SchoolofComputerScience Technology BUPT 图灵机的形式化描述 有限状态集有限输入符号集有限带符号集转移函数开始状态特殊带符 空白符终态集合 q0 QT B TF Q 转移函数 Q Q L R 形式定义一个图灵机TM Turingmachine 是一个七元组M Q T q0 B F 6 SchoolofComputerScience Technology BUPT 函数示例 Q Q L R q ai p B L q p Q q ai p b R ai b 格局用w1qw2描述图灵机的瞬间工作状态q为M的当前状态 w1w2 w1w2是当前时刻从开始端 因为可写 到右边空白符号为止的内容当读写头已达到带的右端 则w1w2为读写头以左的内容 约定 w1qw2表示读写头正扫描w2的最左字符w2 则表示读写头正扫描一个空白字符 图灵机的函数与格局 7 SchoolofComputerScience Technology BUPT 图灵机的格局 给定图灵机M Q T q0 B F 定义格局之间的推导关系 M如下 1 设 q Xi p Y L 则有X1X2 Xi 1qXiXi 1 Xn MX1X2 Xi 2pXi 1Y Xn 但有如下两个例外 1 i 1时 qX1X2 Xn MqYX2 Xn 和 2 i n及Y B时 X1X2 Xn 1qXn MX1X2 Xn 2pXn 1B 2 设 q Xi p Y R 则有X1X2 Xi 1qXiXi 1 Xn MX1X2 Xi 1YpXi 1 Xn 但有如下两个例外 1 i n时 X1X2 Xn 1qXn MX1X2 Xn 1YpB 和 2 i 1及Y B时 qX1X2 Xn MBpX2 Xn 1Xn 8 SchoolofComputerScience Technology BUPT 图灵机接受的语言 L M T 且q0 1p 2 p F 1 2 图灵机接受的语言是输入字母表中这样一些字符串的集合 初始时 这些字符串放在M的带上 M处于状态q0 且M的带头处在最左单元上 这些字符串将使M进入某个终止状态 假定 当输入被接受时 图灵机将停止 没有下一个动作 9 SchoolofComputerScience Technology BUPT 任给图灵机M Q T q0 B F 以及输入字符串w T 试问 对于w M是否停机 停机是指图灵机不存在下一个移动步 move 结论图灵机的停机问题是不可解的 即不可判定的 结论任给图灵机M 很容易构造一个图灵机M 使得L M L M 并满足 如果w L M 则对于w M 接受w并一定停机 如果没有特别指出 总是假定图灵机到达终态 接受态 后一定停机 但是 对不能接受的字符串 图灵机可能永不停止 只要M还在某个输入上运行 我们无法知道是因为运行的时间不够长而没有被接受 还是根本就不会停机 图灵机的停机问题 10 SchoolofComputerScience Technology BUPT 图灵机举例 例1 设语言L anbn n 1 设计图灵机接受L 思路 最初带上为aa abb bBBB n个an个b首先用x替换M最左边的a 再右移至最左边的b用y替换之 左移寻找最右的x 然后右移一单元到最左的a 重复循环 如果 1 当在搜寻b时 M找到了空白符B 则M停止 不接受该串 此时 a的个数大于b的个数 2 当将b改为y后 左边再也找不到a 此时 若右边再无b 接受 若仍有b 则b的个数大于a的个数 不接受 11 SchoolofComputerScience Technology BUPT 例1L anbn n 1 q0 a q1 x R q0 y q3 y R q1 a q1 a R q1 y q1 y R q1 b q2 y L q2 a q2 a L q2 y q2 y L q2 x q0 x R q3 y q3 y R q3 B q4 B R 例 aabb的接收格局序列q0aabb xq1abb xaq1bb xq2ayb q2xayb xq0ayb xxq1yb xxyq1b xxq2yy xq2xyy xxq0yy xxyq3y xxyyq3B xxyyq4 12 SchoolofComputerScience Technology BUPT 对于输入字符串001122 该图灵机可以有如下推导步 q0001122 M Xq101122 M X0q11122 M X0Yq2122 M X0Y1q222 M X0Yq31Z2 M q3X0Y1Z2 M Xq00Y1Z2 M XXYYZq22 M XXYYq3ZZ M Xq3XYYZZ M XXq0YYZZ M XXYYq4ZZ M XXYYZq5Z M XXYYZZq5B M XXYYZZBq6B 例2L 0n1n2n n 1 13 SchoolofComputerScience Technology BUPT 转移图与转移表 14 SchoolofComputerScience Technology BUPT 作为整数函数计算机的图灵机 预备知识 图灵机除了作为语言接受器外 还可看作整数到整数的函数计算机 传统方法把整数表示成一进制整数i 0用字符串0i表示如果一个函数有k个自变量 i1 i2 ik 那么这些整数开始时被放在带上 并用1把他们分隔开 形如0i110i210i3 10ik如果图灵机停止 不论是否在一个接受状态上 且带上为0m 则f i1 i2 ik mf是被图灵机计算的k元函数如果f i1 i2 ik 对所有i1 i2 ik有定义 那么称f是一个全递归函数 全递归函数对应于递归语言 因为它总是被能停下来的图灵机所计算 所有常用的整数算术函数都是全递归函数 15 SchoolofComputerScience Technology BUPT 例3 设计图灵机求真减法 思路 1 用空白符B代替带上的最左端的02 右移至紧跟1后的0 将其改为13 左移找到B 将B之后的0改为B4 重复上述过程如果 1 右移找0时 遇到B 意味着m nBB B0m n 1 111 1n 1n个将后面n 1个1变为B 将左侧最后一个B变0 形如BB B00m n 1 BB Bn个n 1个这时 带上留下m n个0 即结果为m n 初始带0m10n 16 SchoolofComputerScience Technology BUPT 求真减法 续 2 M左移找不到0 意味着n m 形如BB B111 10 0m个m个n m个此时 用B替换所有剩余的1和0 17 SchoolofComputerScience Technology BUPT 例4 L 0m m 2n n 0 设计思路 对输入串w1 从左到右扫描带 隔一个消一个0 2 若带上只剩唯一一个0 接受 3 若带上不止一个0 且个数为奇数 拒绝 4 让读写头返回带的最左端 5 转第一步 18 SchoolofComputerScience Technology BUPT 识别L 0m m 2n n 0 的图灵机 19 SchoolofComputerScience Technology BUPT 课堂练习 设计一个状态数不超过3的图灵机 它能够接受语言L a a b 若假定T a b 两个状态的图灵机能否接受该语言 20 SchoolofComputerScience Technology BUPT 5 2图灵机的构造技术 在设计图灵机的过程中 写出 函数很麻烦 为了构造复杂的图灵机 需探讨图灵机的若干构造技术 并引入一些新的概念和工具 目的 设计时方便 但这些构造技术并未增加图灵机的功能 21 SchoolofComputerScience Technology BUPT 5 2 1 利用带存储区的状态 storageinthestate 此类图灵机M Q q0 B F 中 状态中可以包含一个具有有限个取值的存储单元 即状态集合为Q S T q a q S a T 其中q S通常表示控制状态 而a T通常表示数据元素 一般情况下 有限控制器内允许存储n个字符 即状态的第2个元素可存储n个字符 22 SchoolofComputerScience Technology BUPT 例 设计一个图灵机 读写头将扫视第一个字符存入有限控制器内 然后扫视整个带 若找不到与第一个相同的字符 则M接受该字符串 否则不接受 构造M Q a b a b B q0 B F 其中Q q0 q1 a b B q0 a q0 b q0 B q1 a q1 b q1 B 初态 q0 B 终态F q1 B 函数 q0 B a q1 a a R q0 B b q1 b b R 存第一个字符 q1 a b q1 a b R q1 b a q1 b a R 后面符号与第一个不等 继续右移 q1 a B q1 B B L q1 b B q1 B B L 进入终态 q1 B q1 a a q1 b b 遇到相同符号 无定义M停机 不接受 23 SchoolofComputerScience Technology BUPT 5 2 2多道 multipletracks 图灵机 把图灵机的输入带分成两层或多层 这样 原来的每一单元变成了上下两个或多个单元 对含有n层的输入带来说 读写头一次可同时读出并改写n个单元的字符 这样的图灵机称为n道机 24 SchoolofComputerScience Technology BUPT 例 多道图灵机 例 用三道机 检查某个数n n 2 是否为素数 书p196 思路 将被检查的数n以二进制形式写在输入带的第一道上 数的两端分别用 和 定界允许的输入符号为 B B 0 B B 1 B B B B 分别代表1 2 3带上的内容 检查方法 在第二道上写下一个二进制数2把第一道上的数复制到第三道上将第三道上的数减去第二道上的数 余数留在第三道上若余数为0 被检查的数不是素数若余数不为0 将第二道数加1 将第一道数复制到第三道 重复上述1 2 3 4过程当一 二道数相等时 该数时素数 25 SchoolofComputerScience Technology BUPT 5 2 3核对符 当用图灵机识别语言时 如果语言中存在有重复性或可逆性等类型的句子时 为了判定某个字符串是否属于语句中的句子 可以使用一个核对符 以此增加图灵机的灵活性 考虑用一个双道机 在第二道上使用核对符 在第一道上放要被检查的字符串 当字符串中某个字符一旦被核对以后 可以在第二道上对应位置写上核对符 26 SchoolofComputerScience Technology BUPT 例 核对符 例 设计一个图灵机M 能够识别语言 wtw w a b 思路 以t为分界符 一个一个比较 解 构造M Q T q0 B F 其中Q qi c i 1 2 9 c a b或B 状态第二元素可存储一个字符 T c B c a b或t 两道与一道不同的表示法 c Y c a b t或B Y B或 q0 q1 B F q9 B 空白符B在二道机下表示为 B B 27 SchoolofComputerScience Technology BUPT 例 核对符 28 SchoolofComputerScience Technology BUPT 核对符例 abtab的分析过程 q1 B abtab a q2 a btab ab q2 a tab abt q3 a ab ab q4 B tab a q5 B btab q6 B abtab a q1 B btab ab q2 b tab abt q3 b ab abta q3 b b abt q4 B ab a q5 B btab ab q7 B tab abt q8 B ab abta q8 B b 29 SchoolofComputerScience Technology BUPT 5 2 4移位 可以让图灵机具备移位的功能 即对输入带上的字符进行移位操作 当需要在输入带上留出一部分空间时 可将输入带上的非空白符右移若干单元 假设需要输入带上的非空白字符右移n个单元 则可让控制器状态的第二个元素具有存储n单元的功能 n是有限数 30 SchoolofComputerScience Technology BUPT 例 构造图灵机M 要求它将带上非空白符向移动两个单元 原带为abcdB 移后为zzabcdB设M Q T q0 B F Q q D1 D2 q q0 q1 且D1 D2 Dn 初始 q0 B B 终态 q1 B B 定义 q0 B B D1 q0 B D1 Z R q0 B D1 D2 q0 D1 D2 Z R q0 D1 D2 D3 q0 D2 D3 D1 R q0 Dn 1 Dn B q0 Dn B Dn 1 R q0 Dn B B q1 B B Dn L 对D B Z q1 B B D q1 B B D L 回到输入点 31 SchoolofComputerScience Technology BUPT 5 2 5子程序 subroutines 的设计 左上图的图灵机表示子程序copy 右上图的图灵机表示可以调用copy的主程序 完成两个正整数的乘法 初始时 带上的符号串形如0m10n1 而结束时 带上的符号串变为0mn
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!