首页 >
动态规划
✍ dations ◷ 2025-11-26 19:17:37 #动态规划
动态规划(英语:Dynamic programming,简称DP)是一种在数学、管理科学、计算机科学、经济学和生物信息学中使用的,通过把原问题分解为相对简单的子问题的方式求解复杂问题的方法。动态规划常常适用于有重叠子问题和最优子结构(英语:Optimal substructure)性质的问题,动态规划方法所耗时间往往远少于朴素解法。动态规划背后的基本思想非常简单。大致上,若要解一个给定问题,我们需要解其不同部分(即子问题),再根据子问题的解以得出原问题的解。通常许多子问题非常相似,为此动态规划法试图仅仅解决每个子问题一次,从而减少计算量:一旦某个给定子问题的解已经算出,则将其记忆化存储,以便下次需要同一个子问题解之时直接查表。这种做法在重复子问题的数目关于输入的规模呈指数增长时特别有用。动态规划在查找有很多重叠子问题的情况的最优解时有效。它将问题重新组合成子问题。为了避免多次解决这些子问题,它们的结果都逐渐被计算并被保存,从简单的问题直到整个问题都被解决。因此,动态规划保存递归时的结果,因而不会在解决同样的问题时花费时间。动态规划只能应用于有最优子结构的问题。最优子结构的意思是局部最优解能决定全局最优解(对有些问题这个要求并不能完全满足,故有时需要引入一定的近似)。简单地说,问题能够分解成子问题来解决。背包问题作为NP完全问题,暂时不存在多项式时间算法。动态规划属于背包问题求解最优解的可行方法之一。此外,求解背包问题最优解还有搜索法等,近似解还有贪心法等,分数背包问题有最优贪心解等。
背包问题具有最优子结构和重叠子问题。动态规划一般用于求解背包问题中的整数背包问题(即每种物品所选的个数必须是整数)。
解整数背包问题:
设有
n
{displaystyle n}
件物品,每件价值记为
P
i
{displaystyle P_{i}}
,每件体积记为
V
i
{displaystyle V_{i}}
,用一个最大容积为
V
max
{displaystyle V_{text{max}}}
的背包,求装入物品的最大价值。
用一个数组
f
[
i
,
v
]
{displaystyle f}
表示取
i
{displaystyle i}
件商品填充一个容积为v的背包的最大价值,显然问题的解就是
f
[
n
,
V
max
]
{displaystyle f}
。f
[
i
,
v
]
=
{
f
[
i
−
1
,
v
]
,
v
<
V
i
max
{
f
[
i
−
1
,
v
]
,
f
[
i
−
1
,
v
−
V
i
]
+
P
i
}
,
v
≥
V
i
0
,
i
v
=
0
{displaystyle f={begin{cases}f,v<V_{i}\max{f,f+P_{i}},vgeq V_{i}\0,iv=0\end{cases}}}对于特例01背包问题(即每件物品最多放1件,否则不放入)的问题,状态转移方程:f
[
i
,
v
]
=
{
f
[
i
−
1
,
v
]
,
v
<
V
i
max
{
f
[
i
−
1
,
v
]
,
f
[
i
−
1
,
v
−
V
i
]
+
P
i
}
,
v
≥
V
i
0
,
i
v
=
0
{displaystyle f={begin{cases}f,v<V_{i}\max{f,f+P_{i}},vgeq V_{i}\0,iv=0\end{cases}}}参考Pascal代码参考C++代码(不含include和数组声明)
相关
- 生化武器生化武器(Biochemical Weapon)包括生物武器和化学武器两种,是指以细菌、病毒、毒素等使人、动物、植物致病或死亡的物质材料制成的武器,它们都属于大规模杀伤性武器。生物武器过
- 钾离子通道在细胞生物学的范畴,钾离子通道是最广泛分布的离子通道,且几乎存在大多数的生物中。 它们具有钾离子选择性的孔洞在细胞膜上,并且存在于大多数的细胞,控制了广泛的生物功能。钾
- 微孢子虫门微孢子虫(学名:Microsporidia)为罗兹菌门下的一纲。它是由孢子形成的单细胞寄生虫。目前多于一百万种微孢子虫中的1500种版命名。微孢子虫只能寄生于动物宿主。大部分的动物物
- 胶原蛋白胶原蛋白(collagen) 占哺乳类动物总蛋白质约20% ,也是人体的一种非常重要的蛋白质,主要存在于结缔组织中。它有很强的伸张能力,是韧带的主要成分,胶原蛋白也是细胞外基质的主要组
- 牙周病牙周炎又称牙周病 (Periodontal disease),是牙周组织的疾病。侵犯牙龈、牙周、牙周膜、牙周韧带及牙槽骨等组织的慢性炎症。常见的慢性牙周病一般可分为牙龈炎和牙周炎,这两种
- 古生态学古生态学(Palaeoecology)是研究地史时期生物之间,古代生物的生活习性和生活环境的古生物学分支学科,应用生态概念研究化石群落与其环境间的相互作用。基本假设是在以往的地质时
- STAT61OJ5· sequence-specific DNA binding transcription factor activity · signal transducer activity · calcium ion binding · protein binding· nucleus · nucl
- 伞藻属伞藻属(学名:Acetabularia)是绿藻的一个属,又称“人鱼酒杯”(mermaid's wine glass)。伞藻属的所有种都属于单细胞生物,外表呈现伞形。细长的伞柱长0.5∼10公分,而顶端有一圈分枝,
- Ysub2/subSsub3/sub硫化钇是一种无机化合物,化学式为Y2S3。氧化钇和硫化氢与二硫化碳的混合气体在1270~1370 K反应,可以得到单斜晶系的δ-Y2S3。其中,硫化氢与二硫化碳可由NH4CNS的热分解反应制得
- 软骨鱼类软骨鱼类是一类古老的鱼类,演化自棘鱼。软骨鱼类是现存有颌鱼类中最基干的类群,除了牙齿为硬骨外,骨骼全部由软骨组成,体被盾鳞或无鳞;鳃裂每侧5-7个分别开口于体外,或4个外被一膜
