- 你对贪心算法的理解
- 请说明汽车加油问题的贪心选择性质
- 请说明在本章学习过程中遇到的问题及结对编程的情况
对贪心算法的理解
贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的是在某种意义上的局部最优解。
贪心算法不是对所有问题都能得到整体最优解,关键是贪心策略的选择,选择的贪心策略必须具备无后效性,即某个状态以前的过程不会影响以后的状态,只与当前状态有关。
贪心算法往往寻找的不是整体的最优解,是选择每一步的最优解,累积起来,结果可能不等于最优解但接近于最优解。若等于最优解往往需要证明贪心策略和符合最优子结构。
和动态规划一样,只有具有最优子结构性质的问题才能使用贪心算法。当一个问题的最优解包含了其子问题的最优解,这个问题就具有最优子结构。
汽车加油问题的贪心选择性质
题目要求要得到达到目的地的最少加油次数,那么我们可以求出每次加油的能经过的加油站,并在最后一个加油站加油,这样既是整体问题的子问题的最优解——得出全程最少的加油次数。
最终,各个子问题最优解能够得到整体问题的最优解。
在本章学习中遇到的问题及结对编程情况
遇到的问题主要是在贪心策略的选择上,贪心策略有很多种,那么究竟哪一种是正确的需要证明,需要有一定的经验看出是贪心选择和知道常规贪心策略才能很有效解决贪心问题。
结对编程情况,都没能充分考虑题目情况,没有选择正确的贪心策略,导致很久才做出来。