- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
1.1 计算复杂性理论概述1.2 判定问题与图灵机1.3 P与NP1.4 多项式变换和NP完全性 ;1.1 计算复杂性理论概述
计算复杂性理论是理论计算机科学中有关可计算理论的分支,它使用数学方法对计算中所需的各种资源的耗费作定量的分析,并研究各类问题之间在计算复杂程度上的相互关系和基本性质,是算法分析的理论基础。
为了计算一类问题,总要耗费一定的时间和存储空间等资源。资源的耗费量是问题大小的函数,称为问题对该资源需求的复杂度。计算复杂性理论主要研究和分析复杂度函数随问题大小而增长的阶,探讨它们对于不同的计算模型在一定意义下的无关性;根据复杂度的阶对被计算的问题分类;研究各种不同资源耗费之间的关系;估计一些基本问题的资源耗费情况的上、下界,等等。; 计算复杂性理论中常常用到计算模型、问题、算法、时间复杂性等概念,下面一一介绍。 计算模型:为了对计算作深入的研究,需要定义一些抽象的机器,一般将这些机器称为计算模型。单带图灵机是一种最基本的计算模型,此外还有多带图灵机、随机存取机等串行计算模型和向量机等并行计算模型。 问题:需要回答的一般性提问,或者可以看做是要在计算机上求解的对象。通常一个问题含若干个参数或未给定具体取值的自由变量。; 问题的描述包括两方面内容: (1) 所有参数的一般性描述; (2) 陈述答案或解必须满足的性质。 如果对问题中的所有未知参数指定了具体的值,就得到了该问题的一个实例。 【例1-1】 巡回售货员(TS,Traveling Salesman)问题。 售货员在若干个城市推销货物,已知城市间的距离,求经过所有城市的一条最短路线。 参数:城市集合C={C1,C2,…,Cn};C中每两个城市之间的距离d(Ci,Cj), i,j∈{1,…,n}。; 解:这些城市的一个排列次序〈Cπ(1),Cπ(2),…,Cπ(n)〉,使得最小。其中π为{1,…,n}上的置换。 算法: 求解某个问题的一系列步骤,也可以理解为求解问题的通用程序。准确性和效率是衡量算法性能的两个重要指标。???外,算法的性能还受运行范围、经济性等因素影响。算法的效率用算法在执行中所耗费的计算机资源来度量,包括时间、存储量和通信量等。; 时间需求常常是决定一个具体算法是否足够高效的主要因素,因此算法的价值可以统一地用时间需求来衡量。算法的时间需求用一个函数T(n)表示,其自变量n是问题实例的“规模”,它表示为了描述该实例所需要输入的数据总量。问题实例的规模通常用一种形式化的方式来确定,将问题看做是事先确定的一种编码方案,该编码方案将问题的实例映射到描述它们的字符串,其中的符号取自一个有穷的字符集,则问题实例的规模即为字符串的长度。 ; 【例1-2】 巡回售货员问题的一个实例。 假设共有四个城市,城市集合为{C1,C2,C3,C4},城市间的距离如图1-1所示。; 设字母表为 {C,[,],/,0,1,2,3,4,5,6,7,8,9}则该实例对应的一种字符串是: C[1]C[2]C[3]C[4]//10/9/5/9/6/3其规模为30。 用例1-2中的方法确定问题实例的规模显然是太麻烦了。问题实例的描述实际上是一种编码方式,对同一个问题实例,不同的描述方法得出的规模也不同,但其规模总可以看做是问题实例输入数据长度的一个函数。因此在实际应用中,人们会采用一种简化方法,即将该问题实例输入的数据个数当作其规模。对于例1-2,其规模即为城市的个数4。; 如果一个算法能解答一个问题的所有实例,就说这个算法能解答这个问题。对某个问题而言,如果至少存在一个算法可以解答这个问题,就说这个问题是可解的(resolvable),否则称这个问题为不可解的(unresolvable)。 时间复杂性:算法的时间复杂性是问题实例规模n的函数。对每个可能的问题实例,时间复杂性函数给出用该算法解这种规模的问题实例所需要的最长时间。 时间复杂性函数与问题的编码方案和决定着算法执行时间的计算模型有关。不同的算法具有不同的时间复杂性,根据时间复杂性可以将算法分为多项式时间算法(polynomial time algorithm) 和指数时间算法(exponential time algorithm)。; 我们用符号“O”来表示函数的数量级。对于函数f(x),如果存在常数c和n0,使得对于所有的n≥n0,都有|f(n)|≤c|g(n)|,其中g(n)是一个函数,则认为f(n)=O(g(n))。例如,设f(n)=2n2+7n+3,如果取g(n)=n2,c=3,n0=8,则当n≥n0时,|f(n)|≤c|g(n)|, 故 f(n)=O(n2)。 令算法的输入长度为n
您可能关注的文档
最近下载
- 人教版二年级上册数学全册教学设计(配2025年秋新版教材).docx
- YY_T 0316-2016医疗器械 风险管理对医疗器械的应用.pdf
- 猪肉部位分割图.doc VIP
- 标准图集-20S515-钢筋混凝土及砖砌排水检查井.pdf VIP
- GJB 438C-2021 军用软件开发文档通用要求 (高清,带章).docx VIP
- 人教版高中英语选修二单词表.doc VIP
- 广东省广州天河区2023-2024学年八年级上学期期末数学试卷(含答案).docx VIP
- erp培训课资料课件.ppt VIP
- 2025四川广安前锋区选聘区属国有企业领导人员笔试参考题库附带答案详解.docx
- 脑积水患者的护理PPT参考课件.ppt VIP
文档评论(0)