算法第5章作业

算法第5章作业


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

回溯算法是搜索问题的解的方法。(个人感觉就是先建立空间树,然后用探索的方法往下走找出解)

回溯算法解决问题的一般步骤为:

1、定义一个解空间,它包含问题的解。

2、利用适于搜索的方法组织解空间。

3、利用深度优先法搜索解空间。

4、利用限界函数避免移动到不可能产生解的子空间。

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

解空间结构:用树的结构判断集合中的某一个数是否放入子集集合的数组中。

约束函数:解空间结构中遍历的深度> n时没有可行解,进行剪枝;当放入子集的元素总和等于目标和,则输出子集元素并进行剪枝;如果元素总和与下一个遍历节点之和大于目标和,则也剪枝。剪枝结束后便返回上一层。

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

觉得对本章的回溯法很头疼,感觉连看代码都不是那么简单,在定义解空间这一块,这个还是能够想出来,但是一上手写代码就是晕晕的,越写越糊涂。没有强大的网络和结对的小伙伴,可能真的就糊了。在结对过程中,因为我们刚开始都对回溯法很迷糊,首先就各自私下看题,把题目搞懂,然后把自己的思想讲给对方听,两个人的思想结合起来,基本上完成的挺不错。

posted @ 2018-12-24 13:57  zmkkkk  阅读(87)  评论(0编辑  收藏  举报