一、分支限界法
- 分支限界法类似于回溯法,也是一种在问题的解空间树T上搜索问题解的算法。但:
- 1.分支限界法与回溯法的求解目标不同。回溯法的求解目标是找出满足约束条件的所有解,而分支限界法的求解目标是找出满足约束条件的一个解,或是满足约束条件的最优解
- 2.分支限界法与回溯法在解空间树T上的搜索方式也不相同。回溯法以深度优先的方式搜索解空间树T,而分支限界法则以广度优先或以最小耗费优先的方式搜索解空间树T
1.分支限界法的思想
- 分支限界法首先将根结点加入活结点表(用于存放活结点的数据结构),接着从活结点表种取出根节点,使其称为当前扩展结点,一次性生成其所有孩子结点,判断孩子结点是舍弃还是保留,舍弃那些导致不可行解或者导致非最优解的孩子结点,其余的被保留在活结点表种。再从活结点表种取出一个活结点作为当前扩展结点,重复上述过程,一直持续到找到所需的解或活结点表为空时为止。活结点表的实现通常有两种方法:一是先进先出队列;二是优先级队列