算法第五章上机实践报告

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

1.这道题利用回溯法来解决。首先题目给出了价格上限d,初始化设置cv(当前价值)和cw(当前重量)为0。还要设置一个变量minn表示选择机器的最小总重量,初始化为一个很大的值。

2.利用回溯法进行循环,从第1号机器开始循环,机器的号数代表层数。在循环选择第i号机器时,需要判断从第j号供应商购买机器后的价格是否大于价格上限,小于则可以选择,并且更新cv和cw;大于则不选,看下一供应商满不满足这个条件。


3.当所有机器的供应商都选择结束后,判断目前总重量是否比之前的minn小,如果小就更新minn,然后从最后一个机器开始回溯到上一机器,选择新的合适供应商,继续搜索可行解。这个过程中,需要判断选择这个新的供应商后的重量是否比minn小,如果比minn大,可以直接剪枝,不选这个供应商,继续下一个供应商的选择,直到将整个树搜索完毕。最终得到的minn即为最优解。


4.在循环过程中,需要多开一个数组,记录每个机器选择了哪个供应商。

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

[(1,3,1),(1,3,2),(1,3,3)]

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

image

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

image

2. 你对回溯算法的理解

回溯算法的基本做法是搜素,我认为其中很重要的一点就是剪枝,这样可以避免无效搜索。回溯算法应该用于解一些组合数相当大的问题。

posted @ 2021-12-10 16:38  yeyuunjia  阅读(42)  评论(0编辑  收藏  举报