分支限界算法。

分支限界法是一种在解空间树上寻找问题解的算法,与回溯法不同,它专注于找到一个解或最优解。算法通过广度优先或最小耗费优先的方式进行搜索,并使用限界函数排除非最优路径。常见的分支限界法类型包括队列式和优先级队列式,分别用于解决不同类型的问题,如装载问题等。
摘要由CSDN通过智能技术生成

分支限界法类似于回溯算法,是在问题的解空间树上搜索问题解的算法,主要体现在两点不同:
1.求解目标不同。回溯算法的求解目标是找出解空间树中满足约束条件的所有解,而分支限界法的求解目标是找出满足约束条件的一个解,或者是在满足约束条件的解中找出某种意义下的最优解。
⒉.搜索解空间树的方式不同。回溯算法以深度优先的方式搜索解空间树,而分支限界法则以广度优先或者以最小耗费优先的方式搜索解空间树。
分支限界算法基本思想:
分支限界法常以广度优先或以最小耗费(最大效益)优先的方式搜索问题的解空间树。在分支限界法中,每一个活结点只有一次机会称为扩展节点,活结点一旦成为扩展节点,就一次性产生其所有儿子节点(分支),在这些儿子节点中,导致不可行解或是导致非最优解的儿子节点会被舍弃掉,其余儿子节点会被加入活结点表中。为了有效的选择下一个扩展节点加迭搜索K宿每Ht个活结点骨A薪兵个函数值(限界),并根据计算的函数值结果从当前活结点表中取下一个最有利的节点成为当前的扩展节点,使搜索朝着解空间树上最优解的分支推进。重复上述节点扩展过程,直到找到所需的最优解或者活结点表为空。
从活结点表中选择下一个扩展节点时,不同的方式会导致不同的分支限界法,常见有:

1.队列式(FIFO)分支限界法
a.—开始,根结点是唯一的活结点,根结点加入活结点队列。b.从活结点队列中取出队头结点后,作为当前扩展结点。
c.对当前扩展结点,先从左到右产生它的所有孩子节点,用约束条件检查,把所有满足约束函数的孩子节点加入活结点队列中。
d.再从活结点表中取出队首结点为当前扩展结点,重复上述过程,直到找到一个解或活结点队列为空为止。

⒉.优先级队列式分支限界法
a.对每一活结点计算一个优先级(某些信息的函数值

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值