第一节:分治法
1. 概述
基本思想:
把一个比较大的、复杂的问题,拆分成一些比较小的子问题,然后将各个子问题的解合并并得到原问题的解。
基本原则:
-
该问题的规模缩小到一定的程度就可以容易地解决 -
该问题可以分解为若干个规模较小的相同问题 -
利用该问题分解出的子问题的解可以合并为该问题的解 -
该问题所分解出的各个子问题是相互独立的
2. 递归技术
3. 二分查找法
第二节:回溯法
基本概念:
回溯法是一种选优搜索法,按选优条件向前搜索,以达成目标。但当搜索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新进行选择。这种走不通就退回一步再继续往下走的技术就是回溯法。
图示:
第三节:贪心法
基本概念:
总是做出在当前来说是最好的选择,而并不从整体上加以考虑,它所做的每一步选择只是当前步骤的局部最优选择,但从整体来说不一定是最优的选择。由于它不必为了寻找最优解而穷尽所有可能解,因此其耗费时间少,一般可以快速得到满意的解,但得不到最优解。
实例——背包问题:
有三个物品(每种物品仅存一个),其容量分别为:20,30,40;其价格分别为:140,180,200;而背包可容纳的总量为70,我们希望背包中能容纳尽可能多的物品,使其容纳的物品价值最高。
贪心法则会根据单位容量价值最高的原则优先将这个物品进行容纳,如物品1的每10个容量其价值为70,物品2则为60,物品3则为50;因此,若采用贪心法,其将会优先放入物品1到背包中,然后放入物品2,此时空间只剩下20,无法装下物品3,因此,方案到此结束,采用该方法得到了总价320的物品。
但这显然不是最优解,我们将物品3和物品2装入背包,得到的物品总价值为380。如果能够不限制每种物品的选择次数,还可以得到价值420的方案。
第四节:动态规划法
基本概念:
在求解问题时,对于每一步决策,列出各种可能的局部解,再根据某种判定条件,舍弃那些肯定不能得到最优解的局部解,在每一步都经过筛选,以每一步都是最优解来保证全局是最优解。
在动态规划法中,基本上都要用到查表这一步骤。
参考视频:https://www.bilibili.com/video/BV1yU4y1371J?p=184
|