赞
踩
回溯法的改进版本
不同:回溯法为“盲目搜索”(DFS),分支限界法为最“好”优先,智能搜索。
共同:统称为树搜索技术,都在搜索解空间树,并剪枝。
只适用于组合优化问题
- // 以求最大值为例
- public void branchbound(){
-
- // 初始化
- max = 0;
- bestx = [x0,....,xn-1]; // 保存每层的最优结果
- PriorityQueue queue = new PriorityQueue();
- queue.add(root);
-
- // 循环
- while(!queue.isEmpty()){
- node = queue.poll();
-
- if(node.up <= max){
- break;
- }
-
- // 依次遍历子节点
- for(each of subNode){
- if(!consttraint(subNode)){
- continue;
- }
-
- // 若子节点非叶节点
- if(subNode.layer < n){
- queue.add(subNode);
- }else {
- max = subNode.v;
- bestx = subNode.x;
- }
-
- }
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。