密码学的计算复杂性理论

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
间算法.
例如:Hanoi塔问题算法的时间复杂度,可以用一个指数函数O(2n)来表示, 显然,当n很大(如10000)时,计算机是无法处理的。相反,当算法的时间 复杂度的表示函数是一个多项式,如O(n2)时,则可以处理。因此,一个问 题求解算法的时间复杂度大于多项式(如指数函数)时,算法的执行时间将 随n的增加而急剧增长,以致即使是中等规模的问题也不能求解出来,于是 在计算复杂性中,将这一类问题称为难解性问题。人工智能领域中的状态图 搜索问题(解空间的表示或状态空间搜索问题)就是一类典型的难解性问题。
当n很大时,问题很难。 对于n=8,现已知此问题共有92种解,但只有12种是独立的,其 余的都可以由这12种利用对称性或旋转而得到。 设n=4,试一试。
编程试一试,看能解到n多大?
3)SAT问题
使可以得判(形定x1(式0一) , 化x个2(0地)n,元表,布x示n(0尔)为) 函:数。称为f (可x1(y0满) ,x足2(f0)(性,x1,问,xx2题n,(0) )(,xS1n a) tisfiab,il是ity否)存,在简一称组SA赋T,它值
启发式求解: • 子句检测:如果当前取值使得某个子句为假,则立即回溯 • 纯符号启发:所谓纯符号是指在所有子句中以同样形式出现的变量。例如
(A∨~B)∧(~B∨~C)∧(A∨C)中,A和~B是纯符号。对于所有的纯符号 都可以设它们的值为真。因为对于任何一种满足整个CNF的变量取值来说,如果 某个纯符号为假,把它变成真不会影响整个CNF的值。特别地,在判断纯符号时 可以忽略某些已经为真的子句。 • 单元子句启发:单元子句是指只有一个变量的子句。单元子句的符号取值必须为 真。特别地,如果某个子句中除了一个符号之外的所有符号值都为假,则这个子 句也是单元子句。
下一页
1982年, Cook因其在计算复杂性理论方面(主要是在NP完全性理论 方面)的奠基性工作而荣获ACM图灵奖。
在Cook工作的影响下,卡普(R.Karp)随后证明了21个有关组合优化 的问题,也是NP完全性问题,从而加强和发展了NP完全性理论。卡普由 于在计算复杂性理论、算法设计与分析、随机化算法等方面的创造性贡献, 于1985年获ACM图灵奖。
即:由n个正整数组成的集合A =
集 使得
。A
x S
xA
{a1, ,a2 ,现有, a整n}数S,确定是否有子
显然,给定一个子集验证其和是否等于S是容易的。但试验所有子集的时
间复杂性为
,是一个NP问题O(.2n )
2) 皇后问题:这是高斯1850年提出的一个著名问题: 国际象棋中 的“皇后”在横向、直向、和斜向都能走步和吃子,问在n×n 格 的棋盘上如何能摆上n个皇后而使她们都不能互相吃。
NP完全问题在理论和实践两方面都具有重要的研究意 义。历史上第一个NP完全性问题是Cook于1971年提出的可 满足性问题,SAT问题和NP问题有密切的联系。 NP中的每个
问题都可用多项式时间转化成为可满足问题。若可满足问题是易解的, 则NP中每个问题都是易解的;若NP中某个问题都是难解的,则可满 足问题也是易解的。一个NP问题称为“NP完全的”,是指NP中每个 问题都可以用多项式时间转化为该问题。NP完全问题的全体记作NPC。 Cook定理:CNF-satisfiablity(SAT)问题是NP-完全问题。 定理(NPC性质):若NPC中任何一个问题属于P,则所有NP问题都 属于P且P=NP. 推论: SATP 当且仅当P=NP
式时间解法。 定理2:设Y<=pX。如果Y不存在多项式时间解法,则X同样不存在
多项式时间解法。 定理3:设Z<=pY,Y<=pX,则Z<=pX
所以,证明一个问题是NP完全的可以这样做:
定理:如果Y是一个NP完全问题,X是一个NP问 题,并且有Y<=pX,则X也是NP完全的。 证明:对于任意NP问题Z,根据NP完全的定义有 Z<=pY,根据传递性得Z<=pX。又X是NP问题,根 据定义得X是NP完全问题。
或者说: 在非确定的图灵机上用多项式时间可解的问题,称为非确定型多
项式时间可解问题,即NP问题。其含义是,若机器猜测一个解,非确 定的图灵机就可以在多项式时间内验证它的正确性。(即:可以在多项 式时间内验证某个解是否合法的问题)
全体非确定型多项式时间可解类记作NP类。
NP难问题:如果对于某个问题X,任意NP问题Y,可以在 多项式时间内转换为(归约)到X。通俗地讲X至少和Y一样难, 则 称X是NP难的问题。
读写头
状态 控制器 q
图灵在1936年提出了著名的图灵机模型(计算模型): ▪图灵机由一个无限长的带子(被划分成均匀的方格) 、一个磁带读/写头 和一个有限状态控制器组成。 ▪在每一步计算中,图灵机从磁带上读出一个符号,并由有限状态控制器决 定是否在当前的磁带区上写入不同的符号,然后决定是否需要将磁带读/写 头向前或向后移动一位。 当前的计算机,在理论上都是可以被图灵机模拟的,其原理和图灵机是相同 的,甚至还包含了存储程序的思想。
记为ff((nn))=O(gO((ng))(n。))即f(n)的阶不高于g(n)的n0阶。
n n0
f (n) c | g(n) |
算法按复杂性分类
多项式时间算法——时间复杂性为
,kO为(n常k 数) 。
指数时间算法——时间复杂性为
,Ot为(t常h(n数) ),
是多项式。 h(n)
当 大于常数小于线性函数时,称为超多项式时 h(n)
几个NP问题的例子: 1)背包问题(子集和问题)
例1:有一旅行者要从n种物品中选取不超过b公斤重的行李随身携带,要 求总价值最大。如:设背包的容量为50千克。物品1重10千克,价值60元;物 品2重20千克,价值100元;物品3重30千克,价值120元。求总价值最大。
例2:设有n=8个体积分别为54,45,43,29,23,21,14,1的物体和一 个容积为C=110的背包,问选择哪几个物体装入背包可以使其装的最满。
– 当将一个问题分解到多个处理器上解决时,由于算法中不可避 免地存在必须串行执行的操作,从而大大地限制了并行计算机 系统的加速能力。
•设f为求解某个问题的计算存在的必须串行执行的操作占整 个最计大算 的的 加百 速分 能比 力,,则p为处理器的数目,Sp为并行计算机系统
设f=1%,p→,则Sp=100。(阿达尔定律) 串行执行操作仅占全部操作1%,解题速度最多也只能提高 一百倍。 对难解性问题而言,提高计算机系统的速度是远远不够的, 而降低算法复杂度的数量级才是最关键的问题。
密码学的计算复杂性理论
➢算法与算法复杂性
算法:求解某个问题的一系列具体步骤,可能一个问题 种算法 理解为求解该问题的计算机程序)。
有多
可解与不可解:如果一个算法能解决该问题的所有实例,则称该算法 能解答该问题。如果针对一个问题至少存在一个算法可以解答该问题, 则称该问题是可解的。否则称为该问题是不可解的。
从前,有一个酷爱数学的年轻国王向邻国一位聪明美丽的公主求婚。 公主出了这样一道题:求出48 770 428 433 377 171的一个真因子。若国王 能在一天之内求出答案,公主便接受他的求婚。国王回去后立即开始逐个 数地进行计算,他从早到晚,共算了三万多个数,最终还是没有结果。国 王向公主求情,公主将答案相告:223 092 827是它的一个真因子。国王很 快就验证了这个数确能除尽48 770 428 433 377 171。公主说:“我再给你 一次机会,如果还求不出,将来你只好做我的证婚人了。”国王立即回国, 并向时任宰相的大数学家求教,大数学家在仔细地思考后认为这个数为17 位,则最小的一个真因子不会超过9位,于是他给国王出了一个主意:按自 然数的顺序给全国的老百姓每人编一个号发下去,等公主给出数目后,立 即将它们通报全国,让每个老百姓用自己的编号去除这个数,除尽了立即 上报,赏金万两。最后,国王用这个办法求婚成功。
算法的复杂性
一个算法的复杂性是由该算法所需要的最大运算时间和存储空
间来度量的。它们分别是规模为n(输入数据的长度)的所有实例的 时间和空间需求的平均值的函数
和。 T (n) 一S个(n算) 法的复杂性通常用符号“O”表示量级。好处在于它与处 理系统无关(如:处理机速度、数据类型及表示)。
表示存在常数 c和 ,对所有 则称函数f(n)当n充分大时上有界,且g(n)是它的一个上界,
现在,在计算科学、数学、逻辑学以及运筹学领域中已发现有总数多 达数千个的NP完全性问题。其中有代表性的有:可满足问题、哈密尔顿 回路问题、旅行商问题(也称货郎担问题)、划分问题、带优先级次序的 处理机调度问题、顶点覆盖问题等。
– 证明问题Q是NP-完全问题的步骤: (1)选择一已知的NP-完全问题P。 (2)证明P可多项式地约化为 Q
作业:找3-SAT的可满足解
?
P NP
在上例中,对公主给的数进行验证,显然是在多 项式时间内可以解决的问题,因此,这类问题属于NP类 问题。
现在,P=NP是否成立的问题是理论计算机科学中 最大的悬而未决的问题之一。
如果P=NP,则所有在多项式时间内可验证的问题都将是在多项式时间内 可求解(或可判定)的问题。大多数人不相信P=NP,因为人们已经投入了大 量的精力为NP中的某些问题寻找多项式时间算法,但没有成功。然而,要证 明P≠NP,目前还无法做到这一点。
64 个盘子
➢NP问题与计算复杂性理论


建立计算机的模型——理想计算

机,并研究模型的性质



能 力 和
理想计算机中,研究什么样 的问题是可解的



什 么
可解的问题在实际计算机上计算

的资源消耗情况并根据消耗情况
对问题进行分类
理自 论动
机 性可 理计 论算 理复 论杂

图灵机模型
… bb10100010bbb …
返回
多项式时间归约的概念
多项式时间归约是比较两个问题的相对难度的重要手段。 对于两个问题X和Y,用T(X)和T(Y)表示它们的时间复杂度。如果
T在(Y多)项=f(式T(时X)间),内其归中约f是到一X。个通多俗项地式讲函X数至,少则和写Y作一Y样<难=p。X,即Y可以 定理1:设Y<=pX。如果X存在多项式时间解法,则Y同样存在多项
确定的图灵机: 有无限读写能力的有限自动机,每一步操作的结 果唯一确定. 非确定的图灵机: 有无限读写能力的有限自动机,每一步操作的 结果有多种选择. 易解问题与难解问题: 在确定图灵机上用多项式时间可解的问题, 称为全体易解问题,集合记为P。否则,称为难解问题。
在计算复杂性理论中,将所有可以在多项式时间内求解的问题 称为P问题,而将所有在多项式时间内可以验证的问题称为NP问题。 由于P类问题采用的是确定性算法,NP类问题采用的是非确定性算法, 而确定性算法是非确定性算法的一种特例,因此,可以断定PNP。
SAT= 是可满足的布尔公式
一般是:给定一个合取范式CNF,问是否存在变量的某种取值使 得CNF的值为真。 例如:(A∨B)∧(~B∨D)∧(~A∨C∨~D)
如果SAT问题的CNF中每个子句都恰好只有3项,我们称这 类SAT问题为3-SAT,一般的问题可以转化为3SAT问题。
2 SAT P,3 SAT NP
在P=?NP问题上,库克(S.A.Cook)等人于20世纪70年代初取得了重大 的进展,他们认为NP类中的某些问题的复杂性与整个类的复杂性有关,当这 些问题中的任何一个存在多项式时间算法时,则所有这些NP问题都是多项式 时间可解的,这些问题被称为NP完全性问题。(可满足问题就是这类问题)
也可以这样理解,NP完全问题指某个问题是NP难的并且它是一 个NP问题。(解难、验证易)
返回
在上例中,对公主给出的数进行验证,显然是在多 项式时间内可以解决的问题,因此,这类问题属于NP类 问题。 ❖国王最先使用的是一种顺序算法,其复杂性表现在时 间方面, ❖后面由宰相提出的是一种并行算法,其复杂性表现在 空间方面。
下一页
• 直觉上,我们认为顺序算法解决不了的问题完全可以用 并行算法来解决,甚至会想,并行计算机系统求解问题 的速度将随着处理器数目的不断增加而不断提高,从而 解决难解性问题,其实这是一种误解。
相关文档
最新文档