【计算理论】计算复杂性 ( 两个带子的图灵机的时间复杂度 )
文章目录
- 一、两个带子的图灵机的时间复杂度
一、两个带子的图灵机的时间复杂度
讨论两个带子的图灵机的时间复杂度 ;
计算问题如下 :
给定语言 : A={0k1k:k≥0}\rm A = \{ 0^k1^k : k \geq 0 \}A={0k1k:k≥0}
构造 两个带子的 图灵机 M3\rm M_3M3 认识上述语言 ;
算法分析过程 : 假设字符串为 000111000111000111 , 最坏的情况 ;
开始时的状态 : 第一个带子是 000111000111000111 输入字符 , 第二个带子是空的 ;
第一步 : 读头一 读取 带子一 字符 000 , 读头二 将 000 字符写入到 带子二 中 ;
第二步 : 读头一 读取 带子一 字符 000 , 读头二 将 000 字符写入到 带子二 中 ;
第三步 : 读头一 读取 带子一 字符 000 , 读头二 将 000 字符写入到 带子二 中 ;
第四步 : 读头一 读取 带子一 字符 111 , 读头二 将 000 字符从当前带子中抹掉 ;
第五步 : 读头一 读取 带子一 字符 111 , 读头二 将 000 字符从当前带子中抹掉 ;
第六步 : 读头一 读取 带子一 字符 111 , 读头二 将 000 字符从当前带子中抹掉 ; 此时带子一读取完毕 , 带子二为空 , 此时进入接受状态 ;
M3\rm M_3M3 是两个带子的图灵机 , 算法设计如下 :
M3=\rm M_3 =M3= " 在输入字符串 w\rm ww 上进行如下计算 :
① 扫描整个带子上的字符串 , 查看 000 和 111 的顺序 , 所有的 000 必须在所有的 111 前面 ; 如果顺序错误 , 进入 拒绝状态 ;
② 扫描 带子一 上的 000 字符 , 直到遇到 111 字符 , 同时将 000 拷贝到 带子二 中 ;
③ 扫描 带子一 上的 111 字符 , 直到字符串结束 , 每读取一个 111 字符 , 就删除 带子二 中的 000 字符 ;
④ 如果所有的 000 字符都被删除 , 带子一 中的 111 字符还没有读取完毕 , 进入 拒绝状态 ; 如果 带子一 中的字符读取完毕 , 带子二 中还有 000 字符剩余 , 进入 拒绝状态 ; 如果 带子二 中的 000 字符都被删除 , 带子一 正好读取完毕 , 进入 接受状态 ; "
计算上述算法的时间复杂度 :
首先检查 010101 的相对顺序 , 最坏的情况下是读头走 n\rm nn 步 , 其复杂度是 O(n)\rm O(n)O(n) ;
然后读取带子一 然后写入擦除带子二 操作 , 整体执行了 n\rm nn 步 , 的时间复杂度是 O(n)\rm O(n)O(n)
上述两个步骤的时间复杂度是 : O(n)+O(n)=O(n)\rm O(n) + O(n) = O(n)O(n)+O(n)=O(n)
在 【计算理论】计算复杂性 ( 小 O 记号 | 严格渐进上界 | 分析算法的时间复杂度 ) 博客中 , 使用一个带子的图灵机 M1\rm M_1M1 识别上述语言 , 时间复杂度是 O(n)+O(n2)=O(n2)\rm O(n) + O(n^2) = O(n^2)O(n)+O(n2)=O(n2) ;
两个带子的图灵机 与 一个带子的图灵机 计算能力 是等价的 ,
计算能力 等价 指的是 可以 识别相同的语言 , 解决相同的计算问题 ,
但是两种图灵机的 计算效率不同 , 两个带子的图灵机计算效率一般 高于 一个带子的图灵机的计算效率 ;
【计算理论】计算复杂性 ( 两个带子的图灵机的时间复杂度 )相关推荐
- 【计算理论】计算复杂性 ( 两个带子的图灵机的时间复杂度 | 证明多个带子图灵机时间复杂度 )
文章目录 一.确定性模型的计算复杂性关系 二.证明 "多个带子图灵机时间复杂度是 O(n2)\rm O(n^2)O(n2)" 一.确定性模型的计算复杂性关系 计算的 复杂性 取决于 ...
- 【计算理论】计算复杂性 ( 证明 非确定性图灵机 与 确定性图灵机 的时间复杂度 之间的指数关系 )
文章目录 证明 非确定性图灵机 与 确定性图灵机 的时间复杂度 之间的指数关系 证明 非确定性图灵机 与 确定性图灵机 的时间复杂度 之间的指数关系 在上一篇博客 [计算理论]计算复杂性 ( 非确定性 ...
- 【计算理论】计算复杂性 ( 非确定性图灵机的时间复杂度 | 非确定性图灵机 与 确定性图灵机 的时间复杂度 之间的关系 )
文章目录 一.非确定性图灵机的时间复杂度 二.非确定性图灵机 与 确定性图灵机 的时间复杂度 之间的指数关系 一.非确定性图灵机的时间复杂度 给定一个非确定性图灵机 , 该图灵机是 判定机 , 在所有 ...
- 【计算理论】图灵机 ( 多个带子的图灵机 | 计算能力对比 | 证明过程 | 一个带子图灵机 )
文章目录 一.多个带子的图灵机 二.证明过程设计 三.模仿操作 四.模仿带子排列 五.模仿读写头操作 一.多个带子的图灵机 多个带子的图灵机 指的是 图灵机不止一个带子 , 下图是 333 个带子的图 ...
- 【计算理论】计算复杂性 ( NP 类不同表述 | 团问题 | P 对 NP 问题 )
文章目录 一.NP 类不同表述 二.团问题 三.P 对 NP 问题 ( P vs NP ) 一.NP 类不同表述 NP\rm NPNP 对应的 确定性图灵机 表述 : NP\rm NPNP 类就是有 ...
- 【计算理论】计算复杂性 ( P 类 | 有效算法函数 | NP 直觉 | NP 简介 | NP 类严格数学定义 )
文章目录 一.P 类 二.有效算法函数 三.NP 直觉 四.NP 简介 五.NP 严格数学定义 一.P 类 时间复杂度类 : 定义 时间复杂度类 TIME(t(n))\rm TIME( t(n) )T ...
- 【计算理论】计算复杂性 ( 多项式等价 | P 类 | 丘奇-图灵论题延伸 )
文章目录 一.多项式等价 二.P 类 三.丘奇-图灵论题延伸 一.多项式等价 多项式等价 : 所有的 确定性的计算模型 之间是 相互等价 的 , 两个带子图灵机 与 单个带子图灵机 , 计算相同的问题 ...
- 【计算理论】计算复杂性 ( 时间复杂度时间单位 : 步数 | 算法分析 | 算法复杂性分析 )
文章目录 一.时间复杂度时间单位 二.算法分析 三.算法复杂性分析 一.时间复杂度时间单位 图灵机计算时间 是根据 步数 进行定义的 , 图灵机走 111 步 , 时间加一 , 每一步的时间可能不一致 ...
- 【计算理论】计算复杂性 ( 计算理论内容概览 | 计算问题的有效性 | 时间复杂性度量 | 输入表示 | 时间复杂度 )
文章目录 一.计算理论内容概览 二.计算问题的判定性 三.计算问题的 有效性 四.时间复杂性度量 五.算法有效性 数学定义需求 六.输入表示 七.时间复杂度 一.计算理论内容概览 计算理论分为 形式语 ...
最新文章
- mysql服务器的启动方式有哪几种_Mysql启动的方式(四种)
- 利用抽象工厂创建DAO、利用依赖注入去除客户端对工厂的直接依赖、将有关Article的各种Servlet封装到一个Servlet中(通过BaseServlet进行
- HTTP/2 规格制定完成
- Tomcat配置虚拟内存
- React后台管理系统-登录页面
- 查询中where和having的区别
- python小技巧 - 如何成为Python高手
- cpg数据库处理_找到未提取的pdf
- js获取html标签中的数据
- 千兆路由器怎么设置网速最快_千兆路由器怎么设置才能发挥最好【图】
- CANoe-第2个仿真工程-XVehicle—2Panel设计(原理,思路)
- windows能装linux系统盘,用U盘安装linux系统(Windows环境下制作启动盘)
- bt5 note [7] 无线破解
- Oracle 迁移至Mysql
- 天涯共此时--中秋赏古诗
- Linux中的多路IO转接,转载
- winform 两个区域保持固定距离_【麻辣烫】川渝区域零担十强分析:余氏东风、力展、宇鑫、金泓达快运、长吉、西部风、海风快运、绍平、迪丰、健隆......
- 软件项目管理工具,JAVA WEB 框架技术(结合实际工作经验,全是干货)
- 软考-嵌入式系统设计师-笔记:信息化和知识产权基础知识
- 百度paddleOcr安装与使用
热门文章
- sqlplus 汉字乱码问题的解决
- 注意设置httpclient连接数
- 心得体悟帖---16、哪些看起来很难做的事情真的不过如此
- 二、Windows基础数据类型
- Atitit 提升效率 界面gui方面的前后端分离与cbb体系建设 规范与推荐标准
- 【VLC-Android】LibVLC API简介(相当于VLC的MediaPlayer)
- 转 ofbiz的webservice接口提供(1)-WSDL的生成
- .NET设计模式系列文章
- 【学习笔记】2019-Learning_UVOS_Through_Visual_Attention
- JMeter中的HTTPS套接字错误