算法第五章作业
一、最小重量机器设计问题的回溯法分析问题背景:需为机器选择 n 个部件,每个部件有 m 个可选供应商,第 i 个部件选第 j 个供应商的重量为(w[i][j])、成本为(c[i][j]),要求总成本不超过 C,求最小总重量。
1.1 解空间解空间是长度为 n 的向量集合:((x_1, x_2, ..., x_n)),其中(x_i \in {1,2,...,m})((x_i)表示第 i 个部件选择的供应商编号)。每个向量对应一种部件选择方案,解空间大小为(m^n)。
1.2 解空间树解空间树是n 层的 m 叉树:第 1 层到第 n 层分别对应第 1 到第 n 个部件的供应商选择;每个节点的子节点数为 m(对应该部件的 m 个供应商);叶节点对应完整的部件选择方案(共(m^n)个叶节点)。
1.3 节点状态值遍历解空间树时,每个节点的状态包含:当前已选部件的序号(层数);当前已累计的总成本;当前已累计的总重量;已选择的供应商组合(可选记录)。
二、对回溯算法的理解回溯法是 “试探 + 回退” 的搜索策略:从解空间树的根节点出发,按深度优先遍历,逐步选择候选解;若当前路径不满足约束(如成本超 C)或无法得到更优解,则回退到上一节点,尝试其他分支。它的核心是剪枝(通过约束函数 / 限界函数减少无效搜索),能在指数级解空间中高效找到可行解 / 最优解,但时间复杂度仍依赖问题规模,适用于组合优化类问题(如机器设计、八皇后)。
浙公网安备 33010602011771号