算法第五章作业

1、你对回溯算法的理解:回溯法可以用来系统地搜索一个问题的所有解或者任一解,它是按照深度优先策略,从根结点出发搜索整颗解空间树。每当算法搜索到解空间树的任何一个结点时,先判断一下该结点是否包含问题的解,如果不包含,就跳过这个结点以及跟着这个结点的子树,逐层往回搜索;如果包含,就按着这棵子树往下搜索。如果要求所有的解,则需要所有的子树都被搜索过,若只要一个解的时候,一旦搜索到一个解便可结束搜索。

2、请说明“子集和”问题的解空间结构和约束函数:
(1)解空间结构如下:

(2)约束函数:if(sum + rest >= c)则走右子树。rest存的是n个数的合,每当走到一个结点时,rest减去这个点的值,如果当sum加上除去这个点以外的所有点的值还大于或等于c的时候,则这个点是不能加的,所以走右子树。

3、请说明在本章学习过程中遇到的问题及结对编程的情况:
本章的问题主要是找出它的解空间树以及怎么设定它的约束函数。结对编程相辅相成、相互促进。

posted @ 2018-12-23 15:47  Joker灬丶  阅读(111)  评论(0编辑  收藏  举报