36、固定数量箱子的装箱问题再探讨

固定数量箱子的装箱问题再探讨

1. 装箱算法概述

当最优装箱方案所需箱子数 OPT (I) = K 时,装箱算法步骤如下:
1. 设置 x = 4,y = 2,将物品集合 I 划分为三个组:Ilarge(大物品组)、Imedium(中等物品组)和 Ismall(小物品组)。
2. 考虑所有可行的预分配方案,将大物品分配到 K 个箱子中。
3. 对中等物品的尺寸进行几何舍入。对于每个区间 (2−(r+1), 2−r],对物品集 Ir 应用线性分组,组大小为 ⌈2r / (x log(K))⌉,并计算舍入后的物品集 Jr 和 J′r。
4. 对于每个预分配方案,使用动态规划将 Jr 中的中等物品分配到箱子 b1, …, bK 中,并将 J′r 放入箱子 bK + 1。
5. 对于某个预分配方案,得到一个可行的 K + 1 个箱子的装箱方案(由于 OPT (I) = K,必然存在这样的方案),将舍入后的物品替换为其原始尺寸,然后使用贪心算法将小物品分配到箱子 b1, …, bK + 1 中。

2. 装箱问题的参数化难度

目标是证明一元装箱问题(Unary Bin Packing)在以箱子数量 k 为参数时是 W[1]-难的。在这个版本的装箱问题中,给定一组用一元编码的整数物品尺寸,以及两个整数 b 和 k,任务是判断这些物品是否能装入 k 个容量为 b 的箱子中。

为了证明该问题的 W[1]-难,引入了一个中间问题,即涉及固定长度 c 的向量和不同尺寸箱子的一元向量装箱问题(Unary Vector Bin Packing)。

对于固定的 c,定义 c - 一元向量装箱问题如下:给定一组 n

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值