1.算法思想
1.1贪心思想
在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的是在某种意义上的局部最优解。通俗讲:就是求解问题时,先去判断第一步的最优解,然后讲下面看作一个递归的过程;
该算法在不考虑任何后果的情况下,选择了当时可行的最佳解决方案。贪婪方法说,应该分阶段解决问题,在这种情况下,应考虑到每个输入都是可行的。由于这种方法只关注即时结果,而没有考虑更大的局面,因此被认为是贪婪的。
1.2动态规划思想
将待求解的问题分解成若干个子问题,先分别求解每一个子问题,在求解每一子问题时,列出各种可能的局部解,通过决策保留那些有可能达到最优的局部解,丢弃其他局部解。依次解决各子问题,最后一个子问题就是最初待求解问题的解。
2.算法步骤
2.1贪心算法步骤
(1)建立数学模型描述问题;
(2)将求解的问题分为若干个子问题;
(3)对每个子问题求解,得到子问题的局部最优解;
(4)把每个子问题的局部最优解合为求解问题的一个解;
2.2动态规划算法步骤
(1)分析最优解的性质,并刻画其结构特征,分解子问题;
(2)递归的定义最优解;
(3)以自底向上或自顶向下的记忆化方式(备忘录法)计算出子问题最优值;
(4ÿ