非确定型图灵机

如果不加特殊说明,通常所说的图灵机都是确定型图灵机。非确定型图灵机和确定型图灵机的不同之处在于,在计算的每一时刻,根据当前状态和读写头所读的符号,机器存在多种状态转移方案,机器将任意地选择其中一种方案继续运作,直到最后停机为止。具体而言,其状态转移函数为

其中是状态集合,是带字母表,分别表示读写头向左和向右移动;符号 表示集合的幂集,即

例如,设非确定型图灵机的当前状态为,当前读写头所读的符号为,若

任意地选择一个,按其进行操作,然后进入下一步计算。

非确定型图灵机在输入串上的计算过程可以表示为一棵树,不同的分支对应着每一步计算的不同的可能性。只要有任意一个分支进入接受状态,则称接受;只要有任意一个分支进入拒绝状态,则称拒绝;某些分支可能永远无法停机,但只要有一个分支可以进入接受或拒绝状态,我们就说在输入上可停机。注意,我们规定必须是无矛盾的,即它不能有某个分支接受而同时另一个分支拒绝,这样有矛盾的非确定型图灵机是不合法的。

定理:对于任意一个非确定型图灵机,存在一个确定型图灵机,使得它们的语言相等,即

证明:因为非确定型图灵机的计算过程就是一棵树,因此我们只需遍历该树就可以模拟其计算过程。一个简单的想法是利用深度优先搜索来遍历的计算树,但这样行不通,因为的某些计算分支可能永远不停机!所以我们可以采用一种在算法设计中称为迭代加深搜索的技巧来遍历的计算树。具体证明如下:

对于非确定型图灵机,构造一个确定型图灵机如下:

  1. 深度优先地模拟的每个分支的计算,但每个分支最多只计算步,如果某个计算分支在步内可以停机,则也停机,并将该计算分支的计算结果输出。
  2. 增加 1,跳转到上一步继续执行。

显然,若有某个分支可以停机,则此也一定会找到该分支并停机。因此

定理2:如果语言L被非确定型图灵机在多项式时间内接受,则一定存在多项式P使得语言L被时间复杂度为的确定型图灵机程序所接受。

图灵之非确定型图灵机相关推荐

  1. 图灵 计算机 ppt,turing machine 图灵机.ppt

    turing machine 图灵机 Outline 图灵机的意义 图灵机概述 图灵机的基本思想 图灵机的组成 图灵机的计算思想 图灵机的意义 图灵机模型理论是计算科学最核心的理论之一 图灵机模型为计 ...

  2. 怎样应对“需求不确定型项目”?

    怎样应对"需求不确定型项目"? 问题描述 1.需求不确定,老板直接和客户谈需求,项目经理不能或不方便参与,打下手,这类项目怎样办? 2.要深层次了解客户的想法,各种利益,地盘等,这 ...

  3. 决策模型(一):不确定型决策法

    原文链接(转载请注明出处):决策模型(一):不确定型决策法 前言 所谓的不确定型的决策是指决策者对环境情况一无所知.这时决策者是根据自己的主观倾向进行决策,由决策者的主观态度的不同基本可分为四种准则: ...

  4. 【人工智能】确定型推理

    确定性推理(Deterministic Reasoning)目录 一.推理基本概念 二.推理逻辑基础 1. 命题逻辑(Propositional Logic) 2. 谓词逻辑(Predicate Lo ...

  5. p,np,npc,np难问题,确定图灵机与非确定图灵机

    本文转自豆瓣_燃烧的影子 图灵机与可计算性 图灵(1912~1954)出生于英国伦敦,19岁进入剑桥皇家学院研究量子力学和数理逻辑.1935年,图灵写出了"论高斯误差函数"的论文, ...

  6. 《类型和程序设计语言》

    目录 <类型和程序设计语言> 百科 λ演算 归约策略 并行与并发 图灵机 停机问题 非确定图灵机 新浪博客:Lambda Calculus -- 叙述通俗朴素 我的最爱Lambda演算-- ...

  7. 布尔表达式可满足性问题(SAT)与库克-列文定理(上)

    下篇:布尔表达式可满足性问题(SAT)与库克-列文定理(下). 文章目录 一.布尔表达式可满足性问题(Boolean Satisfiability Problem, SAT) 二.形式语言与自动机 1 ...

  8. PSPACE完全性学习笔记

    本节所需的前置知识 定义1:令M是一个在所有输入上都停机的确定型图灵机.M的空间复杂度定义为函数f:N→Nf:\ N\rightarrow Nf: N→N,其中f(n)f\left(n\right)f ...

  9. 计算理论——正则语言,上下文无关文法,图灵机,可判定性,可规约性

    目录 第一章 正则语言 状态图 自动机的形式化定义 非确定性 正则表达式 泵引理 使用泵引理证明某个语言非正则的方法 第二章 上下文无关文法 上下文无关文法概述 1.上下文无关文法形式化定义 2.上下 ...

最新文章

  1. RecyclerView显示加载多种布局的原理
  2. android token机制_你真的了解16.6ms刷新机制吗?
  3. IC设计常用文件及格式介绍
  4. 《CCNA路由和交换(200-120)学习指南》——2.4节认证提要
  5. 31个EMC标准电路分享
  6. WordPress淘宝客ZZDGM主题Upanel插件使用补充
  7. NAGA-Ⅱ与QPSO算法求解下层为非合作博弈模型的双层规划组合优化模型(铁路开行方案)
  8. 基于IAR for RH850的瑞萨RH850 FCL库用法介绍
  9. 程序算法面试 题目汇总 算法题 推理题 规律题
  10. 【Python】:修改图片后缀
  11. crmeb v4.5.0版本 二次开发 新增加分机号功能 代码披露
  12. 51单片机4位数码管按键显示
  13. Remote 'g' packet reply is too long 错误
  14. MOOS-ivp 实验一 MOOS软件的安装与执行
  15. 要玩就玩最好的棋牌游戏
  16. Spark程序设计进阶
  17. c#+wps插件开发(1)
  18. kaggle中关于图像的比赛整理
  19. 广州电信高级前端开发工程师笔试题及答案(国企面试题大全)
  20. linux 卸载license,卸载 Network License Manager 的步骤

热门文章

  1. 重点函数 | SELECTEDVALUE 用法介绍
  2. 超简单集成HMS Core ML Kit场景识别,构建相册管理新模式
  3. # Java1.8 安装出现1603错误代码解决方法
  4. 树莓派智能音响项目——snowboy语音唤醒初探
  5. 给电子类专业大一新生的十三条建议[修订]
  6. 文章分享:Learning from History and Present
  7. Eclipse Project Explorer字体大小设置
  8. 月入一万,活在北京 (zz)
  9. java中的js是什么意思_js和java的区别是什么?
  10. 都说程序员穿衣就是这么丑,带你看看人家硅谷精英...