ydqbala

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

1.对回溯算法的理解

    回溯算法实际上一个类似枚举的深度优先搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就“回溯”返回(也就是递归返回),尝试别的路径。许多复杂的,规模较大的问题都可以使用回溯法,有“通用解题方法”的美称。回溯法说白了就是穷举法。回溯法一般用递归来解决。回溯法一般都用在要给出多个可以实现最终条件的解的最终形式。回溯法要求对解要添加一些约束条件,包括选择,条件和结束。

  回溯法是一种选优搜索法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法,而满足回溯条件的某个状态的点称为“回溯点”。

2.请说明“子集和”问题的解空间结构和约束函数

解空间结构为二叉树,第i层到第i+1层表示是否选择第i个元素,向左表示选择,向右表示不选择。

约束函数:利用rest(当前元素加到最后一个元素的总和)+ sum(当前所选元素之和)>= c作为限界剪枝。

3.请说明在本章学习过程中遇到的问题及结对编程的情况

这一章的学习我们遇到了很多问题,比如对回溯结束条件的判断,以及各种剪枝的方法选择,很多点难以很快想到,导致程序经常存在各种各样的问题,很容易判定不足和程序超时,这让人很是苦恼。但是我们小组还是一起解决了很多问题,也更多地认识到了自己的不足。

 

posted on 2018-12-23 15:39  ydqbala  阅读(91)  评论(0编辑  收藏  举报