算法第五章作业
1.问题描述
2.请用回溯法的方法分析“最小重量机器设计问题”
部件代表层数,利用深度优先遍历其结点,结点为供应商。
剪枝:1. 约束函数:总价格不超过d
2. 上界函数:cw (当前重量) <= minweight
若满足以上函数,则代表不是可行解和最优解,直接剪去其子树。若没有被剪枝,则 cw 和 minweight 比较,取不超过d的最少重量。
当 t (深度)> n 时,表示到达叶结点,若cw < minweight, 则让minweight = cw, 并且用一个数组记录最优供应商 。
2.1 说明“最小重量机器设计问题"的解空间
由n=3, m=3,则其解空间为(1,1,1)(1,1,2)(1,1,3)(1,2,1)(1,2,2)(1,2,3)(1,3,1)(1,3,2)(1,3,3)(2,1,1)(2,1,2)(2,1,3)(2,2,1)(2,2,2)(2,2,3)(2,3,1)(2,3,2)(2,3,3)(3,1,1)(3,1,2)(3,1,3)(3,2,1)(3,2,2)(3,2,3)(3,3,1)(3,3,2)(3,3,3)
2.2 说明 “最小重量机器设计问题"的解空间树
2.3 在遍历解空间树的过程中,每个结点的状态值是什么
每个结点的状态是当前状态的重量和价格。
3. 你对回溯算法的理解
回溯法按深度优先搜索问题的解空间树,在搜索过程中,可以用约束函数和上界函数对其结点进行判断该结点是否可行。如果不可行,则跳过对该结点为根的子树的搜索,逐层向上一层回溯;如果可行,进入该子树,继续按深度优先搜索。