第五章回溯法
一、你对回溯算法的理解
回溯算法其实就是一种系统的,通用的解决问题的算法,它可以系统地搜索一个问题的所有解或任意解。通常与DFS结合,并且解空间常常是一棵n叉树。
而为了减少不必要的搜索来提高搜索效率,往往采用两种方法避免无效搜索,一是利用约束函数在扩展结点处减去不满足约束的子树,二是利用限界函数剪去得不到最优解的子树。这两类和函数都统称为剪枝函数。
二、请说明“子集和问题”中的解空间结构和约束函数
解空间结构:集合Sn={a1,a2,a3,.......,an}的一个满足所有元素加起来之和为c的子集;
约束函数:如果剩余的值sum(每加上一个数,sum的值就减去这个数)小于当前要搜索的数ai,则可以搜索右子树,否则搜索左子树;
三、请说明在本章学习中遇到的问题以及结对编程情况
问题:构造解空间树以及剪枝函数会比较费劲。
结对编程情况:良好,互相学习探讨的过程中,加深了对算法的印象和理解。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步