分支限界法LOGO1概述2分支限界法3应用举例LOGO1
概述搜索法在动态产生问题的解空间,并搜索问题的可行解或最优解
在生成的结点中,抛弃那些不满足约束条件(或者说不可能导出最优可行解)的结点
搜索方式深度优先搜索广度优先搜索LOGO1
概述方法1:深度优先搜索通常深度优先搜索法不全部保留结点,扩展完的结点从数据存储结构栈中弹出删去,这样,一般在数据栈中存储的结点数就是解空间树的深度,因此它占用空间较少
所以,当搜索树的结点较多,用其它方法易产生内存溢出时,深度优先搜索不失为一种有效的求解方法
概述方法2:广度优先搜索广度优先搜索算法,一般需存储产生的所有结点,占用的存储空间要比深度优先搜索大得多,因此,程序设计中,必须考虑溢出和节省内存空间的问题
但广度优先搜索法一般无回溯操作,即入栈和出栈的操作,所以运行速度比深度优先搜索快
分支限界法采用广度优先产生状态空间树的结点,并使用剪枝函数的方法称为分支限界法
所谓“分支”是采用广度优先的策略,依次生成扩展结点的所有分支(即:儿子结点)
所谓“限界”是在结点扩展过程中,计算结点的上界(或下界),边搜索边减掉搜索树的某些分支,从而提高搜索效率LOGO分支限界算法思想分支限界算法思想对对E-E-节点的扩充方式:引入节点的扩充方式:引入活节点表活节点表【【思想思想】】每个活节点有且仅有一次机会变成每个活节点有且仅有一次机会变成E-E-节节点
当一个节点变为当一个节点变为E-E-节点时,则生成从该节点移节点时,则生成从该节点移动一步即可到达的所有新节点
动一步即可到达的所有新节点
在生成的节点中,在生成的节点中,抛抛弃弃那些不可能导出(最优)可行解的节点,其余节点那些不可能导出(最优)可行解的节点,其余节点加入加入活节点表,然后从表中选择一个节点作为下一个活节点表,然