一个装箱问题。谢谢!!!

Paradin 2009-04-07 01:04:20
问题描述:设有编号为0、1、…、n-1的n种物品,体积分别为v0、v1、…、vn-1。将这n种物品装到容量都为V的若干箱子里。约定
这n种物品的体积均不超过V,即对于0≤i<n,有0<vi≤V。不同的装箱方案所需要的箱子数目可能不同。装箱问题要求使装尽这n种物品的箱子数要少。

可不可以这样:先从所有物品中选择一部分装第一个箱子使得剩余容量最小,再从剩下的选择装入第二个使得剩余容量最小,依次继续下去直到
没有剩余,从而得到最少箱子数.

我怎么举不出反例。麻烦大家看看,证明或者证伪!


...全文
262 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
ouzhf 2009-04-11
  • 打赏
  • 举报
回复
学习...
xumaojun 2009-04-11
  • 打赏
  • 举报
回复
局部最优和全局最优
nvnv86 2009-04-07
  • 打赏
  • 举报
回复
貌似是某个原理,书上看过,,,
liliangbao 2009-04-07
  • 打赏
  • 举报
回复
贪心或背包算法了~
学习
Paradin 2009-04-07
  • 打赏
  • 举报
回复
d..
Dinelgua 2009-04-07
  • 打赏
  • 举报
回复
将物品按体积从大到小排序后从最大体积物品开始背包
Paradin 2009-04-07
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 WizardOz 的回复:]
假设箱子的容积都是10
而你有5个体积为2的物品,其余都是7。
这样你装第一个箱子就开始出问题了,因为 7 + 2 = 9 没有装满箱子。
而你是尽可能的一个个装到最满,所以你选择了把五个2 装在一箱中。
后面的每个物品都是单独装一个箱。

但是实际上体积为2的物品都跟体积为7的一起装的话,可以省下一个箱子的。
[/Quote]
很对。这么简单的例子我都没想到呵呵。

[Quote=引用猫狗乐兄]
还是背包问题吧,只不过还需要进行动态规划。
[/Quote]
嗯我继续想

xiaocha 2009-04-07
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 magipan 的回复:]
学习了
那如果从最大的开始选择呢,比如说首先就选择7,然后发现还可以选择2使得剩余空间最小,然后继续下去,这样有没有反例?
[/Quote]

5 4 3 3 3 2

贪心 5 4, 3 3 3, 2
最优 5 3 2, 4 3 3
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 magipan 的回复:]
学习了
那如果从最大的开始选择呢,比如说首先就选择7,然后发现还可以选择2使得剩余空间最小,然后继续下去,这样有没有反例?
[/Quote]

5,4,2,3

箱子是10

5+4...贪心

5+2+3背包
magipan 2009-04-07
  • 打赏
  • 举报
回复
学习了
那如果从最大的开始选择呢,比如说首先就选择7,然后发现还可以选择2使得剩余空间最小,然后继续下去,这样有没有反例?
  • 打赏
  • 举报
回复
还是背包问题吧,只不过还需要进行动态规划。
WizardOz 2009-04-07
  • 打赏
  • 举报
回复
假设箱子的容积都是10
而你有5个体积为2的物品,其余都是7。
这样你装第一个箱子就开始出问题了,因为 7 + 2 = 9 没有装满箱子。
而你是尽可能的一个个装到最满,所以你选择了把五个2 装在一箱中。
后面的每个物品都是单独装一个箱。

但是实际上体积为2的物品都跟体积为7的一起装的话,可以省下一个箱子的。

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧