计算复杂性理论总结_郭培赞

合集下载

理解计算机中的计算理论与复杂性

理解计算机中的计算理论与复杂性

理解计算机中的计算理论与复杂性计算机中的计算理论与复杂性计算理论是计算机科学的重要分支之一,它研究计算过程的本质和性质,为计算机科学提供了理论基础。

而复杂性理论则研究计算问题的复杂性,即问题的难解程度。

在计算机发展的不断推动下,计算理论与复杂性的研究越发重要。

本文将从计算理论和复杂性两个方面对相关概念和研究进行介绍和探讨。

一、计算理论计算理论是计算机科学中关于计算概念和过程的研究。

它主要分为可计算性理论和形式语言与自动机理论两大部分。

1. 可计算性理论可计算性理论研究的是什么问题可以用计算机算出,以及如何判断一个问题是否可计算。

它的核心思想是“图灵机”,即由英国数学家图灵提出的一种理论模型,用于描述计算过程。

可计算性理论的研究对象包括了函数的计算性、计算问题是否可判定、可计算函数的分类等。

2. 形式语言与自动机理论形式语言与自动机理论研究的是描述和处理信息的形式化语言和自动机模型。

形式语言的研究对象包括了正则语言、上下文无关语言和上下文敏感语言等。

而自动机模型则包括了有限状态自动机、下推自动机和图灵机,用于描述和处理形式语言。

二、复杂性理论复杂性理论是研究计算问题的复杂性的学科。

它关注的是问题的求解难易程度,即问题的复杂性。

复杂性理论主要分为计算复杂性理论和各类计算问题的复杂性。

1. 计算复杂性理论计算复杂性理论研究的是计算问题的复杂性度量和分类。

其中最具代表性的是时间复杂性和空间复杂性。

时间复杂性研究的是计算问题在计算时间上的耗费,空间复杂性研究的是计算问题在计算空间上的耗费。

常用的时间复杂性度量是“大O记号”,用于表示问题在最坏情况下的耗时增长趋势。

2. 计算问题的复杂性计算问题的复杂性研究的是不同类型问题的复杂性分类以及它们之间的关系。

其中最经典的研究是关于P类问题和NP类问题的划分。

P 类问题指的是可以在多项式时间内求解的问题,而NP类问题指的是可以在多项式时间内验证的问题。

复杂性理论的研究则主要集中在P与NP问题之间的关系。

计算复杂性理论

计算复杂性理论

计算复杂性理论计算复杂性理论是计算机科学中重要的一个分支,它研究了计算问题的难度和可解性。

通过对问题的复杂性进行分析和分类,计算复杂性理论为我们提供了解决问题的指导原则和限制条件。

本文将介绍计算复杂性理论的基本概念、主要研究内容以及其在实际应用中的重要性。

一、基本概念1. P和NP问题在计算复杂性理论中,最基本的概念是P问题和NP问题。

P 问题是指可以在多项式时间内解决的问题,即存在一个算法可以在多项式时间内给出问题的正确答案。

而NP问题则是指可以在多项式时间内验证答案的问题,但尚未找到多项式时间内解决的算法。

P问题是NP问题的子集,即所有的P问题也是NP问题,但目前尚不清楚P问题和NP问题是否是相同的类。

2. NP完全性NP完全性是计算复杂性理论中的一个关键概念,它指的是一类最困难的NP问题。

一个问题被称为是NP完全的,如果它既是一个NP问题,又满足以下条件:对于任何一个NP问题,都可以用多项式时间的算法将其约化为该问题。

换句话说,如果我们能够找到一个多项式时间算法来解决一个NP完全问题,那么我们也可以用同样的算法来解决所有的NP问题。

3. NP难度除了NP完全性概念,计算复杂性理论还引入了NP难度的概念。

一个问题被称为是NP难度的,如果对于任何一个NP问题,都可以用多项式时间的算法将其约化为该问题。

虽然NP难度问题不一定是NP问题,但它们和NP完全问题一样,都是十分困难的问题。

二、主要研究内容1. 多项式时间算法计算复杂性理论的一个主要研究内容是寻找和分析多项式时间算法。

多项式时间算法是指可以在多项式时间内解决的算法,即其执行时间与输入规模呈多项式关系。

研究多项式时间算法的目标是寻找高效的解决方法,从而提高问题的可解性。

2. 算法复杂性分析算法复杂性分析是计算复杂性理论中的另一个重要内容。

通过对算法的复杂性进行全面的分析,我们可以预测算法在实际应用中的性能表现。

算法复杂性分析的主要方法包括时间复杂性分析和空间复杂性分析,通过对算法的时间和空间需求进行测量和评估,我们可以判断算法在给定条件下的可行性和效率。

计算理论复杂性理论基础知识

计算理论复杂性理论基础知识

计算理论复杂性理论基础知识计算理论复杂性是计算机科学中一项重要的研究领域,旨在研究计算问题的解决难度和算法的效率。

本文将介绍计算理论复杂性的基础知识,包括问题的分类、计算模型和基本概念。

一、问题的分类在计算理论复杂性中,问题可以分为两类:P类问题和NP类问题。

P类问题是可以在多项式时间内解决的问题,而NP类问题是可以在多项式时间内验证解的问题。

P类问题是计算理论中研究的主要对象,它代表了计算机科学界能够有效解决的问题。

例如,求两个数的和、排序问题等都属于P类问题。

NP类问题则代表了计算机科学界尚未找到高效解决方法的问题,它所包含的解的搜索空间非常大。

例如,旅行推销员问题、图着色问题等都属于NP类问题。

虽然目前还没有找到多项式时间内解决NP类问题的方法,但可以通过验证一个解是否正确来验证解的正确性。

二、计算模型计算理论复杂性研究中使用的计算模型主要有图灵机、非确定有限自动机和布尔电路模型。

图灵机是计算理论中最经典的计算模型之一,它由带有读写头的无限长纸带和一系列状态转移规则构成,可以模拟所有现代计算机的功能。

非确定有限自动机是另一种计算模型,它是图灵机的一种简化形式,特点是能够在某个状态下拥有多个可能的转移选项。

布尔电路模型是计算理论复杂性研究中较为特殊的一种计算模型,它通过使用与门、或门和非门等基本逻辑门来构建复杂的逻辑电路,从而解决特定的计算问题。

三、基本概念在计算理论复杂性研究中,有一些基本概念是必须了解的,包括计算问题的规模、算法的时间复杂度和空间复杂度等。

计算问题的规模指的是问题输入的大小。

例如,排序问题的规模可以是待排序数组的长度。

算法的时间复杂度是衡量算法执行所需时间的度量,通常用大O符号表示。

时间复杂度越低,表示算法的效率越高。

算法的空间复杂度是衡量算法所需内存空间的度量,也用大O符号表示。

空间复杂度越低,表示算法的内存利用率越高。

此外,还有一些复杂性理论中的重要问题,如P=NP问题、NP完全问题等,这些问题都是该领域中的研究热点。

计算复杂性理论部分进展简述1

计算复杂性理论部分进展简述1

计算复杂性理论部分进展简述蔡进一葛启朱洪前言计算复杂性理论博大精深,它在整个计算机科学领域处于核心的地位(此句程虎老师认为过头,建议改为地位之一)。

复杂性理论和算法的不同之处在于,它不是单单研究解决某个问题的方法,而是研究一类问题的性质。

在上世纪60年代中期,Hartmanis等人提出了通过对资源(时间、空间)需求的不同来划分问题,从此开创了计算复杂性理论。

此后几年,大量复杂性类被提出,并且很多新方法被应用,计算复杂性的框架被建立起来。

但是随着研究的深入,越来越多的问题也涌现出来,比如说经典的问题P =?NP,是计算复杂性中的核心问题。

随着新的问题以及新模型的提出,计算复杂性理论被不断地丰富,并且每一次重大成果的出现都必然伴随着新方法的使用。

本文在第二部分介绍了近20年来,复杂性理论最重要的成果之一,即交互证明系统模型,以及它对证明NP 难问题不可近似性的贡献。

这一部分主要按时间的顺序,介绍了交互证明系统的发展过程,其间的重要结论,所使用的主要方法,以及如何通过交互证明系统来求NP难问题的不可近似度。

本文在第四部分介绍了计算复杂性理论一个最新进展,即对数空间复杂性类之间的关系,这些复杂性类的提出由来已久,但是直到2005年才有了突破性的结果。

在这一部分将介绍这些复杂性类的来源,这个突破性的结果以及所使用的方法。

交互证明系统以及不可近似性交互证明系统的提出及发展在数学中,为了证明一个命题,其方法都是罗列出一串过程,或者说是证据,然后利用最基本的公理的正确性以及证据之间的逻辑关系,最终得到命题的正确性。

其实简化一些来看,这个过程就是证明者为了证明某个命题的正确性,从而将一些证据都列举出来,他认为从这些证据可以得出命题的正确性。

而对其他人(称作验证者)来说,如果要检验证明者的结果,只要将其证明的过程验证一遍,按照其证据之间的关系以及某些公理假设,看是否可以最终得到其所提出的命题的正确性,如果可以,就认为这个命题是正确的,否则为假。

计算机科学中的计算复杂性理论

计算机科学中的计算复杂性理论

计算机科学中的计算复杂性理论计算复杂性理论是计算机科学中的一个重要分支,研究的是计算问题的算法复杂性和计算机问题的可解性。

它帮助我们理解计算问题是否有高效的解决方法,为设计和分析算法提供了基础。

一、引言计算复杂性理论涉及到算法的效率和计算问题的可解性,对计算机科学和信息技术具有重要意义。

本文将首先介绍计算复杂性理论的起源和发展,然后重点讨论几个计算复杂性理论中的重要概念和问题。

二、计算复杂性理论的起源和发展计算复杂性理论起源于20世纪60年代,由对计算问题的可解性进行研究逐渐演化而来。

该理论的研究者,如图灵奖得主阿隆佐·邱奇、史蒂芬·库克等,提出了多个理论模型和概念,奠定了计算复杂性理论的基础。

三、计算复杂性理论的重要概念1. P问题和NP问题在计算复杂性理论中,P问题指的是可以在多项式时间内解决的问题,而NP问题则是指可以在多项式时间内验证给定解是否正确的问题。

其中,P问题是NP问题的一个子集,即P⊆NP。

2. NP完全性NP完全性是计算复杂性理论中的一个重要概念。

一个问题是NP完全的,意味着它是NP问题中最难的一类。

如果我们能够找到一个多项式时间内解决NP完全问题的算法,那么可以得出P = NP的结论,这是计算机科学中的一个重大问题。

3. 计算复杂性度量计算复杂性理论通过引入时间复杂性和空间复杂性度量来衡量算法的效率。

其中,时间复杂性度量算法执行所需的时间步数,空间复杂性度量算法所需的存储空间。

这些度量帮助我们选择具有高效率的算法,提高计算问题的解决速度。

四、计算复杂性问题的研究方法计算复杂性理论研究问题的方法主要有两种:证明方法和求解方法。

证明方法通过证明某个问题是NP完全的来研究问题难度;而求解方法则是通过设计高效的算法来解决问题。

1. 证明方法证明方法是计算复杂性理论中常用的方法之一,它使用约简技术将一个已知的NP完全问题转化为待研究问题,从而证明待研究问题也是NP完全的。

计算理论_计算复杂性_2016

计算理论_计算复杂性_2016

一些P问题
有些问题初看起来不属于P 求最大公因子: 欧几里德算法, 辗转相除法 模p指数运算ab mod p 素性测试 等等 以增加空间复杂性来减小时间复杂性 上下文无关语言 有O(n3)判定器
快速验证
HP = {<G,s,t>|G是包含从s到t的 哈密顿路径的有向图} CLIQUE={<G,k>|G是有k团的无向图} 目前没有快速算法,但其成员是可以快速验证的. 注意:HP的补可能不是可以快速验证的. 快速验证的特点: 1. 只需要对语言中的串能快速验证. 2. 验证需要借助额外的信息:证书,身份证.
3SAT = { <> | 是可满足的3cnf }
清洗算法对3cnf是否有效? 举例对比:
(x3x3)(x1x2)(x1x2)(x1x2)(x1x2)
(x3x3)(x3x1x2)(x3x1x2)(x3x1x2)(x3x1x2)
{0k1k|k0}TIME(nlogn)
由图灵机M2知道ATIME(n log n) 有没有更快的图灵机识别A? 对于单带确定图灵机, 由 定理: 时间o(nlogn)的单带图灵机判定的语言 是正则语言. TIME(o(nlogn)) 正则语言类 TIME(n) 正则语言类 = TIME(n) = TIME(o(nlogn)) 非正则语言 {0k1k | k0}TIME(o(nlogn))
子句个数水平行除两端的两个节点外有3k1个节点每个子句对应一对节点共2k个用分隔节点隔开k1个称这种路径为正规路径可满足g有如下从s到t哈密顿路径从上至下赋值1的变量左右式通过钻石赋值0的变量右左式通过钻石选一真文字经过一次称这种路径为正规路径从上至下赋值1的变量左右式通过钻石赋值0的变量右左式通过钻石选一真文字经过一次称这种路径为正规路径则公式可满足右边正规路径对应x则公式可满足右边正规路径对应xg是有从s到t哈密顿路径的有向图uhpg是有从s到t哈密顿路径的无向图证明

第11章 计算复杂性理论-算法设计与分析(第2版)-李春葆-清华大学出版社

第11章 计算复杂性理论-算法设计与分析(第2版)-李春葆-清华大学出版社
第5步:遇到x,右移 x0y1B …
第6步:遇到0,将0改为x并右移 xxy1B …
xxy1B …
第7步:遇到y,右移 xxy1B …
第8步:遇到1,将1改为y并左移 xxyyB …
第9步:遇到y,左移 xxyyB …
xxyyB …
第10步:遇到x,右移 xxyyB …
第11步:遇到y,右移 xxyyB …
q4 R
q1 R
1/y
L q2
0/0,y/y 0/0,y/y
识别输入串w1=0011的瞬像演变过程如下:
q0 R
0/x
y/y
x/x
q3 R
y/y
B/B
q4 R
q1 R
1/y
L q2
0/0,y/y 0/0,y/y
q00011 → xq1011 → x0q111 → xq20y1 → q2x0y1 → xq00y1 → xxq1y1 → xxyq11 → xxq2yy → xq2xyy → xxq0yy → xxyq3y → xxyyq4B → xxyyBq4 进入终止状态q4,图灵机M停机并接受输入串w1。
Q是有限状态集,q0(q0∈Q)是初始状态,F(FQ)是终止状态 集,Γ是输入带的符号集。 B(B∈Γ)是空白符。 ∑是Γ中除B外的输入字母表。 δ:Q×Γ→Q×Γ×{L,R}是动作函数,其中L表示左移一格,R表 示右移一格,对于某些q∈Q和a∈Γ,δ(q,a)可以无定义。
图灵机M的工作过程:
把输入串a1a2…an(ai∈∑)放置在输入带上,如放置在最左端,开始 时读写头注视输入带上某一格,如注视最左端的第一格,M的初始状 态为q0。 在每一步,读写头把扫描到的字符(设为xi)传送到有限状态控制器, 有限状态控制器根据当前状态q和动作函数δ(q,xi)确定状态的变化, 在当前格写上新字符以及移动读写头。 当进入某个终止状态或δ(q,xi)无定义时,图灵机M停机。

《复杂性理论》讲义2

《复杂性理论》讲义2

第二章算法问题及其复杂性2.1 什么是算法问题?1.算法问题(可解的问题)——简单地说,就是存在求解算法的问题。

例子(见书)2. 算法问题定义(1) 一个可行的(即语法正确的)输入集的描述——每个输入可表为在一个有限字母表上的有限字母串;(2)一个函数的描述——将每个输入映射到一个非空的正确输出集,每个输出也是一个有限字母表上的有限序列。

3. 问题和问题实例4. 关于算法问题的输入好算法的计算时间与问题的输入形式有关。

然而,一个问题的所有合理的输入形式往往导出的算法问题是类似的。

因此一般可以忽略问题的具体输入形式。

例如,一个图使用邻接表表示和用邻接矩阵表示看作是没有太大区别。

5. 算法问题的几种形式搜索问题、优化问题、求值问题、判定问题(形式语言)2.2 一些重要的算法问题1. 旅行商问题 (TSP)——有多种变型2. 0/1背包问题3. 划分问题4. 监控(覆盖)问题5. 团问题6. 组队问题7. 网络中的最优流问题8. 运动联盟的冠军问题9. 验证问题10. 数论问题(素数测试、分解质因数)2.3 如何度量算法的计算时间?1.什么是算法?——直观地讲,算法就是一个无歧义的指令集,它规定了根据输入如何一步步得出一个正确输出的步骤。

确定性算法——对于同一输入而言,算法每一时刻下一计算步骤都是唯一确定的。

随机算法——对同一输入而言,每一时刻算法下一计算步骤可能依一个随机数来定。

2.一个算法的计算时间如何度量?算法的计算时间依赖于诸多因素:输入、计算机、程序设计语言、算法的实现…但是有些因素的影响是有限的并且也是可控的。

算法的计算时间可以简化为仅仅依赖于算法本身和输入大小。

计算时间是用运算步骤而不是具体时间来度量。

3.计算模型寄存器机(Register Machine),即随机存取机(Random Access Machine).对数成本模型(Logarithmic Cost Model)——认为在数n上的算术运算的成本为O(log n)。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

二、 不可判定问题及相关结论,图灵机停机判定问题,文法 不可判定问题
(1) 不可判定问题及结论
设判定问题π ,使π 为真的实例的集合为 Yπ ,实例的全体集合为 Dπ ,这样 一个判定问题就可以这样描述π =(Dπ ,Yπ ) 。通过二元组编码和谓词对应来讨 论。通过编码建立判定问题与谓词的对应关系 设编码为 e, Dπ —>A*(谓词)。对于 I∈Dπ , Dπ (I)<=>I∈Yπ ,其中 e (I) =x 对于同一个判定问题, 其编码 e1 与 e2 得谓词 P1 与 P2, 根据 chuuring-Turing 命题, 若 e1 与 e2 是可计算的,则有可计算函数 f1: A *— >A*; f2: A *— >A*使得 P1(x)<=>P2(X) P2(X)<=> P1(x)。 定义:如果谓词π 是可计算的,则称判定问题是可判定的,如果谓词π 是半可 判定的,则称判定问题是半可判定的,否则是不可判定的。 定义:设π 1 与π 2 两个判定问题,若有函数 f:Dπ 1—> Dπ 2 满足: (1)f 是可计算的; (2)对于每个实例 I∈Dπ 1 总有 I∈Yπ <=>f(I)∈Yπ 2 则称 f 为判定问题π 1 到π 2 的规约。 定理:设判定问题π 1 可规约为判定问题π 2,则 π 2 是可判定的,蕴含π 1 是可判定的; π 2 是不可判定的,蕴含π 1 是不可判定的。
(2) Bar-Hillel 泵引理及主要作用
Bar-Hillel 泵引理:设 chomsky 范式文法有 n 个变元, L=L(G), 对于 x∈L, 若|X| ≥2n 则 x 可以表示成 x=u1v1uv2u2,使得 (1)|v1uv2|≥2n; (2)|v1v2|≠ε; (3)对于所有的 k≥0,u1v1kuv2k u2∈L 推论:设 L 是上下文无关语言,则存在正整数 m,使得长度大于 m 的 x 可用 于验证某些语言不是上下文无关语言。 作用:通过泵引理以反证法证明 L 不是上下文无关语言。
(4) 离线图灵机
离线图灵机有一条输入带和 k 条工作带,输入带的带头只读不写,工作带的带头是 和普通多带图灵机一样的读写头。# $分别表示输入带的左端和右端。
( 各种图灵机之间关系
定理:四元图灵机与五元图灵机是等价的。 定理:单向图灵机与四元机是等价的。
定理:多带图灵机与单带图灵机是等价的。 定理:离线图灵机与单带图灵机是等价。 总结:图灵机都是等价的。
(2) 图灵机形式化定义,图灵机的接受过程及接受语言过程
定义:一个基本图灵机 M 定义为一个七元组 TM={Q,C,δ,A,B,q1,F}。 Q 是状态集,一个非空有穷集合,标示图灵机的所有状态; C 是带字母表, (放在带方格中的符号集合)非空有穷集; δ 是动作函数,包括控制函数或过程转换函数(定义控制器) ,是 QxCQxC ∪(R,L)的部分函数;A 是输入字母表,A⊆C-{B}; B 是空白符,B∈C; q1 是初始状态,q1∈Q; F 是接收状态集,F⊆Q,F 中的元素叫做接收状态 图灵机的每一步计算由动作函数 δ 确定,设当前状态 q,被扫描的符号为 s δ(q,s)=(q’,s’) ,把被扫描的方格的内容改写成 s’并且转换到状态 q’,读 写头的位置保持不变。 δ(q,s)=(q’,R),读写头左移一格并且转换到状态 q’,带的内容保持不变。 δ(q,s)=(q’,L),读写头右移一格并且转换到状态 q’,带的内容保持不变。 δ(q,s)无定义,则停止计算。 图灵机的格局包括带的内容、读写头的位置和控制器的状态,可表示成
四、 上下文无关文法
(1) chomsky 范式的文法及相关理论(等价性)
chomsky 范式文法:设上下文无关文法 G=(V ,T,P,S)的每一个产生式都有如下 形式:x—>yz,x—>a 其中 x,y,z∈V,a∈T,则上下文无关文法 G 为 chomsky 范式文法。 定义:设正上下文无关文法 G=(V ,T,P,S),形如 X→Y 的产生式称作单枝的, 其中 X,Y∈V。如果 G 不含单枝的产生式,则称它是分枝的。 定理: G 为上下文 无关文法, 则存在 分枝的正的上下文 无关文 法 G’ 使 L(G)=L(G’)
计算复杂性理论总结报告
——计算机技术 33 班郭培赞指导老师:王宝文
一、 图灵机
(1) 图灵机基本模型
基本图灵机有一条带作为存储装置和一个控制器,控制器带一个读写头(又叫 做带头) 。带的两端是无穷的,被划分成无穷多个小方格,每个小方格内可以存放 一个符号,控制器有有穷个状态。在计算的每一步,控制器总处于某个状态,读写 头可左移或右移扫描一个方格, 根据控制器当前所处的状态和读写头扫描的方格内 的符号。控制器完成下列三个动作中的其中一个: 1.改写被扫描方格的内容,控制器转换到一个新的状态; 2.读写头向左移动一格,控制器转换到一个新的状态; 3.读写头向右移动一格,控制器转换到一个新状态; 结构如图所示: 左右无穷的带 读写头 控制器
机 M’使 L(M)=L(M’)。 这里的 M 可以是 DTM,也可以是 NTM,但是它是多带的,M 的时间上界是 t(n)。M’是单带,可以是 DTM,也可以是 NTM,M’的时间上界是 t2(n)。
空间复杂度
定义:设 DTM M,字母表为 A,对所有的 w∈A*,M 总停机,把 M 关于 w 的 计 算 中 在 每 一 条 工 作 带 上 使 用 的 方 格 数 的 最 大 值 记 为 ������������ (������) . 称 ������������ (n)=max{������������ ������ ������ ∈ A ∗ 且 w| ≦ n},n∈N 为 M 的空间复杂度。设全函数 s:N→ N。如果������������ (������)=O(s(n)),则称 s(n)是 M 的空间复杂度上界。 定理: 设 M 是一台有 k 条工作带的 s(n)空间界限的离线 DTM(NTM), 其中 k>1, 则存在只有一条工作带的离线 DTM(NTM)M’, 使得 L(M’)=L(M)并且 M’与 M 有相 同的空间复杂度上界。
(2) 图灵机停机判定问题
定义:图灵机的停机问题——任给图灵机和格局 ζ,从格局 ζ 开始,图灵机是否最 终停机? 定理:图灵机的停机问题是不可判定的。
(3) 文法不可判定问题
引理:如果 u∈L(M),则 L(������M,u )={������������ |������ > 0},如果 u 不属于 L(M),则 L(������M,u )=空集 定理:下述问题是不可判定的: 任给一个文法 G,是否 L(G)为空集? 任给一个文法 G,是否 L(G)是无穷的? 任给一个文法 G 和字符串 x,是否 x∈L(G)?
(3) 非正则语言的定义及相关结论 (4) 泵引理内容及主要作用
正则语言的泵引理:设 L 是正则语言,则存在与 L 相关的常数 n 满足:对于 任何 L 中的串 w,如果|w|≥n,则我们就能够把 w 打断为三个串 w=xyz 使得: (1)y ≠ε。 (2)|xy| ≤ n。 (3)对于所有的 k ≥ 0,串 xykz∈L。 换句话说,我们总能够在离 w 的开始处的地方找到一个非空的串 y,然后可以把它 作为“泵” ,也就是说,重复 y 任意多次,或者去掉它(k=0 的情况) ,而所得到的
(m )
(x1,x2,…..xm)=y
若图灵机停机在非接收状态或永不停机,则无定义。 定义图灵机接受过程:如果从初试格局 q1Bx 开始计算,图灵机最终停机在接 受格局,则称图灵机接收 x。图灵机接收的所有字符串组成的集合称作图灵机接收 的语言,或图灵机识别的语言。
(3) 图灵机其他形式 (1) 五元图灵机
三、 正则语言
(1) chomsky 文法分类
文法为四元组 G=(V,T,P,δ )其中,V 为非终结符集合,T 为终结符集合, P 为规则集,δ 为开始符号 0 型文法:等价于图灵机。对产生式不附加任何条件。 1 型文法:线性界限自动机。是上下文有关文法,每一个产生式α →β 都满足条件 |α |≦|β | 2 型文法:下推自动机。是上下文无关文法,每一个产生式都形如 A→α ,其中 A ∈V,α ∈(T∪U)* 3 行文法: 有穷自动机。 正则文法, 若文法满足 A—>aB 或 A—>w,其中 A, B∈V, w∈A*, 则称此种文法为右线型文法; 若 A—>Ba, A—> A—>w,其中 A, B∈V,w∈A*,则称此种文法为左线型文法。
五元图灵机的一步要做四元图灵机两步做的事情, 改写一个符号并且左移一格, 或者改写一个符号并且右移一格。
(2) 单向无穷带图灵机
单项无穷带图灵机的带仅在一个方向上是无穷的,有一个最左方格#被固定在 带的左端,他左边的方格永远不会被使用。
(3) 多带图灵机
多带图灵机有 k 个读写头, 没个读写头扫描一条带, 可以改写被扫描方格内的符号、 左移一格或者右移一格。 读写头的动作由当前的状态和 k 个读写头从 k 条带上读到 的 k 个符号决定。
(2) DFA,NFA 正则定义及相关结论
确定自动机 DFA M=(Q,A, δ,q1,F)其中 Q 是状态集;A 是输入字母表; q1 是初态, q1∈Q; F 是终态集, F⊆Q; δ 是控制函数或者转换函数, δ: QxA—>Q , δ 是确定的。 Q={q1,q2,q3,q4};A={a,b} F={q3} 则根据状态转化图得知 L(G)={bna / n≥1}. 不确定自动机 NFA M=(Q,A, δ*,q1,F) ,其中 Q 是状态集;A 是输入字母 表;q1 是初态,q1∈Q;F 是终态集, F⊆Q;δ 是控制函数或者转换函数,δ*: QxA*2Q 根据状态转化图得知 L(G)={an / n≥2}∪{bna / n≥1} DFA 与 NFA 仅仅是控制函数的不同。 结论:不确定自动机和确定自动机是等价的。 定理:语言 L 能被 DFA 接受当且仅当语言 L 能被 NFA 接受。 定理:语言 L 是正则语言当且仅当存在 DFA M 使 L=L(M)。
相关文档
最新文档