`
yangliuy
  • 浏览: 65941 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

NYU AI作业习题-活动安排问题 BFS+DFS Iterative deepening depth-first search

 
阅读更多

题目链接 http://cs.nyu.edu/courses/spring12/CSCI-GA.2560-001/prog1.html

题目大意:给定n个任务的时间、价值及先后序关系,求一个可行的任务子集,使得时间之和不大于deadline,价值之和不小于targetVaule,且不可出现逆序。

算法思路:题目已经给出算法,转化为状态空间搜索问题(tree-structured state space search problem),先对结点拓扑排序,存储前序的结点关系,然后先对状态搜索树进行BFS,可行的状态压入队列,到达到限制值后,再以队列中的状态为起点进行迭代深入搜索(Iterative deepening depth-first search)。迭代深入搜索算法就是从状态空间搜索树中某一结点如根结点开始,多次迭代DFS,每次DFS设置最大搜索深度depth,depth不断递增至搜索至树叶,伪代码如下



迭代深入搜索算法具体参见维基百科http://en.wikipedia.org/wiki/Iterative_deepening_depth-first_search

此题求解源代码如下


测试代码



分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics