(MIT6.045)自动机、可计算性和复杂性-图灵机

news2024/11/23 21:21:02

有穷自动机(FA)对有限存储量设备是比较好的模型,下推自动机对无限存储设备是较好的模型(但是其存储只能用后进先出的栈模式来使用。)这两个模型过于局限,不能作为通用模型。

图灵机

和FA相似,但是图灵机有无限的存储。图灵机可以作实际计算机做的所有事情。但是也有图灵机解不了的事情(这些问题就超越了计算的理论极限。)

图灵机模型使用无限长度的纸带作为无限存储,并且它具有可以读取,写入和移动磁带的读/写头。

开始时,纸带上只有输入字符串,纸带的其他部分都是空的。图灵机有读写头,可以在带子上左右移动。如果需要保存信息,它可能会将该信息写入纸带。要阅读书面消息,它可能会将读/写头移回消息所在的纸带位置。

机器不断计算,直到产生输出。机器事先设置为两种状态:接受或拒绝。如果进入这些状态中的任何一种,则会产生输出接受或拒绝。如果未进入任何接受或拒绝状态,则执行将继续且永不停止。

在这里插入图片描述

有穷自动机(FA)和图灵机的区别:

  1. 图灵机的带子可以写也可以读
  2. 读写头可以左右移动
  3. 带子无限长
  4. 在状态处于接受和拒绝时将立即停机

图灵机的形式定义

在这里插入图片描述
图灵机的输入是有限长的。

图灵机在很多情况下是“针对某个算法的”图灵机。根据问题和算法的不同,会出现解决各种问题的图灵机。

这里的算法,意味着状态转移函数 δ \delta δ的不同。

状态转移函数 δ \delta δ是映射:
(当前状态,纸带当前位置字母) → \rightarrow (下一个状态,纸带字母改写结果,读写头移动方向)

图灵机的格局:包括现在读写头的位置、当前的状态、当前纸带的内容。

我们可以基于格局对图灵机的计算进行形式化。如果图灵机可以合法地从格局C1一步到格局C2,则称格局C1产生格局C2。

起始格局(读写头在纸带最左端)、接受格局(接受状态)、拒绝格局(拒绝状态)。

图灵机M接受的所有字符串全体成为M的语言,记为L(M)。

定义: 如有图灵机识别(接受)一个语言,那么称此语言是图灵可识别的。

图灵机在跑的时候,可能在有限步后接受或者拒绝,也可能无限地运行下去而不停机(称为循环,但是和for/while之类的循环不同,它只是不停机)

于是我们更喜欢对所有输入都停机的图灵机,称其为判定器(不会陷入循环的图灵机)。

定义: 语言是可判定的,如果有图灵机判定它。

可判定 => 可识别,但是可识别不一定意味着可判定。

可判定和可识别性的区别。比如,给定一个单变量多项式 p p p,计算它有无整数根。那么图灵机可依次考察0,1,-1,2,-2,…来找整数根。这意味着,它确实可以识别出整数根,但是没有整数根的话,这个算法就得无休无止地跑。

图灵机的变形

  1. 多带图灵机:有多个带子,每个带子有自己的读写头。起始输入在第一个带子上。可以通过对纸带进行映射完成等价性证明。
  2. 非确定性图灵机:可以类比DFA和NFA。等价性的证明可以考虑对格局变化的广度优先搜索。
  3. 枚举器:带有打印机的图灵机。枚举器就是不断地输出语言中的所有串。

计算模型之间的普遍等价性

无限制访问无限的存储器,有这个特点的模型在计算能力上都是等价的,只需要满足一些合理的必要条件。

什么是算法:Church - Turing 论题

这两个人给出了算法的定义。其中,Church给出了 λ \lambda λ演算方法,Turing给出了图灵机。这两个定义是等价的。

在接下来的内容中,我们不去思考图灵机的基本构建,可以直接认为算法能用图灵机实现。

算法的可判定性问题

可判定语言

在这里插入图片描述

停机问题

有一些问题是计算机不能解(不可判定)的。

典型的例子是:给定一个图灵机和一个串,判断图灵机是否接受这个串。这个问题是不可判定的。

首先,这个问题是可以识别的。我们只需要模拟这个图灵机的状态演变。
这么做的话,确实可以把接受、拒绝态完成。问题是,如果进入循环,他就不停机了。如果它知道自己不停机,那么它可以拒绝串。问题是它不知道

这样的模拟用图灵机称为通用图灵机,可以模拟任何其他图灵机的行为。

集合的势(元素个数)

对于有限元素的集合,很容易判断他们的元素个数(称为势)是否相等。显然,3元素集的元素个数小于5元素集。

对于无限元素集,通过能否构造双射判断是否等势。

比如,整数集和有理数集等势,记其势为 ℵ 0 \aleph_0 0

实数集和有理数集不等势,记其势为 ℵ \aleph

2 ℵ 0 = ℵ 2^{\aleph_0} = \aleph 20=。其证明思路是考虑区间[0,1)中所有数的二进制编码。

通过幂的构造方式,可以证明没有最大的势。此即,假设集合A的势为 c c c,则 2 c > c 2^c > c 2c>c

推论: 存在语言不是图灵可识别的。

证明. 所有图灵机构成的集合是可数的。在这里插入图片描述
或者可以考虑给图灵机进行序列化,具体地,对七元组里的东西进行序列化,可以得到图灵机的编码(有限长度编码)。它是二进制自然数的子集。

但是,语言数是不可数的,因为 2 ℵ 0 = ℵ 2^{\aleph_0} = \aleph 20=

停机问题是不可判定的

首先,定义停机问题
A T M = { < M , w > ∣ M 为图灵机, M 接受 w } A_{TM} = \{<M, w> | M为图灵机,M接受w\} ATM={<M,w>M为图灵机,M接受w}
其中, < > <> <>代表某种编码。

这个问题是不可判定的。

证明 假设可判定,则存在图灵机 H H H可以判定 A T M A_{TM} ATM。此即
H ( < M , w > ) = a c c e p t , M H(<M, w>) = accept,M H(<M,w>)=acceptM accepts w w w
H ( < M , w > ) = r e j e c t , M H(<M, w>) = reject,M H(<M,w>)=rejectM rejects w w w

构造一个新的图灵机 D D D,它包含了 H H H的逻辑。具体地, D D D的输入为图灵机的编码 < M > <M> <M>
D ( < M > ) = a c c e p t D(<M>) = accept D(<M>)=accept, if H ( < M , < M > > ) = r e j e c t H(<M, <M>>) = reject H(<M,<M>>)=reject
D ( < M > ) = r e j e c t D(<M>) = reject D(<M>)=reject, if H ( < M , < M > > ) = a c c e p t H(<M, <M>>) = accept H(<M,<M>>)=accept

于是当M=D时即为矛盾。

注. 这个做法就像罗素的理发师悖论。理发师说:“我给且仅给不给自己理发的人理发”。于是这个理发师如果不给自己理发,那么他就给自己理发。如果他给自己理发,那么他不给自己理发。

一个图灵不可识别语言

**定理. **一个语言是可判定的,当且仅当它是图灵可识别的,也是补图灵可识别的(补集也是图灵可识别的)。

这就把所有循环的情况排除掉了。证明思路是,考虑用两个图灵机并行地判定语言集和其补。

于是,停机问题的补不是图灵可识别的。

可归约性

略,准备看看P和NP问题之后再回来补…

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/628366.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

中央商务区对区域空间结构的影响机制

中央商务区&#xff08;CBD&#xff09;是经济发展到一定阶段后的必然产物&#xff0c;它已经成为城市或国家最重要的经济增长驱动器。中央商务区的形成过程本身即是区域空间结构的变化过程&#xff0c;经济活动在空间上的集聚与分散形成各类产业的集聚体&#xff0c;区域经济活…

ROS学习——通信机制(话题通信①—发布方实现)

2.1 话题通信 Autolabor-ROS机器人入门课程《ROS理论与实践》零基础教程 040话题通信(C)1_发布方框架_Chapter2-ROS通信机制_哔哩哔哩_bilibili 一、ROS 中的基本通信机制主要有如下三种实现策略 话题通信(发布订阅模式服务通信(请求响应模式)参数服务器(参数共享模式) 二、…

引领618首波爆发!实在RPA数字员工与海尔等品牌共赢全域增量

作为全面放开之后的首个现象级电商大促&#xff0c;今年618的重要性不言而喻。如何在“毛遂自荐”的大促秀场中&#xff0c;满足甚至超过消费者购物需求&#xff0c;成为每个品牌商家的必修课。 疫情的催化和直播间强互动属性&#xff0c;越来越多消费者倾向直播购物&#xff0…

在通讯方面对讲机比微信更有优势吗?

对讲机和微信属于不同的通信工具&#xff0c;它们在某些方面都有着各自的优势。那么在通讯方面对讲机比微信更有优势吗&#xff1f;下面河南宝蓝小编为大家详细介绍下。 一、即时与实时通信&#xff1a; 对讲机作为一种即时通信工具&#xff0c;能够立即与其他用户进行实时语…

vue项目中el-upload 组件添加token的方法

在使用el-upload的时候&#xff0c;上传文件到服务器&#xff0c;有时候后台要求上传token&#xff0c;怎么处理呢&#xff1f;以下是一个示例。 效果图 template中片段 <el-dialog :modal-append-to-body"false" title"上传文件" :visible.sync"…

轻巧舒适的挂耳式耳机,更轻更好听,塞那Z30S Pro Max上手

入耳式的蓝牙耳机戴久了&#xff0c;总感觉很不舒服&#xff0c;现在市面上又有了很多设计新颖的耳机类型&#xff0c;像是我上周新换的这款sanag塞那Z30S Pro Max&#xff0c;就是一种不入耳的开放式耳机&#xff0c;做得还十分轻巧&#xff0c;带来了更加舒适的佩戴体验&…

调试记录-USB异常断开调试

问题描述 平台&#xff1a;rk3228 android7.1 问题&#xff1a;板子上有一个USB 4G模块&#xff0c;模块不是用标准的USB接口&#xff0c;而是M2接口。接着4G模组开机是可以正常工作的&#xff0c;但是只要点开任意一个app&#xff0c;就会出现设备断开&#xff0c;之后再重新…

怎么登录远程轻量云服务器?

​  轻量云服务器是一种基于云计算技术的服务器&#xff0c;具有价格低廉、配置灵活、易于管理等优点。但是&#xff0c;由于轻量云服务器通常是在云端运行&#xff0c;需要通过远程连接才能进行管理和操作。那么&#xff0c;怎么登录远程轻量云服务器呢? 要远程连接轻量云服…

Linux--ServerProgramming--(7)IPC

1.管道 2.信号量 2.1 概念 信号量 是一个计数器&#xff0c;用于实现进程间互斥和同步。 信号量的取值可以是任何自然数。 最简单的信号量是只能取 0 和 1 的变量&#xff0c;这也是信号量最常见的一种形式&#xff0c;叫做二进制信号量&#xff08;Binary Semaphore&#…

Docker Cgroups资源控制操作

资源控制 Docker 通过 Cgroup 来控制容器使用的资源配额&#xff0c;包括 CPU、内存、磁盘三大方面&#xff0c; 基本覆盖了常见的资源配额和使用量控制。 Cgroup 是 ControlGroups 的缩写&#xff0c;是 Linux 内核提供的一种可以限制、记录、隔离进程组所使用的物理资源(如…

vm安装,虚拟环境搭建win+linux+mac,及本机连接虚拟环境数据库、windows服务器搭建、内网穿透

教程中的软件、镜像、工具可去阿里云盘提取&#xff1a; 阿里云盘&#xff1a;https://www.aliyundrive.com/s/CLdTjFtnYbr 提取码&#xff1a;s1a8 一、安装虚拟机 下载链接&#xff1a;https://www.vmware.com/products/workstation-pro.html 下载的过程中可能需要注册登录…

经典的设计模式5——建造者模式

文章目录 建造者模式 建造者模式 截止到今天&#xff0c;创建者模式这一类别的模式已经全整理完了&#xff0c;一共包含5个&#xff0c;工厂方法模式&#xff0c;抽象工厂模式&#xff0c;单例模式&#xff0c;原型模式和建造者模式。还是太看的太慢&#xff0c;得加快进度了。…

黑客零基础入门方法有哪些?如何自学黑客技术?

大家经常问我一个问题&#xff0c;黑客零基础入门方法有哪些&#xff1f;以及如何自学黑客技术&#xff1f;首先要说的是世界上大部分的网络黑客都是自学成才的&#xff0c;这与黑客这门技术有很大的原因&#xff0c;黑客是一个靠兴趣驱动的技术&#xff0c;大部分成为黑客的人…

字节面试归来,黑暗3小时......

背景 杭州某中厂的软件测试开发&#xff0c;本科毕业5年&#xff0c;最近面试了PDD、小红书、字节等多个大厂。几乎都拿到了Offer&#xff0c;最终选择了字节2-2。以下是他的一些分享和总结。 从准备看机会开始&#xff0c;一直到拿到offer&#xff0c;经历了2个月的时间&…

探索未来,畅享奇迹——3DVR智慧景区引领旅游革命

导语&#xff1a; 在快速发展的科技时代&#xff0c;我们正逐渐进入一个全新的旅游体验时代。3DVR智慧景区作为旅游业的革命性创新&#xff0c;为游客带来了前所未有的沉浸式体验&#xff0c;同时也为景区管理者带来了无限的营销机遇。 通过穿戴VR设备&#xff0c;游客能够在虚…

vue项目中el-tree 添加右键菜单的方法

vue项目中&#xff0c;如何在el-tree 中显示右键菜单呢&#xff1f;这里的核心用到了 node-contextmenu“rightClick” &#xff0c;具体的操作方法如下&#xff1a; 核心分析 node-contextmenu是el-tree一重要的属性&#xff0c; 当某一节点被鼠标右键点击时会触发该事件。共…

Sui Builder House日本京都站开启报名

下一站Sui Builder House将于6月29-30日在日本京都举行&#xff0c;为世界各地的开发者提供身临其境地学习和交流的机会。 春日的樱花已经绽放&#xff0c;黄金周也已经过去&#xff0c;现在是时候来京都参加Sui Builder House一起庆祝夏天的来临了。来自日本和周边地区的开发…

Java 常量池:静态常量池 动态常量池 字符串池

Java 常量池相关内容 Java 常量池概念分类&#xff1a;静态常量池、动态常量池、字符串常量池&#xff08;由于jdk1.7之后字符串常量池从运行时常量池分离到堆中&#xff09; 静态常量池 class 文件中CLass文件中除了有类的版本、字段、方法、接口等描述信息外&#xff0c;还有…

【C++】C++的类型转换

文章目录 1、C语言中的类型转换2、为什么C需要四种类型转换3、C强制类型转换&#xff08;重点&#xff09;3-1、static_cast3-2、reinterpret_cast3-3、const_cast3-4、dynamic_cast 4、RTTI&#xff08;了解&#xff09;5、常见面试题6、总结 1、C语言中的类型转换 在C语言中&…

选择合适的数据库引擎:InnoDB vs. MyISAM - 你的终极指南!

大家好&#xff0c;我是小米&#xff0c;一个热衷于技术分享的29岁程序员。今天&#xff0c;我将带大家一起探讨一下MySQL中两种常见的存储引擎&#xff1a;InnoDB和MyISAM。它们之间有许多差异&#xff0c;了解这些差异对于我们在选择合适的存储引擎时至关重要。废话不多说&am…