企业项目管理、ORK、研发管理与敏捷开发工具平台

网站首页 > 精选文章 正文

基本算法——分支定界法(基本算法的特征)

wudianyun 2025-03-13 21:09:40 精选文章 34 ℃

“分枝界限法”把问题的可行解展开如树的分枝,再经由各个分枝中寻找最佳解。

采用广度优先产生状态空间树的结点,并使用剪枝函数的方法称为分枝限界法。
所谓“
分支”是采用广度优先的策略,依次生成扩展结点的所有分支(即:儿子结点)。
所谓“
限界”是在结点扩展过程中,计算结点的上界(或下界),边搜索边减掉搜索树的某些分支,从而提高搜索效率。

分支定界法设计思想:

  • 先确定一个合理的定界函数
  • 由定界函数确定目标函数的界【down,up】
  • 仍以穷举法的解空间树为基础,但以广度优先的原理搜索该节点的所有孩子节点,分别估算这些孩子节点的目标函数的可能取值决定取舍
  • 如果某孩子节点的目标函数可能取值超出目标函数的界,则将其丢弃,因为从这个节点生成的解不会比目前已经得到的解更好;否则,将其加入待处理节点表(PT表,简称活节点表)
  • 一次从PT表中选取使目标函数取极值的节点成为当前扩展的节点,重复上述过程,直到找到最优解。

目标函数的界【down,up】的确定:

  • 对最大化问题

up由定界函数确定,down由眸子启发方式得到,如贪心算法

  • 对最小化问题

donw由定界函数得到,up由某种启发方式得到,如贪心算法

分支定界法复杂性:

  • 一个更好的定界函数,通常需要花费更多的时间计算相应的目标函数值,而且对于具体的问题实例,通常需要进行大量的实验,才能确定一个好的定界函数;
  • 由于分支定界法对解空间树中节点的处理是跳跃式的,因此,在搜索到某个叶子节点得到最优解时,为了从该叶子节点求出对应的最优解中的各个分量,需要对每个扩展节点保存该节点到根节点的路径
  • 算法需要维护一个待处理节点PT表,并且需要在PT表中快速查找取得极值的节点,等等。这都需要较大的存储空间,在最坏的情况下,分支定界法需要的空间复杂性是指数级的。

Tags:

最近发表
标签列表