算法第四章实践

1:对回溯法的理解

  回溯法是依照深度优先的策略,从根节点 出发搜索解空间树,主要采用了递归的方法,类似于穷举法,把每一种可能的情况都列出来搜索,判断是否为问题的解,如果是求问题的所有解,那么就要遍历整个树,所花费的时间非常长,如果是求一个解,则只要求到解就可以结束搜索,另外,在搜索的时候,可以用限界函数和剪枝函数减少搜索,以此来提高效率

2.请选择一道作业题目说明回溯法

  

5-1 0-1背包 (50分)
 

给定n(n<=100)种物品和一个背包。物品i的重量是wi,价值为vi,背包的容量为C(C<=1000)。问:应如何选择装入背包中的物品,使得装入背包中物品的总价值最大? 在选择装入背包的物品时,对每种物品i只有两个选择:装入或不装入。不能将物品i装入多次,也不能只装入部分物品i。

 

 

 

 

 

 套用回溯法的模板,本题中使用了严格型的剪枝函数,即使用贪心法计算背包问题的最大解,如果t层之后的剩余物品价值通过贪心法求解最大值后,仍然没有超过之前的最大解,则不搜索该分支,这样加快了搜索的效率。

posted @ 2020-12-15 14:37  鲤红  阅读(54)  评论(0编辑  收藏  举报