1.你对回溯算法的理解
回溯算法的思想就是从一条路往前走,能进则进,不能进则退回来,换一条路再试的一种算法。是一种选优搜索法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,可以系统的搜索一个问题的所有解或者任意解,回溯法通常用最简单的递归方法来实现。总结起来就是:针对所给问题,确定问题的解空间 --> 确定结点的扩展搜索规则--> 以DFS方式搜索解空间,并在搜索过程中用剪枝函数避免无效搜索。
2.请说明“子集和”问题的解空间结构和约束函数
解空间结构:构建一个n层的二叉树,左子树表示可以选取,右子树表示不选取。
约束函数:即剪枝,如果当前结点后所得的值大于c,则表示接下来的搜索不可能找到等于c的答案,直接剪去,再回溯到上一个节点。
3.请说明在本章学习过程中遇到的问题及结对编程的情况
我们先做了第二题了,没什么大问题。只要是第一题的子集和问题的约束函数那里我们想了很久,一开始没搞懂怎么进行剪枝。
有队友合作一起思考问题,挺好的。
浙公网安备 33010602011771号