算法第五章作业
1、对回溯算法的理解
回溯法是一种选优搜索法,又称为试探法。它有“通用的解题法”之称,可以系统地搜索一个问题的所有解或任一解,他是一个既带有系统性又带有跳跃性的搜索算法。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法,而满足回溯条件的某个状态的点称为“回溯点”。回溯法适合解组合数较大的问题。
2、“子集和”问题的解空间结构和约束函数
解空间结构:集合Sn={a1,a2,a3,.......,an}的一个满足所有元素加起来之和为c的子集;
约束函数:代码中sum>t为一约束函数,表示如果当前子集和已超过所要的数,则不继续搜索
if(sum > t)
{
sum -= a[i-1];
b[i-1] = 0;
j--;
}
3、在本章学习过程中遇到的问题及结对编程的情况
遇到的情况:在第五章的实践题中,0-1背包问题还需再熟悉其体现的回溯思想及剪枝。
结对编程情况:良好,在互相学习探讨的过程中,更加加深了对算法的印象和理解。