一、贪心法:
基本思想:在对问题求解时,总是做出在当前看来是最好的选择(不从整体最优上考虑,只做出在某种意义上的局部最优解)。注:贪心算法不是对所有的问题都能求出全局最优解。
重要性质:(1)贪心选择性质:贪心选择性质是指原问题的整体最优解可以通过一些列局部最优的选择得到。(2)最优子结构性质:如果问题的最优解包含其子问题的最优解,称次问题具有最优子结构性质。
二、动态规划法:
基本思想:将待求解的问题分解成若干子问题,先求解子问题,然后从这些子问题中得到原问题的解。用分治法不同的是,适用于动态规划法求解的问题,经分解得到子问题往往不是互相独立的(即下一个子阶段的求解是建立在上一个子阶段的解的基础上,进行进一步的求解)。
特征:(1)最优子结构:最优子结构性质是指问题的最优解包含其子问题的最优解。
(2)子问题重叠:子问题重叠是指在求解子问题的过程中,有大量的子问题是重复的。
(3)无后效性:当前阶段的求解只和前面阶段有关,和后续阶段无关,称为“无后效性”。
三、分治法:
基本思想:与动态规划法类似,将待求解的问题分解成若干子问题,求出子问题的解,合并之后即为原问题的解。不同的是:这些子问题是相互独立的,且与原问题的性质相同。(可用分治法解决的问题常常采用递归的形式求解)。
解题步骤:(1)分解:将要解决的问题分解为若干个规模较小、相互独立、与原问题形式相同的子问题。
(2)治理:求解各个子问题,由于各个子问题与原问题形式相同,只是规模较小而已,而当子问题规划的足够小时,就可以用较简单的方法解决。
(3)合并:按照原问题的要求,将子问题的解合并为原问题的解。
四、回溯法:
基本思想:回溯法是一种选优搜索法,按选优条件向前搜索,以达到目标。当搜索到某一步时发现不满足条件,即进行回溯(退回上一步重新进行选择),直到搜索完整个空间。回溯法是对隐式图的深度优先搜索算法。
常用剪枝函数:(1)约束函数:对能否得到问题的可行解的约束称为约束函数。
(2)限界函数:对能否得到最优解的约束称为限界函数。
五、分支限界法:
基本思想:求解目标为找出满足约束条件的一个解,或是在满足约束条件的解中找出在某种意义下的最优解,常使用广度优先搜索算法。
常用的两种分支限界法:(1)队列式分支限界法
(2)优先队列式分支限界法