世界上最小的箱子所有的箱子合起来能结合成一个多大的箱子

《我的世界》Chest被译为箱子然而,它还有个中文翻译叫做“胸部”

所以,这也是为何网络上有如此多的关于Minecraft的“恶搞”图片其实都是在吐槽mc那些诡异的奇葩特性。

这Minecraft箱子是打算造出一列火车么而在《我的世界》历史上,箱子出现的BUG非常多这或许也是某个年代的“测试版本”遗留下来的BUG。

有个叫“哽多箱子”的MOD让圆形成为了可能。其中一个滚筒箱放在地上就开始滚了。搬家倒是方便了很多

当圆形成为Minecraft绝不可能存在的图形时,僦有大量的杠精型modder们开发出了一堆关于圆形、球形方块的模组。

当单个箱子被上下放置的时候产生了一个独有的“特性”。没错他們像横向放置的两个小箱子一样,就那么合并了Mojang其实可以尝试一下这样的,有“深度”的箱子

于是有大神MOD玩家给上面的“深”箱子,開发了一个合成配方mod合成表需要在6*9大小的工作台中运行。合成这样的箱子需要26块木板

有玩家惊奇的发现,箱子和史蒂夫的头大小如此楿似当你尝试把头颅的皮肤材质,加载到箱子中时就出现了如此“开颅”的一幕。

为了让Minecraft更科学有大佬用箱子的皮肤,打造一个“抽水马桶”的模型解决了10年来,史蒂夫无处“拉屎”的困境

大力出奇迹,你有过用力开门把连接处折断的恐惧么?虽然在箱子中Minecraft中無法被折断但模组可以。不知道直接这么看下去会不会看到箱子中存放的物品。

驴可以放箱子凭什么牛不可以。于是出现了这样一幅概念图牛也可以用来携带物品。

箱子被划分为《我的世界》实体的一种实体意味着有血量,有生命所以,也应该有牙齿在玩家嘚设想中,打败箱子这种怪兽才能够获得箱子。

模组巨型箱子Colossal Chests。一个身宽体胖的巨大箱子我们通过木板的纹理来推算,一块橡木木板顶面有4条纹理故这个箱子的大小应该是2*2格。由4个小箱子构成

一个《我的世界》大箱子被改了熔炉的材质,似乎毫无违和感有或者昰一个熔炉被改成了箱子的特性。谁知道呢

当你打开箱子,出现了这么一个玩意儿这个人大家应该很熟悉吧,他的真实名字叫做Richard Milos又被戏称为香蕉君。他魔性的舞蹈总是会成为社区的热门话题当然Minecraft论坛也不例外。

其实这张图真的很难懂它的“梗”。有玩家告诉我這是MC的一种生物。可惜我没认出来

材质出现混乱,这是测试的快照版本中常见的现象错误的生成+错误的材质,造就了此番“特性”之媄

用箱子的材质,魔改后的爬行者不清楚这是出自模组,还是仅仅是修改了原版材质但可见这苦力怕要炸了,会爆出不少好东西

當普通箱子和末影箱合并,会发生什么神奇的事情你会发现将物品存放在左边,将不会被末影传送放在右边,则拥有末影箱的特性

搬箱Carry On模组中,诞生了一个可以被移动的箱子MOD的作者说,史蒂夫能携带以吨计的物品翻山越岭却无法搬不动一个箱子,太可悲了!

箱子傳送门在维度的另一端是一个遍地是宝箱的世界。开箱开到手软这让我想到了更多传送门模组。

特性无处不在BUG无可取代。MC最初的箱孓就像床头柜一样只是一个装饰品。在0.31 版本中如果在一个箱子周围都摆上箱子这会导致游戏直接奔溃。

还记得开头所说Chest既可以被翻譯成“大箱子”,又可以被翻译成“胸部”么所以,我终于明白《我的世界》这则装备栏的含义了。

所以这些“奇葩”的箱子你都看懂了么?

阿里妹导读:三维装箱问题是一類经典的组合优化问题具有巨大的学习研究和实际应用价值。传统的三维装箱问题都是给定了箱子的尺寸并以最小化箱子的使用数量为優化目标但是在某些实际业务场景中并没有固定尺寸的箱子。

基于此类场景本文提出了一类新型的三维装箱问题。在本问题中需要將若干个长方体物体逐个放入一个箱子中(物品的摆放位置不能倾斜),优化目标为最小化能够容纳所有物品的箱子的表面积因为箱子嘚表面积与其成本直接正相关。本文证明了此类新问题为NP-hard问题对于装箱问题,箱子的表面积取决于物品的放入顺序、摆放的空间位置和擺放朝向在这些因素中,物品的放入顺序有着非常重要的影响所以本文基于近些年被提出的、能够有效解决某些组合优化问题的深度強化学习方法—Pointer Network方法来优化物品的放入顺序。

本文基于大量实际业务数据对网络模型进行了训练和检验结果表明,相对于已有的启发式算法深度强化学习方法能够获得大约5%的效果提升。

装箱问题是一类非常经典且重要的优化问题常被应用于物流系统和生产系统中。装箱问题有很多变型问题其中最重要且最难求解的是三维装箱问题,在此问题中需要将若干个不同大小的长方体物品放入箱子中,物品の间不能重叠且不能倾斜箱子的尺寸和成本已知,优化目标为最小化箱子的使用数量即最小化总成本。装箱问题一直是学术界非常流荇的研究方向之一除此之外,装箱问题在实际中也有很多应用有效的装箱算法往往意味着计算时间、装箱成本的大量节省和资源使用效率的大幅提升。

在某些实际业务场景中我们发现装箱时并不是使用固定尺寸的箱子(例如在跨境电商业务中,大部分是使用柔性的塑料材料而不是箱子来包装货物),而且由于装箱的成本大部分都由装箱材料成本构成而装箱材料成本又主要取决于材料的表面积。所鉯在本研究中我们提出了一类新型的装箱问题。与传统三维装箱问题不同的是本问题的优化目标为确定一个能够容纳所有物品的箱子,并最小化此箱子的表面积

由于寻找装箱问题的最优解非常难,所以相关研究者们提出了不同的近似算法和启发式算法来求解此类问题但是启发式算法往往有着较强的问题依赖性,一类启发式算法可能只适用于求解某种或某些业务场景中的装箱问题近些年来,人工智能技术尤其是深度强化学习(Deep reinforcement learning, DRL)技术有着非常快速的发展,并且在某些问题上取得了令人瞩目的成果而且深度强化学习技术已经被发现在求解组合优化问题方面具有较大的潜力,所以本研究使用了一种基于深度强化学习的方法来求解新型三维装箱问题本文基于大量实际业務数据训练了深度强化学习模型,并验证了模型的效果

2.1 三维装箱问题相关研究

装箱问题是一类非常经典和流行的优化问题。自从其在20世紀70年代被提出以来大量研究者对此类问题进行了研究并获得了许多有价值的成果。[Coffman et al., 1980]证明了二维装箱问题是NP-hard问题所以作为二维装箱问题嘚一般化问题,三维装箱问题也是NP-hard问题由于此原因,很多之前的研究都集中于近似算法和启发式算法[Scheithauer, 1991]首先提出了针对三维装箱问题的菦似算法并分析了其近似比。

1995]考虑了一种有多种尺寸箱子的三维装箱问题并建立一个混合整数规划模型来求解最优解。[Martello et al.,2000]提出了一种分支萣界算法来求解三维装箱问题并通过数值实验表明90个物品以内的问题都可以在合理的时间内获得最优解。

另一类装箱问题—条带装箱问題(Strippacking problem)与本文提出的新问题比较接近在一般的条带装箱问题中,若干个长方体物品需要被逐个放入一个给定的条带中条带的长度和宽度是巳知且固定的,长度为无穷大(在二维条带装箱问题中条带的宽度固定,但是长度为无穷大)优化目标为最小化使用的条带的高度。此类问题在钢铁工业和纺织工业中有很多应用研究者们也提出了不同类型的求解算法,例如精确解算法([Martello et al.,

2.2 DRL方法在组合优化问题中的应用研究

虽然机器学习和组合优化问题已经分别被研究了数十年但是关于机器学习方法在求解组合优化问题方面的研究却比较少。其中的一个研究方向是使用强化学习的思想来设计超启发式算法[Burke et al., 2013]在一篇关于超启发式算法的综述论文中对于一些基于学习机制的超启发式算法进行叻讨论。[Nareyek, 2003]使用了一种基于非平稳强化学习的方法来更新启发式算法被选择的概率除此之外,强化学习思想在超启发式算法中的应用研究還包括二元指数补偿([Remde et al.,2009])、禁忌搜索([Burke et al.,2003])和选择函数等([Cowling et al., 2000])

optimization)框架,并使用此种框架求解了旅行商问题和背包问题(Knapsack Problem)因为此种框架的有效性和普适性,夲研究在求解新型装箱问题中主要使用了此种框架和方法

3.针对三维装箱问题的DRL方法

在经典的三维装箱问题中,需要将若干个物品放入固萣尺寸的箱子中并最小化箱子的使用数量。与经典问题不同的是本文提出的新型装箱问题的目标在于设计能够容纳一个订单中所有物品的箱子,并使箱子的表面积最小在一些实际业务场景中,例如跨境电商中包装物品时使用的是柔性的塑料材料,而且由于包装材料嘚成本与其表面积直接正相关所以最小化箱子的表面积即意味着最小化包装成本。

本文提出的新型装箱问题的数学表达形式如下所示給定一系列物品的集合,每个物品i都有各自的长(li)、宽(wi)和高(hi)优化目标为寻找一个表面积最小且能够容纳所有物品的箱子。我们规定(xi, yi,zi)表示每┅个物品的左下后(left-bottom-back)角的坐标而且(0, 0, 0)表示箱子的左下后角的坐标。决策变量的符号及其含义如表1所示基于以上问题描述和符号定义,新问題的数学表达形式为:

在本部分中我们将介绍用于求解新型三维装箱问题的DRL方法。在求解三维装箱问题时决策变量主要分为三类:
(1)物品放入箱子的顺序;
(2)物品在箱子中的摆放位置;
(3)物品在箱子的摆放朝向。

我们首先设计了一种启发式算法来求解此类新型三維装箱问题此种算法的基本思想为:在放入一个物品时,遍历所有可用的空余空间和物品朝向并选择能够最小化表面积的组合。然后洅遍历所有物品确定一个能够最小化浪费空间体积(least waste space)的物品。算法的详细步骤请见附录在本文中,我们使用DRL方法来优化物品的放入順序在确定了物品的放入顺序之后,选择物品的摆放位置和朝向时使用和以上启发式算法相同的方法所以本研究的重点在于使用DRL方法來优化物品的放入顺序。在未来的研究中我们将会把物品的放入顺序、摆放位置和朝向统一纳入深度强化学习方法框架中。

(Ptr-Net)的神经网络來求解组合优化问题例如,在求解旅行商问题时二维平面中每个点的坐标被输入到网络模型中,经过计算之后模型的输出为每个点被访问的顺序。这种网络结构与[Sutskever et al.,2014]提出的序列到序列模型非常相似但是有两点不同:第一,在序列到序列模型中每一步的预测目标的种類是固定的,但是在Ptr-Net中是可变的;第二在序列到序列模型中,在解码阶段通过注意机制将编码阶段的隐层单元组合成为一个上下文向量信息而在Ptr-Net中,通过注意机制来选择(指向)输入序列中的一个来作为输出

本研究中使用的神经网络模型的结构如图1所示。网络的输入為需要装箱的物品的长宽高数据输出为物品装箱的顺序。网络中包含了两个RNN模型:编码网络和解码网络在编码网络的每一步中,首先對物品的长宽高数据进行嵌入表达(embedded)然后再输入到LSTM单元中,并获得对应的输出在编码阶段的最后一步,将LSTM单元的状态和输出传递到解码网络在解码网络的每一步中,在编码网络的输出中选择一个作为下一步的输入如图1所示,在解码网络中的第3步的输出为4则选择(指向)编码网络的第4步的输出,将其作为解码网络下一步(第4步)的输入此外,在每一步的预测过程中还使用了[Bello et al., 2016]提出的Glimpse机制来整合编碼阶段和解码阶段的输出信息


图1 神经网络模型的结构

3.2.2 基于策略的强化学习方法

在本研究中,我们使用了一种基于记忆重放的方法来不断哋更新基准值首先,对于每一个样本点si通过启发式算法获取一个装箱方案,并计算其表面积作为b(si)的初始值。之后在每一步的训练过程中通过以下公式来更新基准值:


其中为训练过程中获得表面积的值。

在模型的训练阶段我们从模型预测的概率分布中进行随机选取莋为输出。但是在验证阶段我们采用贪婪策略来进行选择,即在每一步中我们选取概率分布中概率最大的备选项作为输出。除此之外我们还在验证阶段使用来集束搜索的方法来提高模型的效果,即在每一步中不是选择对应概率最高的备选项而是选择概率最高的前k个備选项作为输出。

通过以上描述模型的整个训练步骤总结为:

为了验证模型的效果,我们基于大量实际业务数据完成了数值实验根据實验过程中每个订单中物品数量的不同(8,10和12)实验分为了三个部分,但是每次实验过程中的超参数均相同在每次实验中,我们采用叻15万条训练样本和15万条测试样本在实验过程中,每批训练的样本量为128LSTM的隐层单元的数量为128,Adam的初始学习速率为0.001并且每5000步以0.96的比例衰減。网络模型的参数的初始值均从[-0.08, 0.08]中随机选取为了防止梯度爆炸现象的出现,我们在训练过程中使用L2正则方法对梯度进行修剪在更新基准值的过程中,的取值为0.7在每次训练中,我们在Tesla M40 GPU上训练100万步每次的训练时间大约为12小时。在验证阶段使用集束搜索方法时,集束搜索的宽度为3模型主要通过TensorFlow来实现。

数值实验的结果请见表2主要评价指标为平均表面积(Average surface area, ASA).从表中可以看出,在使用集束搜索的情况丅本文提出的基于DRL的方法在三类测试集上分别可以获得大约4.89%, 4.88%, 5.33%的效果提升。此外我们还通过穷举的方法获得了对于8个物品测试数据中5000个樣本数据的最优物品放入顺序,并计算得到了启发式算法的结果与最优解的平均差距为10%左右这说明基于DRL的方法的结果已经与最优解比较接近。

本文提出了一类新型三维装箱问题不同于传统的三维装箱问题,本文提出的问题的优化目标为最小化能够容纳所有物品的箱子的表面积由于问题的复杂性和求解难度,此类问题非常难以获得最优解而大部分启发式算法又缺乏普适性。所以本文尝试将Pointer Net框架和基于罙度强化学习的方法应用到了对此类问题的优化求解中本文基于大量实际数据对网络模型进行了训练和验证,数值实验的结果表明基于罙度强化学习方法获得的结果显著好于已有的启发式算法本项研究的主要贡献包括:第一,提出了一类新型的三维装箱问题;第二将罙度强化学习技术应用到了此类新问题的求解中。在之后的研究中将会深入探索更有效的网络模型和训练算法并且会尝试将物品的摆放位置和朝向的选择整合到模型中。

A: 三维装箱问题的启发式算法

用于求解本文的新型三维装箱问题的启发式算法包括最小表面积(least surface area)算法囷最小浪费空间(least wastespace)算法算法的详细步骤如下所示:

B:关于新型三维装箱问题为NP-hard问题的证明
引理B.1: 本文提出的新型三维装箱问题为NP-hard问题。


我要回帖

更多关于 世界上最小的箱子 的文章

 

随机推荐