1.问题描述:已知有N个物品和一个可以容纳M重量的背包,每种物品I的重量为WEIGHT,一个只能全放入或者不放入,求解如何放入物品,可以使背包里的物品的总效益最大。

2.设计思想与分析:对物品的选取与否构成一棵解树,左子树表示不装入,右表示装入,通过检索问题的解树得出最优解,并用结点上界杀死不符合要求的结点。

#include

struct good

{

int weight;

int benefit;

int flag;//是否可以装入标记

};

int number=0;//物品数量

int upbound=0;

int curp=0, curw=0;//当前效益值与重量

int maxweight=0;

good *bag=NULL;

void Init_good()

{

bag=new good [number];

for(int i=0; i {

cout<>bag[i].weight;

cout<>bag[i].benefit;

bag[i].flag=0;//初始标志为不装入背包

cout< }

}

int getbound(int num, int *bound_u)//返回本结点的c限界和u限界

{

for(int w=curw, p=curp; num {

w=w+bag[num].weight;

p=w+bag[num].benefit;

}

*bound_u=p+bag[num].benefit;

return ( p+bag[num].benefit*((maxweight-w)/bag[num].weight) );

}

void LCbag()

{

int bound_u=0, bound_c=0;//当前结点的c限界和u限界

for(int i=0; i {

if( ( bound_c=getbound(i+1, &bound_u) )>upbound )//遍历左子树

upbound=bound_u;//更改已有u限界,不更改标志

if( getbound(i, &bound_u)>bound_c )//遍历右子树

◆◆

评论读取中....

请登录后再发表评论!

◆◆

修改失败,请稍后尝试

分支限界法 java_分支限界法装载问题java相关推荐

  1. 布线问题分支限界法java_大型布线:Java云应用程序缺少的技术

    布线问题分支限界法java 您是否曾经想过,为什么大多数Java框架中的依赖项注入仅用于本地进程内服务而不是分布式服务? 我最近在2013年EMC世界大会上遇到了Paul Maritz的主题演讲 (跳 ...

  2. 01背包问题分支限界java_分支限界法-01背包问题

    1.分支限界法介绍 分支限界法类似于回溯法,也是在问题的解空间上搜索问题解的算法.一般情况下,分支限界法与回溯法的求解目标不同.回溯法的求解目标是找出解空间中满足约束条件的所有解:而分支限界法的求解目 ...

  3. 分支限界法 java_算法——分支限界法(装载问题)

    回溯法的求解目标是找出解空间中满足约束条件的所有解,想必之下,分支限界法的求解目标则是找出满足约束条件的一个解,或是满足约束条件的解中找出使某一目标函数值达到极大或极小的解,即在某种意义下的最优解. ...

  4. 分支限界法 java_算法java实现–分支限界法–单源最短路径问题 | 学步园

    单源最短路径问题的java实现(分支限界法) 具体问题描述以及C/C++实现参见网址 http://blog.csdn.net/liufeng_king/article/details/8900872 ...

  5. 分支限界法 01背包 java_分支限界法解决01背包问题

    分支限界法和之前讲的回溯法有一点相似,两者都是在问题的解的空间上搜索问题的解.但是两者还是有一些区别的,回溯法是求解在解的空间中的满足的所有解,分支限界法则是求解一个最大解或最小解.这样,两者在解这一 ...

  6. php中继承过来的类初始化顺序,java_图文详解Java中class的初始化顺序,class的装载 在讲class的初始化 - phpStudy...

    图文详解Java中class的初始化顺序 class的装载 在讲class的初始化之前,我们来讲解下class的装载顺序. 以下摘自<Thinking in Java 4> 由于Java ...

  7. 单源路径分支界限java_分支限界法—单源最短路径问题

    转自:http://www.cnblogs.com/chinazhangjie/archive/2010/11/01/1866136.html 分支限界法与回溯法 (1)求解目标:回溯法的求解目标是找 ...

  8. jsp中如何运行java_从上帝视角看Java如何运行

    有头发且有趣的码农万里挑一~ 06 有料叔 | 一位有故事的程序猿 JVM内存结构 可以看出JVM从宏观上可以分为 '内部'  及 '外部'  两个部分(便于记忆理解): '内部'包含:线程共享(公有 ...

  9. 随机森林 java_机器学习weka,java api调用随机森林及保存模型

    工作需要,了解了一下weka的java api,主要是随机森林这一块,刚开始学习,记录下. 了解不多,直接上demo,里面有一些注释说明: package weka; import java.io.F ...

最新文章

  1. zabbix 安装配置介绍
  2. 基于UDP协议的socket套接字编程 基于socketserver实现并发的socket编程
  3. 算法提高课-搜索-Flood fill算法-AcWing 1097. 池塘计数:flood fill、bfs
  4. mysql 建表,解决中文输入
  5. 请珍惜应届生的身份,这是你这辈子最大的一次优势,也是最后一次!
  6. 防火墙对nginx服务器有影响
  7. 00-02.PHP 网站假设 之 学习PHP语法 [James建站]
  8. linux一些好用的命令和快捷键
  9. python开发转行做数据分析_转行学IT,Java、Python、大数据选择学哪个发展好?
  10. 为什么好多人都要给Typec叫华为充电线?
  11. java 启动xms_关于java:启动JVM时-Xms和-Xmx参数是什么?
  12. 强人工智能和弱人工智能
  13. VMware安装win10 win2012(最详细最全操作)
  14. 题目---小Q定义了一种数列称为翻转数列: 给定整数n和m, 满足n能被2m整除。对于一串连续递增整数数列1, 2, 3, 4..., 每隔m个符号翻转一次, 最初符号为'-';。
  15. MySQL 数据库语句基础
  16. 设计模式之创建型——工厂模式(3种)
  17. 互动媒体技术作业——十二个“一”扩展版
  18. VMware磁盘变满——磁盘压缩——虚拟机瘦身
  19. 数控加工中产品粗糙度的缺陷产生原因与排除方法
  20. 企业微信API--消息推送

热门文章

  1. 从浏览器/操作系统市场占有率分析国人
  2. 新手如何建设属于自己的网站
  3. 整理了一下主流 Blog 程序
  4. JS获取对象属性的各种方式和区别(自身/原型属性、可枚举/不可枚举)
  5. word修改页眉页脚一直乱动
  6. linux php 升级,如何在linux中升级和切换php版本
  7. 【Java】ehcache | EhCache | 集成缓存EhCache
  8. 机器学习笔记之EM算法(二)EM算法公式推导过程
  9. 使用嵌套循环在控制台上输出九九乘法表
  10. 递归算法示例——计算N的阶乘