当前位置:   article > 正文

算法学习——分支限界法_分支限界算法经典例题

分支限界算法经典例题

实质

回溯法的改进版本

 

与回溯法的比较

不同:回溯法为“盲目搜索”(DFS),分支限界法为最“好”优先,智能搜索

共同:统称为树搜索技术,都在搜索解空间树,并剪枝

 

缺陷

只适用于组合优化问题

 

程序框架

  1. // 以求最大值为例
  2. public void branchbound(){
  3. // 初始化
  4. max = 0;
  5. bestx = [x0,....,xn-1]; // 保存每层的最优结果
  6. PriorityQueue queue = new PriorityQueue();
  7. queue.add(root);
  8. // 循环
  9. while(!queue.isEmpty()){
  10. node = queue.poll();
  11. if(node.up <= max){
  12. break;
  13. }
  14. // 依次遍历子节点
  15. for(each of subNode){
  16. if(!consttraint(subNode)){
  17. continue;
  18. }
  19. // 若子节点非叶节点
  20. if(subNode.layer < n){
  21. queue.add(subNode);
  22. }else {
  23. max = subNode.v;
  24. bestx = subNode.x;
  25. }
  26. }
  27. }

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小桥流水78/article/detail/798967
推荐阅读
相关标签
  

闽ICP备14008679号