首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >正确的适合垃圾箱包装的算法?

正确的适合垃圾箱包装的算法?
EN

Stack Overflow用户
提问于 2012-09-06 10:13:59
回答 1查看 7.5K关注 0票数 0

我有以下数字:6、8、9、4、3、2、10、7、14、12、6、2、3、1、10、11、13、5

我希望知道正确的方法,以实现最适合的一维装箱算法这些。因为在这个视频http://www.youtube.com/watch?v=B2P1TzKKWOI&feature=related中,他们的解决方法与我的想法不同,所以我不知道正确的答案。

我的解决方案,先到先得,所以:

  • 垃圾箱#1: 6,8,2
  • 垃圾箱#2: 9,4,3
  • 宾#3: 3、10、1
  • 垃圾箱#4: 7、6
  • 垃圾箱#5: 14 2
  • 垃圾箱#6: 12
  • 仓#7: 10
  • 垃圾箱#8: 11,5
  • 宾#9: 13

他们的解决方案,我猜他们“配对”适当的数字在一起,所以它是这样的:

  • 宾#1: 6、10
  • 宾#2: 9,7
  • 宾#3: 14,2
  • 宾#4: 12,4
  • 垃圾箱#5: 14 2
  • 垃圾箱#6: 13 3
  • 宾#7: 8、6、2
  • #8: 10,5,1
  • 宾#9: 11,3

哪一个是对的?

EN

回答 1

Stack Overflow用户

发布于 2012-09-06 11:22:34

我在评论的末尾附上了算法。

@AngelicCore,我认为您的解决方案与视频中的解决方案的根本区别在于,您的解决方案是“在线”解决方案,而视频中的解决方案是“脱机”解决方案。

离线垃圾箱包装假设封隔器有关于每个项目的完美信息,并有时间按他或她想要的任何顺序排列它们。考虑一个有运输中转区的仓库。所有的箱子可以堆叠,托盘化,并根据需要重新订购,直到它准备好装运。

在线垃圾箱包装通常是在先进先出(FIFO)的基础上进行的。想象一下,你正在接收从进货卡车到传送带的箱子。物料处理设备迅速将所有案件重新导向一队即将离开的卡车.

补充说明

垃圾箱容量为16。(14+13+12+11+10+10+9+8+7+6+6+5­+4+3+3+2+2+1)/16 = 126/16 ~ 7.87 =>上限(7.87)=8个最低垃圾箱为下限。

算法

最佳配合启发式

这种启发式尝试在每次分配项时尽可能地创建一个完整的bin。再一次,所有未满的垃圾箱都保持打开。它将下一项j放在当前内容最大但不超过q−qj的bin中(因此该项适合)。如果它不适合在任何垃圾箱,将打开一个新的垃圾箱。

初始化:

给出了项目权重L= {q1,q2,…,qn}的列表。

将item1置于bin1中,从L. Letj=2、m=1中移除。

迭代:

  1. 找到剩余容量最小但大于qj (如果Si是宾I中的项,q−qk是bin I的剩余容量)的bin i,并在k∈Sii中放置j。如果j不适合任何一个桶,打开一个新的桶并将它编号为m+ 1,将j放在bin m+ 1中,让m=m+1。

  1. 从L中删除项目j,设j=j+ 1。

  1. 当项目保留在L中时,从步骤1开始重复。
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12297791

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档