算法第五章作业
- 你对回溯算法的理解
回溯算法实际上一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就“回溯”返回,尝试别的路径。由于回溯算法类似枚举法,时间复杂度较高,往往通过限界函数和约束函数进行剪枝,从而降低时间复杂度。
2.请说明“子集和”问题的解空间结构和约束函数
解空间结构就是解空间树,每一步进行选择,左右两个节点代表着不同的选择结果。每个叶子结点存放着每一个分支的解。约束函数就是,判断该结点的子结点是否与先前的解有冲突,比如01背包问题中,即便放入剩下的所有物品都不够先前结点存放的价值大,则没有必要继续往下求解,从而达到剪枝的目的。
3.请说明在本章学习过程中遇到的问题及结对编程的情况
问题:经常超时
结对编程得到了伙伴的指导,对回溯法有了更加深刻的理解。