zoukankan      html  css  js  c++  java
  • 回溯法解0/1背包问题

    我们前面说过,贪心算法用价值重量比对于可分割的背包问题是有效的,但对于0/1背包问题就无效的(0/1背包是不能分割,要就要,不要就不要)。本节用回溯法解0/1背包问题,求解过程如下:

    在搜索过程中,尽量沿着左儿子节点前进,当不能沿着左儿子节点继续前进时,就得到问题的一个部分解,并把搜索转移到

    右儿子子树。此时,估计由这个部分解所能得到的最大价值,把该值与当前的上界进行比较,如果高于当前的上界,就继续

    由右儿子子树向下搜索,扩大这个部分解,直到找到一个可行解,最后把可行解保存起来,用当前可行解的值刷新目标函数的

    上界,并向上回溯,寻找其他可能解;如果有部分所估计的最大值小于当前的上界,就丢弃正在搜索的部分解,直接向上回溯。

    向上回溯有2种情况:如果当前阶段是左儿子分支节点,就转而搜索相应的右儿子分支节点;如果当前的节点是右儿子分支节点,

    就沿着右儿子分支节点向上回溯,直到左儿子分支节点为止,然后再转而搜索相应的右儿子分支节点

  • 相关阅读:
    方法重写
    百度地图(5)-添加标注
    百度地图(3)-添加地图控件
    百度地图(2)-初始化地图
    GIS系统开发流程
    百度地图(1)- JavaScript API V3.0 对比 JavaScript GL API 1.0
    通过QGIS下载OSM数据
    深入理解 Spring 之源码剖析IOC
    FastDFS安装教程
    FastDFS简介
  • 原文地址:https://www.cnblogs.com/youxin/p/3274826.html
Copyright © 2011-2022 走看看