第五章作业

1. 回溯法分析“最小重量机器设计问题”

1.1 解空间

解空间是指所有可能解的集合。
在这个问题中,每个部件 i可以从 m个供应商中选择一个,因此一个解是一个长度为 n的序列(s1​,s2,…,sn)
其中 si∈{1,2,…,m}表示第 i个部件选择的供应商编号。

解空间的大小为 m的n次方。合法解是满足总价格不超过预算 d的那些解。最优解是合法解中总重量最小的解。

1.2 解空间树

解空间树是一棵高度为 n+1的 m叉树(从根到叶节点路径长度为 n):

  • 根结点(第 0 层):尚未选择任何部件的供应商。
  • 第 t层结点(0≤t≤n):表示已经对前 t个部件选择了供应商,正在决定第 t+1个部件的供应商。
  • 叶子结点(第 n层):表示一个完整的选择方案。

每个非叶子结点有 m个子结点,分别对应选择下一个部件的 m个供应商。

1.3 每个结点的状态值

在遍历解空间树时,每个结点(对应递归的某一层)的状态值包括:

  • 当前总价格​ cur_cost:已选部件的价格总和。
  • 当前总重量​ cur_weight:已选部件的重量总和。
  • 当前部分解​ cur_supplier[0..t-1]:已选部件的供应商编号序列。
  • 当前层数 t:递归深度,表示正在选择第 t个部件的供应商(从 0 开始编号)。

这些状态值用于:

  • 判断是否继续向下搜索(剪枝)。
  • 到达叶子结点时判断是否更新最优解。

2. 回溯算法的理解

回溯法是一种系统性搜索问题的解空间的方法,适用于组合优化问题。假设走进一个迷宫,遇到岔路就选一条走,边走边记下路线。如果走到死胡同,就退回上一个岔路口,换条路再试。如果发现当前路线已经比已知的最近路线还长,就立刻放弃这条路,不再浪费时间走到底。这样系统地尝试所有可能路径,最终一定能找到最优路线,而且比盲目乱找要高效得多。

简单地说,就是深度优先地尝试所有可能,遇到失败就回头,发现没希望就提前放弃。

posted @ 2025-12-27 11:42  CxxxxQ  阅读(4)  评论(0)    收藏  举报