第五次作业
1.用回溯法的方法分析“最小重量机器设计问题”
1.1 说明“最小重量机器设计问题"的解空间
该问题的解空间为所有符合条件的“部件——供应商”分配方案的集合,其中每个解都是一个长度为n的有序向量 X = (x1, x2, ..., xn), xi表示第i个部件选择的供应商的编号。
1.2 说明 “最小重量机器设计问题"的解空间树
该问题的解空间树是一颗深度为n的m叉树,树的结构说明如下:
a.共有n层,对应机器的n个部件。
b.树的非叶子节点都有m个分支,对应每个部件的m个供应商选择。
c.根节点位于第0层,代表尚未选择任何部件。
d.第i层节点代表已经确定前i个部件的供应商状态。
e.每个叶子节点对应一个完整的分配方案。
1.3 在遍历解空间树的过程中,每个结点的状态值是什么
(1)当前处理的第t个部件
(2)当前总价格cv
(3)当前总重量cw
(4)当前已选择的部件temp[]
(5)最优解相关状态(最优总重量best,最优方案final[],是否找到合法解的标记found)
2.对回溯法的理解
回溯法是基于深度优先搜索尝试所有可能方案并与剪枝优化相结合的算法,核心为当发现一个方案不可行时,返回上一步尝试下一个方案。
实现回溯法的关键函数Backtrack主要包含以下步骤:
(1)状态更新:当决策步骤完成(t > n),将最优状态更新为当前状态值。
(2)剪枝判断:包含约束函数和限界函数,主要作用是判断当前状态是否满足约束或是否能产生更优解,若不能则跳过后续递归,降低时间复杂度。
(3)递归推进:若通过剪枝判断,则递归进入下一步决策(Backtrack(t+1))。
(4)状态回滚:递归返回后,撤销当前选项的状态更新(回溯到上一步状态),以便尝试下一个选项。
总体来说,回溯算法是 “尝试 - 回溯 - 剪枝” 的深度优先搜索,通过逐步构建候选解、无效状态回退、提前舍弃无效分支,以此实现高效求解组合优化问题的高效算法。适用于解空间规模适中、存在明确约束条件和最优性判断条件的问题。

浙公网安备 33010602011771号