算法第四章作业

1、贪心算法的理解

(1)基本概念:

贪心算法是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,而是在某种意义上的局部最优解。但是,贪心算法不能对所有问题都得到整体最优解,关键是贪心策略的选择,选择的贪心策略某个状态以前的过程不会影响以后的状态,只与当前状态有关。

(2)基本思想:

贪心算法的基本思路是从问题的某一个初始解出发一步一步地进行,根据某个优化测度,每一步都能确保能获得局部最优解。过程:建立数学模型来描述问题→把求解的问题分解成若干个子问题→对每一个子问题求解,得到子问题的局部最优解→把子问题的局部最优解合成原来问题的解。同时贪心算法求解的问题中还具有以下两个重要性质:

①最优子结构性质: 即所拆分的子问题的解是最优解;

②贪心选择性质: 贪心算法所做的贪心选择可以依赖于以往所做过的选择,但决不依赖于将来所做的选择,也不依赖于子问题的解。正是由于这种差别,动态规划算法通常以自底向上的方式解各子问题,而贪心算法则通常以自顶向下的方式进行,以迭代的方式做出相继的贪心选择,每做一次贪心选择就将所求问题简化为规模更小的子问题。

 

2、汽车加油问题的贪心选择性质

汽车加满油后可行驶n公里,且旅途中有k个加油站,每经过下一次第k个加油站与第k-1个加油站之间的距离之前如果发现油不够,则停靠在第k个加油站,加满油再经过下一段距离,此时用count统计加油次数,count+1。

 

 

3、本章学习过程中遇到的问题及结队编程情况

本章学习过程中遇到的比较明显的问题是对着部分题目不知道如何在短时间内选择合适的贪心策略,例如会场安排问题,虽然有看过老师在课上演示的代码自己也动手认认真真做了,不过还是不太能理解它对应的贪心策略。

这次结队编程伟严主要负责编写代码,恬萌和我主要负责梳理代码实现的思路,上机实践课整体完成度还不错。学习了贪心算法之后,虽然我理解了这个算法的基本思路,看例题也能看懂,不过轮到自己实际操作的时候才发现想要在短时间内写出贪心算法还真的挺难的,主要是平时练习编程的次数太少了吧,以后仍要继续注重实践能力。

posted on 2019-11-21 15:14  RenaJun  阅读(118)  评论(0)    收藏  举报