算法第5章作业

Posted on 2018-12-23 17:08  岚月  阅读(107)  评论(0)    收藏  举报

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

本质上回溯算法是一种穷举法,将所有的可能性都检查一遍后,即可得到理想的解。但是回溯算法还包括了限界函数以及约束函数,通过对树的剪枝,将不可能的解先行剪掉,减少需要搜索的叶子节点,得到一个较为理想的运行时间。

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

       开始节点

     1         0

  1    0     1     0

1  0  1  0  1  0  1  0

以n=3为例,“子集和”问题的解空间结构实际是一个二叉树,每一层代表对应位置的数字是选还是不选。

约束函数:当前数字加上之前所保存的和的和不能大于目标数字c,之前所保存的和加上剩余所有数字的和不能小于目标数字c。

 

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

本章学习中最大的问题在于函数backtrack不好调试,如果将其中的数据cout出来查看,数据太多,不易辨别。在作业的编写过程中,我在subsum10 的数据上遇到了许多报错,最后还是在结对编程的同学的提醒下才解决。