1.你对回溯算法的理解(2分)

回溯算法实际上是一个类似枚举的深度优先搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就“回溯”返回(也就是递归返回),尝试别的路径。回溯法一般用递归来解决。

 

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

 

 

“子集和”问题的解空间结构实际是一个二叉树,每一次分叉都代表选择和不选择。

约束函数:即剪枝,减少运算量。当前数字加上之前所保存的和的和不能大于目标数字c,之前所保存的和加上剩余所有数字的和不能小于目标数字c。

 

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

结对编程感受到了团队合作的便利,可以讨论我们不懂得东西。在提交代码的时候,发现老是部分正确,所以回溯时要注意剪枝。