Victro轩

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

1.你对回溯算法的理解:在包含问题的所有解的解空间树中,按照深度优先搜索的策略,从根结点出发深度探索解空间树。当探索到某一结点时,要先判断该结点是否包含问题的解,如果包含,就从该结点出发继续探索下去,如果该结点不包含问题的解,则逐层向其祖先结点回溯。若用回溯法求问题的所有解时,要回溯到根,且根结点的所有可行的子树都要已被搜索遍才结束。

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

解空间结构:判断第一个数字是否选择,选择的话就记录下来,不断回溯,找到等于c的子集和

约束函数:记所记录的结点的数值总和为sum,剩余所有数和为rest(在同一分枝上),若sum+rest<c,则剪枝,返回上一个结点继续深度遍历

3.请说明在本章学习过程中遇到的问题及结对编程的情况:本章做作业的时候,会发现解空间很难写出,这就影响到剪枝的操作,一开始与搭档不太了解,后来经过老师的问问题与讲解方才搞懂。所以我们还需加强对回溯算法的练习与例题讲解。

posted on 2018-12-22 23:23  Victro轩  阅读(89)  评论(0编辑  收藏  举报