密码学的计算复杂性理论基础-Read

合集下载

现代密码学第三讲(二):复杂性理论

现代密码学第三讲(二):复杂性理论

算法复杂度的定义
定义 假设一个算法的计算复杂度为O(nt),其 中t为常数,n为输入问题的长度,则称这算 法的复杂度是多项式的。具有多项式时间复 杂度的算法为多项式时间算法.
函数g(n)=O(nt)表示存在常数c>0和n0>=0,对一切 n> n0均有|g(n)|<=c|nt| 成立,也就是说,当n足 够大时,g(n)存在上界.
7
算法复杂度的定义
时间(计算)复杂性:考虑算法的主要操作 步骤,计算执行中所需的总操作次数. 空间复杂性:执行过程中所需存储器的单元 数目. 数据复杂性:信息资源. 计算模型----确定性图灵机(有限带符号集合, 有限状态集,转换函数)(读写头,读写带) .
8
算法复杂度的定义
不同的编程语言,不同的编译器导致执行一 次操作的时间各不相同,为了方便不同算法 比较,通常假定所有计算机执行相同的一次 基本操作所需时间相同,而把算法中基本操 作执行的最大次数作为执行时间. 基本操作数量 运行时间= 机器速度
为NP完全的.
17
π ∈NP,都有π ∝ π ′ ,则称 π ′ 属于NPC类,或称
规约思想与NPC类 规约思想与NPC类 NPC
主要知识点小结
算法的复杂度定义及分类 密码算法的计算复杂度
作业
1 求冒泡排序法的计算复杂度, 该算法是否为多项 式的? 2 超递增背包问题:
设A=(a1,a2,…,an)是由n个不同的正整数构 j −1 n 成的n元组,且 a j > ∑ ai j = 2,L ,, i =1 S是另一已知的正整数。 求A的子集A’,使 ∑ a i = S. a ∈A ' (1) 给出该问题的求解算法; (2) 求算法的计算复杂度.

第2讲 密码学的复杂性理论基础

第2讲 密码学的复杂性理论基础
它通常含有若干个参数。
对于一个问题进行描述应该包括两方面的内容:必须对
问题的所有给定参数给出一般性描述;必须描述该问题 的答案(或解)应该满足的性质。
当问题的所有参数都有了确定的取值时,我们称得到了
该问题的一个实例(instance)。
算法(algorithm)

即求解某个问题的一系列具体步骤(通常被理解为求解所需
的通用计算程序)。
算法总是针对具体问题而言的,求解一个问题的算法通
常不止一个。
当某个算法能够回答一个问题的任何实例时,我们称该
算法能够回答这个问题。
当一个问题至少有一个能够回答该问题的算法时,我们
称该问题可解(resolvable),否则称该问题不可解 (unresolvable)。
算法复杂性
GMR模型; FFS模型。

非交互零知识证明 :用一个短随机串代替交互过程并实现 了零知识证明 。 20世纪80年代末,Blum等人进一步提出
成员(或定理)的非交互零知识证明系统;
知识(或身份)的非交互零知识证明系统。
交互图灵机

交互图灵机指的是一个具有一条只读输入带、一条工作带、 一条随机带、一条只读通信带和一条只写通信带的图灵机。 其中,随机带上包含一条无限长的随机比特序列,并且只能
2
12
11.6天
32,000年
宇宙年龄的10
2 3
301006
18
O (2 )
n
10
301 , 030
O(1) O(log
n) O(n) O(nlog 2
n) O(n ) O(n ) O(2 ) 2
n
问题复杂性

计算复杂性

计算复杂性

计算复杂性
计算复杂性理论是理论计算机科学的分支学科,使用数学方法对计算中所需的各种资源的耗费作定量的分析,并研究各类问题之间在计算复杂程度上的相互关系和基本性质,是算法分析的理论基础。

和可计算性一样,复杂性总是对于一个特定的问题类来讨论的,它包括无穷多个个别问题,有大有小。

例如,对矩阵乘法这样一个问题类,相对地说,100阶矩阵相乘是个大问题,而二阶矩阵相乘就是个小问题。

可以把矩阵的阶n作为衡量问题大小的尺度。

又如在图论问题中,可以把图的顶点数n作为衡量问题大小的尺度。

一个问题在计算之前,总要用某种方式加以编码,这个编码的长度n就是衡量问题大小的尺度。

当给定一个算法以后,计算大小为n的问题所需要的时间、空间等就可以表示为n的函数。

这个函数就可作为该算法的时间或空间复杂性的度量。

严格地讲,是这个特定的问题类在某一特定计算模型中某一特定算法的复杂性之度量。

当要解决的问题越来越大时,时间、空间等资源耗费将以什么样的速率增长,即当n趋向于无穷大时,这个函数的性状如何,增长的阶是什么,这就是计算复杂性理论所要研究的主要问题。

信息安全导论5密码学数学基础

信息安全导论5密码学数学基础

2024/4/3
13
3、模运算:对于某个固定模m的同余式可以象普通的等式那 样相加相减和相乘:
a(mod m)±b(mod m)=(a±b)(mod m)
a(mod m)*b(mod m)=a*b(mod m)
例:由同余式演算证明560-1是56的倍数,223-1是47的倍数。
解:
注意53=125≡13(mod56) 于是有56≡169≡1(mod56) 对同余式的两边同时升到10次幂, 即有56∣(560-1)。 其次, 注意26=64≡-30(mod47),
2024/4/3
5
互素与最大公约数
最大公约数(最大公因子):
若a,b,c∈Z,如果c∣a,c∣b,称c是a和b的公约数。正 整数d称为a和b的最大公约数(记d=gcd(a,b)或(a,b)) ,如 果它满足:
d是a和b的公约数。 对a和b的任何一个公约数c有c∣d。
等价的定义形式是:
gcd(a,b)=max{k: k∣a,k∣b} 若gcd(a,b)=1,称a与b是互素的。
2024/4/3
4
整除基本性质 a|a; b≠0,b | 0;
If a|b,b|c,then a|c;
if a|1, then a=±1; if a|b, and b|a,then a=±b; if b|g and b|h, then b|(mg+nh),for any integers m and n 注意: if a=0 mod n, then n|a
g c d ( a ,b ) = P 1 m in ( e 1 ,f1 )P 2 m in ( e 2 ,f2 )
P m in ( e t,ft) t
lc m ( a ,b ) = P 1 m a x ( e 1 ,f 1 ) P 2 m a x ( e 2 ,f2 )

第4章密码学的计算复杂性理论基础

第4章密码学的计算复杂性理论基础
*
r
• 定义 4.14 称一个多项式时间概率算法M可解 一个语言L的成员识别问题,若对任一输入数 据 x 0,1*,有 (1)若 x L,则 Prb( x) 1 2 / 3 (2)若 x L ,则 Prb( x) 0 2 / 3 称一个语言L的成员识别问题属于BPP类,若 存在一个可解该问题的多项式时间概率算法。 所有BPP类问题构成的集记作BPP。
4.1.2 算法与图灵机
有限状态控制器 读写头
…. -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 8 …无限长 磁带
图4.1 确定性单带图灵机示意图
• 定义 4.4 一个确定性单带图灵机由下列集和函数构成。 1. 1)带中所用字符集B,通常可设 B 0,1, ,其中 表示空。 2)读写头所处的可能状态集S,其中包含一个初始状态 和若干个停机状态 。 s0 TS 3)读写头所处状态的转移函数 ,它是读写头现在所处状 态s和所读字符b的函数,表示为 。 :SB S 4)读写头动作的指令函数 ,它也是读写头现在所处状态 s 和所读字符b的函数,表示为 ,其中 :S B B l , r l代替 r b, 且都不属于B。若 ,则读写头写字符 ' ' (s, b) b B b 且保持原位不动。若 ,则原字符b保持不变, (s, b) l (或r ) 读写头向左(或向右)移动一个小方格。 2. 磁带上的每个小方格用一个整数坐标i表示。小方格i中的字 符记作t(i),磁带表示为函数 。
K ( x) K ( x)
K ( x)
K ( x)
f M (n) maxK ( x)
x; x n
• 定义 4.6 设f(n)和g(n)为两个正整数函数, nn n0 c使当 若存在正整数 和常数 时 有 f (n) cg(n),则记作 f (n) ( g (n)) ; 若 f (n) ( g (n)) , g (n) ( f (n)) ,则记作

密码学的计算复杂性理论

密码学的计算复杂性理论

从前,有一个酷爱数学的年轻国王向邻国一位聪明美丽的公主求婚。 公主出了这样一道题:求出48 770 428 433 377 171的一个真因子。若国王 能在一天之内求出答案,公主便接受他的求婚。国王回去后立即开始逐个 数地进行计算,他从早到晚,共算了三万多个数,最终还是没有结果。国 王向公主求情,公主将答案相告:223 092 827是它的一个真因子。国王很 快就验证了这个数确能除尽48 770 428 433 377 171。公主说:“我再给你 一次机会,如果还求不出,将来你只好做我的证婚人了。”国王立即回国, 并向时任宰相的大数学家求教,大数学家在仔细地思考后认为这个数为17 位,则最小的一个真因子不会超过9位,于是他给国王出了一个主意:按自 然数的顺序给全国的老百姓每人编一个号发下去,等公主给出数目后,立 即将它们通报全国,让每个老百姓用自己的编号去除这个数,除尽了立即 上报,赏金万两。最后,国王用这个办法求婚成功。
– 当将一个问题分解到多个处理器上解决时,由于算法中不可避 免地存在必须串行执行的操作,从而大大地限制了并行计算机 系统的加速能力。
•设f为求解某个问题的计算存在的必须串行执行的操作占整 个最计大算 的的 加百 速分 能比 力,,则p为处理器的数目,Sp为并行计算机系统
设f=1%,p→,则Sp=100。(阿达尔定律) 串行执行操作仅占全部操作1%,解题速度最多也只能提高 一百倍。 对难解性问题而言,提高计算机系统的速度是远远不够的, 而降低算法复杂度的数量级才是最关键的问题。
读写头
状态 控制器 q
图灵在1936年提出了著名的图灵机模型(计算模型): ▪图灵机由一个无限长的带子(被划分成均匀的方格) 、一个磁带读/写头 和一个有限状态控制器组成。 ▪在每一步计算中,图灵机从磁带上读出一个符号,并由有限状态控制器决 定是否在当前的磁带区上写入不同的符号,然后决定是否需要将磁带读/写 头向前或向后移动一位。 当前的计算机,在理论上都是可以被图灵机模拟的,其原理和图灵机是相同 的,甚至还包含了存储程序的思想。

计算理论计算复杂性ppt课件

计算理论计算复杂性ppt课件
((x1)x2(x3)) (x2(x3)x4x5) ((x4)x5) • 合取范式cnf (conjunctive normal form)
3cnf: 每个子句文字数不大于3, 2cnf: 每个子句文字数不大于2
可满足问题SAT
• 可满足性问题: SAT = { <> | 是可满足的布尔公式 }
• 思想: 将字符串对应到布尔公式 利用接受的形式定义.
• 过程: 任取ANP, 设N是A的nk时间NTM. w(|w|=n), N接受w
N有长度小于nk的接受格局序列 能填好N在w上的画面(一个nknk表格) f(w)可满足 • 结论: SAT是NP完全的
N接受w能填好N在w上的画面
# q0 w0 w1 … wn #
2)若0,1都在带上,重复以下步骤. O(n)
3) 检查带上0,1总数的奇偶性,
若是奇数,就拒绝.
O(n) log n
4) 再次扫描带,
第1个0开始,隔1个0删除1个0; O(n)
第1个1开始,隔1个1删除1个1.
总时间:
5)若带上同时没有0和1,则接受. O(n) O(nlogn)
否则拒绝.”
{0k1k|k0}TIME(nlogn)
快速验证
HP = {<G,s,t>|G是包含从s到t的 哈密顿路径的有向图}
CLIQUE={<G,k>|G是有k团的无向图} 目前没有快速算法,但其成员是可以快速验证的. 注意:HP的补可能不是可以快速验证的. 快速验证的特点: 1. 只需要对语言中的串能快速验证. 2. 验证需要借助额外的信息:证书,身份证.
• 二元可满足性问题: 2SAT = { <> | 是可满足的2cnf }

公钥密码体系和算法-Read

公钥密码体系和算法-Read

散列函数的一般结构
Y0
IV= CV0 b nY1ຫໍສະໝຸດ b f n CV1 f n
Y L -1
b n CVL-1 f n CVL
IV = 初值 CV= 链接变量 Yi = 第 i 个输入块 f = 压缩算法
L = 输入的块数 n = 散列码长度 b = 输入块长
散列算法
• 大多数重要散列算法遵循以上结构。... • 报文摘要算法 MD5 (Message Digest 5) MD5是麻省理工学院的 Ron Rivest 提出,被广 泛使用。它产生128位散列值。 • 安全散列算法 SHA-1 (Secure Hash Algorithm-1) SHA是由美国国家标准和技术局NIST提出, 1993年公布,1995年发布了修订版,称SHA-1。 它产生160位散列值。
RSA的速度 • • • • • 已经制造出许多实现RSA加密的芯片。 硬件实现时,RSA大约比DES慢1000倍。 软件实现时,RSA大约比DES慢100倍。 这些数字会随技术发展而变化。 但RSA的速度将永远不会达到对称密钥 密码算法的速度。 • 公钥密码和对称密钥密码各有所长,各 有所用。
RSA的安全性
么难...。1977年RSA的三位发明者在<科学美国人>印 一密码,悬赏100美元破译,公钥是129位十进制数。 1994年4月一个通过Internet合作小组8个月后破译。...
其它公钥密码算法
• 安全使用 RSA 所要求的密钥长度近年已增加 到1024位, 这对使用 RSA 的应用增加了处理开 销。 • 1985年N.Koblitz和Miller提出将椭圆曲线用于 密码算法, 椭圆曲线密码系统 ECC (Elliptic Curve Cryptography)的前景看好。 • ECC 的主要优点是它似乎用位数少得多的密钥 (160)取得和 RSA(1024) 相等的安全性,因此减 少了处理开销,加密系统运算更快。 • ECC 比 RSA 等算法都难于解释。

计算复杂性理论总结报告

计算复杂性理论总结报告

计算复杂性理论总结报告(总10页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--计算复杂性理论总结报告一、图灵机(1)图灵机基本模型图灵机是由图灵(Alan Mathisom Turing)在1936年提出的,它是一个通用的计算模型。

通过图灵机,来研究递归可枚举集和部分递归函数,对算法和可计算性进行研究提供了形式化描述工具。

图灵机的基本模型包括一个有穷控制器,一条含有无数个带方格的输入带和一个读写头。

其直观物理模型如下图1所示。

基本图灵动作有以下三种:(1)改写被扫描带方格内容,控制器转化为下一状态。

(2)读写头向左移一个带方格,控制器转化为下一状态。

(3)读写头向左移一个带方格,控制器转化为下一状态。

图1图灵机(2)图灵机形式化定义,图灵机演算过程及语言描述定义:一个基本图灵机定义为一个七元组 TM={Q,C,δ,A,B,q1,F}。

其中Q是状态集合,(图灵机所有的状态)非空有限集;C是带符号表,(放在带方格中的符号集合)非空集;δ是控制函数或过程转换函数(定义控制器)δ:QxC QxC∪(R,L);A是输入字母表,A⊆C;B是空白符,B∈C;q1是初始状态,q1∈Q;F是终态集,F ⊆Q.TM的扫描符号串主要由δ来确定:(1)δ(q,s)=(q’,s’);(2)δ(q,s)=(q’,R);(3)δ(q,s)=(q’,L);(4)δ(q,s)无效,对应无定义时图灵机终止。

TM的工作用“格局”的转换来描述。

格局:σ:a1a2a3…aj-1qajaj+1…其中q∈Q,ai∈C;(1)若δ(q,ai)无定义,称σ为停机格局;(2)若q∈F,称σ为接受格局;(3)若q为初始状态,称σ为初始格局;格局σ到格局τ的转换σ├mτ若成立σ=σ1├m1σ2├m2σ…3├Mσk 记为σ1├*σk (k>=0)(3)图灵机其他形式(1)五元机δ:QxC→QxCx{R,L}基本动作:qsq’s’即δ(q,s)=(q’,s’);qsq’L即δ(q,s)=(q’,L);qsq’R即δ(q,s)=(q’,R)。

密码学基础知识进阶指南

密码学基础知识进阶指南

密码学基础知识进阶指南在当今数字化的时代,密码学已经成为保护信息安全的关键学科。

无论是在线购物、银行交易,还是个人通信,密码学都在默默守护着我们的隐私和数据安全。

如果您已经对密码学的基础知识有了一定的了解,那么这篇文章将带您进一步深入密码学的世界,探索更复杂和高级的概念。

一、对称加密算法的深入理解对称加密算法是密码学中最常见的一类加密方式。

在这种算法中,加密和解密使用相同的密钥。

常见的对称加密算法如 AES(高级加密标准),它具有高效性和安全性,被广泛应用于各种领域。

然而,对称加密算法并非完美无缺。

密钥的分发和管理就是一个棘手的问题。

如果在密钥分发过程中被攻击者窃取,那么整个加密系统就会面临巨大的风险。

为了解决这个问题,就引出了非对称加密算法。

二、非对称加密算法的奥秘非对称加密算法使用一对密钥,即公钥和私钥。

公钥可以公开,用于加密信息;私钥则必须保密,用于解密由对应公钥加密的信息。

RSA 算法就是非对称加密算法的一个典型代表。

非对称加密算法虽然解决了密钥分发的问题,但它的计算效率相对较低,不适合用于大量数据的加密。

因此,在实际应用中,常常将对称加密和非对称加密结合起来,充分发挥它们各自的优势。

三、哈希函数的重要性哈希函数是一种将任意长度的消息压缩成固定长度摘要的函数。

它具有不可逆性,即很难从摘要反推出原始消息。

常见的哈希函数如MD5 和 SHA-256 等。

哈希函数在数字签名、数据完整性验证等方面发挥着重要作用。

例如,在文件下载时,可以通过对比文件的哈希值来确保文件没有被篡改。

四、数字签名的原理与应用数字签名是一种用于验证消息来源和完整性的技术。

它基于非对称加密和哈希函数的结合。

发送者使用自己的私钥对消息的哈希值进行加密,生成数字签名。

接收者使用发送者的公钥对数字签名进行解密,并对比消息的哈希值,从而验证消息的真实性和完整性。

数字签名在电子合同、电子投票等领域有着广泛的应用,为网络通信提供了可靠的信任机制。

第一讲计算复杂性理论精品PPT课件

第一讲计算复杂性理论精品PPT课件
It'S An Honor To Walk With You All The Way
演讲人:XXXXXX 时 间:XX年XX月XX日
计算量的表示法: 上界值表示法
O記号:(Big O Notation)
•定義: O(f(n)) 读作order f(n), 或阶 f(n)
即: g(n)=O(f(n))
–表示对于任意定数c 和 m,以及对所有 n>m, 有下式成立:
g(n)< cf(n)
计算量的表示法——例
n2+1000n→O(n2)
第一讲: 计算复杂性理论 (Complexity Theory)
计算量的概念 计算量的表示 算法与计算量 计算复杂性 影响计算复杂性的因素
优化问题及其计算的复杂性
例:
组合优化问题:
1 3 9
2 4 0
3 5 1
4 6 2
5 7 3
組合数虽然有限,但因其数量太多,寻找最优解很难。
背包问题(knapsack problem):
计算量的膨胀(1)
10行×10列棋盘上米粒的数量
(第1格内放1粒米,以后每格顺次增加1倍……)
格序号
米粒数
重量 (kg)
1
1
2.0×10-5
9
256
5.1×10-3
18
131072
2.6×100
27
67108864
1.3×103
36
34359738368
6.9 ×105
45
17592186044416
計算量(2)
{a1, a2,..., an}:n個整数
Q1. 求和(1): a1+a2+・・・+an. n-1 steps → O(n)算法.

《密码学基础》课件第8章

《密码学基础》课件第8章
最坏情况下的渐进时间复杂度分析由Hopcroft和Tarjan最 先应用于实际问题,其目的是为算法分析给出一个不依赖于 具体硬件的定量方法。
定义8.1.2 渐进记号(Asymptotic Notation) 假定f(·)、 g(·)均为非负函数,定义域均为N。问题的输入规模为n,为 描述渐进复杂度中的阶,定义如下记号:
8.1 确定性多项式时间 8.2 非确定多项式时间 8.3 概率多项式时间 8.4 多项式时间不可区分性 习题
8.1 确定性多项式时间
8.1.1 算法效率分析 所谓算法(Algorithm)即是在有限步骤内求解某一问题所
使用的一组定义明确的规则。前面章节中已经介绍了许多算 法,但未对其做详细的效率分析。本节主要给出衡量算法效 率的方法,它是后续几节的基础。
8.2 非确定多项式时间
如果所有的问题都存在有效算法,那么密码即无存在的 价值,因为破译密码可以通过有效算法轻易解决。事实上, 大多数问题目前还未发现有效算法。这些“未解决”问题中 有一个巨大的问题子集,它们拥有共同的特点,即对于这些 问题的正确答案能在多项式时间内验证。一个最简单的例子 就是判定某数是否是合数,如果有人声称找到了其约数,可 以在多项式时间内验证之。计算机科学和密码学中可找到许 多类似的问题,它们的集合称之为NP。
Y
{ T}
与不接受状态集 N { F} 。接受格局(Accepting Configuration)
意味着DTM
Y
DTM不接受该输入
N
DTM可等价于一台能回答问题的
机器,接受输入数据计算后仅可回答Yes或No。DTM是否停机属
于可计算性(Computability)领域所研究的问题,可参阅相关书籍。
表面上,DTM只能以停机来表示接受输入的程序和数据,

公钥密码学Read课件

公钥密码学Read课件
计算密文对: C1 = 536 = 50 mod 97 C2 = 75.3 mod 97 = 31 mod 97 发送 {50,31} to Bob
Bob 恢复 message key K=5058=75 mod 97 Bob 计算 K-1 = 22 mod 97
Bob 恢复明文 M = 31.22 = 3 mod 97
公开密钥(a public-key), 可以被任何人知道, 用于加密或验证签名
私钥( private-key), 只能被消息的接收者或签
名者知道,用于解密或签名
加密或验证签名者不能解密或多或生成签名. 是密码学几千年历史中最有意义的结果
第4页,共41页。
3.公钥加密方案
第5页,共41页。
4.公钥密码理论 由私钥及其他密码信息容易计算出公开密钥 (a
第6页,共41页。
5.公钥算法分类
Public-Key Distribution Schemes (PKDS)
用于交换秘密信息(依赖于双方主体) 常用于对称加密算法的密钥
Public Key Encryption (PKE) 用于加密任何消息
任何人可以用公钥加密消息
私钥的拥有者可以解密消息
保存其解密似钥:
K-1r={d,p,q}
第10页,共41页。
4。RSA 参数选择
需要选择足够大的素数 p, q 通常选择小的加密指数e,且与ø(N) 互素 e 对所有用户可以是相同的 最初建议使用e=3 现在3太小 常使用 e=216-1 = 65535 解密指数比较大
第11页,共41页。
16. El Gamal Example
选择 p=97 及本原根 a=5 recipient Bob 选择 秘密钥xB=58 & 计算并发布公钥yB=558=44 mod 97
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
别表示该时刻读写头所处状态,磁带和读写头所扫描的 小方格坐标,t(i)为读写头在该时刻所读字符。
4. 一个图灵机的计算程序(算法)是一个形的有限或无限
序列(s0 ,t0 ,i0 ), (s1,t1,i1), (s2 ,t2 ,i2 ), ,其中(s0 ,t0 ,i0 )为图灵机在初
始时刻的形,即 数据(字)x B*
4.1.2 算法与图灵机
有限状态控制器 读写头
…. -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 8 …无限长 磁带
图4.1 确定性单带图灵机示意图
• 定义 4.4 一个确定性单带图灵机由下列集和函数构成。
1. 1)带中所用字符集B,通常可设 B 0,1,,其中 表示空。
第4章 密码学的计算复杂性 理论基础
4.1 问题与算法的复杂性
• 4.1.1 问题与语言
– 例4.1 . 整数的因子分解问题。
– 例4.2 . 背包问题。
实际应用中的绝大多数问题都可直接或 间接地转化为判定问题。
• 定义4.1 B*的任一子集L称为一个B-语言(或
简称语言)。语言L中的字称为语言L的成员。 • 定义4.2 设一个语言L B*已给定。语言L成员
的识别问题可描述为:任给 x B(* 参数),问 是否x是L语言的成员(是否 x L)? • 定义4.3 设D (I, I 为) 一个问题,B为一个字符 集。从I到 B*中的一个映射c,满足条件c(I ) c(I ) (空集),称为问题D的一个B-编码。若c为
D的一个编码,集 L(D,c) c( ); I c(I ) 称为


b tk (i) tk1 (i)
i ik1 i ik1
(4.3)
若若((sskk11,,ttkk11((iikk11))))

l r
则tk tk1, ik ik1 1 则tk tk1, ik ik1 1
若存在形 (sk ,tk ,ik ) 使 sk T ,则计算在时刻 K min( k; sk T ) 终止,同时停机,称 (tk ,ik ) 或 tk (ik ) 为计算的输出结果,K 称为图灵机(算法)的运行(计算)时间。否则计算将 不终止,不停机,直到无限。
(n)

(
p(n))
,所有P类问题构成
• 定义4.9 一个语言L的成员识别问题属于NP类,若存
在一个 0,1* 0,1*的子集 RL (x, y) (称为一个布尔关系)
及一个正多项式p(n)满足下列两个条件:
1)RL 的成员识别问题属于P类;
给s 0为出初,始通状常态存,放t0为在初1 始x磁小带方,格它中由,输其入
它形小(sk方,tk格,ik 中), k 为 1空,2,字由符下 面,的通递常推i0 式 1给。出图。灵机在k时刻的
若(sk1, tk1 (ik1 )) b B 则ik ik1
sk (sk1 , tk1 (ik1 ))
• 定义 4.5 称一个图灵机 M可解一个语言
L 的成员识别问题,若对任一输入数
据 x 0,1*,M在有限时刻 K(x)停机,且M
的输出 ,若 。否则 。 tK(x) (iK(x) ) 1
xL
t K (x) (iK (x) ) 0
图灵机的计算复杂性定义为
f
M
(n)

maxK
x; x n
(
x)
• 定义 4.6 设f(n)和g(c使当 时n n0 有 f (n) cg(n),则记作 f (n) (g(n)) ;
若 f (n) (g(n)) , g(n) ( f (n)) ,则记作
f (n) Θ (g(n))
• 定义4.7 设 fM (n)和 fM ' (n)为图灵机M和 M '的 计算复杂性,若 fM (n) ( fM' (n)),则称算法 M ' 不比算法M有效;若 fM (n) ( fM' (n)) ,则称算 法M和M '是等效的;若存在正整数d, fM (n) (nd ),则称M为多项式时间算法,按 密码学中的传统观念,认为多项式时间 算法为有效算法;若 fM (n) (2logn ) ,则称M 为亚指数时间算法;若 fM (n) , (2n )或(10n )
2)读写头所处的可能状态集S,其中包含一个初始状态
和若干个停机状态

s0
3)读写头所处状态T的转S 移函数 ,它是读写头现在所处状
态s和所读字符b的函数,表示为

4)读写头动作的指令函数 ,它也: S是读B 写S头现在所处状态s
和所读字符b的函数,表示为
,其中
且都不属于B。若
: S, B则读B 写l,头r 写字符 l代替r b,
D的一个c-语言。
• 引理4.1 若c为D的一个编码,则求解问题D和 求解语言 L(D,c)的成员识别问题是等价的,即
问题D的任一例子 I,其答案与语言L(D,c)的
成员识别问题的例子的答案 c( )是相同的。
• 一个合理编码还应满足下列两个基本要求:
1) 编码是容易实现的;
2) 求解问题的任一例子的计算复杂性(通常 用计算时间来表示)与的长有某种正比关系。
则称M为指数时间算法。亚指数和指数 时间算法也被称为超多项式时间算法, 被认为不是有效算法。
4.2 问题的计算复杂性分类
• 4.2.1 P,NP,NP完全类问题
• 定义4.8 一个语言L的成员识别问题属于P类,若存在
一个可解该问题的图灵机M和一个正多项式 p(n),使
M的计算复杂性 的集记作P。
fM
且保持原位不动。若(s,b) b' B
,则原字符b保持b ' 不变,
读写头向左(或向右)移动(s一,b)个 l小(或方r) 格。
2. 磁带上的每个小方格用一个整数坐标i表示。小方格i中的字
符记作t(i),磁带表示为函数

t : Z (整数集) B
3. 图灵机在某一时刻的形是指一个三元组(s, t, i),它们分
相关文档
最新文档