- 最小重量机器设计问题 - 回溯法分析
1.1 解空间
解空间由所有可能的供应商选择方案组成。每个部件i(1≤i≤n)都可以从m个供应商中选择一个,所以解空间大小为 m^n。一个解可以表示为向量 (x₁, x₂, ..., xₙ),其中 xᵢ 表示第 i 个部件选择的供应商编号。
1.2 解空间树
解空间树是一棵高度为 n+1 的 m 叉树:
第 0 层:根节点
第 1 层:m 个子节点,表示第一个部件选择哪个供应商
第 2 层:每个节点有 m 个子节点,表示第二个部件选择哪个供应商
...
第 n 层:叶子节点,表示完整的选择方案
1.3 结点状态值
在遍历解空间树时,每个结点需要记录:
-
当前总价格
-
当前总重量
-
已选择的供应商序列(路径)
-
当前考虑的是第几个部件(深度)
-
对回溯算法的理解
回溯算法是一种通过递归深度优先搜索解空间的方法,当发现当前路径不可能得到最优解时,就回溯到上一步尝试其他选择。它常用于求解组合优化问题,通过"剪枝"来减少不必要的搜索。
在本题中,回溯过程:
- 深度优先遍历解空间树
- 记录当前最小重量和对应的供应商选择
- 当总价格超过 d 时剪枝
- 当当前总重量已经大于已知最小重量时剪枝