算法第五章作业及学期总结

算法第五章作业及学期总结

 

1. 你对回溯算法的理解

确定了问题的解空间结构后,回溯法将从开始结点(根结点)出发,以深度优先的方式搜索整个解空间。开始结点成为活结点,同时也成为扩展结点。在当前的扩展结点处,向纵深方向搜索并移至一个新结点,这个新结点就成为一个新的活结点,并成为当前的扩展结点。如果在当前的扩展结点处不能再向纵深方向移动,则当前的扩展结点就成为死结点。此时应往回移动(回溯)至最近的一个活结点处,并使其成为当前的扩展结点。回溯法以上述工作方式递归地在解空间中搜索,直至找到所要求的解或解空间中已无活结点时为止。
 
运用回溯法解题的关键要素有以下三点:
(1) 针对给定的问题,定义问题的解空间;
(2) 确定易于搜索的解空间结构;
(3) 以深度优先方式搜索解空间,并且在搜索过程中用剪枝函数避免无效搜索。

2. 你学习《算法分析与设计》课程的收获

算法课程主要学习了分治法、动态规划法、贪心法、回溯法、分支限界法、随机化算法。

对一个问题是如何进行分析、如何找出解决方案、如何用代码来实现以及如何分析这个算法的效率。

3. 你在学习过程中曾遇到了哪些困难,希望老师或助教及时给予帮助。

学习这门课程,很多时候学习完新内容不会那么快掌握,特别是到后期。

自我感觉没有之前掌握c语言程序设计、数据结构掌握得深,没有吃透。

比如:贪心算法证明贪心策略正确,感觉这道题理解了证明过程,下一道题又不是很懂了;

动态规划:开辟数组是二维还是一维,处理过程的简化,有时候常常想到的解决方法的时间复杂度是O(n^3)

4. 你对本门课程的教学有哪些建议

自我感觉缺少了预习的环节,可能自己本身需要去被推动;

博客的内容或许可以是对本章知识内容的总结。

或许可以适当调动课堂或者课下讨论的积极性,感觉这个课程氛围会更好。

posted @ 2020-12-20 11:22  jakining  阅读(84)  评论(0编辑  收藏  举报