2024年9月多项式时间问题(多项式时间的定义)

 更新时间:2024-09-21 06:20:48

  ⑴多项式时间问题(多项式时间的定义

  ⑵多项式时间(Polynomialtime在计算复杂度理论中,指的是一个问题的计算时间m(n)不大于问题大小n的多项式倍数。任何抽象机器都拥有一复杂度类,此类包括可于此机器以多项式时间求解的问题。

  ⑶为了研究问题的复杂性,我们必须将问题抽象,为了简化问题,我们只考虑一类简单的问题,判定性问题,即提出一个问题,只需要回答yes或者no的问题。任何一般的最优化问题都可以转化为一系列判定性问题,比如求图中从A到B的最短路径,可以转化成:从A到B是否有长度为的路径?从A到B是否有长度为的路径?。。。从A到B是否有长度为k的路径?如果问到了k的时候回答了yes,则停止发问,我们可以说从A到B的最短路径就是k。如果一个判定性问题的复杂度是该问题的一个实例的规模n的多项式函数,则我们说这种可以在多项式时间内解决的判定性问题属于P类问题。P类问题就是所有复杂度为多项式时间的问题的集合。然而有些问题很难找到多项式时间的算法(或许根本不存在,比如找出无向图中的哈米尔顿回路问题,但是我们发现如果给了我们该问题的一个答案,我们可以在多项式时间内判断这个答案是否正确。比如说对于哈米尔顿回路问题,给一个任意的回路,我们很容易判断他是否是哈米尔顿回路(只要看是不是所有的顶点都在回路中就可以了。这种可以在多项式时间内验证一个解是否正确的问题称为NP问题。显然,所有的P类问题都是属于NP问题的,但是现在的问题是,P是否等于NP?这个问题至今还未解决。这就是P对NP问题。“P类”、“NP类”、“更复杂的类”,是确定型Turing机DTM中的不同复杂性分类。这些分类是由不同问题的性质决定的,还是我们目前没有找到好的DTM解决方法形成的?这就是“P对NP”问题上。它的基本意思是:(P=NP:我们最终能够找到一些计算方法,使得NDTM能够快速解决的问题,在DTM上也能够快速解决。快速的意思是“使用不超过输入字符串的多项式时间”。(P≠NP:NP只能用NDTM快速解决,而不能用DTM快速解决。假如P≠NP,关于NP类内部的结构,可以再分成个区域:P、NPC和NPI。NPC和是NP里“最难的”问题,因为任何NP中的问题可以在多项式时间内变换成为任何特定NPC(NP-完全问题,NP-pleteness的一个特例。这就是说,如果找到一个NPC问题的快速解决方法,则所有的NP问题都可以快速解决了。NPI是NP中既不是P又不是NPC的问题类,如果P≠NP。例如,密码学中的“素数分解”(大数分解和素性检测,就是一个NPC问题。假如P=NP,密码学的工作者必须改造的工作,实在是太多了!如果P=NP,则现有的大量密文都是容易解密的。

  ⑷什么是伪多项式时间算法

  ⑸想要理解“伪多项式时间”,我们需要先给出“多项式时间”的一个清楚的定义。对于“多项式时间”,我们的直观概念是时间复杂度,其中是一常数。比如,选择排序的时间复杂度是,是多项式时间;暴力解决TSP问题的时间复杂度是,不是多项式时间。我们称这种时间复杂度为“传统时间复杂度”。我们通常认为传统时间复杂度中的变量表示数据的输入规模。比如,选择排序中,指待排序数组中元素的个数;TSP问题中表示图中节点的数量。但是,这些所谓的输入规模,仅仅是直观的定义,并不足够严谨。为了标准化这些,在计算标准时间复杂度时,我们给出了输入规模的标准定义:一个问题的输入规模是保存输入数据所需要的bit位数。比如,如果排序算法的输入是一个-bit整数数组,那么输入规模就是,是指数组中元素的个数。对于一个带有个节点、条边的图,需要的bit位数就是。了解了输入规模的定义,我们来看“多项式时间”的标准定义:对于一个问题,在输入规模为x的情况下,如果一个算法能够在O()时间内解决此问题,则我们称此算法是多项式时间的,其中为一常数。当我们处理一些图论、链表、数组、树等问题时,这个标准定义下的多项式时间和我们传统的多项式时间相差无几。比如,用选择排序对元素个数为的数组进行排序时,传统时间复杂度为。输入规模,因此,得到的标准时间复杂度是,仍然是多项式时间。

  ⑹就是问题需要的时间(复杂度与问题的规模之间是多项式关系。举个例子,现在从n阶图中找两点的最短路径,复杂度为n^级别(即O(n^),O是大写欧,而n^对于n是多项式(单项式当然也算,这就称为是多项式复杂度,或者多项式时间,其中问题(算法的规模是n。如果某一个算法的规模是n,但是复杂度比如是^n,写不成n的多项式,那就不是多项式时间。

  ⑺多项式时间在决定型机器上是最小的复杂度类别,且在机器模型改变时依旧强韧,且也是可在副程式组合过程中保持封闭的类别。数学家有时把“如多项式时间长的算法”视为快速计算,相对应的是超多项式时间,表示任何多项式时间的输入数目只要够大,超多项式时间所需的解题时间终究会大大超过任何多项式时间的问题。指数时间(Exponentialtime就是一例

  ⑻世界近代三大数学难题、费尔马大定理、四色问题、哥德巴赫猜想世界七大数学难题一、P(多项式时间问题对NP(nondeterministicpolynomialtime,非确定多项式时间问题二、霍奇(Hodge)猜想三、庞加莱(Poincare)猜想四、黎曼(Riemann)假设五、杨-米尔斯(Yang-Mills)存在性和质量缺口六、纳维叶-斯托克斯(Navier-Stokes)方程的存在性与光滑性七、贝赫(Birch)和斯维讷通-戴尔(Swinnerton-Dyer)猜想有待破解的数学难题除了上述著名数学难题外,还有以下著名数学难题有待破解。Abc猜想考拉兹猜想周氏猜测(梅森素数分布猜测)阿廷猜想(新梅森猜想)哥德巴赫猜想孪素数猜想克拉梅尔猜想哈代-李特尔伍德第二猜想六空间理论

  ⑼首先需要介绍P(Polynomial,多项式)问题.P问题是可以在多项式时间内被确定机(通常意义的计算机)解决的问题.NP(Non-DeterministicPolynomial,非确定多项式)问题,是指可以在多项式时间内被非确定机(他可以猜,他总是能猜到最能满足你需要的那种选择,如果你让他解决n皇后问题,他只要猜n次就能完成----每次都是那么幸运)解决的问题.这里有一个著名的问题----千禧难题之首,是说P问题是否等于NP问题,也即是否所有在非确定机上多项式可解的问题都能在确定机上用多项式时间求解.这样一来,只要我们找到一个NPC问题的多项式解,所有的NP问题都可以多项式时间内划归成这个NPC问题,再用多项式时间解决,这样NP就等于P了.换一种说法,如果一个问题的复杂度是该问题的一个实例规模n的多项式函数,则这种可以在多项式时间内解决的问题属于P类问题.通俗地称所有复杂度为多项式时间的问题为易解的问题类,否则为难解的问题。有些问题很难找到多项式时间的算法(或许根本不存在,例如“找出无向图中哈密顿回路”问题。但如果给了该问题的一个答案,可以在多项式时间内判断这个答案是否正确。例如说对于哈密顿回路问题,给一个任意的回路,很容易判断它是否是哈密顿回路(只要看是不是所有的顶点都在回路中就可以了。这里给出NP问题的另一个定义,这种可以在多项式时间内验证一个解是否正确的问题称为NP问题,亦称为验证问题类。简单的说,存在多项式时间的算法的一类问题,称之为P类问题;在多项式时间内可由非确定机解决的一类问题,称之为NP问题。另外,很多人相信P类问题是NP问题的一个子集,但既没有人证明出有某个问题属于NP但不属于P,也没有人证明所有NP问题都能在多项式时间内有解。

  ⑽世纪有哪些还未解决的数学难题

  ⑾世界七大数学难题一、P(多项式时间问题对NP(nondeterministicpolynomialtime,非确定多项式时间问题二、霍奇猜想(Hodgeconjecture三、庞加莱猜想(Poincaréconjecture四、黎曼假设五、杨-米尔斯(Yang-Mills)存在性和质量缺口六、纳维-斯托克斯存在性与光滑性(Navier–Stokesexistenceandsmoothness七、贝赫和斯维讷通-戴尔猜想(BirchandSwinnerton-DyerConjecture世界三大数学猜想费尔马大定理,四色问题,哥德巴赫猜想

  ⑿什么是多项式时间内可解的问题,举个例子说明

  ⒀多项式时间,就是所需时间是规模的多项式函数,典型的例子是次函数f(n)=kn+b

  ⒁有哪为高手帮忙解释一下NP问题

  ⒂NP问题一个NP-完全的问题具有如下性质:它可以在多项式时间内求解,当且仅当所有的其他的NP-完全问题也可以在多项式时间内求解。P是所有可在多项式时间内用确定算法求解的判定问题的集合。NP是所有可在多项式时间内用不确定算法求解的判定问题的集合。令L和L是两个问题,如果有一确定的多项式时间算法求解L,而这个算法使用了一个在多项式时间内求解L的确定算法,则称L约化为L。如果可满足性约化为一个问题L,则称L问题是NP-难度的。如果L是NP难度的且L(-NP,则称L是NP-完全的。NP并不是NON-POLYNOMIAL,把NP说成是NON-POLYNOMIAL,是望文生义,读书不求甚解。事实上,如果你能够证明某个NP问题是个NON-POLYNOMIAL的问题,你就可以去领那七个百万美元数学大奖中间的一个了。数学上著名的NP问题,完整的叫法是NP完全问题,也即“NPPLETE”问题,简单的写法,是NP=P?的问题。问题就在这个问号上,到底是NP等于P,还是NP不等於P。证明其中之一,便可以拿百万美元大奖。这个奖还没有人拿到,也就是说,NP问题到底是Polynomial,还是Non-Polynomial,尚无定论。Mr.X信口开河敢说NP就是Non-Polynomial,真是不知天高地厚,惹人笑话。NP里面的N,不是Non-Polynomial的N,是Non-Deterministic,P代表Polynomial倒是对的。NP就是Non-deterministicPolynomial的问题,也即是多项式复杂程度的非确定性问题。什么是非确定性问题呢?有些计算问题是确定性的,比如加减乘除之类,你只要按照公式推导,按部就班一步步来,就可以得到结果。但是,有些问题是无法按部就班直接地计算出来。比如,找大质数的问题。有没有一个公式,你一套公式,就可以一步步推算出来,下一个质数应该是多少呢?这样的公式是没有的。再比如,大的合数分解质因数的问题,有没有一个公式,把合数代进去,就直接可以算出,它的因子各自是多少?也没有这样的公式。这种问题的答案,是无法直接计算得到的,只能通过间接的“猜算”来得到结果。这也就是非确定性问题。而这些问题的通常有个算法,它不能直接告诉你答案是什么,但可以告诉你,某个可能的结果是正确的答案还是错误的。这个可以告诉你“猜算”的答案正确与否的算法,假如可以在多项式时间内算出来,就叫做多项式非确定性问题。而如果这个问题的所有可能答案,都是可以在多项式时间内进行正确与否的验算的话,就叫完全多项式非确定问题。完全多项式非确定性问题可以用穷举法得到答案,一个个检验下去,最终便能得到结果。但是这样算法的复杂程度,是指数关系,因此计算的时间随问题的复杂程度成指数的增长,很快便变得不可计算了。人们发现,所有的完全多项式非确定性问题,都可以转换为一类叫做满足性问题的逻辑运算问题。既然这类问题的所有可能答案,都可以在多项式时间内计算,人们於是就猜想,是否这类问题,存在一个确定性算法,可以在指数时间内,直接算出或是搜寻出正确的答案呢?这就是著名的NP=P?的猜想。解决这个猜想,无非两种可能,一种是找到一个这样的算法,只要针对某个特定NP完全问题找到一个算法,所有这类问题都可以迎刃而解了,因为他们可以转化为同一个问题。另外的一种可能,就是这样的算法是不存在的。那么就要从数学理论上证明它为什么不存在。前段时间轰动世界的一个数学成果,是几个印度人提出了一个新算法,可以在多项式时间内,证明某个数是或者不是质数,而在这之前,人们认为质数的证明,是个非多项式问题。可见,有些看来好像是非多项式的问题,其实是多项式问题,只是人们一时还不知道它的多项式解而已。

您可能感兴趣的文章:

相关文章