【组合数学】第8章组合算法与计算复杂性.ppt

【组合数学】第8章组合算法与计算复杂性.ppt

【组合数学】第8章组合算法与计算复杂性

定义6 (非确定图灵机NDTM) 若一图灵机的转移函数δ: Q×Γk→Q× Γk ×{R, L}k为一多值映射,即在图灵机运行的某些步骤上,对于当前状态,需要在多个后继状态下选择一种, 则称该图灵机为非确定图灵机, 记为NDTM。 命题2每个非确定图灵机都有一个与之等价的确定图灵机。 证明略。 推论1一个语言是图灵机可识别的,当且仅当有非确定图灵机识别它。  图灵机的输入总是一个串。如果想以一个不是串的对象作为输入,必须先将该对象表示成串。串能很容易地表示多项式、图、 文法、自动机及这些对象的任意组合。 可以设计一个图灵机对这些表示进行适当的解码,使之被解释为所希望的对象。对象O的编码表示(即串)的记号是O。如果有多个对象O1, O2, …,Ok, 它们的编码是串, 记为 O1, O2, …,Ok ,可用多种合理的方式编码。 原因是图灵机总能将一种编码翻译成另一种。 定义7 对于长度为n的输入:  (1)存在一个确定图灵机M,M执行T(n)步后停机,称函数T(n)是时间可构造的;  (2)存在一个确定图灵机M,M在某一条带上第S(n)个单元上打印1个特殊的标识,且任一带上使用的单元数小于等于S(n) , 称S(n)是空间可构造的。  n2,2n,n!等都是时间(空间)可构造函数。 命题3 设M是时间复杂性为T(n)的不确定图灵机,则存在常数C1和确定图灵机M′,使得L(M)=L(M′),且M′的时间复杂性为O(CT(n))。  证明 不确定图灵机M的δ是多值映射,设对每个k+1之组,δ的值不超过d个。对于输入x,考虑M在x上操作,任一个瞬时格式的后继有多个,数目不超过d; 依δ的定义,可构造一棵树T,树根是初始瞬时格式,后继瞬时格式是前一格式的子节点。对树T的每一层给一顶点的子节点自左向右以一个序,并给树中每个节点一个标号: 根节点标1, 若某一分支点的编号为(n1, n2, …, nt),该分支点第t个儿子的编号为(n1, n2, …, nt, t)。每个节点都对应着A={1, 2, …, d}上一个序列。 因M的时间复杂度为T(n),若M接受长为n的输入串,则一定存在长度不超过T(n)的瞬时格式序列,它对应于T中一条由根开始的长度小于等于T(n)的路。T中这种路总共不超过(d+1)T(n)条。 对于长度为n的任一串x,构造M′模拟M的行为。M′依词典序生成A上所有长度不超过T(n)的串。对已生成的A上任一串w,相应的w在T中有瞬时格式序列σw,确定图灵机M′在σw上模拟M, 若在σw上M接受输入串x,则M′接受x。若对w,在T中不存在瞬时格式序列σw ,或M不接受x,则M′就选下一个A上的串。  产生一个串w要耗费O(T(n))时间。模拟M的动作要耗费O(T(n))时间,因A上串的总数不超过(d+1)T(n),因而M′模拟M的总耗费时间为O(T(n)(d+1) T(n) )。 因此,存在常数C1,模拟时间至多为O(C T(n))。 8.5.2 几个特殊语言类 定义8(P类语言与NP类语言) P={L|存在DTM M和多项式P(n),使得M的时间复杂性为P(n)且L(M)=L}; NP={L|存在NDTM M和多项式P(n) ,使得M的时间复杂性为P(n) +且L(M)=L}。称P与NP分别为多项式时间复杂性囿界下被确定与不确定图灵机所接受的语言类。  一个问题属于P或属于NP,当且仅当该问题的一种编码语言属于P或属于NP。 例5(合取范式的可满足性问题) 设t元命题公式A=A1∧ A2 ∧…∧ Am, 其中,每个Ai(i=1~m)都是析取公式。若存在一组命题变元的指派(赋值),使A为真, 则称合取范式为可满足的。对于实例: P=( P1∨ P2)∧(P1 ∨ P3), 指派: P1 =0, P2 =1, P3 =1 可使P取1。 按照某种编码规则,P可表示为(1+2)(1+3)。 设L是合取范式可满足问题的编码语言, (1+2)(1+3)为L中的一个字。为证L∈NP,可构造一台NDTM M,其时间复杂性为O(P(n)),且L(M)=L。设有长度为n的输入w ,w是公式A=A1∧A2∧…∧Am的一种编码。A的命题变元数小于等于n, 公式A的指派数不超过2n。NDTM并行地给出所有指派, 并计算公式A的真值。只要有1个Ai的真值为0

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档