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. 算法在ros中应用_烟火检测算法——中伟视界人工智能算法AI在智慧工地、石油中的应用_腾讯新闻...
  2. DataSet case sensitive issue
  3. html怎么做半圆形按钮,css3做出半圆弧线
  4. linux 8051 编译,[编译] 3、在Linux下搭建51单片机的开发烧写环境(makefile版)
  5. Java中的Switch都支持String了,为什么不支持long?
  6. 洛谷P2144 bzoj1002 [FJOI2007]轮状病毒 (高精度板子)
  7. python学习——matplotlib库——散点图
  8. 开发者如何谈判才能获得更高的薪水?
  9. C#按指定长度分割字符串
  10. MVC页面重定向'页面跳转
  11. Android框架揭秘-JAVA服务框架
  12. spring boot+Quartz+数据库存储
  13. HTML做成信纸格式,css实现一个写信的格式_html/css_WEB-ITnose
  14. Linux 利用date命令进行时间戳转换
  15. 搜狗微信 长链接转微信链接
  16. 接口压力测试数据的完整性校验
  17. linux服务器单向ping不通,Linux下的单向ping通问题
  18. Excel小技巧,隔行变色,多行变色
  19. 网易邮箱大师添加附件显示服务器连接失败,网易邮箱大师如何添加Word附件 添加附件方法步骤详细介绍...
  20. MATLAB图形计算器去广告,多功能科学图形计算器(Mathlab)

热门文章

  1. 电脑开机出现奇怪字符_电脑开机出现一串字符,进不来桌面
  2. 本地yum源搭建——ftp源
  3. 1.第一章,数据的处理
  4. 一文带你看透短信验证码
  5. 小学计算机走进智慧城堡教案,重大版(第八版)小学五年级下册信息技术教案设计(修改)-邓荣.doc...
  6. 密码登录两种设计方法
  7. 2021到2022,从学生成长为职场人(面试打工指南)
  8. 安装WinPE到移动硬盘隐藏分区菜鸟篇(USB-HDD启动方式)
  9. 怪物猎人ol配装器java_怪物猎人ol配装器
  10. 嵌入式蓝牙耳机音频软件开发领域词汇