徽标
联盟百科
通讯
下载应用,请到 Google Play
新! 在您的Android™设备上下载联盟百科!
自由
比浏览器更快的访问!
 

背包问题

指数 背包问题

背包问题(Knapsack problem)是一种组合优化的NP完全问题。问题可以描述为:给定一组物品,每种物品都有自己的重量和价格,在限定的总重量内,我们如何选择,才能使得物品的总价格最高。问题的名称来源于如何选择最合适的物品放置于给定背包中。 相似问题经常出现在商业、组合数学,计算复杂性理论、密码学和应用数学等领域中。 也可以将背包问题描述为决定性问题,即在总重量不超过W的前提下,总价值是否能达到V。.

8 关系: 动态规划密码学应用数学伪多项式时间组合优化组合数学計算複雜性理論NP完全

动态规划

动态规划(Dynamic programming,简称DP)是一种在数学、管理科学、计算机科学、经济学和生物信息学中使用的,通过把原问题分解为相对简单的子问题的方式求解复杂问题的方法。 动态规划常常适用于有重叠子问题和性质的问题,动态规划方法所耗时间往往远少于朴素解法。 动态规划背后的基本思想非常简单。大致上,若要解一个给定问题,我们需要解其不同部分(即子问题),再根据子问题的解以得出原问题的解。 通常许多子问题非常相似,为此动态规划法试图仅仅解决每个子问题一次,从而减少计算量:一旦某个给定子问题的解已经算出,则将其记忆化存储,以便下次需要同一个子问题解之时直接查表。这种做法在重复子问题的数目关于输入的规模呈指數增長时特别有用。.

新!!: 背包问题和动态规划 · 查看更多 »

密码学

密碼學(Cryptography)可分为古典密码学和现代密码学。在西欧語文中,密码学一词源於希臘語kryptós“隱藏的”,和gráphein“書寫”。古典密码学主要关注信息的保密书写和传递,以及与其相对应的破译方法。而现代密码学不只关注信息保密问题,还同时涉及信息完整性验证(消息验证码)、信息发布的不可抵赖性(数字签名)、以及在分布式计算中产生的来源于内部和外部的攻击的所有信息安全问题。古典密码学与现代密码学的重要区别在于,古典密码学的编码和破译通常依赖于设计者和敌手的创造力与技巧,作为一种实用性艺术存在,并没有对于密码学原件的清晰定义。而现代密码学则起源于20世纪末出现的大量相关理论,这些理论使得现代密码学成为了一种可以系统而严格地学习的科学。 密码学是数学和计算机科学的分支,同时其原理大量涉及信息论。著名的密碼學者罗纳德·李维斯特解釋道:「密碼學是關於如何在敵人存在的環境中通訊」,自工程學的角度,這相當于密碼學與純數學的差异。密碼學的发展促進了计算机科学,特別是在於電腦與網路安全所使用的技術,如存取控制與資訊的機密性。密碼學已被應用在日常生活:包括自动柜员机的晶片卡、電腦使用者存取密碼、電子商務等等。.

新!!: 背包问题和密码学 · 查看更多 »

应用数学

應用數學(Applied Mathematics)是以應用為目的的明確的數學理論和方法的總稱,研究如何應用數學知識到其他範疇(尤其是科學)的數學分支,可以說是純數學的相反,應用純數學中的結論擴展到物理學等其他科學中,應用數學的發展是以科學為依據,作為科學研究的後盾。包括線性代數、矩陣理論、向量分析、複變分析、微分方程、拉普拉斯變換、傅里葉分析、數值分析、概率论、數理統計、運籌學、博弈論、控制理論、組合數學、資訊理論等許多數學分支,也包括從各種應用領域中提出的數學問題的研究。而大部分應用數學是以作為物理分析的工具。計算數學有時也可視為應用數學的一部分。應用數學大部分的教學範疇都是以物理的模型為基礎進行分析,當中或許搭配了各種數學工具,就為了更貼近物理的系統。 圖論應用在網絡分析,拓撲學在電路分析上的應用,群論在結晶學上的應用,微分幾何在規範場上的應用,自動控制理論在計算上的應用,黎曼幾何應用於相對論,數理邏輯應用於計算機,最小二乘法應用於飛機起降時自動控制,利用數字合成計算機輔助的X射線斷層成像技術(1979年數學家獲得諾貝爾醫學獎)數論應用在密碼學,博弈論、概率論、統計學應用在經濟學,線性規劃用於生產安排調度,都可見數學在不同範疇的應用。.

新!!: 背包问题和应用数学 · 查看更多 »

伪多项式时间

在计算理论领域中,若一个数值算法的时间复杂度可以表示为输入数值规模N的多项式,但其运行时间与输入数值规模N的二进制位数呈指数增长关系,则称其时间复杂度为伪多项式时间。这是由于,N的值是N的位数的幂,故该算法的时间复杂度实际上应视为输入数值N的位数的幂。 一个具有伪多项式时间复杂度的NP完全问题称之为弱NP完全问题,而在P!.

新!!: 背包问题和伪多项式时间 · 查看更多 »

组合优化

组合最优化,在应用数学和理论计算机科学的领域中,组合优化是在一个有限的对象集中找出最优对象的一类课题。在很多组合优化的问题中,穷举搜索/枚举法是不可行的。组合优化的问题的特征是可行解的集是离散或者可以简化到离散的,并且目标是找到最优解。常见的例子有旅行商问题和最小生成樹。二维的例子,比如服装厂做衣服,衣服分成很多块,这些块需要从布料上切下来。怎么切,剩下的废布料最少?三维的例子,如集装优化。 组合优化的难处,主要是加进来拓扑分析,不同的拓扑形态下,不同部分的约束关系便不同,算法也就要调整。如果给定一个拓扑形态,组合优化往往就退化成一个整数优化的问题了。 Category:應用數學.

新!!: 背包问题和组合优化 · 查看更多 »

组合数学

广义的组合数学(Combinatorics)就是离散数学,狭义的组合数学是组合计数、图论、代数结构、数理逻辑等的总称。但这只是不同学者在叫法上的区别。总之,组合数学是一门研究可數或离散对象的科学。随着计算机科学的日益发展,组合数学的重要性也日渐凸显,因为计算机科学的核心内容是使用算法处理离散数据。 狭义的组合数学主要研究满足一定条件的组态(也称组合模型)的存在、计数以及构造等方面的问题。 组合数学的主要内容有组合计数、组合设计、组合矩阵、组合优化(最佳組合)等。.

新!!: 背包问题和组合数学 · 查看更多 »

計算複雜性理論

计算复杂性理论(Computational complexity theory)是理论计算机科学和数学的一个分支,它致力于将可计算问题根据它们本身的复杂性分类,以及将这些类别联系起来。一个可计算问题被认为是一个原则上可以用计算机解决的问题,亦即这个问题可以用一系列机械的数学步骤解决,例如算法。 如果一个问题的求解需要相当多的资源(无论用什么算法),则被认为是难解的。计算复杂性理论通过引入数学计算模型来研究这些问题以及定量计算解决问题所需的资源(时间和空间),从而将资源的确定方法正式化了。其他复杂性测度同样被运用,比如通信量(应用于通信复杂性),电路中门的数量(应用于电路复杂性)以及中央处理器的数量(应用于并行计算)。计算复杂性理论的一个作用就是确定一个能或不能被计算机求解的问题的所具有的实际限制。 在理论计算机科学领域,与此相关的概念有算法分析和可计算性理论。两者之间一个关键的区别是前者致力于分析用一个确定的算法来求解一个问题所需的资源量,而后者则是在更广泛意义上研究用所有可能的算法来解决相同问题。更精确地说,它尝试将问题分成能或不能在现有的适当受限的资源条件下解决这两类。相应地,在现有资源条件下的限制正是区分计算复杂性理论和可计算性理论的一个重要指标:后者关心的是何种问题原则上可以用算法解决。.

新!!: 背包问题和計算複雜性理論 · 查看更多 »

NP完全

NP完全或NP完備(NP-Complete,縮寫為NP-C或NPC),是計算複雜度理論中,決定性問題的等級之一。NPC問題,是NP(非決定性多項式時間)中最難的決定性問題。因此NP完備問題應該是最不可能被化簡為P(多項式時間可決定)的決定性問題的集合。若任何NPC問題得到多項式時間的解法,那此解法就可應用在所有NP問題上。更詳細的定義容下敘述。 一個NPC問題的例子是子集合加總問題,題目為 這個問題的答案非常容易驗證,但目前沒有任何一個夠快的方法可以在合理的時間內(意即多項式時間)找到答案。只能一個個將它的子集取出來一一測試,它的時間複雜度是Ο(2n),n是此集合的元素數量。.

新!!: 背包问题和NP完全 · 查看更多 »

重定向到这里:

二次背包问题背包問題

传出传入
嘿!我们在Facebook上吧! »