计算理论17复杂理论高级专题
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Chap 10 复杂性理论中的高级专题
本章提纲 10.1 近似算法、 10.2 概率算法 10.3 交错式
10.4 交互证明,
10.5 并行计算 10.6 密码学
XXXXX
2016/5/26
wbfeng@staff.shu.edu.cn
1/55
近似算法
在最优化问题中,通常试图在可行解中寻找最好的解,即最
XXXXX
2016/5/26
wbfeng@staff.shu.edu.cn
23/55
引理10.20 对于f(n)≥n,有 SPACE(f(n)) ATIME(f2(n))
从O(f(n))空间的确定性图灵机M出发,构造一台O(f 2(n))时间 的交错式图灵机S
cm
∧
∨ …
t/2步内从c1到c2
XXXXX
2016/5/26
wbfeng@staff.shu.edu.cn
25/55
引理10.21 对于对于f(n)≥log n,有 ASPACE(f(n)) TIME(2O(f(n)))
构造一台2O(f(n))时间的确定型图灵机S,模拟O(f(n))空间的交 错式图灵机。
S构造M对w的计算图如下:顶点集是M关于w的所有格局, 每一顶点最多使用df(n)空间(d是与M有关的常数)。从 每一个格局到M移动一步所得到格局连一条边。
证明思路:M2用如下方式模拟M1:运行M1多项式次,并且
取这些运行结果中的多数作为计算结果。错误概率将随M1的 运行次数指数下降。
XXXXX
2016/5/26
wbfeng@staff.shu.edu.cn
12/55
素数性
定理11.6: 如果p是素数,且a ,则a p1
p
1(mod p)。
XXXXX
2016/5/26
wbfeng@staff.shu.edu.cn
7/55
定理10.2
定理11.2:B是最大割集的2-优的多项式近似算法。 证明:
割的大小不超过G的边数,故B是多项式时间的。 证明B输出的割X至少包含G中的所有边的一半。 G的每个顶点的割边>=非割边。 G的所有顶点的割边数和= X的割边总数×2。 G的所有顶点的非割边数和= 非割边总数×2。 X的割边数和>= 非割边数和 X的割边数 >= G的所有边数/2 G的所有边数>=最大割边数
XXXXX
2016/5/26
wbfeng@staff.shu.edu.cn
8/55
概率算法
概率算法使用随机过程的结果。典型包含一条“
扔硬币”的指令,并且扔硬币的结果可能影响算 法后面的执行和输出。
BPP类
素数性
只读一次的分支程序
XXXXX
2016/5/26
wbfeng@staff.shu.edu.cn
在G中找一条不与任何有标记的边相邻的边。 给这条边作标记。
输出所有有标记边的顶点。 ”
XXXXX
2016/5/26
wbfeng@staff.shu.edu.cn
4/55
定理10.1
定理11.1:A是一个多项式时间算法,它给出G的一个顶点覆盖,其大
小不超过最小顶点覆盖的大小的2倍。 证明思路: A的运行时间显然是多项式界限的。 设X是它输出的顶点集合,H是有标记的边的集合。因为G的每一 条边要么属于H,要么与H中的一条边相邻,因此X与G的所有边 关联,因此X是一个顶点覆盖。 证明X的大小不超过最小顶点覆盖Y的大小的2倍。
9/55
概率图灵机
概率图灵机M是一种非确定型图灵机,它的每一非确定步,
称作掷硬币步,并且有两个合法的下次动作。定义分支b的 概率如下,其中k是在分支b中出现的掷硬币步的步数。
定义M接受ω的概率为
Pr[b] 2
k
Pr[ M接受 ]=
b是接受分支
Pr[b]
10/55
XXXXX
2016/5/26
5 1
5 4
4
1
2 3
2 3
XXXXX
2016/5/26
wbfeng@staff.shu.edu.cn
3/55
最小顶点覆盖的一个近似算法
下述多项式时间算法近似地解这个最优化问题,它给出一个顶点覆
盖,其大小不超过最小顶点覆盖的大小的2倍。
A= “对于输入<G>,这里G是一个无向图:
重复下述操作直至G中所有的边都与有标记的边相邻。
2016/5/26
wbfeng@staff.shu.edu.cn
22/55
引理10.19 对于f(n)≥n,有 ATIME(f(n))SPACE(f(n))
把O(f(n))时间的交错式图灵机M转换成O(f(n))空间的确定型 图灵机S
S如下模拟M:对于输入w,S对M的计算树做深度优先搜索, 确定哪些顶点接受。如果树根接受,则S接受。
19/55
交错式语言类
ATIME(t(n))={L|L是被一台O(t(n))时间的交错式图灵机判定的 语言} ASPACE(t(n))={L|L是被一台O(f(n))空间的交错式图灵机判定 的语言}
APSPACE ASPACE(n )
k k
AP PTIME (n )
k k
AL ASPACE(log n)
XXXXX
2016/5/26
wbfeng@staff.shu.edu.cn
26/55
由于f(n)≥log n,M关于w的格局数为2O(f(n))。因此,计算图的 大小为2O(f(n)),可在2O(f(n))时间内构造它。 扫描时间类似,且扫描总次数不超过顶点数,所以,使用总 时间为2O(f(n))。
只读一次的分支程序是指在它的从起
始顶点到输出顶点的每一条有向路径 上,每个变量只能被询问一次。
X3 0
1
0
X2 1
0
1
XXXXX
2016/5/26
wbfeng@staff.shu.edu.cn
17/55
定理10.12
令EQROBP { B1 , B2 B1和B2是两个等价的只读一次的分支程序} 则有 EQROBP BPP
XXXXX
2016/5/26
wbfeng@staff.shu.edu.cn
6/55
最大割集的近似算法
5 1
4
把顶点集V划分成两个不相交的子集S和T,称为无向图中的 2
割。顶点分别在两个子集 中的边称为割边,割边的数目称 3 为割的大小。
B= “对于输入<G>,这里G是顶点集为V的无向图:
令S=Ø和T=V。 如果把一个顶点从S移到T或者从T移到S,使割的大小变 大,则做这样的移动,并且重复这一步。 如果不存在这样的顶点,则输出当前的割X并且停止。”
例子:
p 7, a 2 p 6, a 2
2( 71) 26 64, 64 mod 7 1 2( 61) 25 32, 32 mod 5 2
Baidu Nhomakorabea
p通过在a的费马测试是指
a p 1 1(mod p)
如果一个数能通过所有关于小于它且与它互素的数的费马测
起始格局
∧
t/2步内从 c1到cm
XXXXX 2016/5/26
2df(n) 接受格局
24/55
t/2步内从 cm到c2
wbfeng@staff.shu.edu.cn
S的每个分支使用的最大时间:O(f(n)) 递归深度:log2df(n) = O(f(n))
因此,算法在交错时间O(f2(n))内运行
wbfeng@staff.shu.edu.cn
15/55
RP类
定理11.9:
令PRIMES {n n是二进制素数},PRIMES BPP
单侧错误:当算法输出拒绝时,输入一定是合数,当输出接
受时,只能知道输入可能是素数。
RP是多项式时间概率图灵机识别的语言类,在这里,在语
言中的输入以不小于1/2的概率被接受;不在语言中的输入 以概率1被拒绝。
优解。
在实践中,可能并不一定非要最优解不可,一个接近最优的
解可能是足够好的,而且可能更容易找到。
近似算法是为了求近似最优解而设计的。
XXXXX
2016/5/26
wbfeng@staff.shu.edu.cn
2/55
顶点覆盖问题
若G是无向图,则G的顶点覆盖是节点的一个子集,使得
G的每条边都与子集中的节点之一相关联。
TAUT∈AP
XXXXX
2016/5/26
wbfeng@staff.shu.edu.cn
21/55
例:令L={<Ф>| Ф不是一个永真式}
对输入Ф :
1. 2.
存在的选取对Ф的变量的所有赋值 对一个具体的赋值,计算Ф的值
3.
如果Ф的值为0,则接受;否则拒绝
L ∈NP TAUT ∈coNP
XXXXX
基本原理是:对于任意素数p,1恰好有两个模p的平方根:
1和-1。而对于许多合数,包括卡米切尔数在内,1有4个或 更多的平方根。
引理11.7:如果p是一个奇素数,则
Pr[ PRIME 接受p] 1
引理11.8:如果p是一个奇合数,则
Pr[ PRIME 接受p] 2 k
XXXXX
2016/5/26
XXXXX
2016/5/26
wbfeng@staff.shu.edu.cn
XXXXX
2016/5/26
wbfeng@staff.shu.edu.cn
20/55
例10.16 永真式是一个布尔公式,对于变量的每一个 赋值,它的值都等于1。
令TAUT={<Ф>| Ф是一个永真式}
对输入Ф : 1. 全称的选取对Ф的变量的所有赋值 2. 对一个具体的赋值,计算Ф的值 3. 如果Ф的值为1,则接受;否则拒绝
X的大小是H的2倍 H不大于Y
XXXXX
2016/5/26
wbfeng@staff.shu.edu.cn
5/55
k-优算法
如果一个最小化问题的近似算法总能找到不超过最优解k
倍的可行解,则称这个算法是k-优的。
对于最大化问题,一个k-优近似算法总能找到不小于最
优解大小的1/k的可行解。
XXXXX
2016/5/26
wbfeng@staff.shu.edu.cn
18/55
交错式图灵机的定义
定义:一种特殊的非确定型图灵机。除 qaccept和qreject 外,它的状态分成全称状态和存在状态。
∨ ∧ ∧ ∨
∧ · · ·
XXXXX 2016/5/26
∧
∨
wbfeng@staff.shu.edu.cn
XXXXX
2016/5/26
wbfeng@staff.shu.edu.cn
16/55
只读一次的分支程序
分支程序是一个无圈有向图,除两个
输出顶点标记0和1外,其他顶点(询 问顶点)都标记变量,并引出两条边 ,一条标记0、一条标记1,在分支程 序中指定一个顶点为起始顶点。
1
X1 0 X2 0 1 X3 1 0
wbfeng@staff.shu.edu.cn
BPP类
对于0<=ε<1/2,如果满足下面的条件则称M以错误概率ε识
别语言A。
A蕴涵 Pr[ M接受 ] 1 A蕴涵 Pr[ M拒绝 ] 1
BPP是多项式时间的概率图灵机以错误概率1/3识别的语言
类。
多项式时间概率算法
设F是一个至少含有3m个元素的有限域。 D “对输入 B1 , B2 ,B1和B2是两个只读一次的分支程序: 在F中随机选取m个元素a1, ,am 计算赋给B1和B2的多项式p1和p2在a1, ,am的值 如果p1 (a1, ,am ) p2 (a1, ,am ),则接受;否则拒绝”
如果p是伪素数则能通过全部测试,如果p不是伪素数则至
多能通过全部测试的一半。于是它通过全部k个随机选择的
测试的概率不大于 2 k,因此该算法以错误概率2 k 识别所 有伪素数组成的语言。
XXXXX
2016/5/26
wbfeng@staff.shu.edu.cn
14/55
避免卡米切尔数的算法PRIME
XXXXX
2016/5/26
wbfeng@staff.shu.edu.cn
11/55
引理10.5
引理11.5:设ε是一个固定常数,且0<ε<1/2。又设M1是一台
错误概率为ε的多项式时间概率图灵机,则对于任意的多项式 poly (n) poly(n),存在与M1等价的错误概率为 的多项式时间 2 概率图灵机M2。
试,则称这个数为伪素数,其中可能包含卡米切尔数和素数 。
XXXXX
2016/5/26
wbfeng@staff.shu.edu.cn
13/55
测试伪素数的多项式概率算法
PSEUDOPRIM E “对于输入p: 在 p中随机地选取a1 , , ak 对于每一个i,计算ai( p 1) mod p 如果所有计算出来的值都等于1,则接受;否则拒绝”
本章提纲 10.1 近似算法、 10.2 概率算法 10.3 交错式
10.4 交互证明,
10.5 并行计算 10.6 密码学
XXXXX
2016/5/26
wbfeng@staff.shu.edu.cn
1/55
近似算法
在最优化问题中,通常试图在可行解中寻找最好的解,即最
XXXXX
2016/5/26
wbfeng@staff.shu.edu.cn
23/55
引理10.20 对于f(n)≥n,有 SPACE(f(n)) ATIME(f2(n))
从O(f(n))空间的确定性图灵机M出发,构造一台O(f 2(n))时间 的交错式图灵机S
cm
∧
∨ …
t/2步内从c1到c2
XXXXX
2016/5/26
wbfeng@staff.shu.edu.cn
25/55
引理10.21 对于对于f(n)≥log n,有 ASPACE(f(n)) TIME(2O(f(n)))
构造一台2O(f(n))时间的确定型图灵机S,模拟O(f(n))空间的交 错式图灵机。
S构造M对w的计算图如下:顶点集是M关于w的所有格局, 每一顶点最多使用df(n)空间(d是与M有关的常数)。从 每一个格局到M移动一步所得到格局连一条边。
证明思路:M2用如下方式模拟M1:运行M1多项式次,并且
取这些运行结果中的多数作为计算结果。错误概率将随M1的 运行次数指数下降。
XXXXX
2016/5/26
wbfeng@staff.shu.edu.cn
12/55
素数性
定理11.6: 如果p是素数,且a ,则a p1
p
1(mod p)。
XXXXX
2016/5/26
wbfeng@staff.shu.edu.cn
7/55
定理10.2
定理11.2:B是最大割集的2-优的多项式近似算法。 证明:
割的大小不超过G的边数,故B是多项式时间的。 证明B输出的割X至少包含G中的所有边的一半。 G的每个顶点的割边>=非割边。 G的所有顶点的割边数和= X的割边总数×2。 G的所有顶点的非割边数和= 非割边总数×2。 X的割边数和>= 非割边数和 X的割边数 >= G的所有边数/2 G的所有边数>=最大割边数
XXXXX
2016/5/26
wbfeng@staff.shu.edu.cn
8/55
概率算法
概率算法使用随机过程的结果。典型包含一条“
扔硬币”的指令,并且扔硬币的结果可能影响算 法后面的执行和输出。
BPP类
素数性
只读一次的分支程序
XXXXX
2016/5/26
wbfeng@staff.shu.edu.cn
在G中找一条不与任何有标记的边相邻的边。 给这条边作标记。
输出所有有标记边的顶点。 ”
XXXXX
2016/5/26
wbfeng@staff.shu.edu.cn
4/55
定理10.1
定理11.1:A是一个多项式时间算法,它给出G的一个顶点覆盖,其大
小不超过最小顶点覆盖的大小的2倍。 证明思路: A的运行时间显然是多项式界限的。 设X是它输出的顶点集合,H是有标记的边的集合。因为G的每一 条边要么属于H,要么与H中的一条边相邻,因此X与G的所有边 关联,因此X是一个顶点覆盖。 证明X的大小不超过最小顶点覆盖Y的大小的2倍。
9/55
概率图灵机
概率图灵机M是一种非确定型图灵机,它的每一非确定步,
称作掷硬币步,并且有两个合法的下次动作。定义分支b的 概率如下,其中k是在分支b中出现的掷硬币步的步数。
定义M接受ω的概率为
Pr[b] 2
k
Pr[ M接受 ]=
b是接受分支
Pr[b]
10/55
XXXXX
2016/5/26
5 1
5 4
4
1
2 3
2 3
XXXXX
2016/5/26
wbfeng@staff.shu.edu.cn
3/55
最小顶点覆盖的一个近似算法
下述多项式时间算法近似地解这个最优化问题,它给出一个顶点覆
盖,其大小不超过最小顶点覆盖的大小的2倍。
A= “对于输入<G>,这里G是一个无向图:
重复下述操作直至G中所有的边都与有标记的边相邻。
2016/5/26
wbfeng@staff.shu.edu.cn
22/55
引理10.19 对于f(n)≥n,有 ATIME(f(n))SPACE(f(n))
把O(f(n))时间的交错式图灵机M转换成O(f(n))空间的确定型 图灵机S
S如下模拟M:对于输入w,S对M的计算树做深度优先搜索, 确定哪些顶点接受。如果树根接受,则S接受。
19/55
交错式语言类
ATIME(t(n))={L|L是被一台O(t(n))时间的交错式图灵机判定的 语言} ASPACE(t(n))={L|L是被一台O(f(n))空间的交错式图灵机判定 的语言}
APSPACE ASPACE(n )
k k
AP PTIME (n )
k k
AL ASPACE(log n)
XXXXX
2016/5/26
wbfeng@staff.shu.edu.cn
26/55
由于f(n)≥log n,M关于w的格局数为2O(f(n))。因此,计算图的 大小为2O(f(n)),可在2O(f(n))时间内构造它。 扫描时间类似,且扫描总次数不超过顶点数,所以,使用总 时间为2O(f(n))。
只读一次的分支程序是指在它的从起
始顶点到输出顶点的每一条有向路径 上,每个变量只能被询问一次。
X3 0
1
0
X2 1
0
1
XXXXX
2016/5/26
wbfeng@staff.shu.edu.cn
17/55
定理10.12
令EQROBP { B1 , B2 B1和B2是两个等价的只读一次的分支程序} 则有 EQROBP BPP
XXXXX
2016/5/26
wbfeng@staff.shu.edu.cn
6/55
最大割集的近似算法
5 1
4
把顶点集V划分成两个不相交的子集S和T,称为无向图中的 2
割。顶点分别在两个子集 中的边称为割边,割边的数目称 3 为割的大小。
B= “对于输入<G>,这里G是顶点集为V的无向图:
令S=Ø和T=V。 如果把一个顶点从S移到T或者从T移到S,使割的大小变 大,则做这样的移动,并且重复这一步。 如果不存在这样的顶点,则输出当前的割X并且停止。”
例子:
p 7, a 2 p 6, a 2
2( 71) 26 64, 64 mod 7 1 2( 61) 25 32, 32 mod 5 2
Baidu Nhomakorabea
p通过在a的费马测试是指
a p 1 1(mod p)
如果一个数能通过所有关于小于它且与它互素的数的费马测
起始格局
∧
t/2步内从 c1到cm
XXXXX 2016/5/26
2df(n) 接受格局
24/55
t/2步内从 cm到c2
wbfeng@staff.shu.edu.cn
S的每个分支使用的最大时间:O(f(n)) 递归深度:log2df(n) = O(f(n))
因此,算法在交错时间O(f2(n))内运行
wbfeng@staff.shu.edu.cn
15/55
RP类
定理11.9:
令PRIMES {n n是二进制素数},PRIMES BPP
单侧错误:当算法输出拒绝时,输入一定是合数,当输出接
受时,只能知道输入可能是素数。
RP是多项式时间概率图灵机识别的语言类,在这里,在语
言中的输入以不小于1/2的概率被接受;不在语言中的输入 以概率1被拒绝。
优解。
在实践中,可能并不一定非要最优解不可,一个接近最优的
解可能是足够好的,而且可能更容易找到。
近似算法是为了求近似最优解而设计的。
XXXXX
2016/5/26
wbfeng@staff.shu.edu.cn
2/55
顶点覆盖问题
若G是无向图,则G的顶点覆盖是节点的一个子集,使得
G的每条边都与子集中的节点之一相关联。
TAUT∈AP
XXXXX
2016/5/26
wbfeng@staff.shu.edu.cn
21/55
例:令L={<Ф>| Ф不是一个永真式}
对输入Ф :
1. 2.
存在的选取对Ф的变量的所有赋值 对一个具体的赋值,计算Ф的值
3.
如果Ф的值为0,则接受;否则拒绝
L ∈NP TAUT ∈coNP
XXXXX
基本原理是:对于任意素数p,1恰好有两个模p的平方根:
1和-1。而对于许多合数,包括卡米切尔数在内,1有4个或 更多的平方根。
引理11.7:如果p是一个奇素数,则
Pr[ PRIME 接受p] 1
引理11.8:如果p是一个奇合数,则
Pr[ PRIME 接受p] 2 k
XXXXX
2016/5/26
XXXXX
2016/5/26
wbfeng@staff.shu.edu.cn
XXXXX
2016/5/26
wbfeng@staff.shu.edu.cn
20/55
例10.16 永真式是一个布尔公式,对于变量的每一个 赋值,它的值都等于1。
令TAUT={<Ф>| Ф是一个永真式}
对输入Ф : 1. 全称的选取对Ф的变量的所有赋值 2. 对一个具体的赋值,计算Ф的值 3. 如果Ф的值为1,则接受;否则拒绝
X的大小是H的2倍 H不大于Y
XXXXX
2016/5/26
wbfeng@staff.shu.edu.cn
5/55
k-优算法
如果一个最小化问题的近似算法总能找到不超过最优解k
倍的可行解,则称这个算法是k-优的。
对于最大化问题,一个k-优近似算法总能找到不小于最
优解大小的1/k的可行解。
XXXXX
2016/5/26
wbfeng@staff.shu.edu.cn
18/55
交错式图灵机的定义
定义:一种特殊的非确定型图灵机。除 qaccept和qreject 外,它的状态分成全称状态和存在状态。
∨ ∧ ∧ ∨
∧ · · ·
XXXXX 2016/5/26
∧
∨
wbfeng@staff.shu.edu.cn
XXXXX
2016/5/26
wbfeng@staff.shu.edu.cn
16/55
只读一次的分支程序
分支程序是一个无圈有向图,除两个
输出顶点标记0和1外,其他顶点(询 问顶点)都标记变量,并引出两条边 ,一条标记0、一条标记1,在分支程 序中指定一个顶点为起始顶点。
1
X1 0 X2 0 1 X3 1 0
wbfeng@staff.shu.edu.cn
BPP类
对于0<=ε<1/2,如果满足下面的条件则称M以错误概率ε识
别语言A。
A蕴涵 Pr[ M接受 ] 1 A蕴涵 Pr[ M拒绝 ] 1
BPP是多项式时间的概率图灵机以错误概率1/3识别的语言
类。
多项式时间概率算法
设F是一个至少含有3m个元素的有限域。 D “对输入 B1 , B2 ,B1和B2是两个只读一次的分支程序: 在F中随机选取m个元素a1, ,am 计算赋给B1和B2的多项式p1和p2在a1, ,am的值 如果p1 (a1, ,am ) p2 (a1, ,am ),则接受;否则拒绝”
如果p是伪素数则能通过全部测试,如果p不是伪素数则至
多能通过全部测试的一半。于是它通过全部k个随机选择的
测试的概率不大于 2 k,因此该算法以错误概率2 k 识别所 有伪素数组成的语言。
XXXXX
2016/5/26
wbfeng@staff.shu.edu.cn
14/55
避免卡米切尔数的算法PRIME
XXXXX
2016/5/26
wbfeng@staff.shu.edu.cn
11/55
引理10.5
引理11.5:设ε是一个固定常数,且0<ε<1/2。又设M1是一台
错误概率为ε的多项式时间概率图灵机,则对于任意的多项式 poly (n) poly(n),存在与M1等价的错误概率为 的多项式时间 2 概率图灵机M2。
试,则称这个数为伪素数,其中可能包含卡米切尔数和素数 。
XXXXX
2016/5/26
wbfeng@staff.shu.edu.cn
13/55
测试伪素数的多项式概率算法
PSEUDOPRIM E “对于输入p: 在 p中随机地选取a1 , , ak 对于每一个i,计算ai( p 1) mod p 如果所有计算出来的值都等于1,则接受;否则拒绝”