【计算理论】图灵机 ( 图灵机设计 )

举报
韩曙亮 发表于 2022/01/10 23:43:38 2022/01/10
【摘要】 文章目录 一、设计图灵机要求二、图灵机分析三、计算过程分析四、高级语言五、使用高级语言描述图灵机六、完整图灵机 ( 仅做参考 ) 一、设计图灵机要求 设计一个图灵机...





一、设计图灵机要求



设计一个图灵机 M 2 \rm M2 M2 , 认识一种特定语言 , 该语言由 0 0 0 组成 , 字符串的长度是 2 n \rm 2^n 2n 个 , n = 0 , 1 , 2 , ⋯ \rm n = 0, 1, 2, \cdots n=0,1,2, ;





二、图灵机分析



分析 : 设计一个图灵机 , 图灵机所接受的语言是 :

2 2 2 0 0 0 组成的字符串 ,

4 4 4 0 0 0 组成的字符串 ,

8 8 8 0 0 0 组成的字符串 ,

16 16 16 0 0 0 组成的字符串 ,

                 ⋮ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \vdots                 

2 n \rm 2^n 2n 0 0 0 组成的字符串 ;


图灵机设计很复杂 , 一般不需要设计出完整图灵机 , 只需要写出设计过程即可 ;





三、计算过程分析



将字符串写到带子上 , 带子上每隔一个 0 0 0 划掉一个 , 数一下剩下的 0 0 0 :

① 如果剩下的 0 0 0 1 1 1 , 直接接受该字符串 ;

② 如果剩下的 0 0 0奇数个 , 直接拒绝接受该字符串 ;

③ 如果剩下的 0 0 0偶数个 , 继续重新开始循环 ;





四、高级语言



将上述算法写成 高级语言 , 用于描述图灵机的计算过程 ;

高级语言是有要求的 , 其与图灵机的不同 ,

图灵机需要将所有的指令都写出来 , 状态图要绘制出来 , 这个要求很难实现 ;

高级语言不用将图灵机画出来 , 只需要 描述读写头如何操作 即可 , 将指令集部分直观描述出来 , 不写出具体的指令 ;





五、使用高级语言描述图灵机



下面就是高级语言的直观的计算过程 ;


图灵机直观计算过程 : 假设图灵机的带子上放了 0000 0000 0000 字符串 ;

阶段一 : 从左到右扫描图灵机带子 , 每隔 1 1 1 0 0 0 划掉一个 ;

阶段二 : 如果在 “阶段一” 只包含 1 1 1 0 0 0 , 那么 接受该字符串 ;

阶段三 : 如果在 “阶段一” 包含的 0 0 0 的个数大于 1 1 1 , 并且 0 0 0 的个数是奇数 , 那么 拒绝该字符串 ;

阶段四 : 如果在 “阶段一” 包含的 0 0 0 的个数大于 1 1 1 , 并且 0 0 0 的个数是偶数 , 那么 返回带子最左端 ;

阶段五 : 从 “阶段一” 重新开始计算 ;





六、完整图灵机 ( 仅做参考 )



设计的真实的 M 2 \rm M2 M2 图灵机的指令如下 : 如下状态的图灵机设计很复杂 , 不做要求 ;

在这里插入图片描述

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

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

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

评论(0

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

全部回复

上滑加载中

设置昵称

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

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

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