蓝桥:货箱装载问题

蓝桥:货箱装载问题

问题

问题
在这里插入图片描述
一共有n个货物,要选择其中的那些部分放进去,这是选择子集问题,哪些问题放进去使得载重量尽可能多,放或者不放,每一个可行解只有两个选择

在这里插入图片描述
这个问题相对于0,1背包问题还要考虑价值,这个只要考虑重量

在这里插入图片描述
这个问题的可行不可行就是船的载重量
在这里插入图片描述
每一个节点都要算一下剪枝函数,第一个没有放就是0,左边走的是1,这个问题放进去,当前放进来就是8,小于w,可以继续往下扩展,再走左节点,就是14,不可以,利用约束条件,所以把14这个节点给减掉,作为死节点,所以下面的节点全部都被减掉了,回溯,回溯到8,右节点,走0,代表第二个问题不放,8走1到10,到13不行,1,0,1,0就是一个最优解,回溯算法要走完才能结束,所以这个算法与回溯算法的版本差不多相同,
在这里插入图片描述
在这里插入图片描述
一个叫约束函数,还有一个限界函数,所以这个算法还可以进行优化
我们假设我们还没走进去的货物都放进来,这个是求最大值的问题,其实是存在一个上界,最上能达到什么可能性,也有一个上界的问题,如果我要走的问题的上界,还不如我找到的最优值,所以就可以减掉了,如果我们找到的最大值得还比他小,所以就不用走了,这就是在前面算法的基础上面我们加了一个限界函数
在这里插入图片描述
为什么是19,ri要放进去的总重量8+6+2+3;
所以上界问题是19,放入bi,所以放入8,剩下放的还有11,所以也是19,增加的重量到达14,总限制还是19没变,(111),其实到这个步骤我们已知道是死节点了,以为大于W,所以用约束条件把他砍掉了,回溯,变为13了,把6砍掉了,到达10/13时,我们找到一个最优值,所以我们更新最优值,best=10;走0,bi值变为11了,b(i)=ci(8)+还没考察的物品即为3,所以8+3为11,又走到叶子节点,所以我们就更新,这个最优解比我们找到的最优解要大,所以进行更新,在往下走的过程中我们看到在走的时候我们看到最优值为11,比我们前一任的最优值来的大,所以可以往下走,如果来的小,就没必要来了,总的重量肯定来的比他小,所以就没比要了,当第一个物体不放进去,就变为6+2+3=11,这时候节点判断出ci和bi,ci没问题,沿着这个路径的最大值只可能是11,没必要进行下一步,虽然可以找到另一种方法,但这个题目是要找到最优值,并不是要找到如何放什么,没有考虑到价值问题
在这里插入图片描述
在这里插入图片描述
这题既有Ci和Bi,这个问题是构造最优解,如果要构造最优解值,找到最优值要把这条路径给写下来
在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

向上Claire

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值