掌桥专利:专业的专利平台
掌桥专利
首页

三维装箱处理方法、装置、电子设备及存储介质

文献发布时间:2023-06-19 12:13:22


三维装箱处理方法、装置、电子设备及存储介质

技术领域

本发明涉及三维规则物体装箱技术领域,更具体地说,涉及一种三维装箱处理方法、装置、电子设备及存储介质。

背景技术

三维装箱问题是装箱问题(Bin Packing Problem,也称下料问题Cutting StockProblem)中的一种。在多数实际生产需求中,解决三维装箱问题,是指借助一种或多种算法,在一定时间内寻求相对较优的答案。

现阶段,常用的一类元启发式算法灵活性较高,在NP优化问题中应用广泛。然而相应的,这一类算法缺少对于具体问题性质和信息的利用,具有广泛性而针对性较弱,在初值选择和求解迭代过程中相比启发式算法,往往存在优化提高空间。

发明内容

有鉴于此,为解决上述问题,本发明提供一种三维装箱处理方法、装置、电子设备及存储介质,技术方案如下:

一种三维装箱处理方法,所述方法包括:

获取待处理的第一装箱问题实例,所述第一装箱问题实例中包含箱体的描述数据和车厢的空间状态;

标准化所述第一装箱问题实例中箱体的描述数据和车厢的空间状态,以获得所述第一装箱问题实例中箱体的标准描述数据和车厢的标准空间状态;

将所述第一装箱问题实例中箱体的标准描述数据和车厢的标准空间状态输入三维装箱模型中,所述三维装箱模型是预先基于强化学习算法对神经网络进行训练得到的;

获取所述三维装箱模型针对所述第一装箱问题实例所输出的实际装载率最高的装箱方案。

优选的,预先基于强化学习算法对神经网络进行训练得到所述三维装箱模型的过程,包括:

获取训练用的第二装箱问题实例,所述第二装箱问题实例中包含箱体的描述数据和车厢的空间状态;

标准化所述第二装箱问题实例中箱体的描述数据和车厢的空间状态,以获得所述第二装箱问题实例中箱体的标准描述数据和车厢的标准空间状态;

基于贪心策略确定所述第二装箱问题实例的装箱动作,并基于所述装箱动作处理所述第二装箱问题实例中的箱体的标准描述数据,以对所述第二装箱问题实例中车厢的标准空间状态进行更新,直到进入预设的装箱终止状态;

获取所述装箱终止状态下车厢的标准空间状态,将其离散为三维矩阵并计算所述第二装箱问题实例在所述装箱终止状态下的实际装载率;

将所述三维矩阵和所述实际装载率输入至神经网络,以使所述神经网络以最大实际装载率为目标调整各层的权重系数,直到当前符合预设的训练结束条件时,将所述神经网络作为三维装箱模型。

优选的,所述标准描述数据为八元数组:

(箱体的长,箱体的宽,箱体的高,箱体位于所在车厢车长方向的坐标,箱体位于所在车厢车宽方向的坐标,箱体位于所在车厢车高方向的坐标,箱体的装载方位,箱体所在车厢的编号);

所述标准空间状态为二级数组:

[(开始线段的高度,(所述开始线段的横向位置,所述开始线段的长度))],[(结束线段的高度,(所述结束线段的横向位置,所述结束线段的长度))];

其中,所述开始线段表征车厢的开始装箱位置,所述结束线段表征车厢的结束装箱位置。

优选的,所述基于所述装箱动作处理所述第二装箱问题实例中的箱体的标准描述数据,以对所述第二装箱问题实例中车厢的标准空间状态进行更新,包括:

基于所述装箱动作确定待移动的目标箱体、以及所述目标箱体的装载位置;

根据所述目标箱体的装载位置确定所述目标箱体所在的目标车厢、以及所述目标车厢当前的目标标准空间状态;

利用所述目标箱体的长、宽和高确定所述箱体与所述目标标准空间状态中开始线段和结束线段的相对位置关系,并基于所述相对位置关系更新所述目标标准空间状态中开始线段和结束线段。

优选的,所述基于所述相对位置关系更新所述目标标准空间状态中开始线段和结束线段,包括:

基于所述相对位置关系确定所述目标标准空间状态中待更新的目标线段,所述目标线段包括开始线段和/或结束线段;

根据所述目标箱体的标准描述数据中箱体的长、宽、高确定所述目标线段与所述目标箱体的交集部分,并向所述目标线段补充非交集部分,以更新所述目标线段;

对所述目标标准空间状态中未更新的其他线段和更新后的目标线段进行并计算。

一种三维装箱处理装置,所述装置包括:

实例获取模块,用于获取待处理的第一装箱问题实例,所述第一装箱问题实例中包含箱体的描述数据和车厢的空间状态;

标准化模块,用于标准化所述第一装箱问题实例中箱体的描述数据和车厢的空间状态,以获得所述第一装箱问题实例中箱体的标准描述数据和车厢的标准空间状态;

装箱处理模块,用于将所述第一装箱问题实例中箱体的标准描述数据和车厢的标准空间状态输入三维装箱模型中,所述三维装箱模型是预先基于强化学习算法对神经网络进行训练得到的;获取所述三维装箱模型针对所述第一装箱问题实例所输出的实际装载率最高的装箱方案。

优选的,所述装箱处理模块预先基于强化学习算法对神经网络进行训练得到所述三维装箱模型的过程,包括:

获取训练用的第二装箱问题实例,所述第二装箱问题实例中包含箱体的描述数据和车厢的空间状态;标准化所述第二装箱问题实例中箱体的描述数据和车厢的空间状态,以获得所述第二装箱问题实例中箱体的标准描述数据和车厢的标准空间状态;基于贪心策略确定所述第二装箱问题实例的装箱动作,并基于所述装箱动作处理所述第二装箱问题实例中的箱体的标准描述数据,以对所述第二装箱问题实例中车厢的标准空间状态进行更新,直到进入预设的装箱终止状态;获取所述装箱终止状态下车厢的标准空间状态,将其离散为三维矩阵并计算所述第二装箱问题实例在所述装箱终止状态下的实际装载率;将所述三维矩阵和所述实际装载率输入至神经网络,以使所述神经网络以最大实际装载率为目标调整各层的权重系数,直到当前符合预设的训练结束条件时,将所述神经网络作为三维装箱模型。

优选的,所述标准描述数据为八元数组:

(箱体的长,箱体的宽,箱体的高,箱体位于所在车厢车长方向的坐标,箱体位于所在车厢车宽方向的坐标,箱体位于所在车厢车高方向的坐标,箱体的装载方位,箱体所在车厢的编号);

所述标准空间状态为二级数组:

[(开始线段的高度,(所述开始线段的横向位置,所述开始线段的长度))],[(结束线段的高度,(所述结束线段的横向位置,所述结束线段的长度))];

其中,所述开始线段表征车厢的开始装箱位置,所述结束线段表征车厢的结束装箱位置。

一种电子设备,包括:至少一个存储器和至少一个处理器;所述存储器存储有程序,所述处理器调用所述存储器存储的程序,所述程序用于实现任意一项所述的三维装箱处理方法。

一种存储介质,所述存储介质中存储有计算机可执行指令,所述计算机可执行指令用于执行任意一项所述的三维装箱处理方法。

相较于现有技术,本发明实现的有益效果为:

本发明提供的三维装箱处理方法、装置、电子设备及存储介质,对于待处理的装箱问题实例能够标准化,提供能够精确描述装箱状态的数据结构,为后续的优化模型提供快速迭代的基础,进而基于强化学习算法给出三维装箱问题的一种较为高效的优化模型,该优化模型能够通过学习自动匹配相应的具体问题,能够适应不同尺度的箱体-车厢的装箱问题。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本发明实施例提供的三维装箱处理方法的方法流程图;

图2为本发明实施例提供的箱体装载实例;

图3为本发明实施例提供的车厢实例;

图4为本发明实施例提供的三维装箱处理方法的另一方法流程图;

图5为本发明实施例提供的另一箱体装载实例;

图6为本发明实施例提供的再一箱体装载实例;

图7为本发明实施例提供的三维装箱处理装置的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。

装箱问题是离散组合优化数学中较为经典和复杂的问题,主要包括一维装箱、二维(平面)装箱和三维装箱等三种类型。在实际生产运输过程中,解决规则矩形体(也称长方体)的三维装箱问题有着相当广泛的实用意义,例如物料裁切、卡车集装箱装载运输、仓库存储等。然而一般来说,装箱问题都是NP完全问题,目前NP完全问题不存在有效时间内求得精确解的算法,如果试图用穷举法得到答案,计算时间关于问题的复杂度呈指数增长,在实际问题的数量级下往往是不可用的。所以装箱问题虽然自20世纪70年代初开始就引起了广泛的探讨和研究,甚至可以追溯到1831年高斯研究的布局问题,但陆续出现的下次适应、首次适应、降序下次适应和调和算法等均属于近似算法,目前尚无有效时间内获得精确解的理论结果及数值算法。由此,在多数实际生产需求中,解决三维装箱问题,是指借助一种或多种算法,在一定时间内寻求相对较优的答案。

一类容易想到的算法是启发式算法,例如首次适应算法(First-fit Algorithm)和最佳适应算法(Best-fit Algorithm)等。这类算法往往是基于某种装箱问题进行设计与求解的,所以相对贴合问题,求解效率较高,并且在结果上表现优异。但是这类算法也有弊端,它们往往在不同实例上效果优劣差异较大,通用性不强,不能满足将来生产物流等环节高度自动化的需求趋势。

为了增强算法的灵活性,出现了另一类元启发式算法,包括蚁群算法(Ant ColonyAlgorithm)、遗传算法(Genetic Algorithm)、粒子群算法(Particle Swarm Algorithm)、模拟退火算法(SimulatedAnnealing Algorithm)、禁忌搜索(Tabu Search)等。这类算法能够自动在可行解空间(Feasible Set)中搜索可行解(Feasible Solution),并对搜索到的可行解进行启发式的选择、组合、再生成,也可以循环这个过程,从而在有限的求解时间内,搜索到较优的解,而不需要依赖针对具体问题的专业分析与经验,所以这类元启发式算法灵活性较高,在NP优化问题中应用广泛。然而相应的,这一类算法缺少对于具体问题性质和信息的利用,具有广泛性而针对性较弱,在初值选择和求解迭代过程中相比启发式算法,往往存在优化提高空间。

为了开发具有一定应用广泛性和问题针对性的三维装箱算法,本发明提出一种精确描述装箱状态的数据结构,这种数据结构能够描述每一次装箱后整个车厢内任一箱体位置、任一空间点是否被箱体占据等状态,同时更新效率高,为后续的优化模型提供快速迭代的基础。然后,本发明基于强化学习算法给出三维装箱问题的一种较为高效的优化模型,该优化模型能够通过学习自动匹配相应的具体问题,由于这一过程是该优化模型自动实现的,因此能够适应不同尺度的箱体-车厢的装箱问题。

本发明实施例提供一种三维装箱处理方法,该方法的方法流程图如图1所示,包括如下步骤:

S10,获取待处理的第一装箱问题实例,第一装箱问题实例中包含箱体的描述数据和车厢的空间状态。

本发明实施例中,待处理的装箱问题实例可以由用户设置,由用户指出实例中箱体的描述数据,比如长、宽、高、装载方位等,车厢的空间状态即车厢的车长、车宽和车高等。

S20,标准化第一装箱问题实例中箱体的描述数据和车厢的空间状态,以获得第一装箱问题实例中箱体的标准描述数据和车厢的标准空间状态。

本发明实施例中,对于箱体的描述数据和车厢的空间状态可以使用高效更新的数据结构:

标准描述数据为八元数组——(箱体的长,箱体的宽,箱体的高,箱体位于所在车厢车长方向的坐标,箱体位于所在车厢车宽方向的坐标,箱体位于所在车厢车高方向的坐标,箱体的装载方位,箱体所在车厢的编号)。

具体的,选取合适的统一单位,例如米、厘米,后续整个数据的记录都将采用该单位。将每个箱体用八元数组(l

参见图2所示的箱体装载实例,箱体A的标准描述数据为(2.15,0.47,0.52,0,0,0,0,0)。

对于箱体的装载方位,根据问题限制,可能只有一面朝上或多面均可朝上等。

另外,标准空间状态为二级数组——[(开始线段的高度,(开始线段的横向位置,开始线段的长度))],[(结束线段的高度,(结束线段的横向位置,结束线段的长度))];

其中,开始线段表征车厢的开始装箱位置,结束线段表征车厢的结束装箱位置。

具体的,对于每个车厢,用二级数组[(0,(0,(0,车宽)))],[(0,(车长,(0,车宽)))]进行初始的标准化。参见图3所示的车厢实例,该车厢在初始标准化时的二级数组为[(0,(0,(0,2.40)))],[(0,(5.60,(0,2.40)))].,该二级数组分别表示该车厢中箱体能够装载位置的开始线段(即线段a)和结束线段(即线段b)。

因为装箱时,箱体底面具有两组互相平行的棱,每组中至少有一条棱会紧贴另外一个箱体或车厢壁的棱。换句话说,当箱体被装载后,在x轴方向、y轴方向都至多只能朝一边移动,否则就意味着这个箱体是四周悬空装载的,前后(或左右)都还有移动的空间。所以能够装载的位置,我们是这样刻画的:一条平行于车宽方向的,并且在箱体完整、平稳装载(即箱体不与其它箱体重叠、箱体地面不悬空)时能够与箱体下底面前棱完全重合的棱(图3中线段a)。其中箱体下底面前棱是指箱体下底面平行于车宽方向的、横向位置较小的那一条棱。

随着箱体装入车厢,上述数组记录的信息逐渐增加,两个数组最终都将呈现如下格式:

[(h

(h

其中h

此时车厢的标准空间状态可以表示为:

开始线段

[(0,(2.15,(0,0.47)),(1.07,(0.47,2.21)),(1.42,(2.21,2.40))),

(0.52,(0,(0,0.47))),(0.89,(0,(0.47,2.40))),(1.23,(1.07,(2.21,2.40)))]

结束线段

[(0,(5.60,(0,2.40))),(0.52,(2.15,(0,0.47))),(0.89,(1.07,(0.47,2.40))),

(1.23,(1.42,(2.21,2.40)))]

在这种数据结构下,装载位置只需从开始线段或其组合中开始,同时检查不能越过结束线段即可。

S30,将第一装箱问题实例中箱体的标准描述数据和车厢的标准空间状态输入三维装箱模型中,三维装箱模型是预先基于强化学习算法对神经网络进行训练得到的。

本发明实施例中,强化学习是一个马可夫决策过程,它主要包含状态、动作、奖励三个元素,在前述数据格式基础上,三维装箱优化问题可以转化为符合强化学习通用模型的形式:

1)状态(state)。三维装箱的任何一个时刻的状态,包括车厢的空间状态和全部未装入车的箱体。利用前述数据格式,能够清晰描述车厢内每一空间点的状态,加上未装入车的箱体列表(即八元数组的列表[(l

需要注意的是,在另一些车辆数目有限,需要考虑所有箱体能否全部装下的问题中,任何一个车厢的任何一个空间都不能再装下任何一个未装的箱体,也可以定义为终止状态,本发明依然适用。

2)动作(action)。在前述数据格式内容中,默认每一步的箱体和装载位置都已选择,在三维装箱问题中,这些选择就是动作。在数据格式的构造过程中,我们默认了一个事实:装箱时,箱体底面的两组互相平行的棱,每组至少有一条紧贴另外一个箱体或车厢壁的棱。换句话说,当箱体被装载后,在x轴方向、y轴方向都至多只能朝一边移动,否则就意味着这个箱体是四周悬空放置的,前后(或左右)都还有移动的空间。

基于优化的目标是尽可能地提高实际装载率,所以这一默认事实是合理的。在此基础上,可以衍生出一系列例如“选最长的箱体/最高的箱体/最贴近开始(绿色)边长度的箱体/体积最大的箱体等”,以及“选定箱体后靠左放置/靠右放置/先堆放高处/先堆放地面等”,又或者“配套选择和开始(绿色)边长最接近的箱体”等等的动作。选择箱体可以放置位置的那一条棱后,选择“靠左放置/靠右放置/先堆放高处/先堆放地面等”,配套选择“最长的箱体/最高的箱体/最贴近开始(绿色)边长度的箱体/体积最大的箱体”等,将组成一个完整的动作。在启发式算法中,会预先对上述动作的选择方式进行限定,而在强化学习框架下,这一选择过程将由算法来实现。

3)奖励(reward)、价值(value)和价值函数(value function)。在有些问题中,中途状态就存在可以量化价值的状态优劣之分,可以相应地设计奖励与价值。但是在三维装箱过程的中途,一个状态的优劣较难衡量,借助一个简单的指标,实际装载率在装箱过程中会升高降低不断变化,并不是单调递增的,所以我们设计中间步骤的奖励为0。由此,对任一中间状态s,有其价值函数:

对所有终止状态s,设定其价值函数V(s)为实际装载率。一般来说,常用Q-learning方法连接这些元素,即构造和使用状态-动作价值函数Q(s,a)(state-actionvalue function)。

在三维装箱问题中,任一状态下采取一个行动,会确定性地转化到一个新的状态去,所以构状态-动作价值函数Q(s,a)这一过程被简化了,仅需要用到价值函数V(s)。基于实际问题的数量级,绝大部分情况下,我们也不能遍历获得状态的V(s)值,所以本发明借助三维卷积神经网络,构造带参函数

具体实现过程中,预先基于强化学习算法对神经网络进行训练得到三维装箱模型的过程,包括如下步骤,方法流程图如图4所示:

S101,获取训练用的第二装箱问题实例,第二装箱问题实例中包含箱体的描述数据和车厢的空间状态。

本发明实施例中,训练用的样本中包含一定数量级的装箱问题实例。

S102,标准化第二装箱问题实例中箱体的描述数据和车厢的空间状态,以获得第二装箱问题实例中箱体的标准描述数据和车厢的标准空间状态。

本发明实施例中,对于第二装箱问题实例中箱体的描述数据和车厢的空间状态的标准化过程,可以参见上述步骤S20中第一装箱问题实例中箱体的描述数据和车厢的空间状态的标准化过程,在此不再赘述。

S103,基于贪心策略确定第二装箱问题实例的装箱动作,并基于装箱动作处理第二装箱问题实例中的箱体的标准描述数据,以对第二装箱问题实例中车厢的标准空间状态进行更新,直到进入预设的装箱终止状态。

本发明实施例中,使用∈-贪心策略确定装箱动作以获取下一标准空间状态,贪心策略的相关参数可以预先设置,在此不做限定。

即对于某一个状态s

直至终止状态。

每装入一个箱体,将按照如下方式更新箱体的标准描述信息和上述二级数组:

更新箱体装入车厢的编号和三维位置。

根据箱体位置更新相应位置的开始线段与结束线段。

为了清晰地表示这一过程,以图2为例,放入一只新的箱体B,即根据装箱动作确定待移动的目标箱体为箱体B,其所在的目标车厢为图2所示的车厢,具体的装载位置如图5所示。

进一步,利用箱体B的长、宽和高确定箱体B与图2中开始线段和结束线段的相对位置关系,并基于相对位置关系更新目标标准空间状态中开始线段和结束线段。

具体的,基于相对位置关系确定目标标准空间状态中待更新的目标线段,目标线段包括开始线段和/或结束线段;根据目标箱体的标准描述数据中箱体的长、宽、高确定目标线段与目标箱体的交集部分,并向目标线段补充非交集部分,以更新目标线段;对目标标准空间状态中未更新的其他线段和更新后的目标线段进行并计算。

结合图5来看,箱体B的放入,会影响4组位置上的线段集合,所以需要将4个箭头所指位置的线段集合都进行更新:

对箱体的标准描述信息进行更新,箱体(最靠近原点的)顶点放置位置的三维坐标、装载方位(简单起见为0即不旋转)、箱体所在车厢的编号。即(1.41,1.23,0.52,0,0,0,0,0)——>(1.41,1.23,0.52,1.42,1.17,0,0,N)。

分别更新4个箭头所指位置的线段集合信息,原理是找到这个线段集合中受影响的线段并进行修改,再与余下不受影响的线段进行集合的并计算。

再以一条棱为例。

1号位置:箱体底面左侧棱位置,高度0,横向位置1.42,

第1步:从开始线段数组中读取该位置信息

[(0,(2.15,(0,0.47)),(1.07,(0.47,2.21)),(1.42,(2.21,2.40))),

(0.52,(0,(0,0.47))),

(0.89,(0,(0.47,2.40))),

(1.23,(1.07,(2.21,2.40)))]

从结束线段数组中读取该位置信息,发现该位置尚无信息

[(0,(5.60,(0,2.40)))(0.52,(2.15,(0,0.47))),

(0.89,(1.07,(0.47,2.40))),

(1.23,(1.42,(2.21,2.40)))]

第2步:将装箱体A而新生成的线段(1.17,2.40)加入1号位置的信息中,由于1号位置右上侧是箱体的位置,所以这条棱会覆盖旧的开始线段:

(0,(1.42,(2.21,2.40)))+(0,(1.42,空集合))VS(1.17,2.40)

从(2.21,2.40)中去掉(1.17,2.40),再加上原有的开始线段(此处为空集),剩下空集。所以开始线段数组更新为

(0.52,(0,(0,0.47))),

(0.89,(0,(0.47,2.40))),

(1.23,(1.07,(2.21,2.40)))]

同时造成新的结束线段:

(0,(1.42,(2.21,2.40)))+(0,(1.42,空集合))VS(1.17,2.40),

从(1.17,2.40)中去掉(2.21,2.40),再加上原有的结束线段(此处为空集),剩下(1.17,2.21),所以结束线段数组更新(新增)

[(0,(5.60,(0,2.40)),(1.42,(1.17,2.21)),)

(0.52,(2.15,(0,0.47))),

(0.89,(1.07,(0.47,2.40))),

(1.23,(1.42,(2.21,2.40)))]

这里都是对线段进行了交并补操作。

2号位置:箱体底面右侧棱位置,高度0,横向位置2.83。由于位置2左上侧是箱体的位置,所以这条棱会造成新的开始线段,集合交并补操作同理。

3号位置:箱体顶面左侧棱位置,高度0.52,横向位置1.42。由于位置3右下侧是箱体的位置,所以这条棱会覆盖旧的结束线段,造成新的开始线段,集合交并补操作同理。

4号位置:箱体底面左侧棱位置,高度0.52,横向位置2.83。由于位置4左下侧是箱体的位置,所以这条棱会造成新的结束线段,集合交并补操作同理。

上述4轮数组更新完成后,新的车厢状态如下:

开始线段

[(0,(2.15,(0,0.47)),(1.07,(0.47,2.21)),(1.42(无信息)),(2.83,(1.17,2.40))),

(0.52,(0,(0,0.47)),(1.42,(1.17,2.40)),(2.83,(无信息))),

(0.89,(0,(0.47,2.40))),

(1.23,(1.07,(2.21,2.40)))]

结束线段

[(0,(5.60,(0,2.40)),(1.42,(1.17,2.21)),(2.83,(无信息))),

(0.52,(2.15,(0,0.47)),(1.42,(无信息)),(2.83,(1.17,2.40))),

(0.89,(1.07,(0.47,2.40))),

(1.23,(1.42(2.212.40)))。

在实际算法实现中,由于每次装入箱体后,可以根据箱体的位置和大小明确受影响的4个线段数据位置,并且借助高度h和横向位置p直接访问这两个数组里4个位置的现有内容,在每个位置上,实际进行的是一维空间上有限集合有规律的交并补计算,所以上述数据结构在精确描述车厢与箱体尺寸位置的基础上,还能够高效地进行更新车厢状态的运算,为后面的优化模型提供基础,同时上述数据结构也能够服务于其它三维装箱算法。

S104,获取装箱终止状态下车厢的标准空间状态,将其离散为三维矩阵并计算第二装箱问题实例在装箱终止状态下的实际装载率。

本发明实施例中,构造一个简单的离散函数,将每一个状态数组数据,即标准空间状态转化为三维空间中的0-1矩阵输入神经网络进行训练,其中0代表该空间点位置没有箱体,1代表该空间点位置有箱体,这里箱体的边界位置视为1。

S105,将三维矩阵和实际装载率输入至神经网络,以使神经网络以最大实际装载率为目标调整各层的权重系数,直到当前符合预设的训练结束条件时,将神经网络作为三维装箱模型。

S40,获取三维装箱模型针对第一装箱问题实例所输出的实际装载率最高的装箱方案。

经由上文可知,本发明实施例中是以实际装载率作为三维装箱优化的目标,为方便理解,以下对实际装载率进行说明:

给定一种矩形体车厢,长宽高已知。给定一组各不相同的矩形体箱体,每种箱体长宽高及数量已知。将箱体依次放入车厢中,要求箱体两两不能有重叠部分,问如何能以最高的实际装载率装完这些箱体,其中

实际装载率=箱体总体积/装载车厢体积。

需要说明的是,如果最终使用了N辆车装完所有箱体,装载车厢体积是指前N-1辆车的总体积+第N辆车的实际使用车长*车宽*车高。参见图6所示的箱体装载实例,其实际使用车长为2.15米。

考虑到如何区分相同数量车辆的不同方案,例如所有箱体能装在一个车厢中时,区分不同方案的优劣,仅仅考虑车辆数量是一个不够精确的优化目标,所以一个常见的确切指标是装载率。

在实际生产环节中,箱体要先装入托盘再将托盘装入车厢、出现不同车型是常见的,本发明关注三维装箱的状态描述数据结构及强化学习算法设计,对于上述情况不予以展开探讨。实际上可对本发明进行简单推广,用于解决箱体-托盘-车厢多层级装箱问题和多车厢型装箱问题。

本发明有以下优点:

描述三维装箱状态的数据结构,将三维空间内复杂的状况,简化到线段集合的层面,既能精确表示任意车厢-箱体尺度问题的任意时刻装箱状态,又能对装箱状态快速更新。

数据结构也可以经过简单改造,适用于多种场景装箱问题,例如先打托后装箱的多层装箱、精密物料切割等等,同时适用于其他涉及三维空间表述与修改的问题。

对实际出现的不同装箱问题,整体算法方案能够兼顾应用的广泛性和对问题的针对适配。

运算效率高,1min内完成箱体数量在10

基于上述实施例提供的三维装箱处理方法,本发明实施例还提供一种执行上述三维装箱处理方法的装置,该装置的结构示意图如图7所示,包括:

实例获取模块10,用于获取待处理的第一装箱问题实例,第一装箱问题实例中包含箱体的描述数据和车厢的空间状态;

标准化模块20,用于标准化第一装箱问题实例中箱体的描述数据和车厢的空间状态,以获得第一装箱问题实例中箱体的标准描述数据和车厢的标准空间状态;

装箱处理模块30,用于将第一装箱问题实例中箱体的标准描述数据和车厢的标准空间状态输入三维装箱模型中,三维装箱模型是预先基于强化学习算法对神经网络进行训练得到的;获取三维装箱模型针对第一装箱问题实例所输出的实际装载率最高的装箱方案。

可选的,装箱处理模块30预先基于强化学习算法对神经网络进行训练得到三维装箱模型的过程,包括:

获取训练用的第二装箱问题实例,第二装箱问题实例中包含箱体的描述数据和车厢的空间状态;标准化第二装箱问题实例中箱体的描述数据和车厢的空间状态,以获得第二装箱问题实例中箱体的标准描述数据和车厢的标准空间状态;基于贪心策略确定第二装箱问题实例的装箱动作,并基于装箱动作处理第二装箱问题实例中的箱体的标准描述数据,以对第二装箱问题实例中车厢的标准空间状态进行更新,直到进入预设的装箱终止状态;获取装箱终止状态下车厢的标准空间状态,将其离散为三维矩阵并计算第二装箱问题实例在装箱终止状态下的实际装载率;将三维矩阵和实际装载率输入至神经网络,以使神经网络以最大实际装载率为目标调整各层的权重系数,直到当前符合预设的训练结束条件时,将神经网络作为三维装箱模型。

可选的,标准描述数据为八元数组:

(箱体的长,箱体的宽,箱体的高,箱体位于所在车厢车长方向的坐标,箱体位于所在车厢车宽方向的坐标,箱体位于所在车厢车高方向的坐标,箱体的装载方位,箱体所在车厢的编号);

标准空间状态为二级数组:

[(开始线段的高度,(开始线段的横向位置,开始线段的长度))],[(结束线段的高度,(结束线段的横向位置,结束线段的长度))];

其中,开始线段表征车厢的开始装箱位置,结束线段表征车厢的结束装箱位置。

可选的,装箱处理模块30基于装箱动作处理第二装箱问题实例中的箱体的标准描述数据,以对第二装箱问题实例中车厢的标准空间状态进行更新的过程,包括:

基于装箱动作确定待移动的目标箱体、以及目标箱体的装载位置;根据目标箱体的装载位置确定目标箱体所在的目标车厢、以及目标车厢当前的目标标准空间状态;利用目标箱体的长、宽和高确定箱体与目标标准空间状态中开始线段和结束线段的相对位置关系,并基于相对位置关系更新目标标准空间状态中开始线段和结束线段。

可选的,装箱处理模块30基于相对位置关系更新目标标准空间状态中开始线段和结束线段的过程,包括:

基于相对位置关系确定目标标准空间状态中待更新的目标线段,目标线段包括开始线段和/或结束线段;根据目标箱体的标准描述数据中箱体的长、宽、高确定目标线段与目标箱体的交集部分,并向目标线段补充非交集部分,以更新目标线段;对目标标准空间状态中未更新的其他线段和更新后的目标线段进行并计算。

需要说明的是,本发明实施例中各模块的细化功能可以参见上述三维装箱处理方法所对应公开部分,在此不再赘述。

本发明实施例提供的三维装箱处理装置,对于待处理的装箱问题实例能够标准化,提供能够精确描述装箱状态的数据结构,为后续的优化模型提供快速迭代的基础,进而基于强化学习算法给出三维装箱问题的一种较为高效的优化模型,该优化模型能够通过学习自动匹配相应的具体问题,能够适应不同尺度的箱体-车厢的装箱问题。

本发明实施例还提供一种电子设备,包括:至少一个存储器和至少一个处理器;存储器存储有程序,处理器调用存储器存储的程序,程序用于实现任意一项所述的三维装箱处理方法。

本发明实施例还提供一种存储介质,存储介质中存储有计算机可执行指令,计算机可执行指令用于执行任意一项所述的三维装箱处理方法。

以上对本发明所提供的一种三维装箱处理方法、装置、电子设备及存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备所固有的要素,或者是还包括为这些过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

相关技术
  • 三维装箱处理方法、装置、电子设备及存储介质
  • 三维重建处理方法、装置、电子设备以及存储介质
技术分类

06120113211149