434
社区成员
发帖
与我相关
我的任务
分享1. 请用回溯法的方法分析“最小重量机器设计问题”
1.1 说明“最小重量机器设计问题"的解空间
解空间是所有可能的部件供应商组合,那么每个部件有m个商家,总共有n个部件,全部遍历一遍,需要解空间大小为m*n
1.2 说明 “最小重量机器设计问题"的解空间树
每一层代表一个部件的选择,所以树的深度等于部件的数量n。
每个节点代表一个部件的供应商选择,所以分支数等于供应商的数量m。
1.3 在遍历解空间树的过程中,每个结点的状态值是什么
遍历到当当前部件的供应商选择情况,包括价值和重量。
1.4 如何利用限界函数进行剪枝
当遍历到某个结点时,如果加上该结点的重量或价值已经超过了当前算出的最小重量或者限定的价格,就可以进行剪枝。
2.你对回溯算法的理解
在解空间树中,按照深度优先搜索的策略,从根结点出发深度探索解空间树。当探索到某一结点时,要先判断该结点是否包含问题的解,如果包含,就从该结点出发继续探索下去,如果该结点肯定不包含问题的解,则逐层向其祖先结点回溯。
回溯法求问题的所有解时,要回溯到根,且根结点的所有子树都已被搜索到才结束。
回溯法求一个解时,只要搜索到问题的一个解就可以结束。
其中子集树和排列树是回溯法的两类典型的解空间树。
回溯算法中有两类函数:
1.约束函数:去掉不可行的解
2.限界函数:去掉可行但不可能是最优的解