算法第5章作业

  1. 你对回溯算法的理解(2分)
      回溯法是一种利用深度优先的方式系统搜索问题的解的办法,而正是利用“回溯”的特性,它可以把解空间都“走”一遍,在“走”的过程中记录和寻找所有可行解或者最优解,进而来求解最优解。在包含问题的所有解的解空间树中,按照深度优先搜索的策略,从根结点出发深度探索解空间树。当探索到某一结点时,要先判断该结点是否包含问题的解,如果包含,就从该结点出发继续探索下去,如果该结点不包含问题的解,则逐层向其祖先结点回溯。

  2. 请说明“子集和”问题的解空间结构和约束函数(2分)
      对于问题的解空间结构通常以树或图的形式表示,常用的两类典型的解空间树是子集树和排列树。当所给的问题是从n个元素的集合S中找到S满足某种性质的子集时,相应的解空间树称为子集树。在这个树的每一个节点中引出两个分支, 左分支标记为0, 右分支一个标记为1. 标记为0的意思是左分支相连接的孩子节点不被选中, 标记为1表示引出的被选中。
      约束函数通过设置类似if(ans+weight[i]

  3. 请说明在本章学习过程中遇到的问题及结对编程的情况(1分)
      一开始没有意识到约束函数的重要性,只是单纯的利用回溯法进行计算,导致有些答案会出现超时的情况。后来意识到这个问题以后,对自己写的算法进行了优化,就能通过了。结对编程情况良好,能够相互学习。

你可能感兴趣的:(算法第5章作业)