1. 对回溯算法的理解

回溯算法从根结点出发,以深度优先方式搜索整个解空间,在搜索至树中任一节点时,先判断该节点对应的部分是否满足约束条件,或者是否超出目标函数的界,也就是判断该节点是否包含问题的最优解。如果肯定不包含,则跳过对该节点为根的子树的搜索,即剪枝;否则,进入该节点为根的子树,继续按照深度优先策略搜索,直到找到所要求的解或解空间中已无活结点为止。它适用于解组合数较大的问题。

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

解空间结构:解空间为{(0,0,0,...... ,0),(0,0,0,...... ,1),...... ,(1,1,1,...... ,1)} ,是一棵完全二叉树

约束函数:判断if( sum + a[t] <= c  ),如果加上当前结点的值小于问题所要求的和,则向左子树走,否则走向右子树。

3. 遇到的问题及结对编程的情况

对于子集树和排列树的区别还不清楚,排列树的遍历也不是很清晰。这些问题在结对编程时都有相互讨论,解决了编程时出现的问题。

posted on 2018-12-23 16:07  筱骄sunshine  阅读(92)  评论(0编辑  收藏  举报