算法第五章作业
一.对回溯法的理解
回溯法是一种搜索最优解和求全部解集的算法,求全部解则需对每一结点都做出遍历,每个叶子结点都是结果之一,所有叶结点都成了全部解;而搜索最优解,则需在每一结点都做出路径选择,在每个结点将结点状态与目的最解或当前最优解比较,不符合条件则后退回到原先的结点选择另外的路径。
二.“子集和”问题的解空间结构和约束函数
解空间结构:是一颗子集树,每一层都有一个数集的元素供选择,结点代表当前为子集选择的数字的和,每一结点连接左右子树的路径代表选不选择该数字。
约束函数:有两个约束函数:如果当前分支的数字和超过了子集和,则剪枝;如果当前数字和加剩余数字和小于访问过的所有叶子节点的数字和,则剪枝。
三.学习过程的问题及结对编程的情况
学习过程遇到的问题:在使用排列树解决问题问题时仍然不够熟练,对swap没有足够深刻的理解运用。
结对编程情况:在解决0-1背包问题的严格限界函数花了较长时间。