zoukankan      html  css  js  c++  java
  • 分支限界法

    一、分支限界法的基本思想

      在扩展结点处,先生成其所有的儿子结点(分支),然后再从当前的活结点表中选择下一个扩展结点。为了有效地选择下一扩展结点,加速搜索的进程,在每一活结点处,计算一个函数值(限界),并根据函数值,从当前活结点表中选择一个最有利的结点作为扩展结点,使搜索朝着解空间上有最优解的分支推进,以使尽快找出一个最优解。

      (1)活结点:如果已生成一个结点而它的所有儿子结点还没有全部生成,则这个结点叫做活结点。

      (2)扩展结点:当前正在生成其儿子结点的活结点叫扩展结点(正扩展的结点)。

      (3)死结点:不再进一步扩展或者其儿子结点已全部生成的结点就是死结点。

      (4)解空间:对于问题的一个实例,解向量满足显式约束条件的所有多元组,构成了该实例的一个解空间。

      (5)广度优先的问题状态生成法:在一个扩展结点变成死结点之前,它一直是扩展结点。

    二、回溯法和分支限界法的比较

      分支限界法与回溯法的不同:

      (1)求解目标:回溯法的求解目标是找出解空间树中满足约束条件的所有解,而分支限界法的求解目标则是找出满足约束条件的一个解,或是在满足约束条件的解中找出在某种意义下的最优解。 

      (2)搜索方式的不同:回溯法以深度优先的方式搜索解空间树,而分支限界法则以广度优先或以最小耗费优先的方式搜索解空间树。

    图1.1 回溯法和分支限界法的比较

  • 相关阅读:
    闭包总结
    执行上下文总结
    下拉列表
    练习 九九乘法表
    JavaScript中break和continue的区别
    JaveScript遍历数组的方法
    将一个块级元素水平和垂直居中的方法
    ECMAScript 中最常见的一个问题是字符串连接的性能
    JS 一些题目 难点
    JS闭包
  • 原文地址:https://www.cnblogs.com/cao-lei/p/6901246.html
Copyright © 2011-2022 走看看