1. 请用回溯法的方法分析“最小重量机器设计问题
在循环选择i号机器时,判断从j号供应商购买机器后的价格是否大于总价格,如果不大于则选择,继续选择下一供应商进行判断,否则不选。在得到一个合适的供应商后,继续选择下一机器的供应商,从第一个选到最后一个供应商。当所有机器选择结束后,判断得到的总重量是否比之前的bestw小,如果小就赋给bestw,然后回溯到上一机器,选择下一合适供应商,继续搜索可行解,直到将整个排列树搜索完毕。这样,最终得到的bestw即为最优解。本问题中包含两个剪枝条件,约束条件(当前价格+该零件价格<总价格时)剪去不满足约束的子树,上界条件(当前重量+该零件重量<最小重量记录时)剪去得不到最优解的子树。
1.1 说明“最小重量机器设计问题"的解空间
解空间是总价格不超过总重量w和供应商m的集合
1.2 说明 “最小重量机器设计问题"的解空间树
共有n个部件,从根节点出发后,每一层分别表示一个部件,往下延伸共n层。
1.3 在遍历解空间树的过程中,每个结点的状态值是什么
每个结点的状态是根节点到该节点的累计重量和累计价值。
2. 你对回溯算法的理解
在包含问题的所有解的解空间树中,按照深度优先搜索的策略,从根结点出发深度探索解空间树。当探索到某一结点时,要先判断该结点是否包含问题的解,如果包含,就从该结点出发继续探索下去,如果该结点不包含问题的解,则逐层向其祖先结点回溯。(其实回溯法就是对隐式图的深度优先搜索算法)。 若用回溯法求问题的所有解时,要回溯到根,且根结点的所有可行的子树都要已被搜索遍才结束。 而若使用回溯法求任一个解时,只要搜索到问题的一个解就可以结束