【计算理论】计算复杂性 ( 两个带子的图灵机的时间复杂度 )

举报
韩曙亮 发表于 2022/01/11 00:49:53 2022/01/11
【摘要】 文章目录 一、两个带子的图灵机的时间复杂度 一、两个带子的图灵机的时间复杂度 讨论两个带子的图灵机的时间复杂度 ; 计算问题如下 : 给定语言 : ...





一、两个带子的图灵机的时间复杂度



讨论两个带子的图灵机的时间复杂度 ;


计算问题如下 :

给定语言 : A = { 0 k 1 k : k ≥ 0 } \rm A = \{ 0^k1^k : k \geq 0 \} A={0k1k:k0}

构造 两个带子的 图灵机 M 3 \rm M_3 M3 认识上述语言 ;



算法分析过程 : 假设字符串为 000111 000111 000111 , 最坏的情况 ;

开始时的状态 : 第一个带子是 000111 000111 000111 输入字符 , 第二个带子是空的 ;

在这里插入图片描述

第一步 : 读头一 读取 带子一 字符 0 0 0 , 读头二 将 0 0 0 字符写入到 带子二 中 ;

在这里插入图片描述

第二步 : 读头一 读取 带子一 字符 0 0 0 , 读头二 将 0 0 0 字符写入到 带子二 中 ;

在这里插入图片描述

第三步 : 读头一 读取 带子一 字符 0 0 0 , 读头二 将 0 0 0 字符写入到 带子二 中 ;

在这里插入图片描述

第四步 : 读头一 读取 带子一 字符 1 1 1 , 读头二 将 0 0 0 字符从当前带子中抹掉 ;

在这里插入图片描述

第五步 : 读头一 读取 带子一 字符 1 1 1 , 读头二 将 0 0 0 字符从当前带子中抹掉 ;

在这里插入图片描述

第六步 : 读头一 读取 带子一 字符 1 1 1 , 读头二 将 0 0 0 字符从当前带子中抹掉 ; 此时带子一读取完毕 , 带子二为空 , 此时进入接受状态 ;

在这里插入图片描述


M 3 \rm M_3 M3 是两个带子的图灵机 , 算法设计如下 :


M 3 = \rm M_3 = M3= " 在输入字符串 w \rm w w 上进行如下计算 :

① 扫描整个带子上的字符串 , 查看 0 0 0 1 1 1 的顺序 , 所有的 0 0 0 必须在所有的 1 1 1 前面 ; 如果顺序错误 , 进入 拒绝状态 ;

② 扫描 带子一 上的 0 0 0 字符 , 直到遇到 1 1 1 字符 , 同时将 0 0 0 拷贝到 带子二 中 ;

③ 扫描 带子一 上的 1 1 1 字符 , 直到字符串结束 , 每读取一个 1 1 1 字符 , 就删除 带子二 中的 0 0 0 字符 ;

④ 如果所有的 0 0 0 字符都被删除 , 带子一 中的 1 1 1 字符还没有读取完毕 , 进入 拒绝状态 ; 如果 带子一 中的字符读取完毕 , 带子二 中还有 0 0 0 字符剩余 , 进入 拒绝状态 ; 如果 带子二 中的 0 0 0 字符都被删除 , 带子一 正好读取完毕 , 进入 接受状态 ; "


计算上述算法的时间复杂度 :

首先检查 01 01 01 的相对顺序 , 最坏的情况下是读头走 n \rm n n 步 , 其复杂度是 O ( n ) \rm O(n) O(n) ;

然后读取带子一 然后写入擦除带子二 操作 , 整体执行了 n \rm n n 步 , 的时间复杂度是 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 记号 | 严格渐进上界 | 分析算法的时间复杂度 ) 博客中 , 使用一个带子的图灵机 M 1 \rm M_1 M1 识别上述语言 , 时间复杂度是 O ( n ) + O ( n 2 ) = O ( n 2 ) \rm O(n) + O(n^2) = O(n^2) O(n)+O(n2)=O(n2) ;



两个带子的图灵机 与 一个带子的图灵机 计算能力 是等价的 ,

计算能力 等价 指的是 可以 识别相同的语言 , 解决相同的计算问题 ,

但是两种图灵机的 计算效率不同 , 两个带子的图灵机计算效率一般 高于 一个带子的图灵机的计算效率 ;

文章来源: hanshuliang.blog.csdn.net,作者:韩曙亮,版权归原作者所有,如需转载,请联系作者。

原文链接:hanshuliang.blog.csdn.net/article/details/111052723

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。