算法第五章上机实验报告

7-2 最小重量机器设计问题

1.请用回溯法的方法分析最小重量机器设计问题

通过使用回溯法给出总价格不超过d的最小重量机器设计,在第一个部件选择每一个供应商时,若该供应商的价格大于总价,则不选,不大于则选择;然后更新目前价格与重量的状态值;再到下一个部件根据更新后的价格加本身选择供应商的价格是否超出总价来选择供应商;当一条分支的所有部件选择完毕后,判断选择机器的总重量,是否小于记录的最小重量,若是则将该值赋给最小重量并且从这一步开始回溯到上一机器选择下一合适的供应商继续搜索可行解,直至搜索完毕。

1.1   说明最小重量机器设计问题"的解空间

若是n个部件,m个供应商,则解空间为m的n次方个。

1.2   说明最小重量机器设计问题"的解空间树

由于每个部件可以从m个不同的供应商处购买,则该问题的解空间树是一颗m叉树,若是n个部件则该m叉树有n+1层,除叶子结点外每个结点有m个分支代表选择哪个供应商。

1.3 在遍历解空间树的过程中,每个结点的状态值是什么

每个结点的状态值就是更新选择该供应商后,之前记录的价格加上该部件在此供应商的价格,之前记录的重量加上该部件在此供应商的重量。

2. 你对回溯算法的理解

回溯算法就是按深度优先策略,从根节点出发搜索解空间树,是一个既带有系统性又带有跳跃性的搜索算法。

基本步骤包括:1.针对所给问题,定义问题的解空间;2.确定易于搜索的解空间;3.以深度优先方式搜索解空间,并在搜索过程中用剪枝函数避免无效搜索。

也要在回溯过程中注意每个结点的状态更新,与在叶结点处当前解与记录最优解的比较,输出最优解。

并且许多问题当需要找出它的解集或者要求回答什么解是满足某些约束条件的最佳解时,通常需要使用回溯法。

posted @ 2021-12-11 22:36  aoapppggg  阅读(22)  评论(0编辑  收藏  举报