




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、22.1.1 2.1.1 计数计数与计算与计算 手指、石头、结绳计数,算筹计算手指、石头、结绳计数,算筹计算3 许多计算领域的许多计算领域的求解问题求解问题,如计算物理学、计算力,如计算物理学、计算力学、计算化学和计算经济学等都可以归结为数值计算问学、计算化学和计算经济学等都可以归结为数值计算问题,而题,而数值数值是一门与计算机应用紧密结合的、是一门与计算机应用紧密结合的、实用性很强的数学课程。实用性很强的数学课程。 如对气象资料的汇总、加工并生成天气图像,如对气象资料的汇总、加工并生成天气图像,其计算量大且时限性强,要求计算机能够进行高速其计算量大且时限性强,要求计算机能够进行高速运算,以便
2、对天气做出短期或中期的预报。运算,以便对天气做出短期或中期的预报。 科学计算的过程科学计算的过程:实际问题实际问题数学模型数学模型计算方法计算方法程序设计程序设计计算结果计算结果42.1.2 2.1.2 逻辑逻辑与计算与计算 逻辑学有三大源泉逻辑学有三大源泉:以亚里士多德的词项逻辑和斯多:以亚里士多德的词项逻辑和斯多亚学派的命题逻辑为代表的古希腊逻辑。亚学派的命题逻辑为代表的古希腊逻辑。 以先秦名辩学为代表的古中国逻辑。以先秦名辩学为代表的古中国逻辑。 以正理论和因明学为代表的古印度逻辑。以正理论和因明学为代表的古印度逻辑。 逻辑是研究推理的学科,人们可以把推理看成是对符号逻辑是研究推理的学科
3、,人们可以把推理看成是对符号的操作,即符号演算。的操作,即符号演算。 利用数学方法来研究推理的规律称为利用数学方法来研究推理的规律称为数理逻辑数理逻辑。为什么。为什么要研究数理逻辑呢?我们知道要使用计算机,就要有程序。要研究数理逻辑呢?我们知道要使用计算机,就要有程序。 程序算法数据结构,而算法逻辑控制程序算法数据结构,而算法逻辑控制52.1.3 2.1.3 算法算法与计算与计算从不同角度看,算法的定义有多种从不同角度看,算法的定义有多种:从哲学角度看:算法是解决一个问题的抽象行为序列。从哲学角度看:算法是解决一个问题的抽象行为序列。从抽象层次看:算法是一个将输入转化为输出的计算步骤序列从抽象
4、层次看:算法是一个将输入转化为输出的计算步骤序列从技术层面看:算法是接收输入并产生输出的计算过程。从技术层面看:算法是接收输入并产生输出的计算过程。 简而言之,简而言之,算法就是计算的办法或法则算法就是计算的办法或法则。 算法无处不在,每个人每天都在算法无处不在,每个人每天都在使用不同的算法来活出自己的人生。使用不同的算法来活出自己的人生。比如你去食堂买饭会选择一个较短的比如你去食堂买饭会选择一个较短的队列,而有人则可能选择一个推进速队列,而有人则可能选择一个推进速度更快的队列。度更快的队列。6 算法算法:为解决一个特定的问题所采取确定的有限步骤。:为解决一个特定的问题所采取确定的有限步骤。
5、计算机用于解决数值计算,如科学计算中的数值积分、解线计算机用于解决数值计算,如科学计算中的数值积分、解线性方程等计算方法,就是数值计算的算法。性方程等计算方法,就是数值计算的算法。 计算机用于解决非数值计算,如用于管理、文字处理、图像计算机用于解决非数值计算,如用于管理、文字处理、图像图形等的排序、分类和查找,就是非数值计算的算法。图形等的排序、分类和查找,就是非数值计算的算法。 算法的组成算法的组成:操作、数据。:操作、数据。 这些操作包括加、减、乘、除和判断等,并按顺序、分支、这些操作包括加、减、乘、除和判断等,并按顺序、分支、循环等控制结构所规定的次序执行。循环等控制结构所规定的次序执行
6、。 数据是指操作对象和操作结果,包括布尔值、字符、整数和数据是指操作对象和操作结果,包括布尔值、字符、整数和实数等;以及向量、记录、集合、树和图以及声音等。实数等;以及向量、记录、集合、树和图以及声音等。 为什么学习算法为什么学习算法:算法是计算机的灵魂;算法是数学机:算法是计算机的灵魂;算法是数学机械化的一部分,能够帮助我们解决复杂的计算问题;算法作为械化的一部分,能够帮助我们解决复杂的计算问题;算法作为一种思想,能锻炼我们的思维,使思维变得更清晰、更有逻辑。一种思想,能锻炼我们的思维,使思维变得更清晰、更有逻辑。7 计算理论计算理论:关于计算和计算机械的数学理论,:关于计算和计算机械的数学
7、理论,它研究计算的过程与功效。它研究计算的过程与功效。 计算理论主要包括算法、算法学、计算复杂计算理论主要包括算法、算法学、计算复杂性理论、可计算性理论、自动机理论和形式语言性理论、可计算性理论、自动机理论和形式语言理论等等。理论等等。82.2.1 2.2.1 计算与问题求解计算与问题求解 计算计算是依据一定的法则对有关符号串的变换过程。是依据一定的法则对有关符号串的变换过程。抽象地说,计算的本质就是递归。抽象地说,计算的本质就是递归。 直观描述直观描述:计算是从已知符号开始,一步一步地:计算是从已知符号开始,一步一步地改变符号串,经过有限步骤,最终得到一个满足预定改变符号串,经过有限步骤,最
8、终得到一个满足预定条件的符号串的过程。这样一种有限的符号串变换过条件的符号串的过程。这样一种有限的符号串变换过程与递归过程是等价的。程与递归过程是等价的。 问题求解问题求解:虽然虽然某一问题可能找到不同的算法或某一问题可能找到不同的算法或方法,但是否可以计算取决于算法的存在性和计算的方法,但是否可以计算取决于算法的存在性和计算的复杂性,也就是说,取决于是否存在可求解的算法。复杂性,也就是说,取决于是否存在可求解的算法。 计算计算思维的三大思维的三大任务:任务:问题求解问题求解、系统设计、系统设计、人类行为的人类行为的理解。理解。10可计算性理论可计算性理论:研究计算的一般性质的数:研究计算的一
9、般性质的数学理论。学理论。可计算理论的中心课题可计算理论的中心课题:将算法这一直观:将算法这一直观概念精确化,建立计算的数学模型,研究概念精确化,建立计算的数学模型,研究哪些是哪些是可计算可计算的,哪些是的,哪些是不可计算不可计算的,以的,以此揭示计算的实质。此揭示计算的实质。由于计算与算法联系在一起,因此,可计由于计算与算法联系在一起,因此,可计算性理论又称算性理论又称算法理论算法理论。2.2.2 2.2.2 可计算性可计算性理论理论11 1.1.可计算理论的发展可计算理论的发展 可计算理论起源于对数学基础问题的研究。从可计算理论起源于对数学基础问题的研究。从2020世纪世纪3030年年代开
10、始,为了讨论所有问题是否都有求解的算法,数学家和逻代开始,为了讨论所有问题是否都有求解的算法,数学家和逻辑学家从不同角度提出了几种不同的算法概念精确化定义。辑学家从不同角度提出了几种不同的算法概念精确化定义。 1935193519361936193619361943194319511951邱奇提出邱奇提出转换演算转换演算哥德尔等定哥德尔等定义递归函数义递归函数图灵和波斯特图灵和波斯特各自提出抽象各自提出抽象计算机模型计算机模型MapkobMapkob定义定义正规算法正规算法陆续陆续证明证明,上述这些不同计算模型,上述这些不同计算模型( (算法精确化定义模算法精确化定义模式式) )的计算能力都是
11、一样的,即的计算能力都是一样的,即它们是等价的它们是等价的。 12可计算性的定义应算是一个哲学定义。可计算性的定义应算是一个哲学定义。如果存在一个机械的过程,对给定的一个如果存在一个机械的过程,对给定的一个输入,能在有限步内给出答案,那么这个输入,能在有限步内给出答案,那么这个问题是可计算性的。问题是可计算性的。定义定义:凡可用某种程序设计语言描述的问:凡可用某种程序设计语言描述的问题都是可计算性问题。题都是可计算性问题。特性特性:确定性、有限性、机械性、可执行:确定性、有限性、机械性、可执行性、终止性。性、终止性。 2. 2.可计算性的定义和特性可计算性的定义和特性 13图灵给出的可计算性定
12、义图灵给出的可计算性定义:能够在图灵机上:能够在图灵机上执行的过程(通常又称执行的过程(通常又称算法的过程算法的过程)。)。图灵之所以能取得成功,是他采用了图灵之所以能取得成功,是他采用了算法思算法思维维来研究计算的过程,从而揭示可计算性的来研究计算的过程,从而揭示可计算性的概念。概念。算法思维算法思维与目前在计算机上运行的程序之间与目前在计算机上运行的程序之间有着密切的关系,从而使他的理论受到重视有着密切的关系,从而使他的理论受到重视并被广泛使用。并被广泛使用。 2. 2.可计算性的定义和特性可计算性的定义和特性 3 3、可计算性理论的主要内容、可计算性理论的主要内容图灵机图灵机:用于精确描
13、述算法的特征用于精确描述算法的特征。可。可以以用图灵用图灵机机来计算其值的函数是可计算函数,找不到图灵来计算其值的函数是可计算函数,找不到图灵机来计算其值的函数是不可计算函数机来计算其值的函数是不可计算函数。14演算演算:它是一种定义函数的形式演算系统:它是一种定义函数的形式演算系统。该。该系统系统引进引进记号以明确区分函数和函数值,并把记号以明确区分函数和函数值,并把函数值的计算归结为按照一定规则进行一系列函数值的计算归结为按照一定规则进行一系列演演算和算和转换。转换。丘丘奇奇- -图灵论题图灵论题:丘丘奇说,奇说,可定义函数类与直可定义函数类与直观可计算函数类观可计算函数类相同相同。图灵说
14、,。图灵说,图灵机图灵机可计算函可计算函数类与直观可计算函数类相同数类与直观可计算函数类相同。因此可以说,图因此可以说,图灵机可计算函数类与灵机可计算函数类与可定义函数可定义函数类类相同。相同。原始递归函数原始递归函数:规定:规定少量直观可计算的函数为原少量直观可计算的函数为原始递归函数,原始递归函数的合成仍始递归函数,原始递归函数的合成仍然然是原始递是原始递归函数归函数,可以由已知原始递归函数简单递归计算,可以由已知原始递归函数简单递归计算出函数值的函数仍然是原始递归函数。出函数值的函数仍然是原始递归函数。16 4.4.可计算理论的意义可计算理论的意义可计算性理论的基本思想、概念和方法被可计
15、算性理论的基本思想、概念和方法被广泛应用于计算科学的各个领域。广泛应用于计算科学的各个领域。数学模型数学模型的建立方法在科学、工程、技术的建立方法在科学、工程、技术领域中被广泛采用。领域中被广泛采用。递归递归的思想被用于程序设计、数据结构和的思想被用于程序设计、数据结构和计算机体系结构。计算机体系结构。演算演算被用于研究程序设计语言的语义。被用于研究程序设计语言的语义。17计算学科的一个基本结论是不可计算的函计算学科的一个基本结论是不可计算的函数要比可计算的函数多得多。数要比可计算的函数多得多。虽然许多问题是可判定的,但更多的问题虽然许多问题是可判定的,但更多的问题是不可判定的。是不可判定的。
16、例如:例如:停机问题停机问题和波斯特对应问题都是不和波斯特对应问题都是不可判定的。可判定的。 4.4.可计算理论的意义可计算理论的意义182.2.3 2.2.3 停机问题停机问题 停机问题停机问题是目前逻辑数学的焦点和第三次数是目前逻辑数学的焦点和第三次数学危机的解决方案,它是重要的不可判定问题。学危机的解决方案,它是重要的不可判定问题。 1936 1936年,年,TuringTuring发表发表“论可计算数及论可计算数及其在判定问题中的应用其在判定问题中的应用”论文中提出一般论文中提出一般性停机问题的不可判定性,并用形式化方性停机问题的不可判定性,并用形式化方法证明其为一个不可计算问题。法证
17、明其为一个不可计算问题。一般性的停机问题一般性的停机问题:对于任意的图灵机和输入,是否存在:对于任意的图灵机和输入,是否存在一个算法,用于判定图灵机在接收初始输入后可达停机状一个算法,用于判定图灵机在接收初始输入后可达停机状态。若能找到这种算法,停机问题可解;否则不可解。态。若能找到这种算法,停机问题可解;否则不可解。19 通俗地说,通俗地说,停机问题停机问题就是判断任意一个程序就是判断任意一个程序是否在有限的时间内结束运行的问题。是否在有限的时间内结束运行的问题。例如:例如:main() int i=1; while ( i0 ) i=i+1; return; 程序可终止程序可终止程序死循环
18、程序死循环程序简单时容易做出判断,当示例复杂时会遇程序简单时容易做出判断,当示例复杂时会遇到较大的困难,而在某些情况下则无法预测。到较大的困难,而在某些情况下则无法预测。20 停机问题的关键停机问题的关键:能否找到一个测试程序,:能否找到一个测试程序,这个测试程序能判定任何一个程序在给定的输入这个测试程序能判定任何一个程序在给定的输入下能否终止。下能否终止。 数学反证法证明数学反证法证明:先假设存在这样的测试程:先假设存在这样的测试程序,然后再构造一个程序,该测试程序不能测试序,然后再构造一个程序,该测试程序不能测试假设存在一个测试程序假设存在一个测试程序T T,它能接受任何输入。,它能接受任
19、何输入。当输入程序当输入程序P P能终止,输出能终止,输出1 1; P P不能终止,输出不能终止,输出0 0。21P P能终止能终止,X,X1 1P P不终止不终止,X,X0 0测试程序测试程序T T程序程序P PX X测试程序测试程序T TX(1X(1或或0)0)while(x)while(x) S S程序程序P P测试程序测试程序T TX(1X(1或或0)0)while(x)while(x) S S程序程序S SP P终止终止,X,X1,S1,S不终止不终止P P不终止不终止,X,X0,S0,S终止终止S S终止终止,X,X1,S1,S不终止不终止S S不终止不终止,X,X0,S0,S终止
20、终止结论结论:若:若S S终止,则终止,则S S不终止;若不终止;若S S不终止,则不终止,则S S终止,结论矛盾终止,结论矛盾故可以确定这样的测试程序不存在,从而证明停机问题不可解故可以确定这样的测试程序不存在,从而证明停机问题不可解22谁给这位理发师刮脸呢?如果他自己刮脸,那他就谁给这位理发师刮脸呢?如果他自己刮脸,那他就属于自己刮脸的那类人。但是,他的招牌说明他不属于自己刮脸的那类人。但是,他的招牌说明他不给这类人刮脸,因此他不能自己来刮脸。给这类人刮脸,因此他不能自己来刮脸。如果另外一个人来给他刮脸,那他就是不自己刮脸如果另外一个人来给他刮脸,那他就是不自己刮脸的人。但是,他的招牌说他
21、要给所有这类人刮脸。的人。但是,他的招牌说他要给所有这类人刮脸。因此,其他任何人也不能给他刮脸。因此,其他任何人也不能给他刮脸。从本质上看,理发师问题和停机问题是一样的。从本质上看,理发师问题和停机问题是一样的。 例题例题 理发师悖论理发师悖论。一个理发师的招牌:。一个理发师的招牌:城里所城里所有不自己刮脸的男人都由我给他们刮脸,我也只有不自己刮脸的男人都由我给他们刮脸,我也只给这些人刮脸。给这些人刮脸。232.2.4 2.2.4 计算复杂性计算复杂性理论理论 计算复杂性理论计算复杂性理论:用数学方法研究各类问题:用数学方法研究各类问题的计算复杂性的学科。的计算复杂性的学科。 计算复杂性理论研
22、究各种可计算问题在计算计算复杂性理论研究各种可计算问题在计算过程中资源过程中资源( (如时间、空间等如时间、空间等) )的耗费情况,以及的耗费情况,以及在不同计算模型下,使用不同类型资源和不同数在不同计算模型下,使用不同类型资源和不同数量的资源时,各类问题复杂性的本质特性和相互量的资源时,各类问题复杂性的本质特性和相互关系。关系。 24 1. 1.计算复杂性理论的发展计算复杂性理论的发展 1993 1993年的图灵奖授予合作奠定了计算复杂性理论基础的两位年的图灵奖授予合作奠定了计算复杂性理论基础的两位学者学者J.HartmanisJ.Hartmanis和和R.E.StearnsR.E.Stea
23、rns。 在此以前,已有在此以前,已有M.O.RabinM.O.Rabin、S.A.CookS.A.Cook、R.M.KarpR.M.Karp等学者因等学者因在计算复杂性理论研究中做出先驱性工作而分别在在计算复杂性理论研究中做出先驱性工作而分别在19761976、 19821982和和19851985年获得图灵奖。年获得图灵奖。HartmanisHartmanis和和StearnsStearns则在前人工作的基础则在前人工作的基础上,比较完整地提出了计算复杂性的理论体系,并首次正式命名上,比较完整地提出了计算复杂性的理论体系,并首次正式命名了了计算复杂性计算复杂性( (computationa
24、l complexity) ),因而被公认为计算复,因而被公认为计算复杂性理论的主要创始人。杂性理论的主要创始人。25 1995 1995年度的图灵奖授予加州大学伯克利分校的计算机科学家年度的图灵奖授予加州大学伯克利分校的计算机科学家Manuel BlumManuel Blum,他是计算复杂性理论的主要奠基人之一。,他是计算复杂性理论的主要奠基人之一。 BlumBlum与前述两人互相独立地进行着相关问题的研究,并完成与前述两人互相独立地进行着相关问题的研究,并完成了他的博士论文:了他的博士论文:A machine independent theory of the complexity of
25、recursive functions ( (与机器无关的递归函数复杂性与机器无关的递归函数复杂性理论理论) ),论文提出了有关计算复杂性的,论文提出了有关计算复杂性的4 4个公理,被称为布卢姆公个公理,被称为布卢姆公理系统。目前,可计算理论的绝大部分结果都可以从这个公理系理系统。目前,可计算理论的绝大部分结果都可以从这个公理系统推导出来。统推导出来。计算复杂性理论应用于计计算复杂性理论应用于计算机安全算机安全( (密码学密码学) )、软件、软件工程的程序正确验证,以工程的程序正确验证,以及算法博弈论。及算法博弈论。26 2.2.计算复杂性计算复杂性 算法复杂性算法复杂性针对特定算法针对特定算
26、法 计算复杂性计算复杂性针对特定问题,反映问题的固有难度针对特定问题,反映问题的固有难度 计算复杂性最佳的算法复杂性计算复杂性最佳的算法复杂性 计算复杂性计算复杂性:用计算机求解问题的难易程度。:用计算机求解问题的难易程度。 度量标准度量标准: 时间复杂度时间复杂度计算所需的步数或指令条数;计算所需的步数或指令条数; 空间复杂度空间复杂度计算所需的存储空间大小。计算所需的存储空间大小。27 假设一个问题有两种算法:假设一个问题有两种算法: 算法复杂性是算法复杂性是n n3 3 (0.2s)(0.2s) 算法复杂性是算法复杂性是3 3n n (4(4* *10102828s,1s,1千万亿年千万
27、亿年) ) ( (用每秒百万次的计算机,用每秒百万次的计算机,n=60)n=60)如果一个问题没有多项式时间复杂性的算法,则被称如果一个问题没有多项式时间复杂性的算法,则被称为难解型问题为难解型问题。n n 0.01ms 0.03ms 0.05ms 0.06ms 0.01ms 0.03ms 0.05ms 0.06msn n3 3 1ms 27ms 125ms 216ms 1ms 27ms 125ms 216msn n5 5 100ms 24.3s 5.2min 13min 100ms 24.3s 5.2min 13min2 2n n 1ms 17.9min 35.7 1ms 17.9min 3
28、5.7年年 366366世纪世纪3 3、P P类问题和类问题和NPNP类问题类问题 人们普遍关心的是:一个问题是否存在多人们普遍关心的是:一个问题是否存在多项式时间计算复杂性的求解算法。项式时间计算复杂性的求解算法。 若存在,则这个问题可以借助计算机来实若存在,则这个问题可以借助计算机来实现求解现求解。 若不存在,使用计算机无法在有限的时间若不存在,使用计算机无法在有限的时间内完成。内完成。P P类问题类问题:在多项式时间内可以解决的问题类。:在多项式时间内可以解决的问题类。P P类问题公认为是用确定型图灵机在多项式类问题公认为是用确定型图灵机在多项式时间内能解决的问题时间内能解决的问题也就是
29、说解决问题的时间复杂性函数为也就是说解决问题的时间复杂性函数为O(P(n)O(P(n),其中:,其中:n n为问题的规模,为问题的规模,P P为为n n的某的某个多项式函数个多项式函数P P类问题包含了大量已知自然问题,如计算类问题包含了大量已知自然问题,如计算最大公约数、计算最大公约数、计算值、排序问题、二维匹值、排序问题、二维匹配问题等。配问题等。多项式时间函数和指数时间函数的比较多项式时间函数和指数时间函数的比较NPNP类问题类问题:多项式时间可验证的问题类。:多项式时间可验证的问题类。利用一种非确定性算法在多项式时间内加以利用一种非确定性算法在多项式时间内加以解决。解决。非确定性算法包
30、括非确定性算法包括2 2个阶段:猜测阶段、检验个阶段:猜测阶段、检验阶段。阶段。NPNP类问题数量巨大,如完全子图问题、图的类问题数量巨大,如完全子图问题、图的着色问题、汉密尔顿回路问题、旅行商着色问题、汉密尔顿回路问题、旅行商问题。问题。20002000年年5 5月,美国克雷数学研究所的科学顾月,美国克雷数学研究所的科学顾问委员会选定了七个千禧年数学难题,问委员会选定了七个千禧年数学难题,并并决决定建立定建立700700万美元的大奖基金。万美元的大奖基金。这这七个难题分别是:七个难题分别是:P P类问题对类问题对NPNP类问题类问题、霍奇猜想、庞加莱猜想、黎曼假设、杨霍奇猜想、庞加莱猜想、黎
31、曼假设、杨- -米米尔斯存在性和质量缺口、纳维叶尔斯存在性和质量缺口、纳维叶- -斯托克斯斯托克斯方程的存在性与光滑性、贝赫和斯维讷通方程的存在性与光滑性、贝赫和斯维讷通- -戴尔猜想。戴尔猜想。著名的著名的P=NP?P=NP?问题问题如果如果P PNPNP,那么,那么NPNP类问题都将能计算。学类问题都将能计算。学术界该做的事就是千方百计去找到各种术界该做的事就是千方百计去找到各种NPNP类类问题的多项式时间算法。问题的多项式时间算法。但是,互联网的安全问题就会成为严重的挑但是,互联网的安全问题就会成为严重的挑战,因为破译互联网的战,因为破译互联网的RSARSA加密系统属于加密系统属于NPN
32、P类问题,既然它也存在多项式时间算法,就类问题,既然它也存在多项式时间算法,就必须立即放弃这种加密系统?必须立即放弃这种加密系统?如果如果P PNPNP,那么大量的,那么大量的NPNP类问题都将不具类问题都将不具有确定性多项式算法。学术界就不该把精力有确定性多项式算法。学术界就不该把精力浪费在浪费在NPNP系列的分类上,应赶紧去寻找各种系列的分类上,应赶紧去寻找各种NPNP类问题的最优近似算法。类问题的最优近似算法。这时,这时,对于互联网和其他需要保密的系统安对于互联网和其他需要保密的系统安全问题,就可以彻底全问题,就可以彻底解决解决了。了。2.2.5 2.2.5 公钥密码学公钥密码学NPNP
33、类类问题与问题与密码学密码学关系关系非常非常密切密切。密码学研究的主要内容密码学研究的主要内容之一之一是是对对不同的密码不同的密码技术的计算复杂性进行比较,以便确定其安技术的计算复杂性进行比较,以便确定其安全性全性。19781978年,麻省理工大学年,麻省理工大学3 3名密码学专家提出了名密码学专家提出了一种基于大素数因子分解困难性的公钥密码一种基于大素数因子分解困难性的公钥密码体系,即体系,即RSARSA密码算法。密码算法。RSARSA加解密算法的加解密算法的解题解题步骤:步骤:选择两个大素数选择两个大素数 p p 和和 q q计算计算 n np pq q 以及以及 (n)(n)(p(p1)
34、1)(q(q1)1)随机选择正整数随机选择正整数e e(加密密钥),满足(加密密钥),满足1 1e e(n)(n)且且gcd(gcd(n)(n),e)e)1 1解密密钥解密密钥:d d e e-1-1 mod mod (n)(n)加密运算:加密运算:C C M Me e mod n mod n解密运算:解密运算:M M C Cd d mod n mod n以以e, ne, n为公开钥,为公开钥,d, nd, n为私密钥为私密钥37 计算模型是刻画计算的抽象的形式系统或数计算模型是刻画计算的抽象的形式系统或数学系统。在计算科学中,计算模型是指具有状态学系统。在计算科学中,计算模型是指具有状态转换
35、特征,能够对所处理对象的数据或信息进行转换特征,能够对所处理对象的数据或信息进行表示、加工、变换和输出的数学机器。表示、加工、变换和输出的数学机器。 19361936年,图灵发表年,图灵发表“论可计算数及其在论可计算数及其在判定问题中的应用判定问题中的应用”论文,给论文,给“可计算性可计算性”下了严格的数学定义,并提出著名的下了严格的数学定义,并提出著名的图灵机图灵机(Turing Machine)(Turing Machine)的设想。的设想。 图灵机是一种十分简单但运算能力很强图灵机是一种十分简单但运算能力很强的理想计算装置,它描述了一种假想的可实的理想计算装置,它描述了一种假想的可实现通
36、用计算的机器。现通用计算的机器。 382.3.1 2.3.1 图灵机图灵机 1.1.直观描述直观描述 图灵机的计算装置:一条两端可无限延长图灵机的计算装置:一条两端可无限延长的带子,一个读写头,一组控制指令。的带子,一个读写头,一组控制指令。 b b 1 0 1 0 0 0 1 0 b b 状态状态q1读写头读写头控制指令控制指令读写头可以沿带子读写头可以沿带子方向左右移动,并方向左右移动,并可以在每个方格上可以在每个方格上进行读写。进行读写。39 带子上的符号为一个有穷字母表:带子上的符号为一个有穷字母表:SS0 0,S,S1 1,S,S2 2, ,S,Sp p 通常仅有通常仅有S S0 0
37、、S S1 1两个字符,其中:两个字符,其中:S S0 00 0,S S1 11 1 这可加深对布尔值、二进制机器的理解。这可加深对布尔值、二进制机器的理解。机器的控制状态:机器的控制状态: q q1 1,q,q2 2, ,q,qn n 图灵机的初始状态设为图灵机的初始状态设为q q1 1, ,结束状态设为结束状态设为q qn n40 五元组指令集合:五元组指令集合:(q(qi iS Sj jS Sk kR(LN)qR(LN)qn n) ) q qi i-机器目前所处的状态机器目前所处的状态 S Sj j-机器从方格中读入的符号机器从方格中读入的符号 S Sk k-机器用来代替机器用来代替S
38、Sj j写入方格的符号写入方格的符号 R,L,N- R,L,N-右移一格右移一格, ,左移一格左移一格, ,不移动不移动 q qn n-下一步机器的状态下一步机器的状态 一个给定机器的程序是机器内的五元组一个给定机器的程序是机器内的五元组形式的指令集,它定义了机器在特定状态下形式的指令集,它定义了机器在特定状态下读入一个特定字符时所采取的动作。读入一个特定字符时所采取的动作。41 2.2.工作原理工作原理 机器从给定带子上的某起点出发,其动作完机器从给定带子上的某起点出发,其动作完全由其初始状态值及机内五元组指令集来决定。全由其初始状态值及机内五元组指令集来决定。计算结果是从机器停止时带子上的
39、信息得到。计算结果是从机器停止时带子上的信息得到。 指令死循环:指令死循环:q q1 1S S2 2S S2 2RqRq3 3 q q3 3S S3 3S S3 3LqLq1 1 指令二义性:指令二义性:q q3 3S S2 2S S2 2RqRq4 4 q q3 3S S2 2S S4 4LqLq6 6 42 3.3.应用实例应用实例 例例 假设:假设:b b表示空格表示空格 q q1 1表示机器的初始状态表示机器的初始状态 q q4 4表示机器的结束状态表示机器的结束状态 如果带子上的输入信息为如果带子上的输入信息为1010001010100010,读写头,读写头位对准最右边第一个为位对准
40、最右边第一个为0 0的方格,且状态为的方格,且状态为q q1 1。 按照以下五元组指令集执行后,输出正确的按照以下五元组指令集执行后,输出正确的计算结果是什么?计算结果是什么?43指令集指令集q q1 101Lq01Lq2 2q q1 110Lq10Lq3 3q q1 1bbNqbbNq4 4q q2 200Lq00Lq2 2q q2 211Lq11Lq2 2q q2 2bbNqbbNq4 4q q3 301Lq01Lq2 2q q3 310Lq10Lq3 3q q3 3bbNqbbNq4 4计算函数是:计算函数是:S(S(x)=)=x+1+1b b 1 0 1 0 0 0 1 0 b bq
41、q1b b 1 1 0 0 0 1 0 1 b bq q11q q21q q20q q20q q20q q21q q20q q21q q2bq q444 例例 图灵机图灵机MzMz:其中:其中Q=qQ=q1 1,q,q2 2,q,qf f 五元组指令集为:五元组指令集为:q q1 110Rq10Rq1 1 q q1 100Lq00Lq2 2 q q2 201Nq01Nqf f 求求MzMz对任何一串对任何一串“1 1”的作用是什么?的作用是什么?b b 1 1 1 1 1 1 0 0 b bq q1仅留下最后一个仅留下最后一个“1 1”45 图灵机图灵机:S( (x)=)=x+1 +1 后继函
42、数后继函数 N( (x)=0 )=0 零函数零函数 Ui( (n) )= =xi 投影函数投影函数 任何原始递归函数都是从这任何原始递归函数都是从这3 3个初始递归函个初始递归函数经有限次的复合、递归和极小化操作得到。数经有限次的复合、递归和极小化操作得到。 非确定性图灵机与确定性图灵机的区别是:在给非确定性图灵机与确定性图灵机的区别是:在给定状态和输入时,其行为将不是唯一确定的。也就是定状态和输入时,其行为将不是唯一确定的。也就是说,对应同一个状态和输入,非确定性图灵机可以有说,对应同一个状态和输入,非确定性图灵机可以有多种行为来选择。多种行为来选择。462.3.2 2.3.2 冯冯诺依曼机
43、诺依曼机 重要思想重要思想:存储程序、二进制:存储程序、二进制存储器存储器输入设备输入设备输出设备输出设备运算器运算器控制器控制器结果结果程序或数据程序或数据数据传送线数据传送线控制信号线控制信号线1.1.冯冯诺依曼机模型诺依曼机模型47 运算器运算器:对数据进行加工处理的部件。:对数据进行加工处理的部件。 在控制器的操纵下,它与内存交换数据,负在控制器的操纵下,它与内存交换数据,负责算术运算、逻辑运算和移位运算等。责算术运算、逻辑运算和移位运算等。运算器控制器中央处理单元运算器控制器中央处理单元(CPU)(CPU) 控制器控制器:负责对指令进行分析和判断,发出:负责对指令进行分析和判断,发出
44、控制信号,使计算机各部件协调工作,确保系统控制信号,使计算机各部件协调工作,确保系统的自动运行。的自动运行。48 存储器存储器:存放大量程序和数据的部件,其:存放大量程序和数据的部件,其 分类是内存储器和外存储器。分类是内存储器和外存储器。 输入设备输入设备:用来接受用户输入的原始数据:用来接受用户输入的原始数据和程序,并将它们转变为计算机能够识别的形和程序,并将它们转变为计算机能够识别的形式存放在内存中,如键盘、鼠标、扫描仪等。式存放在内存中,如键盘、鼠标、扫描仪等。 输出设备输出设备:将计算机处理的信息以人们所:将计算机处理的信息以人们所能接受的形式表示出来,如显示器、打印机等能接受的形式
45、表示出来,如显示器、打印机等运算器控制器内存储器运算器控制器内存储器主机主机输入设备、输出设备、外存储器输入设备、输出设备、外存储器外部设备外部设备 49 2. 2.冯冯诺依曼机工作原理诺依曼机工作原理 先将程序先将程序( (一组指令一组指令) )和数据存入计算机,启和数据存入计算机,启动程序就能按照程序指定的逻辑顺序把指令读取动程序就能按照程序指定的逻辑顺序把指令读取并逐条执行,自动完成指令规定的操作。并逐条执行,自动完成指令规定的操作。50 3.3.冯冯诺依曼机的特点诺依曼机的特点 机器以运算器为中心,输入、输出设备与机器以运算器为中心,输入、输出设备与存储器之间的数据传送都要经过运算器。
46、存储器之间的数据传送都要经过运算器。 采用存储程序原理。采用存储程序原理。 指令是由操作码和地址码组成。指令是由操作码和地址码组成。 数据以二进制表示,并采用二进制运算。数据以二进制表示,并采用二进制运算。 硬件与软件完全分开,硬件在结构和功能硬件与软件完全分开,硬件在结构和功能上是不变的,完全靠编制软件来适应用户需要。上是不变的,完全靠编制软件来适应用户需要。51 4. 4.冯冯诺依曼机结构的局限性诺依曼机结构的局限性 冯冯诺依曼瓶颈诺依曼瓶颈:存储器与中央处理单元之:存储器与中央处理单元之间的通路太狭窄,每次执行一条指令,所需的指间的通路太狭窄,每次执行一条指令,所需的指令和数据都必须经过这条通路。令和数据都必须经过这条通路。 从本质上讲,冯从本质上讲,冯诺依曼机是采取串行顺序处诺依曼机是采取串行顺序处理的工作机制,即使有关数据已经准备好,也必须理的工作机制,即使有关数据已经准备好,也必须逐条执行指令序列,而提高计算机性能的根本方向逐条执行指令序列,而提高计算机性能的根本方向之一是并行处理。之一是并行处理。522.3.3 2.3.3 量子量子计算机计算机 量子计算机量子计算机:一类遵循量子力学规律进行高速数学和逻:一类遵循量子力学规律进行高速数学和逻辑运算、存储及处理量子信息的物理装置。量子计算机处理辑运算、存储及处理量子信息的物理装置。量
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《课间活动》(教案)2024-2025学年数学二年级上册
- 2025年美容院会员协议模板
- 学习2025年雷锋精神六十二周年主题活动方案 合计3份
- 2025年青海省安全员A证考试题库
- 《游山西村》历年中考古诗欣赏试题汇编(截至2024年)
- 全国河大音像版初中信息技术七年级下册第一章第二节《文字素材的采集》教学设计
- 历史-云南省师范大学附属中学2025届高三下学期开学考试试题和答案
- 2025年海口市单招职业适应性测试题库附答案
- 2025年度儿童游乐场主题包装与品牌推广合作协议书
- 2025年度个人公司资金走账专项管理合同协议
- 14 文言文二则 学弈 教学设计-2024-2025学年语文六年级下册统编版
- 2025年度剧本杀剧本版权授权与收益分成合同
- 第一课+追求向上向善的道德【中职专用】中职思想政治《职业道德与法治》高效课堂(高教版2023·基础模块)
- 生猪屠宰兽医卫生检验人员理论考试题库及答案
- 2024初中数学课程标准测试题(含答案)精华版
- 2024年陕西延长石油集团矿业公司招聘笔试参考题库含答案解析
- 人教版新教材高一上学期期末考试数学试卷及答案(共五套)
- 信用社(银行)清产核资实施方案
- 模板拉杆加固计算
- 市场营销》教案
- 1-6年级美术知识点
评论
0/150
提交评论