计算理论导引23

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

如果一个数p能6 通,a 过 所2有关2 于(6 小1)于它25 且 与3它,2 互3 素2m 的数5 的o 费2 d 马测
试,则称这个数为伪素数,其中可能包含卡米切尔数和素数

ap1 1(mopd)
测试伪素数的多项式概率算法
PSEUDOPERI“ M对于输p: 入 在p中随机地选 a1, 取,ak 对于每一i,个计算 ai(p1) modp 如果所有计算出都 来等 的于 值 1,则接受;否则拒绝
A蕴P 涵rM [接 受 ]1 A蕴P 涵rM [拒 绝 ]1
BPP是多项式时间的概率图灵机以错误概率1/3识别的语言 类。
引理10.5
引理11.5:设ε是一个固定常数,且0<ε<1/2。又设M1是一台
错误概率为ε的多项式时间概率图灵机,则对于任意的多项式
poly(n),存在与M1等价的错误概率为
X3 1
0
X3 1
X2 0
0
1
0
1
定理10.12
令EQROBP{ B1,B2 B1和B2是两个等价的只读的 一分 次支程}序 则有 EQROBPBPP
A= “对于输入<G>,这里G是一个无向图: 重复下述操作直至G中所有的边都与有标记的边相邻。 在G中找一条不与任何有标记的边相邻的边。 给这条边作标记。 输出所有有标记边的顶点。 ”
定理10.1
定理11.1:A是一个多项式时间算法,它给出G的一个顶点覆盖,其大 小不超过最小顶点覆盖的大小的2倍。 证明思路:
如果p是伪素数则能通过全部测试,如果p不是伪素数则至多能通过全部测试的
一半。于是它通过全部k个随机选择的测试的概率不大于 ,因此该算法以错
误概率 识别所有伪素数组成的语言。
2k
2k
避免卡米切尔数的算法PRIME
基本原理是:对于任意素数p,1恰好有两个模p的平方根: 1和-1。而对于许多合数,包括卡米切尔数在内,1有4个或 更多的平方根。 引理11.7:如果p是一个奇素数,则
A的运行时间显然是多项式界限的。 设X是它输出的顶点集合,H是有标记的边的集合。因为G的每一 条边要么属于H,要么与H中的一条边相邻,因此X与G的所有边 关联,因此X是一个顶点覆盖。 证明X的大小不超过最小顶点覆盖Y的大小的2倍。
X的大小是H的2倍 H不大于Y
k-优算法
如果一个最小化问题的近似算法总能找到不超过最优解k 倍的可行解,则称这个算法是k-优的。
的多项式时间概
率图灵机M2。
证取明这思些路运:行M结2果用中如的下多方数式作模为拟计M2算1:结po运果l(yn行。) M错1误多概项率式将次随,M并1且的
运行次数指数下降。
素数性
定理11.6:
例子:
如p是 果素a 数 p , , ap则 1 且 1 (mp)。 od
p通过在a的p费马7,测a 试2 是指2(71)266,46m 4 7 o1 d
Chap 10 复杂性理论中的高级专题 (同学报告)
可根据 提供的PPT素材+参考以前同学的报告, 修改成为有自己见解的讨论报告
建议:
底色用浅色(象牙白, 浅黄, 白色等) 适合色盲 色弱 观众 字体颜色选择余地大 在投影机 效果差时 也还能能看见
近似算法
在最优化问题中,通常试图在可行解中寻找最好的解,即最 优解。
在实践中,可能并不一定非要最优解不可,一个接近最优的 解可能是足够好的,而且可能更容易找到。
近似算法是为了求近似最优解而设计的。
顶点覆盖问题
若G是无向图,则G的顶点覆盖是节点的一个子集,使得 G的每条边都与子集中的节点之一相关联。
1 2
5 4
3
1 2
5 4
3
最小顶点覆盖的一个近似算法
下述多项式时间算法近似地解这个最优化问题,它给出一个顶点覆 盖,其大小不超过最小顶点覆盖的大小的2倍。
引理11.8:如果p是一P个rP 奇[合R数I,接 M 则 p受 E ]1
PP r[RI接 Mp受 ]E 2k
RP类
定理11.9:
令 PRI M {nn是 ES二进 }, P 制 R素 I M B数 P EP S
单侧错误:当算法输出拒绝时,输入一定是合数,当输出接 受时,只能知道输入可能是素数。 RP是多项式时间概率图灵机识别的语言类,在这里,在语 言中的输入以不小于1/2的概率被接受;不在语言中的输入 以概率1被拒绝。
X的每个顶点的割边>=非割边。 X的所有顶点的割边数和= X的割边总数×2。 X的所有顶点的非割边数和= X的非割边总数×2。 X的割边数和>= X的非割边数和 X的割边数 >= G的所有边数/2 G的所有边数>=最大割边数
概率算法
概率算法使用随机过程的结果。典型包含一条“扔硬币” 的指令,并且扔硬币的结果可能影响算法后面的执行和输 出。
如果把一个顶点从S移到T或者从T移到S,使割的大小变大,则做这 样的移动,并且重复这一步。
如果不存在这样的顶点,则输出当前的割并且停止。”
定理10.2
定理11.2:B是最大割集的2-优的多项式近似算法。 证明:
割的大小不超过G的边数,故B是多项式时间的。 证明B输出的割X至少包含G中的所有边的一半。
BPP类 素数性 只读一次的分支程序
概率图灵机
概率图灵机M是一种非确定型图灵机,它的每一非确定步, 称作掷硬币步,并且有两个合法的下次动作。定义分支b的 概率如下,其中k是在分支b中出现的掷硬币步的步数。
定义M接受ω的概率为
Prb[]2k
PrM [接受 ]=P[rb] b是接受分支
BPP类
对于0<=ε<1/2,如果满足下面的条件则称M以错误概率ε识 别语言A。
对于最大化问题,一个k-优近似算法总能找到不小于最 优解大小的1/k的可行解。
最大割集的近似算法
5 1
4
把顶点集V划分成两个不相交的子集S和T,称为无向图中的割。顶点分 别在两个子集 中的边称为割边,割边的数目称为割2 的大小。
3
B= “对于输入<G>,这里G是顶点集为V的无向图:
令S=Ø和T=V。
只读一次的分支程序
分支程序是一个无圈有向图,除两个输出顶点 标记0和1外,其他顶点(询问顶点)都标记变 量,并引出两条边,一条标记0、一条标记1, 在分支程序中指定一个顶点为起始顶点。
X1
0
1
只读一次的分支程序是指在源自文库的从起始顶点到
X2
输出顶点的每一条有向路径上,每个变量只能 1 0 被询问一次。
相关文档
最新文档