首页 > 其他分享 >证明贪心法在货箱装载以及连续背包中的到的解为最优解

证明贪心法在货箱装载以及连续背包中的到的解为最优解

时间:2023-02-13 15:48:54浏览次数:29  
标签:箱子 背包 货箱 解为 装船 法在 最优 贪心

货箱装船问题的简化:

目标函数:装载的集装箱数目
极大化目标函数。
贪心标准:在还没装船的集装箱中选择重量最小的集装箱。
按上述策略,重量最小的集装箱先装,依此类推。
算法:首先按重量从小到大对集装箱排序并依次装入直到超过船的载重量。


上述贪心法产生的解是最优解, 证明如下:

假设所有箱子已经按照重量由轻到重进行排序。

设货箱装船问题的贪心解Z为(z1,…,zn),是(1,1,…,1,0,0,…0)的形式;最优解为(y1,…,yn),其初始形式不是(1,1,…,1,0,0,…0)的形式。

设x是第一个满足“zx = 1且yx = 0”的箱子, 则从Y中选取箱子w,满足w > x且yw=1, 令yx = 1,yw = 0,即从最优解中扔出一个较重的箱子w,放入一个较轻的箱子x,易知这个变化不会使船上箱子的重量之和超过船的载重量。

继续遍历寻找满足“zx=1且yx=0”的箱子x,反复进行上述步骤有限次,将得到贪心解,说明贪心解与最优解等价。

Q:这个操作使得得到的新解真的与之前等价吗,他只是满足不超载的限制而已。
A:等价,因为货箱装船问题只要求得到箱子的总数目最大,上述操作不改变最优解中箱子的总数目,所以每次操作完得到的解从某种意义上说是等价的= =;但在01背包里要求总价值最大。货箱装船是特殊的01背包问题,每个箱子的价值都是1.


而在真正的非连续01背包中,贪心法往往得不到最优解,而选择退而求其次,使用K阶优化算法得到一个误差值有限(100/(k+1)%)的近似解。算法的时间复杂度为O(n^(k+1))。对于连续背包问题,可以证明,按照价值密度排序的贪心算法得到的解是最优解。
证明:
假设所有物品已按价值密度按从大到小进行排序。
最优解X为(x1,x2,x3,…xk,…xn);贪心解Y为(y1,y2,y3,…yk,…yn),其形式为(1,1,1…,1,k,0,…0,0,0),其中0 <= k <= 1.
假设m是满足xi != yi 的最小下标,可知m < k且xm > ym
此时令ym = xm,用X的后面部分等体积地与之交换,因为后面部分物体的价值密度一定更小,所以交换后得到的是一个更优的解,这与X是最优解矛盾,所以不存在任何一个i,使得xi != yi ,也就是说对每一个i,xi  == yi 恒成立。即最优解是且只能是贪心解。

标签:箱子,背包,货箱,解为,装船,法在,最优,贪心
From: https://www.cnblogs.com/yuxiyuxi/p/17116555.html

相关文章

  • 基于免疫优化算法在物流配送多中心选址的matlab仿真
    1.算法描述人工免疫算法(ImmuneAlgorithm)是一种具有生成+检测(generateandtest)的迭代过程的群智能搜索算法。从理论上分析,迭代过程中,在保留上一代最佳个体的前提下,免......
  • 基于免疫优化算法在物流配送多中心选址的matlab仿真
    1.算法描述       人工免疫算法(ImmuneAlgorithm)是一种具有生成+检测(generateandtest)的迭代过程的群智能搜索算法。从理论上分析,迭代过程中,在保留上一代最......
  • 浅谈最短路算法在信息学竞赛中的应用
    最短路温馨提示:如果下文档中没有做特殊提示,默认所有下标从\(1\)开始,并且默认\(n,m\)同阶因为在生活当中,路径的长度大多为正数,没有特殊说明,不考虑长度为负数的情况\(s\)......
  • 不理解为什么输出是2
    提问:    这个else不是要和最近一个没有匹配的if配在一起吗,第一个if后面的值为false,难道还执行吗,不太懂。才开始学习,所以问问大家?解答: 把括号补充好你看看,第一个......
  • 《随机算法在信息学竞赛中的应用》做题记录
    目录《随机算法在信息学竞赛中的应用》做题记录MSTONESProblemSolutionP3567[POI2014]KUR-CouriersProblemSolutionCF364DGhdProblemSolutionTKCONVEXProblemSolutionP12......
  • Markdown语法在Typora中的使用
    文件格式后缀thenameofthedocument.md相关语法标题类:#+space一级标题##+space二级标题以此类推。一共支持六级标题。字体类:*号类:一个*****包裹:斜体​ ......
  • 微信联系人一键导出的方法在这里
    6-1对于做微信私域流量、做网络销售的公司,有时候需要对公司的客户或者运营微信做一下备份,防止出现意外丢失的情况,但是在网上找的别的工具要么使用比较不方便,要么速度比较慢,......
  • 微信通讯录一键导出的方法在这里
    6-2​有过一段时间,有一些做网销的朋友经常问我,如何导出微信的通讯录联系人,他们说在网上找了一些工具,使用非常繁琐,并且很慢。​我了解到原来是他们有些业务员或者销售离职,经......
  • SVM算法在项目实践中的应用!
     Datawhale干货 作者:苏丽敏,Datawhale优秀学习者,北理工计算机硕士支持向量机(SupportVectorMachine)是Cortes和Vapnik于1995年首先提出的,它在解决小样本、非线性及高维模......
  • wpf Blazor Hybrid .net7 程序 无法在 win7 中运行故障一例.
    首先win7要满足以下条件https://www.cnblogs.com/densen2014/p/16954059.html然后检查程序目录中是否存在一个名为 [程序名称].staticwebassets.runtime.json 的文件.......