分支限界法

参考:计算机算法设计与分析(第五版)王晓东

一、简介

分支限界法常以广度优先或以最小耗费优先的方式搜索问题的解空间树,目标是找到满足约束条件的解,或者找到符合某种优化目标的解。它结合了分支和界限的思想,通过剪枝策略有效地减少搜索空间。

搜索策略:在扩展结点处,先生成其所有儿子结点,再从当前的活结点表中选择下一个扩展节点。为了有效地选择下一扩展节点,加速搜索进程,在每个活结点处,计算一个函数值(限界),并根据函数值,从当前活结点表中选择一个最有利的结点作为扩展结点,使搜索朝着解空间上有最优解的分支推进,以便尽快地找出一个最优解。

适用:离散最优化问题。

二、分支限界法和回溯法

分支限界法类似回溯法,也是在问题的解空间上搜索问题解的算法。一般情况下,分支限界法与回溯法的求解目标不同。回溯法的求解目标是找出解空间中满足约束条件的所有解,而分支限界法的求解目标是找出满足约束条件的一个解,或是在满足约束条件的解中找出使某一目标函数值达到极大或极小的解,即在某种意义下的最优解。

回溯法以深度优先的方式搜索解空间,分支限界法则以广度优先或以最小耗费优先的方式搜索解空间。

三、扩展结点方式

从活结点列表中选择下一扩展结点的不同方式导致不同的分支限界法。最常见的有以下两种方式。

1、队列式(FIFO)分支限界法

队列式分支限界法将活结点表组织成一个队列,并按队列的先进先出的原则选取下一个结点为当前扩展结点。

2、优先队列式分支限界法

优先队列式的分支限界法将活结点表组织成一个优先队列,并按优先队列中规定的结点优先级选取优先级最高的下一个结点成为当前扩展结点。

四、例题(C++,随缘更新)

相关推荐
chao1898446 小时前
基于 SPEA2 的多目标优化算法 MATLAB 实现
开发语言·算法·matlab
沪漂阿龙6 小时前
AI大模型面试题:支持向量机是什么?间隔最大化、软间隔、核函数、LinearSVC 全面拆解
人工智能·算法·支持向量机
little~钰7 小时前
倍增算法和ST表
算法
知识领航员8 小时前
蘑兔AI音乐深度实测:功能拆解、实测表现与适用场景
java·c语言·c++·人工智能·python·算法·github
薛定e的猫咪8 小时前
因果推理研究方向综述笔记
人工智能·笔记·深度学习·算法
如何原谅奋力过但无声9 小时前
【灵神高频面试题合集06-08】反转链表、快慢指针(环形链表/重排链表)、前后指针(删除链表/链表去重)
数据结构·python·算法·leetcode·链表
平行侠9 小时前
037插入排序 - 整理扑克牌的算法
数据结构·算法
ECT-OS-JiuHuaShan9 小时前
彻底定理化:从量子纠缠到量子代谢
数据库·人工智能·学习·算法·生活·量子计算
爱喝雪碧的可乐10 小时前
2026 腾讯广告算法大赛优秀方案启示:行为条件化多模态自回归生成推荐摘要
算法·数据挖掘·回归·推荐系统·推荐算法