1. 请用回溯法的方法分析“最小重量机器设计问题”
最小重量机器设计问题:某一机器由n个部件组成,每一种部件都可以从m个不同的供应商处购得。设Wij是从供应商j处购得的部件i的重量,Cij 是相应的价格。试设计一个算法,给出总价格不超过C的最小重量机器设计。
1.1 说明“最小重量机器设计问题"的解空间
解空间为由n种长度为m的向量组成,即一共要选择的部件有n个,每个部件有m个选择,所以解空间为m^n次方。
1.2 说明 “最小重量机器设计问题"的解空间树
是一棵深度为n的完全m叉树,一层代表一个部件,一层中的每个节点代表该部件选择的供应商。
1.3 在遍历解空间树的过程中,每个结点的状态值是什么
在上一层即上一个部件做的选择后此时的部件总重量即总价格
1.4 如何利用限界函数进行剪枝
当某部件做出某选择后,当前已选部件的总重量大于当前记录得到的最优值(最小值),则对其子树进行剪枝,无需遍历该结点子树;或者当前已选部件的总价格大于当前记录得到的最优价格(最大值),也对其子树进行剪枝,无需遍历该结点子树;
2. 你对回溯算法的理解
回溯方法是一个类似穷举的方法,通过不断试错来确定最优解,为了减少算法的时间复杂度,常常通过限界函数来对明显不满足题意没必要继续试错的可能进行剪枝。回溯算法在求解一些约束满足问题、组合优化问题等类型的问题时非常有效。但因为它的时间复杂度是指数级的,所以并不适合求解一些大规模问题,会导致时间复杂度过于高。