434
社区成员
发帖
与我相关
我的任务
分享1.1 说明“最小重量机器设计问题"的解空间
“最小重量机器设计问题"的解空间是动态产生的,在任何时刻,算法只保存从根节点到当前扩展节点的路径,
1.2 说明 “最小重量机器设计问题"的解空间树
“最小重量机器设计问题“的解空间是一棵子集树,因为要求解的是满足“总价值不超过d的最小重量机器设计”这个条件的解
1.3 在遍历解空间树的过程中,每个结点的状态值是什么

1.4 如何利用限界函数进行剪枝
只有当当前价格小于目标价格且当前重量小于最小重量时,才继续遍历,否则不再继续深度遍历,这样就剔除了不能得到最优解的结点
用回溯法解决问题,最重要的就是记住他的整体框架,然后根据题意写出剪枝函数和限界函数,再写一个回溯函数
void backtrack (int t){ if(t > n)//到达叶子结点 output(x); else for (int i = f(n, t); i <= g(n, t); i++){//分别表示扩展节点的子树的其实编号和终止编号 x[t] = h(i);H(i)//表示第i个可选值 if(constratint(t)&&bound(t))//表示约束函数和衔接函数 backtrack(t + 1); } }