算法第5章作业

  1.你对回溯算法的理解

回溯算法是一个既带有系统性又带有跳跃性的搜索算法,是利用深度优先的原则对树型解空间进行探索的算法设计策略。当用于求问题的所有解时,需要回溯到根,且根结点的的所有子树都已被搜索遍才结束。当用于求问题的一个解时,只要搜索到问题的一个解就可结束。回溯法适用的问题有两种,一是子集树问题,比如背包问题;二是排列树问题,比如求最短路径。

  2.请说明“子集和”问题的解空间结构和约束函数

问题的的解空间至少应包含问题的一个(最优)解。“子集和”问题比如有n种可选择物品的0-1背包问题,解空间由长度为n的0-1向量组成,该解空间包含对变量的所有可能的0-1赋值。

约束函数用于在扩展节点处减去不满足约束的子树。指的是不满足问题的约束条件。比如0-1背包问题中,当物品重量大于背包容量时,就不会被包含在最优解里。

  3.请说明在本章学习过程中遇到的问题及结对编程的情况

回溯法一开始就要明确解空间,然后找出找到最优解的方法。遇到的问题便是如何将回溯法应用到实际问题上。随着算法策略学了不止一种,在面对一个问题时,会犹豫用哪种算法。这也是在结对编程中遇到的问题。

posted @ 2018-12-23 19:04  我要吃鸡腿  阅读(94)  评论(0编辑  收藏  举报