434
社区成员
发帖
与我相关
我的任务
分享1. 请用回溯法的方法分析“最小重量机器设计问题”
1.1 说明“最小重量机器设计问题"的解空间
一共有n个部件,每一种部件都可以从m个不同的供应商处购得,其解空间为由n种长度为m的向量构成。
1.2 说明 “最小重量机器设计问题"的解空间树
因为每个商品可以从m个供货商处获得,则解空间树是一颗m叉树,子集树
1.3 在遍历解空间树的过程中,每个结点的状态值是什么
每个结点的状态值记录当前所选供应商的重量和价格,即
cc += c[t][i]; //t代表是第t个物品,i代表为第i个供应商
cw += w[t][i];
x[t] = i;
1.4 如何利用限界函数进行剪枝
题目中要求给出总价格不超过d的最小重量机器设计,即:
总价格不能超过d:在每一次选择供应商的时候,都要进行cc <= d - c[t][i]的判断
最小重量:若选此供应商得到的质量比我现在已有的最小质量还要大,则不需要继续往下遍历了,即判断cw + w[t][i] < minw
2. 你对回溯算法的理解
回溯法在包含的所有可能解的解空间树中,从根节点出发,按照深度优先策略进行搜索。
搜索至解空间树的任意一点时,先判断该结点是否包含问题的解。(状态更新)如果肯定不包含,则跳过对该结点为根的子树的搜索,逐层向其祖先结点回溯;否则,进入该子树,继续按深度优先策略搜索。
在搜索过程中用剪枝函数避免无效搜索。
故在使用回溯法时
(1)针对所给问题,定义问题的解空间;
(2)确定易于搜索的解空间结构;
(3)以深度优先方式搜索解空间,并在搜索过程中用剪枝函数避免无效搜索。