• 首先我的结对伙伴给我提出了一个这样的问题:
  • 使用分支界限法求解“背包问题”的步骤。
  • 当时我是这样回答他的:
  • 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,结对伙伴对我提的问题的答案)的更多相关文章

  1. 对"构建之法“的理解和困惑

    对"构建之法"的理解和困惑        本人"学沫沫"一个,对于之前的编程学习虽不大"感冒",但秉着对自己负责的态度进行了基础学习.   ...

  2. rt-thread中软件定时器组件超时界限的一点理解

    @2019-01-15 [小记] 对 rt-thread 中的软件定时器组件中超时界限的一点理解 rt_thread_timer_entry(void *parameter)函数中if ((next_ ...

  3. git的使用理解(分支合并的使用理解,多人编程的解决方案)

    本文主要记录了对git日常使用的一些理解,主要是对git分支的一些感悟. git强大的版本控制系统,之前也使用过SVN,感觉上git对于多人开发的版本控制更加强大,特别是最近对git分支的使用,更是深 ...

  4. 多元Huffman编码变形—回溯法

    一.问题描述 描述 在一个操场的四周摆放着n堆石子.现要将石子有次序地合并成一堆.规定在合并过程中最多可以有m(k)次选k堆石子合并成新的一堆,2≤k≤n,合并的费用为新的一堆的石子数.试设计一个算法 ...

  5. 数据结构(DataStructure)与算法(Algorithm)、STL应用

    catalogue . 引论 . 数据结构的概念 . 逻辑结构实例 2.1 堆栈 2.2 队列 2.3 树形结构 二叉树 . 物理结构实例 3.1 链表 单向线性链表 单向循环链表 双向线性链表 双向 ...

  6. 算法设计与分析基础 (Anany Levitin 著)

    第1章 绪论 1.1 什么是算法 1.2 算法问题求解基础 1.2.1 理解问题 1.2.2 了解计算设备的性能 1.2.3 在精确解法和近似解法之间做出选择 1.2.4 算法的设计技术 1.2.5 ...

  7. 启发式搜索技术A*

    开篇 这篇文章介绍找最短路径的一种算法,它的字我比较喜欢:启发式搜索. 对于入门的好文章不多,而这篇文章就是为初学者而写的,很适合入门的一篇.文章定位:非专业性A*文章,很适合入门. 有图有真相,先给 ...

  8. 基于分支限界法的旅行商问题(TSP)一

    旅行推销员问题(英语:Travelling salesman problem, TSP)是这样一个问题:给定一系列城市和每对城市之间的距离,求解访问每一座城市一次并回到起始城市的最短回路.它是组合优化 ...

  9. 利用分支限界法求解单源最短路(Dijkstra)问题

    分支限界法定义:采用Best fist search算法,并使用剪枝函数的算法称为分支界限法. 分支限界法解释:按Best first的原则,有选择的在其child中进行扩展,从而舍弃不含有最优解的分 ...

随机推荐

  1. hdu5730 Shell Necklace

    重温了这道cdq+FFT 讲白了就是不断对 dp[l~mid] 和 sh[1~r] 进行fft 得到 dp[mid+1~r] #include<bits/stdc++.h> using n ...

  2. 深入理解javascript中的事件循环event-loop

    前面的话 本文将详细介绍javascript中的事件循环event-loop 线程 javascript是单线程的语言,也就是说,同一个时间只能做一件事.而这个单线程的特性,与它的用途有关,作为浏览器 ...

  3. Linux之shell编程

    一.Bash变量 1) Bash变量与变量分类 1. 定义:变量是计算机内存的单元,其中存放的值可以改变 2. 变量命令规则 #变量名必须以字母或下划线开头,名字中间只能由字母.数字和下划线组成 #变 ...

  4. Linux之网络管理

    一.网络基础 1)ISO/OSI七层模型简介 ISO:国际标准化组织 OSI:开放系统互联模型 IOS:苹果操作系统(在计算机网络中,IOS是互联网操作系统,是思科公司为其网络设备开发的操作维护系统) ...

  5. [HNOI2015]亚瑟王

    题面在这里 题意 \(n\)张卡按照一定顺序排列,每轮从第\(1\)张开始考虑到最后一张,考虑一张卡时有\(p[i]\)的概率产生\(d[i]\)的贡献,产生贡献时直接退出该轮并在之后的考虑中直接跳过 ...

  6. [HNOI2010]BUS 公交线路

    题面 Bzoj Sol 状压很显然 重点在于转移:题目就相当与每\(p\)长度的车站必须有且仅有\(k\)个被经过 那么转移时状压的二进制一定要有\(k\)个一 且两个相邻转移的状态之间必须满足:设为 ...

  7. 设置ImageView显示的图片铺满全屏

    转自:http://m.blog.csdn.net/blog/wjwj1203/32334459   为适应不同屏幕的手机,ImageView显示的图片可能不铺满屏幕,如果定高的话,两边可能会出现空白 ...

  8. Spring Boot Actutaur + Telegraf + InFluxDB + Grafana 构建监控平台之应用数据分析

    本节将引入完美的granafa仪表板,在上节的基础上,并提出自己的一些监控数据的总结和看法 你可以有一个类似于这个的Dashboard,会引入监控Zimbra协作 本节环境采用的是centos7系统, ...

  9. Lego-美团点评接口自动化测试实践

    Lego-美团点评接口自动化测试实践 2018-02-07 转自:Lego-美团点评接口自动化测试实践 目录 一.概述  1.1 接口自动化概述  1.2 提高ROI    针对“减少投入成本”    ...

  10. 封装Jquery 合并table中任何同列数据

    封装代码: jQuery.fn.rowspan = function (colIdx) { //封装JQuery同列值相同合并小插件 return this.each(function () { va ...