分支限界法

一.基本概念

1.问题状态:树上任意一个结点是一个状态结点
2.状态空间:由根到其他状态的所有路径
3.答案状态:满足约束的一个叶子结点对应一个解答
4.状态空间树:表示状态空间的树
5.活结点:一个自身已经生成但其儿子还没有全部生成的结点
6.E-结点:一个正在产生儿子的结点
7.死结点:一个所有儿子已经产生的结点

二.搜索方法

1.广度优先搜索
2.深度优先搜索
3.启发式搜索:从初始状态开始,每次选择最有可能达到终止状态的结点进行搜索

分支限界法与回溯法的不同:
1.搜索方式不同:回溯法以深度优先的方式搜索解空间树,而分支限界法则以广度优先或以最小耗费优先的方式搜索解空间树
2.求解目标:回溯法的求解目标是找出解空间树中满足约束条件的所有解,分支限界法的求解目标则是找出满足约束条件的一个解,或是在满足约束条件的解中找出在某种意义下的最优解

三.搜索方法中的剪枝优化

搜索的进程可以看作是从树根出发,遍历一棵倒置的树——搜索树的过程。剪枝就是通过某种判断避免一些不必要的遍历过程,剪去搜索树中的某些枝条。
剪枝的原则

  • 正确性
  • 准确性
  • 高效性
四.算法思想

分支限界法常以广度优先或以最小耗费(最大效益)优先的方式搜索问题的解空间树。在分支限界法中,每一个活结点只有一次机会成为扩展结点。活结点一旦成为扩展结点,就一次性产生其所有儿子结点。在这些儿子结点中,导致不可行解或导致非最优解的儿子结点被舍弃,其余儿子结点被加入活结点表中。
此后,从活结点表中取下一结点成为当前扩展结点,并重复上述结点扩展过程。这个过程一直持续到找到所需的解或活结点表为空时为止。
搜索方式有以下三种:
1.FIFO搜索
在这里插入图片描述
2.LIFO搜索
在这里插入图片描述

3.优先队列式搜索
在这里插入图片描述

你可能感兴趣的:(算法,算法)