第五章

最小重量机器设计问题**是典型的组合优化问题:假设机器由( n )个部件组成,每个部件有( m )个可选供应商,第( i )个部件选第( j )个供应商的重量为( w_{ij} ),要求从每个部件中选一个供应商,使总重量最小。
一、回溯法分析该问题

  1. 解空间:是长度为( n )的序列集合( { (x_1,x_2,...,x_n) | x_i \in {1,2,...,m} } ),其中( x_i )表示第( i )个部件选择的供应商编号,解空间规模为( m^n )。

  2. 解空间树:以“部件选择”为层次的( m )叉树。根节点对应“未选择任何部件”,第( i )层节点对应“已确定前( i )个部件的供应商”,每个节点有( m )个子节点(对应下一个部件的( m )种选择),叶节点对应完整的供应商组合。

  3. 节点状态值:遍历中每个节点需记录两个核心状态:

    • 已选部件的累计重量(用于剪枝:若当前累计重量已超过已知最优解,则剪去该分支);
    • 已确定的前( k )个部件的供应商选择(记录当前选择路径)。
      二、回溯算法的理解
      回溯算法是一种“试错式”的暴力搜索策略,通过深度优先遍历解空间树,在遍历中利用“剪枝”避免无效搜索。其核心逻辑是:逐步构建解的候选集,若候选集不满足约束条件则回溯(回退到上一步),否则继续扩展。回溯算法的优势是能遍历所有可能解,确保找到最优解;缺点是时间复杂度高(通常为指数级),但通过剪枝(如最小重量问题中基于当前累计重量的剪枝)可大幅优化效率。它适用于组合优化、排列组合等解空间离散且规模可控的问题,是算法设计中“精确求解”类问题的基础方法之一。
posted @ 2025-12-19 22:43  antshine  阅读(0)  评论(0)    收藏  举报