计算引论论文
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
浅谈计算模型
计算复杂性理论是用数学方法研究使用数位计算机解决各种算法问题困难度的理论,通俗说来,就是研究用计算机求解问题的难易程度。它有两个度量标准:一是计算所需的步数或指令条数(这叫时间复杂度),二是计算所需的存储单元数量(这叫空间复杂度)。我们当然不可能也不必要就一个个具体问题去研究它的计算复杂性,而是依据难度去研究各种计算问题之间的联系,按复杂性把问题分成不同的类:常见的时间复杂度按数量级递增排列依次为:常数0(1)、对数阶0(logn)、线形阶0(n)、线形对数阶0(nlogn)、平方阶0(n2)立方阶0(n3)、…、k次方阶0(n^k)、指数阶0(2^n)。显然,时间复杂度为指数阶0(2^n)的算法效率极低,当n值稍大时就无法应用。不言而喻,对于任意给定的问题。设计出复杂性尽可能低的算法是我们在设计算法时追求的一个重要目标。
而可计算性(calculability)是指一个实际问题是否可以使用计算机来解决.从广义上讲如“帮我洗衣服”这样的问题是无法用计算机来解决的(至少在目前).而计算机本身的优势在于数值计算,因此可计算性通常指这一类问题是否可以用计算机解决.事实上,很多非数值问题(比如文字识别,图象处理等)都可以通过转化成为数值问题来交给计算机处理,但是一个可以使用计算机解决的问题应该被定义为“可以在有限步骤内被解决
的问题”,故哥德巴赫猜想这样的问题是不属于“可计算问题”之列的,因为计算机没有办法给出数学意义上的证明,因此也没有任何理由期待计算机能解决世界上所有的问题.分析某个问题的可计算性意义重大,它使得人们不必浪费时间在不可能解决的问题上(因而可以尽早转而使用除计算机以外更加有效的手段),集中资源在可以解决的问题集中.
语言可以看作是一个非空的字母集合,自动机则是一种控制结构,是抽象的计算机模型。形式语言和自动机密切相关。图灵机——0型语言(递归可枚举)——无限制文法;下面我再说说看书时所得的关于其他自动机的内容。
一、正则文法——正则语言——有穷自动机(DFA、NFA)
1、正则语言与正则表达式本质上相同:
定理1.1:r是正则表达式,则一定存在某个带ε_转移的NFA接受r表示的语言L(r),因此,L(r)是正则语言。
定理1.2:设L是正则语言,那么总存在正则表达式r,使得L=L(r)。
L是正则语言→L可被某个NFA接受→通过删除NFA节点的方法写出r
2、右线性文法和左线性文法都是正则文法
也就是说,在正则文法中,任何产生式的右侧至多有一个非终结符(变量),且此非终结符一定在产生式右侧的最右端或
最左端。如:
A → xB
A → x (右线性文法)
或
A → Bx
A → x (左线性文法)
3、L 是正则语言,当且仅当存在正则文法G ,满足L =L (G )。
4、DFA 、NFA 的定义
定义一个DFA M 是一个5元组
M=(Q, ∑, δ, q0, F)
其中, Q :有限的状态集合(非空)
∑:用穷的字母表
δ:转移函数
q0∈Q :初始状态
F ⊆Q :终态集合
δ(q , a) = p,
扩充转移函数
:2*2,(,)(,),2,*Q Q Q q p
p w q w p w δδδ∈⨯→=⋃∈∈∑∑有,
就得到了NFA M 。
5、定理1.3 设L 为某个NFA M 接受,则存在一个DFA M 接
受L。
——DFA和NFA的等价性
6、识别非正则语言——泵引理
泵引理设L是正则语言,那么一定存在一个只与L相关的正整常数m,使得对任意w∈L且|w|≥m,都可以分解成:w = xyz
其中,|xy|≤m
|y|≥1
并且,对所有的i=0, 1, 2……, 都有wi = xyiz ∈L。
7、正则语言对并、交、补、连接、星闭包、代换(含同态、逆同态)运算都是封闭的。
8、构造正则文法、DFA以及正则语言的判断例题见作业本。
二、上下文无关文法CFG——上下文无关语言CFL
——非确定型下推自动机(NPDA或PDA)
1、定义:文法G=(V, T, S, P)称为上下文无关文法CFG(context-free grammar),如果P中的产生式具有形式
A → x
其中,A∈V , x∈(V∪T)*。
L是上下文无关语言CFL,当且仅当存在一个CFG,满足L = L(G)。
对任何上下文无关语言CFL,都存在一个NPDA M使得L=L(M)。
NPDA (或PDA )的定义:
0000001122(,,,,,,)
()
::.,::({})(,,){(,),(,)(,)},,
m m PDA M Q q Z F q q Q
Z Z F F Q Q q a Z P P P M Z δδεδγγγεγ*=∑Γ∑Γ∈∈Γ⊆⨯∑⋃⨯Γ⨯Γ=∈∑⋃i 其中Q 为有穷状态集合(非空)
非空有穷字母表输入是非空有穷栈字母表
初态栈初始符号开始置于栈顶
终态集合
到Q 有穷子集合的映射
...
处于q 状态,栈顶为Z,读入a(a {})时,M 进入P 状态把弹出栈把,i i γε∈∑压入栈内的最左符号置于栈顶,带头不动(a=时),或向右移一格(a )
DPDA 的定义:
00,,,,,.
,.
(,,,,,,):
(1)(,,),(,,),,,DFA NFA PDA DPDA DCFL PDA CFL DPDA PDA M Q q z F q a X q X q Q a X δδδε=∑Γ∈∈∑∈Γ对于有穷状态自动机和是等价的对于图灵机确定的和不确定的也是等价的而对于下推自动机确定的与不确定的并不等价确定的下推自动机对应的是确定的上下文无关语言而
不确定的对应的就为确定下推自动机范式
若满足下述两条件若不空则必为空其中{}.
(2),,(,,)..
q q Q a X q a X M DPDA εδ∈∈∑⋃∈Γ对于每个及都有最多有一个元素则称为确定的下推自动机2、识别非上下文无关语言CFL ——泵引理
泵引理 设L 是上下文无关语言CFL ,那么一定存在一个
只与L 相关的正整常数m ,使得对任意w ∈L 且|w|≥m ,都可以分解成:
w = uvxyz
其中, |vxy|≤m