唐常杰翻译的计算理论导引24
唐常杰翻译计算理论导引
18.01.2021
唐常杰翻译计算理论导引
8
定理10.2
定理11.2:B是最大割集的2-优的多项式近似算法。 证明:
割的大小不超过G的边数,故B是多项式时间的。 证明B输出的割X至少包含G中的所有边的一半。
X的每个顶点的割边>=非割边。 X的所有顶点的割边数和= X的割边总数×2。 X的所有顶点的非割边数和= X的非割边总数×2。 X的割边数和>= X的非割边数和 X的割边数 >= G的所有边数/2 G的所有边数>=最大割边数
18.01.2021
唐常杰翻译计算理论导引
5
定理10.1
定理11.1:A是一个多项式时间算法,它给出G的一个顶点覆盖,其大 小不超过最小顶点覆盖的大小的2倍。
证明思路: A的运行时间显然是多项式界限的。 设X是它输出的顶点集合,H是有标记的边的集合。因为G的每一 条边要么属于H,要么与H中的一条边相邻,因此X与G的所有边关 联,因此X是一个顶点覆盖。 证明X的大小不超过最小顶点覆盖Y的大小的2倍。
18.01.2021
唐常杰翻译计算理论导引
13
素数性
定理11.6:
例子:
如p是 果素a 数 p , , ap 则 1 且 1 (mp)。 od
p7,a2 2(71)266,46m 4 7 od 1
p通过在pa 的6,a 费 马2测试2(6 是1) 指253,232m5 od 2 如果一个数能通过所有关于ap小1于1(m 它o且pd)与它
18.01.2021
唐常杰翻译计算理论导引
9
概率算法
概率算法使用随机过程的结果。典型包含 一条“扔硬币”的指令,并且扔硬币的结 果可能影响算法后面的执行和输出。
唐常杰翻译的计算理论导引
内容 Chapters 0 - 8.3 (up to the PSPACE-completeness of TQBF)
27.02.2019 1
关于选择教材的体会
2001-2002 我们采用教材为: Lewis, Harry R., and Papadimitriou, Christos H., Elements of the Theory of Computation, 2nd ed. Prentice-Hall, 1997.
27.02.2019
27.02.2019 2
电子教案下载
电子教案可在下面三个网址 下载: 川大计算机学院: /~tangchangjie/teach/tang_teaching.htm 川大教师主页: /waim03/scu_cs/teach/tang_teching.htm 后两各地址 可能更新 及时一些。
2003-2006 采用 Sipser, Michael, Introduction to the Theory
of Computation. PWS Publishing Company, 1997. (Both first and second printing are okay.)
这两本书 是目前世界上主要大学采用最多的教材。 经验表明,如果学生数学基础好,用前者较好,如学生计算机 基础好,用后者更受学生欢迎。 目前欧美大学中计算机专业 用后者的大学越来越多。网上赞誉 甚多
四川大学计算机学院 可计算理论 课程说明和教学计划(2006.2-7)
学分3 时间 周学时 4 每周三 8:00-11:35 任课教师 唐常杰 地点 研 3-301
教材 Material: Michael Sipser (MIT)
唐常杰翻译的计算理论导引22
第9章 难解性 ( 同学讨论PPT 素材)作为教学科研的基本训练的一个重要环节,学生应该能根据教材,作出有自己特色的PPT 发言稿. 这里提供一些素材,试图减小学生的工作难度。
PPT 不能仅仅是剪报。
一份好的讨论班PPT 应该有同学的理解和创新.(素材节选自教材 但不能代替教材)从素材作PPT 一般 需要用 读 --减 ---加 三个过程。
(a ) 先充分阅读理解 教材,(b ) 从此素材中删去次要语句,(c ) 增加自己的心得,理解方法,解释和图形。
PPT 应该突出思路,突出要点, 适当的比喻可以帮助理解。
9.1 层次定理通常的直觉是给图灵机更多的时间或空间就能扩大它所能求解的问题类。
例如,在时间3n 内,图灵机应能比在时间2n 内判定更多的语言。
在一定条件下,这种直觉是正确的。
层次定理(hierarchy theorems )证明了这种直觉在满足某些条件下的正确性。
采用术语层次定理,是因为这些定理中的每一个都证明了时间和空间复杂性类不全相同—它们形成一个层次结构,其中时空界限较大的类比时空界限较小的类包含更多的语言。
空间复杂性层次定理比时间复杂性层次定理稍简单一些,故首先介绍它。
在实际陈述定理之前,引入下面的定义。
定义9.1 函数N N f →:,()n f 至少为O (n log ),如果函数f 把1n 映射为()n f 的二进制表示并且该函数在空间()()n f O 内是可计算的1称为空间可构造的(space constructible )。
换言之,如果存在某个TM M ,在()()n f O 空间内运行,而且在输入1n 时总能停机,停机时)(n f 的二进制表示出现在带子上,则f 是空间可构造的。
为了具有时间和空间可构造性,如n log n 2和n 这—类带小数的函数被向下舍入到紧邻的较小的整数上。
例9.2 通常出现的复杂度至少为O(n log )的函数都是空间可构造的,包括n log 2,n log n 2,2n 。
中西翻译理论Lec.6_--_Equivalent_Translation_(Contd.)
• A prizefighter, having a rough time in his first important fight, was floored in the second round by a powerful punch. With glazed eyes, he tried to look up from the mat. “Let the referee count,” yelled his trainer. “Don’t get up until eight.” The fighter nodded weakly, “What time is it now?” • 一位职业拳击手首次参加重要比赛就吃了苦头, 第二回合时被一记重拳击倒在地。他躺在垫子 上,二目无神地朝上看。教练冲他大喊:“让 裁判数点,不到八点别起来。”拳击手有气无 力地点点头,问道:“现在几点钟了?”
• 茶花为媒广交世界朋友,金华作东喜迎天 下宾客。• 原译文:The host of Jinhua joyously receives visitors all over the world, the medium of Camellia widely connects friends on the Earth. • 改译:Via Camellias Shall We Communicate with the World; Great Hospitality Shall We Show to Friends from around! • 再改:Welcome to Jinhua for camellias and for friendship!
• 世界的茶花,精彩的金华。 • 原译文:A. Camellia of the World, Jinhua with splendour; B. The universal Camellia, the splendid Jinhua. • 改译:The world in camellias, as the city in splendor. • 再改:Enjoy camellias of the world in the world of camellias!
唐常杰翻译的计算理论导引
周学时 4
任课教师 唐常杰
时间 每周三 8:00-11:35
地点 研 3-301
教材 Material: Michael Sipser (MIT)
[Required] Sipser, Michael, Introduction to the Theory of Computation. PWS Publishing Company, 1997. (Both first and second printing are okay. ISBN 0-619-21674-2)
CS_Dept.Sichaun Univ.
3
本电子教案由机械工业出版社出版
可计算理论 2020/9/11
CS_Dept.Sichaun Univ.
4
请提改进意见
任课教师 : 唐常杰 联系信息 四川大学计算机科学与技术系 主任。 博士生导师 中国计算机学会数据库专业委员会副主任 下载教案网址 机械工业出版社网址 或 下列网址
内容 Chapters 0 - 8.3 (up to the PSPACE-completeness of TQBF)
可计算理论 2020/9/11
CS_Dept.Sichaun Univ.
1
关于选择教材的体会
2001-2002 我们采用教材为: Lewis, Harry R., and Papadimitriou, Christos H., Elements of the Theory of Computation, 2nd ed. Prentice-Hall, 1997.
川大计算机学院: /~tangchangjie/teach/tang_teaching.htm
中国的翻译理论简介
著名文学翻译家鲁迅
傅雷主要译作:伏尔泰、巴尔扎克、罗曼·罗兰 的重要作品。有《约翰·克利斯朵夫》 、传记 《贝多芬传》 、 《托尔斯泰传》 、 《米开朗琪 罗传》;巴尔扎克名著《高老头》 、 《欧也 妮·葛朗台》 、 《贝姨》 、 《邦斯舅舅》 、 《夏倍上校》 、 《幻灭》 ;伏尔泰的《老实 人》 、 《天真汉》 ;梅里美的《嘉尔曼》 、 《高龙巴》等等共三十余部作品。
南怀仁
南怀仁为清朝廷制造的6件天文仪器,至今还保存 在北京古观象台上。在南怀仁逝世300周年的时候, 中国政府向比利时鲁汶大学南怀仁基金会赠送了 “天球仪”(即南怀仁设计制造的大型天文仪器之 一)的模型,至今保存在南怀仁厅前。
比利时鲁汶大学建立的怀仁厅
中国近代翻译家之一:严复
严复(1854年1月8日-1921年10月27日)乳名体干,初名传初, 改名宗光,字又陵,后名复,字几道,晚号野老人,福建侯官 (后并入闽县,称为闽侯,今福州市)人。他系统地将西方的社 会学、政治学、政治经济学、哲学和自然科学介绍到中国,是清 末很有影响的资产阶级启蒙思想家,翻译家和教育家,是中国近 代史上向西方国家寻找真理的“先进的中国人”之一。
二十世纪中国学派的六大翻译理论
第一个翻译理论家是严复,他在《天演论》(Evolution and Ethics and other Essays)中提 出了“译事有三难:信、达、雅”( faithfulness, expressiveness, elegance) ,即“信、 达、雅”三原则。这三个字的影响之大,可以说是“世界之罪”。因为二十世纪的中国译 者几乎没有不受这三个字影响的 (已衍生出“信达切”(刘重德)、“信达贴”(蔡思果)、 “信达优”(许渊冲)、“信达似”(裘克安)、信达+X等) 。“信”是强调译文必须忠 实于原文,“达”是强调译文应该通顺易懂,“雅”在严复时代指的是桐城派风格,现在 一般赋予“雅”新的涵义,即要求译文有文才。
计算理论导引习题答案[第2版]CHAP8new
8.1 证明对于任意函数f:N N,其中f(n)n,不论用单带TM模型还是用两带只读输入TM模型,所定义的空间复杂性类SPACE(f(n))总是相同的。
证明:为区别,记单带TM模型在f(n)空间内能判定的语言类为SPACE1(f(n)), 而记双带只读输入TM模型在f(n)空间内能判定的语言类为SPACE2(f(n))。
该题要证明的是SPACE1(f(n))=SPACE2(f(n))。
首先SPACE1(f(n))SPACE2(f(n))。
这是因为设A SPACE1(f(n)),且设M设在f(n)空间内判定A的单带TM,如下构造双带TM只读输入TM N。
N=“对于输入串w:1)将w复制到工作带上。
2)在工作带上模拟M,直到停机。
3)若M接受,则接受;否则,拒绝。
”N在f(n)空间内运行,L(N)=L(M)=A,所以A SPACE2(f(n))。
首先SPACE2(f(n))SPACE1(f(n))。
设A SPACE2(f(n)),且N 为在f(n)空间内判定A的双带只读输入TM。
按照用单带TM模拟多带TM的常规方式构造M:M=“对于输入串w:1)初始化工作带为#w1’w2…w n#’.其中以’标记N的两个读写头。
2)模拟N运行直到停机。
每一步模拟,要两次扫描带子。
第一次扫描确定读写头下符号,第二次扫描根据N的转移函数完成改写和移动读写头的工作。
3)若N接受,则接受;否则,拒绝。
”L(M)=L(N)=A。
由于f(n)n,M的运行空间是f(n)+n+2=O(f(n))。
8.3 考虑广义地理学游戏,其中起始节点就是又无源箭头指入的节点。
选手I有必胜策略吗?选手II呢?给出理由。
1 2 34 5 6I II I II I Winner2 3 6 I4 5 6 II由表上来看选手II有必胜策略I2II4(不能选3)I5II6(不能选2)I。
8.4 证明PSPACE在并、补和星号运算下封闭。
证明:(1) 并:对任意L1, L2PSPACE,设有n a空间图灵机M1和n b空间图灵机M2判定它们,且c=max{a,b}。
唐常杰翻译的计算理论导引19
定理8.11
可计算理论
CS_Dept.Sichaun Univ.
10/94
8.3.2 博弈的必胜策略
P187
•博奕论-The Game Theory
日光浴者 海滩 1/4 3/4
博奕论:关于包含相互依存情况中理性行为 的研究。
可计算理论
CS_Dept.Sichaun Univ.
11/94
8.3.2 博弈的必胜策略
CS_Dept.Sichaun Univ.
30/94
8.3.3 广义地理学
P189
•广义地理学游戏样例
•选手I必胜
从节点5出发, 选手I,可以选 节点6,7,8
7
1
3
5 1 8
6
可计算理论
CS_Dept.Sichaun Univ.
31/94
8.3.3 广义地理学
P189
•广义地理学游戏样例
•选手I必胜
28/94
8.3.3 广义地理学
P189
•广义地理学游戏样例
•选手I必胜
1 3
节点3,选手II 只有1条路径可 选,即节点5
5 1
可计算理论
CS_Dept.Sichaun Univ.
29/94
8.3.3 广义地理学
P189
•广义地理学游戏样例
•选手I必胜
1
3
5 1
选手II,只 能选节点5
可计算理论
1 3 6 5 1
可计算理论
CS_Dept.Sichaun Univ.
13/94
8.3.2 博弈的必胜策略 表达式 •TQBF语言问题
TQBF={<f>| f是真的全量词化布尔公式}
唐常杰翻译的计算理论导引
X的大小是H的2倍 H不大于Y
•. •2020/8/7
•. •2020/8/7
•9
概率算法
概率算法使用随机过程的结果。典型包含一 条“扔硬币”的指令,并且扔硬币的结果可 能影响算法后面的执行和输出。
BPP类 素数性 只读一次的分支程序
•. •2020/8/7
•10
概率图灵机
概率图灵机M是一种非确定型图灵机,它的每 一非确定步,称作掷硬币步,并且有两个合法 的下次动作。定义分支b的概率如下,其中k是 在分支b中出现的掷硬币步的步数。
近似算法是为了求近似最优解而设计的。
•. •2020/8/7
•3
顶点覆盖问题
若G是无向图,则G的顶点覆盖是节点的一 个子集,使得G的每条边都与子集中的节点 之一相关联。
1 2
5 4
3
1 2
•. •2020/8/7
5 4
3
•4
最小顶点覆盖的一个近似算法
下述多项式时间算法近似地解这个最优化问题,它给出一个顶点 覆盖,其大小不超过最小顶点覆盖的大小的2倍。
Chap 10 复杂性理论中的高级专题 (同学报 告)
可以从下列文件获得PPT素材: 13_10-复杂理论高级专题-同学报告素材.doc
本章提纲 10.1 近似算法、 10.2 概率算法 10.3 交错式 10.4 交互证明, 10.5 并行计算 10.6 密码学
•.
•1
计算理论导引 0_绪论
主要内容
0.0 课程性质 0.1 自动机、可计算性与复杂性 0.2 数学概念和术语 0.3 定义、定理和证明 0.4 证明的类型 0.5 作业
8
0.1 自动机、可计算性与复杂性
什么是计算? 计算机的基本能力和局限性是什么? 计算复杂性理论
把问题分成容易计算和难以计算的
可计算理论
布尔逻辑
合取、析取、非、异或
12
主要内容
0.0 课程性质 0.1 自动机、可计算性与复杂性 0.2 数学概念和术语 0.3 定义、定理和证明 0.4 证明的类型 0.5 作业
13
0.3 定义、定理和证明
定义:描述了我们使用的对象和概念。 证明:是一种逻辑论证。 定理:是被证明为真的数学命题。 引理:有助于证明另一个更有意义的命题的命题。
5
课程说明
教材处理
讲要点,前后次序有少数调整 略讲或自学的部分,要求了解主要思想 快讲的部分,需要一般了解的章节,要求了解主要方法和演绎框架 要求深入掌握的部分——能作题目或作难题,通过考试
6
课时安排
第0章 绪论——2学时 第1章 正则语言——5学时 第2章 上下文无关文法——3学时 第3章 丘奇-图灵论题——2学时 第4章 可判定性——2学时 第5章 可归约性——2学时 第6章 可计算理论高级专题——2学时 第7章 时间复杂性——4学时 第8章 空间复杂性——3学时 第9章 难解性——3学时 第10章 复杂性理论高级专题——4学时
京: 清华大学出版社. (美) John E.Hopcroft等著. 孙家骕等译.自动机理论、语言和计算导
论(原书第3版). 北京: 机械工业出版社.
4
课程说明
作业
唐常杰翻译的计算理论导引
直观解释:PDA资源不够多,,记忆能力不够, 不能作复杂集合(如CFL)的减法
One proves this with specific examples of languages (see homework).
The problem lies in the informal notion of a description. Consider: { n | n>2,a,b,c: an+bn = cn } 费马问题,已解决,是空集
{ x | in year x the first female US president }
让历史告诉未来
{ x | x is “an easy to remember number” }
描述太含糊
We have to define what we mean by “description” and “method of deciding
可计算理论 2024/5/10
CS_Dept.Sichaun Univ.
让历史告诉未来
{ x | x is “an easy to remember number” }
描述太含糊
We have to define what we mean by “description” and “method of deciding”.
可计算理论 2024/5/10
CS_Dept.Sichaun Univ.
,{x| x mod 3 =0}
什么是操作系统 代表元:Windows, Unix
什么internet
计算理论导引pdf
计算理论导引pdf《计算理论导引》是一本介绍计算理论相关知识的教材,是计算机科学和信息技术领域的基础课程之一、本书通过系统地介绍算法、自动机理论、图灵机模型等内容,旨在帮助读者全面了解计算理论的基础知识和方法,并培养读者的逻辑思维和问题解决能力。
这本教材共分为七章,每一章都涵盖了计算理论中的重要概念和理论。
以下是每章的主要内容:第一章介绍了计算理论的概述和基本概念。
通过介绍计算过程、可计算性和自动性等概念,读者可以了解计算理论的研究范畴以及相关的理论框架。
第二章主要讨论了算法和计算复杂性理论。
其中包括最优算法、计算问题的可解性和复杂性,介绍了P类、NP类、NP完全问题等概念,以及计算问题的近似算法。
第三章介绍了自动机理论和形式语言。
其中包括有限自动机、正则语言、上下文无关语言等内容,以及它们在编译原理和自然语言处理中的应用。
第四章讨论了图灵机模型和可计算函数的理论。
通过介绍图灵机的定义和性质,以及可计算函数的概念和分类,读者可以了解计算机科学中最基本的计算模型和计算能力的限制。
第五章介绍了算术和逻辑的可计算性。
其中包括使用图灵机模型证明加法和乘法的可计算性,以及哥德尔不完备定理等内容,旨在帮助读者了解数学和逻辑在计算理论中的重要作用。
第六章讨论了计算的可验证性和可证明性。
其中包括证明系统、不可判定问题和可证明性形式语言等内容,引导读者理解计算理论中证明和验证的概念以及相关的理论。
第七章介绍了复杂性理论和计算复杂性的研究。
其中包括计算问题的难度分类、NP完全性、多项式时间归约等内容,以及复杂性理论在实际问题中的应用和意义。
《计算理论导引》是一本较为全面的教材,适合计算机科学和信息技术相关专业的本科生和研究生学习。
通过阅读本书,读者可以了解计算理论的基本概念和理论,掌握相关的方法和技术,并进一步深入研究计算理论领域的前沿问题。
唐常杰翻译的计算理论导引07.
- pushes an element
(nondeterministically)
CS_Dept.Sichaun Univ.
10/65
Formal Description PDA定义2.8 ep103
形式化定义 cp70
A Pushdown Automata M is defined by a
PDAs are recognizing automata that have a single stack (= memory): “硬件” 增加了栈
Last-In First-Out pushing and popping
对应于 可用 if ,goto, 读,和栈操作 的C程序
Difference: PDAs are inherently nondeterministic. (They are not practical machines.) 天生不确定
可计算理论 2019/10/18
CS_Dept.Sichaun Univ.
5/65
2.2 Pushdown Automata, ep101, cp69
Pushdown automata are for context-free languages what finite automata are for regular languages. PDA :描述CFL的设备
Lecture Notes for Computation Theory
Book :《计算理论导引》
Introduction to the Theory of Computation
Section 2.2 -2.3 PDA –CFL
Prof : 唐常杰
TangChangjie@ /~chjtang
mybible
一.计算机基础理论1>算法与数据结构***(1)《The art of computer programming》Vol 1,2,3,4The Art of Computer ProgrammingAuthor: Donald.E.Knuth/~knuth/t aocp.htmlBook Info: 这部书被誉为20世纪最重要的20部著作之一,与Einstein的<<相对论>>并列,是计算机科学领域的权威著作.全书共分7卷,目前已经出版了3卷,被誉为"计算机程序设计理论的荷马史诗","可与牛顿的<<自然科学的数学原理>>媲美的巨著".作者数学方面的功底造就了本书严谨的风格,虽然本书不是用当今流行的程序设计语言描述的,但这丝毫不损伤它"程序设计史诗"的地位.道理很简单,它内涵的设计思想是永远不会过时的.The Art of Computer Programming 原计划要出七册,但目前只完成了三册.该书有日文,俄文,西班牙文等许多国的版本.其中,中文版由国防大学出版社发行.The Art of Computer Programming, Volume 1: Fundamental Algorithms (3rd Edition)Author: Donald.E.KnuthPublisher: Prentice HallAmazon Reviews: Book Info: 卷1为基础运算法则,该书以基本的编程概念和技术为开始,然后讲述信息结构--计算机内信息的表示法,数据元素间的结构关系以及处理它们的有效方法.主要应用于模拟,数字方法,符号计算,软件和系统设计.许多简单和重要的运算法则和技术已添加到前一版本中,精确的初步计算部分已经修改,以适应当前趋势.The Art of Computer Programming, Volume 2: Seminumerical Algorithms (3rd Edition) Author: Donald.E.KnuthPublisher: Prentice HallAmazon Reviews: Book Info: 第2卷对半数值算法领域做了全面介绍,分"随机数"和"算术"两章.本卷总结了主要算法范例及这些算法的基本理论,广泛剖析了计算机程序设计与数值分析间的相互联系.第3版中特别值得注意的是Knuth对随机数生成程序的重新处理和对形式幂级数计算的讨论.The Art of Computer Programming, Volume 3: Sorting and Searching (2nd Edition)Author: Donald E.KnuthPublisher: Prentice HallAmazon Reviews: Book Info: 卷3为分拣和搜索,这是本书的第1个修订版,它是对计算机分拣和搜索的一流技术的最全面的研究,它扩展了卷1中数据结构的处理方法,将大小数据库以及内存和外部存储都包含在内.本书包括对计算机方法仔细检查的选择方案,和其效率的大量分析.本书该版的独特之处在于优化了的分拣,以及对通用散列法和排列法的新的理论论述.作者简介:Donald.E.Knuth(唐纳德.E.克努特,中文名高德纳)是算法和程序设计技术的先驱者,是计算机排版系统TeX和METAFONT的发明者,他因这些成就和大量创造性的影响深远的著作(19部书和160篇论文)而誉满全球,在计算机科学领域享有崇高的威望,是计算机科学界公认的大宗师.作为斯坦福大学计算机程序设计艺术的荣誉退休教授,他当前正全神贯注于完成其关于计算机科学的史诗性的七卷集.这一伟大工程在1962年他还是加利福尼亚理工学院的研究生时就开始了.Knuth教授获得了许多奖项和荣誉,包括美国计算机协会图灵奖(ACM Turing Award),美国前总统卡特授予的科学金奖(Medal of Science),美国数学学会斯蒂尔奖(AMS Steele Prize),以及1996年11月由于发明先进技术荣获的极受尊重的京都奖(KyotoPrize).现与其妻Jill生活于斯坦福校园内.Donald.E.Knuth人生最辉煌的时刻在斯坦福大学计算机系渡过,获得了美国计算机协会图灵奖,成为本领域内当之无愧的泰斗.英文原版下载/redirect.php?tid=347 54计算机程序设计艺术第1卷基本算法(第3版)(英文影印版) / Art of Computer Programming, Volume 1: Fundamental Algorithms (3rd Edition)Donald E.Knuth / E.KNUTH / 2002-11-1 / 清华大学出版社 / 第1卷:基本算法(第3版)[英文影印版] / 80.00计算机程序设计艺术第2卷半数值算法(第3版)(英文影印版) / Art of Computer Programming, Volume 2: Seminumerical Algorithms (3rd Edition)(美)Donald E.Knuth / 2002-09-01 / 清华大学出版社 / 83.0 / 精装计算机程序设计艺术(第3卷)-排序和查找(英文影印版) / Art of Computer Programming, Volume 3: Sorting and Searching (2nd Edition)(美)Donald E.Knuth / 2002-9-1 / 清华大学出版社 / 85.0 / 精装***(2)《Introdution to algorithm》Author:Thomas H.Cormen ,Charles E.Leiserson ,Ronald L.Rivest ,Clifford SteinAmazon Reviews: Book Info: 简称为CLRS的<<算法导论>>,被称作"计算机算法的圣经".本书的主要作者来自麻省理工大学计算机,作者之一Ronald L.Rivest 由于其在公开秘钥密码算法RSA上的贡献获得了图灵奖,目前是算法的标准教材,美国许多名校的计算机系都使用它,国内有些院校也将本书作为算法课程的教材.另外许多专业人员也经常引用它.由于TAOCP只出版了3卷,CLRS比较起前者来则显得内容更为全面,基本包含了所有的经典算法.本书程序全部由伪代码实现,这更增添了本书的通用性,使得利用各种程序设计语言的程序员都可以作为参考.语言方面通俗,很适合作为算法教材和自学算法之用.国内的很多作品名为数据结构,从本书中断章取义,把数据结构与算法混为一谈,搞得作者自己都迷迷糊糊.这也是我不十分愿意向大家推荐国内作品的原因.你会发现现在基本上所有的数据结构与算法书籍都会将本书作为参考文献之一,更可以说明一个问题,本书是作为读者进行算法学习的最佳选择.作为本书的补充内容,我愿意向大家推荐下面的学习资料:你可以通过这个地址找到本书的所有练习答案:http://www.itu.dk/people/beetle/ .为了更好的学习本书中的内容,最好的指导当然是来自作者本身讲述本书的课程,读者们可以通过http://18.89.1.101/sma/5503fall2001/index55 03fall2001.html获得课程的录像.中文版/thread-31351-1-1.htm l习题及答案/thread-33989-1-1.htm l算法导论(第二版影印版) / Introduction to Algorithms(Second Edition)(美)科尔曼(Corrmen,T.H.) / 2002-5-1 / 高等教育出版社 / 68.0 / 平装***(3).Data Structure & Algorithm Analysis in C (Second Edition)Author:Mark Allen WeissPublished:September 1996Web site:/~weiss/Amazon Reviews: Book Info: 本书曾被评为20世纪顶尖的30部计算机著作之一,作者Mark Allen Weiss在数据结构和算法分析方面卓有建树.他的数据结构和算法分析的著作尤其畅销,并受到广泛好评.已被世界500余所大学用作教材.***(4)Programming Pearls, 2nd EditionAuthor: Jon BentleyPublisher: Addison-Wesley Professional; 2 edition (September 27, 1999) Amazon Reviews: Book Info: 如果让程序员们列出他们最喜欢的书籍,Jon Bentley的<<编程珠玑>>通常可以位于经典之列.如同珍珠来自于曾经折磨牡蛎的沙粒,程序设计的珍珠也来自曾经折磨程序员的实际问题.Bentley的珍珠建立在坚实的工程学基础上,在洞察力和创造力的王国中为那些恼人的问题提供了独特而巧妙的解决方案.通过一些精心设计的有趣而且颇具指导意义的程序,本书对众多实用程序设计技巧及基本设计原则作了清晰而机智的描述.因此,<<编程珠玑>>得到各个层次程序员的青睐并不让人感觉意外.为了反映当今的程序设计方法和环境,Bentley在本书中彻底更新了第一版里的大多数素材.此外,他还增加了以下三个方面的内容:1.测试,调试和计时 2.集合表示 3.字符中问题对原来的所有程序都重新进行了改写,并生成了等量的新代码.您可以从本书网站()获取所有程序的C 或C++实现.McConnell <<Code Complete>>***(5)The Mythical Man-Month: Essays on Software Engineering, 20th Anniversary EditionAuthor: Frederick P, Brooks,Jr.Publisher: Addison-Wesley Professional; 1st edition (August 2, 1995)Amazon Reviews: Book Info: IBM大型电脑之父 Fred Brooks 二十余年开发经验的汇集,远谋深虑,字字珠玑.技术之巧与人文之美的完美结合.本书自第一版以来,畅销二十余年不衰,是软件领域绝无仅有的必读经典.作者简介:Frederick P 曾荣获美国计算机领域最具声望的图灵奖(A.M.Turing Award)桂冠.美国计算机协会(ACM)称赞他"对计算机体系结构,操作系统和软件工程做出了里程碑式的贡献."Brooks 博士是北卡罗莱纳大学 Kenan-Flagler 商学院的计算机科学教授.他被认为是"IBM 360系统之父",曾担任了360系统的项目经理,以及360操作系统项目设计阶段的经理.凭借在上述项目中的杰出贡献,Brooks博士以及Bob Evans和Erich Bloch在1985年荣获了美国国家技术奖(National Medal of Technology).Brooks博士早期曾担任IBM 公司Stretch和Harvest计算机的体系结构设计师.Brooks 博士创立了北卡罗莱纳大学的计算机科学系,并在1964~1984年期间担任系主任.他还曾任职于美国国家科技局和国防科学技术委员会.他目前的教学和研究方向是计算机体系结构,分子模型绘图和虚拟环境设计.***(6)The Pragmatic ProgrammerAuthor: Andrew Hunt,David ThomasPublisher: Addison WesleyPublished: November 24, 1999Amazon Reviews: Book Info: 本书直击编程阵地,穿过了日益增长的现代软件开发的规范和学术,对核心过程进行了审视----该过程采取了供需结合的工作方式和令人欣喜的可维护代码.本书包含的内容从个人责任和职业发展到保持代码的灵活性,使之易于改编和重用.本书由各个相对独立的章节组成,其间不乏好玩的轶事,详细的实例和有趣的对话,描述了软件开发各个方面的最好实践和主要缺陷.无论你是一个新入门的编码者,一个有经验的程序员,还是负责软件项目的经理,通过每日学习这些课程,都会在个人生产力,准确率和工作满意度上有快速的增长.你所学到的技巧和开发习惯和态度将为你在职业生涯中取得长期成功奠定基础.你将成为又一Pragmatic Programmer.数据结构C++语言描述》58.00(Data Structures C++) William Ford,William Topp 刘卫东沈官林数据结构算法与应用-C++语言描述》49.00Sartej Sahni 汪诗林孙晓东等机械工业出版社计算理论导引(第2版) / Introduction to the Theory of Computation(美)西普塞 / 2006-7-1 / 机械工业出版社 / 36.0 / 平装 / 唐常杰自动机理论、语言和计算导论(原书第2版) / Introduction to Automata Theory,Languages,and Computation,Second Edition程序设计语言:原理与实践(第二版) / Programming Languages:Principles and Practice,Second Edition程序设计语言-实践之路 / Programming Language Pragmatics(美)斯科特 / 2005-3-1 / 电子工业出版社 / 88.0 / 平装 / 裘宗燕计算机程序的构造和解释(原书第2版) / Structure and Interpretation of Computer Programs,Second Edition[美]艾伯森等 / 2004-02-01 / 机械工业出版社 / 45.0 / 平装 / 裘宗燕《Algorithm in c/c++/java 》【Data structure andalgorithm】1。
3上下文无关文法及语言
长翅膀的规则 与 前后文无关,只管自己长, (我行我素) 比较简单,当然描述能力原比较有限
2012-7-26 10/53
Context-Free Grammars (Def.2.1) ep94
复习 补充定理 :正则语言之交正则。上次讲过。
预备引理 Ex1.39问题: { 0n1m | n,mN}=0*1*,是正则语言
Let C = { w | w中0,1 个数一样多} 求证它不是RL 反证法: Assume that C is regular Take the regular F = { 0n1m | n,mN}, then for the intersection: CF = { 0n1n | nN } But we know that CF is not regular Conclusion: C is not regular
Introduction to the Theory of Computation
特别鸣谢:唐常杰教授提供的素材及原稿
Chapter2 Context-Free Languages (CFL)
2012-7-26
1/53
(20பைடு நூலகம்7.2.24 Xing-hua park)
2012-7-26
2/53
2012-7-26
7/53
Context-Free Languages (Ch. 2)
前后文无关语言
Context-free languages allow us to describe nonregular languages like { 0n1n | n0}
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第10章复杂性理论高级专题(学生讨论PPT素材)作为教学科研的基本训练的一个重要环节,学生应该能根据教材,作出有自己特色的PPT 发言稿. 这里提供一些素材,试图减小学生的工作难度。
PPT不能仅仅是剪报。
一份好的讨论班PPT 应该有同学的理解和创新.(素材节选自教材但不能代替教材)从素材作PPT一般需要用读--减---加三个过程。
(a)先充分阅读理解教材,(b)从此素材中删去次要语句,(c)增加自己的心得,理解方法,解释和图形。
PPT应该突出思路,突出要点, 适当的比喻可以帮助理解。
10. 1 近似算法例如,我们考虑7.5节所讨论的顶点覆盖问题。
顶点覆盖问题被描述为一个表示判定问题(decision problem)的语言VERTEX-COVER。
判定问题只有两个答案,是或非。
该问题的最优化形式记作MIN-VERTEX-COVER。
任意给定一个图,其目标是在所有可能的顶点覆盖中找到一个最小的顶点覆盖。
下述多项式时间算法近似地解这个最优化问题。
它给出一个顶点覆盖,其规模不超过最小顶点覆盖的2倍。
A=“对于输入<G>,这里G是一个无向图:1)重复下述操作直至G中所有的边都与有标记的边相邻。
2)在G中找一条不与任何有标记的边相邻的边。
3)给这条边做标记。
4)输出所有有标记的边的顶点。
”定理10. 1上述的算法A是一个多项式时间算法,它给出G的一个顶点覆盖,其规模不超过G的最小顶点覆盖的2倍。
证明A的运行时间显然是多项式时间的。
设X是它输出的顶点集合,H是有标记的边的集合,因为G的每一条边要么属于H,要么与H中的一条边相邻,所以X与G中所有的边关联。
因此,X是一个顶点覆盖。
为了证明X的规模不超过最小顶点覆盖Y的2倍,我们要确认两个事实:X中顶点的数目大小是H的2倍和H不大于Y。
首先,H中的每一条边为X提供2个顶点,从而X中顶点的数目大小是H的2倍。
其次,Y是一个顶点覆盖,从而H中每一条边与Y中的某个顶点关联。
由于H中的边互不相邻,故Y中的顶点不可能同时关联H中的两条边。
由于Y中有不同的顶点关联H中的每一条边,所以顶点覆盖Y不小于H。
因此,X中顶点的数目大小不超过Y的2倍。
MIN-VERTEX-COVER 是一个最小化问题(minimization problem),因为我们的目标是求可行解中最小的解。
在最大化问题(maximization problem)中,我们试图求最大的解。
如果一个最小化问题的近似算法总能找到不超过最优k倍的可行解,则称这个算法是k-优(k-optimal)的。
前面关于顶点覆盖问题的算法是2优的。
对于最大化问题,一个k-优近似算法总能找到不小于最优解大小的1k的可行解。
下面是最大化问题MAX-CUT的近似算法。
把顶点集V划分成两个互不相交的子集S和T,称为无向图中的割(cut)。
一个顶点在S中另一个顶点在T中的边对称作割边(cut edge)。
如果一条边不是割边,则称作非割边(uncut edge)。
割边的数目称作割的大小。
MAX-CUT 求输入图G中的最大割。
正如在问题7.25中的所说明的,该问题是NP完全问题。
下述算法近似MAX-CUT到因子2的范围内。
B=“对于输入〈G〉,这里G是顶点集为V的无向图:1)令Φ=S和VT=。
2)如果把一个顶点从S移到T或从T移到S,使割的大小变大,则做这样的移动,并且重复这一步。
3)如果不存在这样的顶点,则输出当前的割并且停止。
”该算法从一个(假定是)坏的割开始,然后做局部改进,直到不能进一步做局部改进为止。
虽然这个过程一般不能给出最大的割,但是可以证明它给出的割的大小至少是最大割大小的一半。
定理10. 2 上述的算法B是MAX-CUT的2-优的多项式时间近似算法。
证明由于每次执行步骤2增加割的大小,而割的大小不超过G的边数,故B在多项式时间内运行。
现在证明B输出的割不小于最大割的一半。
实际上,要证明更强的结论:B输出的割至少包含G中所有边的一半。
观察到,在G的每一个顶点,割边不少于非割边,否则B要把该顶点移到另一边。
把所有顶点的割边数加在一起,这个和是割边总数的2倍,因为每一条割边对它的两个端点各计算一次。
根据前面的观察,这个和不小于所有顶点非割边数之和。
于是,G中的割边不少于非割边,从而B输出的割中至少包含所有边的一半。
10. 2 概率算法概率算法以随机过程为工具。
典型算法包含一条“掷硬币”的指令,并且掷硬币的结果可能影响算法后面的执行和输出。
对某些类型的问题,相对于确定型算法,用概率算法更容易解决。
10.2.1 BPP类为了更为形式化地讨论概率计算问题,这里首先定义一个新的计算模型—概率图灵机。
然后本节介绍一个与高效的概率计算相关的复杂性类并给出几个例子。
定义10. 3 概率图灵机(probabilistic Turing Machine)M是一种非确定型图灵机,它的每一非确定性步,称做掷硬币步(coin-flip step),并且有两个合法的下次动作。
按照下述方式把概率赋给M对输入ω的每一个计算分支b。
定义分支b的概率为[]k2bPr-=,其中,k 是在分支b 中出现的掷硬币步的步数,定义M 接受ω的概率为[][]是接受分支接受b b Pr M Pr =ω换言之,如果模拟M 对ω的计算,在每一掷硬币步,用掷硬币决定下一步的动作,则M 接受ω的概率等于它到达接受格局的概率。
令[][]ωω接受-=拒绝M M P Pr 1r通常,当图灵机接受属于某一语言的所有字符串并且拒绝不在这个语言中的所有字符串时,我们说图灵机识别该语言。
但是如果我们允许机器有小的错误概率,如,对于某个正数ε,210≤≤ε,如果 1)A ∈ω蕴涵[]εω-≥1P r 接受M ,并且2)A ∉ω蕴涵[]εω-≥1P r 拒绝M则称M 以错误概率ε识别语言A (M recognizes language A with error probability ε)。
换句话说,模拟M 得到错误答案的概率至多为ε。
我们接下来考虑错误概率的边界。
错误概率的边界依赖于输入串的长度n 。
例如,错误概率πε-=2表示指数地小的错误概率。
我们感兴趣的是在时间和(或)空间上运行高效的概率算法。
度量概率图灵机的时间和空间复杂度的方法与度量非确定型图灵机是一样的,使用对每一个输入的最坏情况下的计算分支。
定义10. 4 BPP 是多项式时间的概率图灵机以错误概率31识别的语言类。
我们以错误概率31定义BPP 。
但是根据下述加强引理(amplification lemma ),任何严格地在0和21之间的常数错误概率都给出等价的定义。
这个引理提供一种简单的方法使错误概率指数地小。
注意:错误概率为1002-的概率算法,由于运行它的计算机的硬件失灵给出错误结果的可能性远大于由于掷硬币不走运给出错误结果的可能性。
引理10. 5 设ε是一给定的常数,且210<<ε。
又设M 1是一台错误概率为ε的多项式时间概率图灵机,则对于任意给定的多项式)(n poly ,存在与M 1等价的错误概率为()n poly 2-的多项式时间概率图灵机2M 。
证明思路 2M 用如下方式模拟1M :运行1M 多项式,并且取这些运行结果中的多数作为计算结果。
错误概率随1M 的运行次数指数地下降。
考虑31=ε时的情况。
这对应于一只装有许多红球和蓝球的盒子。
已知32的球是一种颜色,其余31的球是另一种颜色。
但是不知道哪一种颜色的球多。
随机地抽取若干个球(例如,100个),看哪一个颜色的频率高,以此能够检验哪一种颜色多。
几乎可以肯定,盒中数量多的颜色在样本中的频率高。
这些球对应M 1的计算分支:红色对应接受分支,蓝色对应拒绝分支。
M 2借助运行M 1对颜色取样。
计算表明,如果M 2运行M 1多项式次,并且输出出现频率高的结果,则M 2 犯错误的概率指数地小。
证明 给定TM 1M 和多项式)(n poly ,1M 以错误概率21<ε识别一个语言,要构造下述TM 2M ,它以错误概率()n poly 2-识别同一语言。
ω”对输入=2M 1)计算k 的值(请注意下边的分析)。
2)对输入ω进行k 2次独立的1M 模拟运行。
3)如果1M 接受ω的次数多,则接受;否则拒绝。
”我们设法限定12M 在输入ω上运行错误的概率。
阶段2产生一个由模拟1M 得到的k 2个结果的序列,每个结果要么正确要么错误。
如果这些结果大多数都正确,2M 给出正确的回答。
我们限定为至少一半的结果都是错误的。
假定S 表示阶段2中2M 得到的结果序列。
令S p 表示2M 得到S 的概率。
假定S 中有c 个正确的结果,ω个错误的结果,我们有k 2c =+ω。
如果ω≤c 并且2M 得到S ,那么2M 输出不正确。
我们把这样的序列S 称为一个坏的序列。
如果S 是一个坏的序列,那么()c S 1p εεω-≤。
因为ω≤k ,εε-<1,所以S p 至多是()k k 1εε-。
对所有S 为坏序列的情况S p 求和即得到2M 输出不正确的概率。
坏序列至多有k 22个,这是显而易见的,因为所有不同序列的总数为k 22。
因此,我们得到如下等式:[]()()()k S bad k k 2S 2141k 2p M Pr εεεεω-=-⋅≤=∑上输出不正确在输入 我们假定21<ε,我们有()114<-εε,因此上述概率将随k 的增加指数的减少,2M 的错误概率也将随k 的增加指数的减少。
为得到一个特定的k 值使得我们很好的将M2的概率限定在小于2-t ,我们令()()εεα--=14log 2,并选择α/t k ≥。
于是,我们得到多项式时间内的错误概率()n poly 2-。
1 错误概率的分析来自Chernoff 边界,这是概率论中的一个公认的标准结果。
这里我们给出一个替代的,自包含的计算,它避免了对该结果的依赖。
10.2.2 素数性(PRIMALITY )素数(prime number )是大于1并且不能被1和自身以外的任何正整数除尽的整数。
大于1的非素数叫做合数(composite )。
判断一个整数是素数还是合数是一个非常古老的问题,有很多相关的研究。
现在已经有了解决该问题的多项式时间算法[4]。
但是,由于种种原因,可能不适合在这里讲述过多关于该工作的实现细节。
在本节中,我们描述一个简单得多的检验一个数是素数还是合数的多项式时间概率算法。
判定一个数是否是素数的一种最直接的方法是检查所有小于这个数的整数,看是否有能整除这个数的数,即因子(factors )。
由于数的大小是随它的长度呈指数增长的,故这个算法具有指数时间复杂度。
我们要描述的测试素数性的概率算法的运行方式完全不同。
它不搜索因子。
实际上,还没有找到求因子的多项式时间概率算法。