1. 请用回溯法的方法分析“最小重量机器设计问题”
1.1 说明“最小重量机器设计问题"的解空间
解空间是所有可能的解构成的集合,这里的解空间是每个部件对应的供应商选择并且满足价格不超过预算的组合方式。
1.2 说明 “最小重量机器设计问题"的解空间树
每个部件都能从m个不同的供应商处购得,所以是m叉树解空间树
1.3 在遍历解空间树的过程中,每个结点的状态值是什么
每个节点的状态值记录当前已做选择部件的总重量及价格,记录当前节点选择的供应商
1.4 如何利用限界函数进行剪枝
如果选择这个供应商重量可能小于当前最优最小重量并且价格不超过预算才继续,否则剪枝
2. 你对回溯算法的理解
回溯法本质是一个暴力枚举的过程,穷举的过程就是遍历一颗多叉树,深度优先搜索,当探索到某一步时,发现选择并不优,或者达不到目标就退回前一步,重新选择,也就是剪枝。
回溯算法能解决如下问题:
组合问题:N个数里面按一定规则找出k个数的集合
排列问题:N个数按一定规则全排列,有几种排列方式
切割问题:一个字符串按一定规则有几种切割方式
子集问题:一个N个数的集合里有多少符合条件的子集
棋盘问题:N皇后,解数独等等