对于分支界限法的理解(补出门门票-week13,结对伙伴对我提的问题的答案)
- 首先我的结对伙伴给我提出了一个这样的问题:
- 使用分支界限法求解“背包问题”的步骤。
- 当时我是这样回答他的:
- ub=v+(W-w)x(v(i+1)/w(i+1))
- 这个问题我在课上也没有理解清楚,因为我不知道ub是怎么算出来的。。。(虽然公式给了我,但我还是不理解)所以我准备周五去问问小助教这个问题如何求解,问题答案将在这周博客内容里体现。
- 我问过小助教之后,他从PPT下拉出来了备注(我居然忽略了备注)
- 于是我就把电脑抱回去自己看了。
对于分支界限法的疑惑
- 1、ub是什么,为什么背包没装物品的时候ub可以是100,也可以是60?
- 2、为什么当背包中只存在物品1的时候,ub是会发生改变的?
问题的答案(自己理解的)
- 1、ub是理论上的最优上界,就是我要放的东西(假如说是物品1)要把背包放满能值多少钱。
- 那么为什么会等于100呢?物品1重量不是4吗?最多不是只能放两个ub=80吗?
- 是的,没错,但我们这里说ub是理论上的最优上界。我们要考虑的仅仅是背包的容量还有物品的单价,不去考虑物品的总重量(40),只考虑单价的重量(10)。于是ub=10x10=100。
- 那么为什么当我们不放物品1的时候ub=60呢?
- 这就要用到公式了:ub=v+(W-w)x(v(i+1)/w(i+1))
- 当我们不放物品1时,第二顺位要放的物品是物品2,所以公式中的v(i+1)就等于物品2的价值(42),w(i+1)就等于物品2的重量(7)。
- 而因为我们什么东西也没有放。
- 所以v=0,w=0,W还是不变等于10。
- 所以当我们不放物品1时ub=10x6=60。
- 2、当背包中只存在物品1时,ub之所以会变化是因为接下来要放的东西不同了。
- 在ub=76的时候,背包中接下来要放的是物品2。
- 也就是说,此时的v(i+1)=42、w(i+1)=7。
- 但物品2的重量加上物品1的重量等于11,超过了背包容量(10)。所以我们接下来要放物品3。
- 那么当我们要放物品3时,此时v(i+1)和w(i+1)已经不再是物品2的值了,而是v(i+1)等于物品3的v3=25、w(i+1)等于物品3的w3=5。
- 所以此时公式应该是:40+(10-4)×5=70。
感想
- 其实PPT下面的备注说的已经非常的清楚,但是我还是希望我能用自己理解的方式写在博客中。
- 而且我一开始真的没看懂PPT上面的备注······

对于分支界限法的理解(补出门门票-week13,结对伙伴对我提的问题的答案)的更多相关文章
- 对"构建之法“的理解和困惑
对"构建之法"的理解和困惑 本人"学沫沫"一个,对于之前的编程学习虽不大"感冒",但秉着对自己负责的态度进行了基础学习. ...
- rt-thread中软件定时器组件超时界限的一点理解
@2019-01-15 [小记] 对 rt-thread 中的软件定时器组件中超时界限的一点理解 rt_thread_timer_entry(void *parameter)函数中if ((next_ ...
- git的使用理解(分支合并的使用理解,多人编程的解决方案)
本文主要记录了对git日常使用的一些理解,主要是对git分支的一些感悟. git强大的版本控制系统,之前也使用过SVN,感觉上git对于多人开发的版本控制更加强大,特别是最近对git分支的使用,更是深 ...
- 多元Huffman编码变形—回溯法
一.问题描述 描述 在一个操场的四周摆放着n堆石子.现要将石子有次序地合并成一堆.规定在合并过程中最多可以有m(k)次选k堆石子合并成新的一堆,2≤k≤n,合并的费用为新的一堆的石子数.试设计一个算法 ...
- 数据结构(DataStructure)与算法(Algorithm)、STL应用
catalogue . 引论 . 数据结构的概念 . 逻辑结构实例 2.1 堆栈 2.2 队列 2.3 树形结构 二叉树 . 物理结构实例 3.1 链表 单向线性链表 单向循环链表 双向线性链表 双向 ...
- 算法设计与分析基础 (Anany Levitin 著)
第1章 绪论 1.1 什么是算法 1.2 算法问题求解基础 1.2.1 理解问题 1.2.2 了解计算设备的性能 1.2.3 在精确解法和近似解法之间做出选择 1.2.4 算法的设计技术 1.2.5 ...
- 启发式搜索技术A*
开篇 这篇文章介绍找最短路径的一种算法,它的字我比较喜欢:启发式搜索. 对于入门的好文章不多,而这篇文章就是为初学者而写的,很适合入门的一篇.文章定位:非专业性A*文章,很适合入门. 有图有真相,先给 ...
- 基于分支限界法的旅行商问题(TSP)一
旅行推销员问题(英语:Travelling salesman problem, TSP)是这样一个问题:给定一系列城市和每对城市之间的距离,求解访问每一座城市一次并回到起始城市的最短回路.它是组合优化 ...
- 利用分支限界法求解单源最短路(Dijkstra)问题
分支限界法定义:采用Best fist search算法,并使用剪枝函数的算法称为分支界限法. 分支限界法解释:按Best first的原则,有选择的在其child中进行扩展,从而舍弃不含有最优解的分 ...
随机推荐
- webpack3配置字体图标和打包相关问题
webpak配置字体图标有两种方式 一.将字体图标和css打包到同一个文件中. 1.首先需要安装url-loader npm install --save-dev url-loader 2.相关配置如 ...
- 【BZOJ1095】捉迷藏(动态点分治)
[BZOJ1095]捉迷藏(动态点分治) 题面 BZOJ 题解 动态点分治板子题 假设,不考虑动态点分治 我们来想怎么打暴力: \(O(n)DP\)求树的最长链 一定都会.不想解释了 所以,利用上面的 ...
- 【NOIP2014】【洛谷1941】【CJOJ1672】飞扬的小鸟
题面 描述 Flappy Bird 是一款风靡一时的休闲手机游戏.玩家需要不断控制点击手机屏幕的频率来调节小鸟的飞行高度,让小鸟顺利通过画面右方的管道缝隙.如果小鸟一不小心撞到了水管或者掉在地上的话, ...
- lodash源码分析之数组的差集
外部世界那些破旧与贫困的样子,可以使我内心世界得到平衡. --卡尔维诺<烟云> 本文为读 lodash 源码的第十七篇,后续文章会更新到这个仓库中,欢迎 star:pocket-lodas ...
- [.Net Core] 简单使用 Mvc 内置的 Ioc
简单使用 Mvc 内置的 Ioc 本文基于 .NET Core 2.0. 鉴于网上的文章理论较多,鄙人不才,想整理一份 Hello World(Demo)版的文章. 目录 场景一:简单类的使用 场景二 ...
- centos7.2 配置内网ntp服务器进行时间同步
(一)修改/etc/ntp.conf 配置文件,注意红色部分,其他部分不需要改 ########################################################### ...
- 团体程序设计天梯赛 L1-034.点赞
描述 微博上有个"点赞"功能,你可以为你喜欢的博文点个赞表示支持.每篇博文都有一些刻画其特性的标签,而你点赞的博文的类型,也间接刻画了你的特性.本题就要求你写个程序,通过统计一个人 ...
- Django 2.0 学习(02):Django视图和URL(上)
接上篇博文,接下来我们以具体代码例子来说明Django的基本流程. 创建项目 使用Win+R,输入cmd进图windows命令行模式: 再你想要存放项目工作的磁盘,输入下面命令: django-adm ...
- 微信小程序基于腾讯云对象存储的图片上传
在使用腾讯云对象存储之前,公司一直使用的是传统的FTP的上传模式,而随着用户量的不断增加,FTP所暴露出来的问题也越来越多,1.传输效率低,上传速度慢.2.时常有上传其他文件来攻击服务器,安全上得不到 ...
- 在Jenkins中配置执行远程shell命令
1.想要 远程登录到linux服务器并执行相应的shell脚本,需要在jenkins上安装插件enkins SSH plugin 2. 安装了这个插件后,进入系统的配置管理中配置 SSH remote ...