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

物品装载方法、物品装载装置、电子设备及存储介质

文献发布时间:2024-04-18 20:01:30


物品装载方法、物品装载装置、电子设备及存储介质

技术领域

本申请涉及车辆装载技术领域,尤其涉及一种物品装载方法、物品装载装置、电子设备及存储介质。

背景技术

烟草订单呈现出多批次、小批量的发展趋势,同时零散化、碎片化订单数量逐渐增多,单一订单整车运输比例逐年下降。为了在合适的物流成本下满足烟草零售企业的到货时间要求,在提升服务水平的同时降低成本,烟草物流采取多订单组合的集中运输方式,以满足不断变化的订单需求。在传统的整车运输模式下,一辆车通常只装载同一种类的烟草成品,并将其直接运送到一个确定的卸货地点。然而,在新型多订单组合的运输方式中,一辆车可能会装载不同种类的烟草成品,并需要在多个不同的卸货地点进行交付。这导致了订单数量的增加和货物装卸的复杂性,给烟草到货时间的保证带来了挑战。因此,如何进行物品装载,成为了亟待解决的问题。

发明内容

本申请实施例的主要目的在于提出一种物品装载方法、物品装载装置、电子设备及存储介质,旨在对物品进行装载,提高物品装载的效率。

为实现上述目的,本申请实施例的第一方面提出了一种物品装载方法,所述方法包括:

获取当前搜索层的初始物品装载方案;所述初始物品装载方案包括第一预设数目个目标物品块;所述当前搜索层具有第一层索引;所述第一预设数目与所述第一层索引相等;

获取所述当前搜索层的搜索深度;

根据所述搜索深度对所述初始物品装载方案进行深度优先搜索,得到第二预设数目个目标物品块;

将所述第二预设数目个目标物品块放置在目标搜索层的初始物品装载方案中;所述目标搜索层具有第二层索引;所述第二层索引通过所述第一层索引和所述搜索深度相加得到;

若当前搜索层的下一搜索层为预设搜索层,则将每一搜索层的初始物品装载方案作为目标物品装载方案。

在一些实施例,所述获取当前搜索层的初始物品装载方案,包括:

获取剩余空间列表;所述剩余空间列表包括多个空间单元;

从所述剩余空间列表取出一个空间单元,得到目标空间单元;

根据所述目标空间单元进行物品块生成,得到可行物品块列表;

若所述可行物品块列表包含多个候选物品块,从所述可行物品块列表选取所述候选物品块,得到目标物品块;

将所述目标物品块放置在所述目标空间单元,得到所述初始物品装载方案。

在一些实施例,所述目标空间单元具有第一长度、第一宽度和第一高度,所述根据所述目标空间单元进行物品块生成,得到可行物品块列表,包括:

获取初始物品块;所述初始物品块具有第二长度、第二宽度和第二高度;所述初始物品块包括第三预设数目个物品;

若所述第三预设数目小于或者等于预设物品数目,且所述第二长度小于或者等于第一长度,且所述第二宽度小于或者等于所述第一宽度,且所述第二高度小于或者等于所述第一高度,则将所述初始物品块作为所述候选物品块;

根据所述候选物品块进行物品块列表构建,得到所述可行物品块列表。

在一些实施例,所述物品具有第三长度、第三宽度和第三高度,所述空间单元具有第四长度、第四宽度和第四高度,所述获取初始物品块,包括:

根据所述第三长度和所述第四长度进行物品数目评估,得到第一物品数目;第一物品数目为长度方向的物品数目;

根据所述第三宽度和所述第四宽度进行物品数目评估,得到第二物品数目;第二物品数目为宽度方向的物品数目;

根据所述第三高度和所述第四高度进行物品数目评估,得到第三物品数目;第三物品数目为高度方向的物品数目;

根据所述第一物品数目个物品、所述第二物品数目个物品和所述第三物品数目个物品进行物品块生成,得到所述初始物品块。

在一些实施例,在所述根据所述目标空间单元进行物品块生成,得到可行物品块列表之后,所述物品装载方法还包括:

若所述可行物品块列表未包含多个候选物品块,则将所述目标空间单元和所述剩余空间列表的其他所述空间单元进行空间合并,得到合并空间单元;

根据所述合并空间单元进行物品装载,得到所述初始物品装载方案。

在一些实施例,所述将所述目标物品块放置在所述目标空间单元,得到所述初始物品装载方案,包括:

获取所述目标空间单元中未被填充的空间,得到候选空间;

对所述候选空间进行切割,得到多个子空间;

将多个所述子空间加入所述剩余空间列表;

将所述目标物品块放置在所述目标空间单元,直至所述剩余空间列表为空,得到所述初始物品装载方案。

在一些实施例,多个子空间包括第一子空间、第二子空间和第三子空间,所述对所述候选空间进行切割,得到多个子空间,包括:

根据预设物品块顶部的可放置矩形,沿高度方向对所述候选空间进行切割,得到所述第一子空间;

沿长度方向对所述候选空间进行切割,得到所述第二子空间;

沿宽度方向对所述候选空间进行切割,得到所述第三子空间。

为实现上述目的,本申请实施例的第二方面提出了一种物品装载装置,所述装置包括:

第一获取模块,用于获取当前搜索层的初始物品装载方案;所述初始物品装载方案包括第一预设数目个目标物品块;所述当前搜索层具有第一层索引;所述第一预设数目与所述第一层索引相等;

第二获取模块,用于获取所述当前搜索层的搜索深度;

深度优先搜索模块,用于根据所述搜索深度对所述初始物品装载方案进行深度优先搜索,得到第二预设数目个目标物品块;所述第二预设数目小于或者等于所述第一预设数目;

放置模块,用于将所述第二预设数目个目标物品块放置在目标搜索层的初始物品装载方案中;所述目标搜索层具有第二层索引;所述第二层索引通过所述第一层索引和所述搜索深度相加得到;

物品装载模块,用于若当前搜索层的下一搜索层为预设搜索层,则将每一搜索层的初始物品装载方案作为目标物品装载方案。

为实现上述目的,本申请实施例的第三方面提出了一种电子设备,所述电子设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述第一方面所述的物品装载方法。

为实现上述目的,本申请实施例的第四方面提出了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面所述的物品装载方法。

本申请提出的物品装载方法、物品装载装置、电子设备及存储介质,通过获取当前搜索层的初始物品装载方案,获取当前搜索层的搜索深度,根据搜索深度对初始物品装载方案进行深度优先搜索,而非对多个物品形成的物品块进行深度优先搜索,得到第二预设数目个目标物品块,能够减少求解时间,提高物品装载的效率。将第二预设数目个目标物品块放置在目标搜索层的初始物品装载方案中。k层上的最优解不一定是k+1层上最优解的父节点,k层上最优的N个解很可能包括了所有k+1层上最优的N个解的节点。如果只选择一个最优解,有可能会错过下一层的最优解。而选择多个最优的解进行后续搜索,将以更大的概率包含下一层的最优解。通过分层对初始物品装载方案进行搜索,能够保证对搜索空间的全局搜索,使得目标物品装载方案为最优解,提高了物品装载的准确性。若当前搜索层的下一搜索层为预设搜索层,则将每一搜索层的初始物品装载方案作为目标物品装载方案,能够实现对物品的自动装载,降低了物品装载的复杂性,提高了物品装载的效率。

附图说明

图1是本申请实施例提供的物品装载方法的流程图;

图2是图1中的步骤S110的流程图;

图3是图2中的步骤S230的流程图;

图4是图3中的步骤S310的流程图;

图5是本申请实施例提供的物品装载方法的另一流程图;

图6是图2中的步骤S250的流程图;

图7是图6中的步骤S620的流程图;

图8是本申请实施例提供的物品装载装置的结构示意图;

图9是本申请实施例提供的电子设备的硬件结构示意图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。

需要说明的是,虽然在装置示意图中进行了功能模块划分,在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于装置中的模块划分,或流程图中的顺序执行所示出或描述的步骤。说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。

除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。

烟草订单呈现出多批次、小批量的发展趋势,同时零散化、碎片化订单数量逐渐增多,单一订单整车运输比例逐年下降。为了在合适的物流成本下满足烟草零售企业的到货时间要求,在提升服务水平的同时降低成本,烟草物流采取多订单组合的集中运输方式,以满足不断变化的订单需求。在传统的整车运输模式下,一辆车通常只装载同一种类的烟草成品,并将其直接运送到一个确定的卸货地点。然而,在新型多订单组合的运输方式中,一辆车可能会装载不同种类的烟草成品,并需要在多个不同的卸货地点进行交付。这导致了订单数量的增加和货物装卸的复杂性,给烟草到货时间的保证带来了挑战。因此,如何进行物品装载,成为了亟待解决的问题。

基于此,本申请实施例提供了一种物品装载方法、物品装载装置、电子设备及计算机可读存储介质,旨在降低物品装载的复杂性,提高物品装载的效率。

本申请实施例提供的物品装载方法、物品装载装置、电子设备及计算机可读存储介质,具体通过如下实施例进行说明,首先描述本申请实施例中的物品装载方法。

本申请实施例提供的物品装载方法,涉及车辆装载技术领域。本申请实施例提供的物品装载方法可应用于终端中,也可应用于服务器端中,还可以是运行于终端或服务器端中的软件。在一些实施例中,终端可以是智能手机、平板电脑、笔记本电脑、台式计算机等;服务器端可以配置成独立的物理服务器,也可以配置成多个物理服务器构成的服务器集群或者分布式系统,还可以配置成提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN以及大数据和人工智能平台等基础云计算服务的云服务器;软件可以是实现物品装载方法的应用等,但并不局限于以上形式。

本申请可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。

图1是本申请实施例提供的物品装载方法的一个可选的流程图,图1中的方法可以包括但不限于包括步骤S110至步骤S150。

步骤S110,获取当前搜索层的初始物品装载方案;初始物品装载方案包括第一预设数目个目标物品块;当前搜索层具有第一层索引;第一预设数目与第一层索引相等;

步骤S120,获取当前搜索层的搜索深度;

步骤S130,根据搜索深度对初始物品装载方案进行深度优先搜索,得到第二预设数目个目标物品块;

步骤S140,将第二预设数目个目标物品块放置在目标搜索层的初始物品装载方案中;目标搜索层具有第二层索引;第二层索引通过第一层索引和搜索深度相加得到;

步骤S150,若当前搜索层的下一搜索层为预设搜索层,则将每一搜索层的初始物品装载方案作为目标物品装载方案。

随着烟草物流的进一步发展,烟草订单呈现出多批次、小批量的特点,对卷烟成品的装载提出了更高的要求。卷烟公司的物流中心接收上游营销中心的订单合同后,物流中心需要根据订单的组拼情况,在一辆烟草配送车辆内装载包括正常支、细支、中支和异型卷烟等多种类型的卷烟成品。本申请实施例针对卷烟成品的装载方案展开研究,将车厢抽象为长方体空间,全面考虑车厢的特殊形状,以确保在实际运输中满足各种限制条件。

为了最小化物流成本,越来越多的物流服务提供商开发了自己的物流管理系统。然而,由于订单数量激增且偏向碎片化,传统的基于距离的设施选址模型可能不足以设计现代响应式烟草供应链。因此,许多物流企业开始将运筹优化算法与物流相结合,设计精确算法或启发式算法,来进行货物装卸和车辆路径规划,实现信息化-数字化-智能化的全面升级,从而降低物流成本。现有技术中,对于卷烟成品的装载大多将其简化为规则的长方体,并采用传统的三维装箱方法进行装载。然而,这种方法没有充分考虑到烟箱的码放规则、易碎性以及装车的先后顺序,给实际操作中的烟草物流带来了极大的不便。为解决这些问题,本申请实施例充分考虑了烟箱的易碎性以及装载的先后顺序,并采用块生成等方式将卷烟成品进行组合。通过将卷烟成品视为块,整体进行装载,并运用分层搜索的启发式算法进行优化调整,能够提供3D可视化装载方案,为卷烟成品的装载提供了极大的便利。

在卷烟成品的装载中综合考虑了多个因素,包括装载的先后顺序、方位限制、堆垛规则、编组规则、载荷限制、均衡控制和松散限制。装载的先后顺序按照"先卸后装"的原则进行,根据不同订单的卸货地点的不同进行有序装载。考虑卷烟成品在运输过程中的安全性,方位限制需要限制卷烟成品的放置方向,并避免悬空摆放。堆垛规则允许相同种类的卷烟成品组成一个块,以便作为一个整体进行装载。编组规则要求只有满足相近卸货地点且到货时间要求的订单可以进行组拼,同时需要综合考虑所有订单的情况。载荷限制确保卷烟成品的装载不超过运输车辆的最大承载量。均衡控制旨在使每个车辆的平均装载率接近,避免极高和极低的装载率情况出现。松散限制考虑卷烟成品的易碎性,避免装载过于拥挤导致损伤,同时要确保装载不过于松散以防止运输过程中的损失。通过合理布局多品规、多规格和多尺寸的卷烟箱,能够将订单合同中的卷烟以最大限度满载运输到目标公司。本申请实施例将卷烟成品装载从依赖人工经验转变为智能控制和科学装载的方法,极大地提高了装载的效率和准确性。

在实现物品自动装载这个目标的过程中,本申请实施例细致考虑了各项约束条件,确保了装载方案的合理性和可行性。通过将卷烟成品装载问题转化为智能控制的方法,为卷烟物流领域的装载问题提供了一种新的解决思路,并为相关领域的研究提供了有益的参考。卷烟成品装载问题的关键在于寻找最佳的装载方案,以使得集装箱内卷烟成品的体积或价值最大化,并避免卷烟成品之间的重叠。在实际应用中,还需要考虑到两个最常见的约束条件,即方向约束和稳定性约束,稳定性约束又称完全支撑约束。方向约束是指被装载的物品需要受到方向限制,这意味着每个物品只能选择其中一条或几条边作为其垂直方向,即高度方向。对于没有方向约束的问题,可以简单地将所有物品的任意边作为其高度方向。稳定性约束是指在三维装载问题中,装载过程中的物品需要满足稳定性约束。换句话说,物品在装载过程中不能悬空摆放,其底部需要得到支撑,该支撑可以是由装载容器或其他物品提供。稳定性约束的考虑对于确保装载的安全和可靠至关重要。此外,卷烟成品的装载存在一些特殊的约束条件,使得相对于传统的三维装载问题,卷烟成品装载更具挑战性。主要影响卷烟成品装载的因素包括装车人员、异型烟和标准烟。因此,配送车辆的装载率下降主要是由以下几个因素引起的:装车人员因素(装车顺序和装载紧密度)以及异型烟因素(异型烟占比和异型烟的装载方式)。卷烟成品装载的特殊约束条件使得装载方案的设计更加复杂。装车人员的决策和操作方式直接影响装载效果,确定合理的装车顺序和提高装载紧密度是需要解决的关键问题。同时,异型烟的存在也增加了装载的难度,不同形状和尺寸的异型烟需要特殊的装载方式以确保装载的稳定性和容积利用率。

综上所述,卷烟成品装载相对于传统的三维装载问题具有更高的复杂性,主要受装车人员因素和异型烟因素的影响。如何提高配送车辆的装载率,并设计出高效而稳定的卷烟成品装载方案成为了亟待解决的问题。

(1)卷烟装车顺序的差异

由于卷烟订单的拼单往往要在不同的卸货点进行卸货,因此需要充分考虑两个订单的装车先后顺序。这意味着存在"先卸后装,后卸先装"的约束。此外,卷烟成品的装载顺序会对车辆的装载率造成影响,尤其是标准烟和异型烟的装载顺序。将标准烟和异型烟视作不同的订单,先对标准烟进行装载,在标准烟装载完成后再进行异型烟的装载,不仅可以提高装载空间的利用率和整车的平均装载率,还可以对未来卷烟成品运输过程中的卸货和重新装货带来便利。本申请实施例充分考虑了订单的先后顺序以及标准烟和异型烟的情况。装载顺序遵循"先卸后装"和"先装标准烟,后装异型烟"的原则,以确保装车的合理性和最大化装载空间的利用。在实际的算法设计中,针对两个不同的卷烟成品订单采取了分别调用启发式算法进行求解的策略。具体而言,先完成第一个订单的装载,然后再进行第二个订单的装载。这样的处理方式能够确保后卸的烟草订单总是位于运输车辆装载空间的外侧,以提高装载的合理性。同时,将异型烟视作一个单独的订单,并按照上述的订单处理方式进行装载。这样的设计保证了异型烟总是位于装载空间的上方,避免了其他烟草成品对其的挤压。此外,为了满足装卸的要求,含有异型烟的不同卸货地点的订单总是先进行卸货,即先到达目的地。不会将两个含有异型烟的不同卸货地点的订单进行组合,以保证装卸顺序的合理性。

(2)卷烟成品装载的紧凑度

卷烟的堆叠紧凑程度对于装载率有着重要影响。在确保卷烟不被压坏或挤坏的前提下,充分利用车厢内的有效空间是至关重要的。为满足这一要求,在卷烟成品的装载过程中考虑了装载的紧凑度。在调用启发式算法进行装载时,始终预留10cm的距离,以确保卷烟成品不被挤压,同时最大化装载率,充分利用可用的装载空间。

(3)异型烟数量对装载的影响

异型烟的繁杂品类以及不规则的外形,一直以来都是卷烟成品装载问题中亟待解决的问题。异型烟数量的增多会给卷烟的装载带来更大的困难,并且严重降低了整车的平均装载率。为了在降低物流成本的同时保护异型烟不受挤压或颠簸造成损坏,烟草公司采用了一种特殊的异型烟装载方法。该方法包括将具有不规则外形的异型烟先进行裹膜和打包,然后再将打包好的异型烟作为一个整体装入空纸箱或周转箱中。然而,目前的烟草物流行业在处理异型烟装载时仍倚重人工经验来挑选烟箱和后续的周转箱。

针对异型烟的特殊性,装载过程中需要进行额外的标注。具体而言,异型烟被视为独立的订单,并要求与主订单一起装载到同一辆车厢或车队中。为确保装载顺利进行并有效管理异型烟的装载,装载过程遵循异型烟"后装"的原则,严格按照规定的顺序进行装载。这种方法确保了装载过程的顺利进行和对异型烟装载的有效管理。

为避免烟箱间隙、车厢鹅颈空隙、车门空隙等缝隙过大导致烟箱倾倒等问题,本申请实施例提出了卷烟成品车厢内码放的要求。卷烟的码放以直立、标准烟箱底面对应车厢尾门为主,并尽可能保证行、列码放的卷烟与卷烟、卷烟与车厢壁之间的间隙最小。当卷烟与车厢壁之间的间隙小于10cm时,使用填充物(如泡沫板、气垫膜等)进行填充,以确保卷烟成品的稳定和安全装载。

当对一个问题进行复杂性分析时,除了时间复杂度外,还需要考虑一些其他因素。以下是对多规格卷烟成品装载问题进行进一步分析的一些因素:

(1)空间复杂度:卷烟装载问题的空间复杂度取决于所采用的算法。卷烟装载问题是一个NP困难问题,没有已知的多项式时间解法。因此,目前的算法都是近似算法或启发式算法。具体的空间复杂度取决于所选算法的实现方式、使用的数据结构以及问题的规模。在本申请实施例的启发式算法中,空间复杂度主要取决于以下两个因素:

存储当前解空间:分层搜索算法需要维护当前搜索的解空间。这包括已装载的卷烟成品、未装载的卷烟成品和可能的装载位置等信息。因此,解空间的大小对空间复杂度有影响。

存储搜索状态:分层搜索需要跟踪已搜索的状态以避免重复搜索。这可能需要使用一些数据结构,如哈希表或位向量,来存储已访问的状态。因此,搜索状态的存储空间也会对空间复杂度产生影响。

(2)约束条件的复杂性:在这个问题中,有很多约束条件需要满足,这些约束条件可能会相互影响,使得问题更加复杂。此外,约束条件可能会包含不等式约束和等式约束,对算法的选择和实现也会产生影响。

(3)算法复杂性:针对这个问题,使用启发式算法可以获得较好的解,但是不同的启发式算法的复杂度也不同。因此,在实际求解过程中,需要根据问题的具体情况来选择适合的算法。

(4)可扩展性:随着问题规模的增加,搜索空间也会增加,因此需要一种可扩展的算法来解决这个问题。同时,该算法也需要具有良好的解决质量,以确保求解结果的准确性。

基于以上因素,可以得出结论:三维的卷烟成品装载问题是一个非常复杂的问题,需要使用高效的启发式算法来解决。同时,算法的可扩展性和解决质量也需要考虑。

本申请实施例不采用传统的使用精确算法求解卷烟成品装载问题的方法,转而采用分层搜索的启发式算法去求解,使得在求解零散化的订单时求解速度较快,面对较大数据量的时候也能够完成求解。同时本申请实施例在考虑块生成的时候,更注重基础的简单块的生成,不拘泥于复杂块的生成,这在很大程度上缩短了求解时间。本申请实施例还考虑了诸如异型烟因素、装车顺序以及卷烟的易碎性等卷烟成品装载问题独有的特点,使得本申请实施例与实际的卷烟装载场景和需求更加贴切。

考虑到多规格卷烟成品装载问题的复杂性以及实际应用的需求,使用启发式方法是一种有效的途径来生成卷烟成品的装载方案。优秀的启发式算法应具备快速寻找解决方案、接近最优解以及适应不同场景和需求的灵活性。本申请实施例提出了一种基于分层搜索的启发式算法,其设计灵感来自于日常装载经验,并采用了分层叠放的方法来进行卷烟成品的装载,在提高计算效率的同时,避免精确算法求解时间过长带来的缺点。下面将对本申请实施例提出的基于分层搜素的启发式算法进行详细介绍。

启发式算法的基本流程如下:

Step1:生成所有可能的块:根据输入时间上限、搜索层数上限等输入参数,生成所有可能的卷烟成品组成的块。这些块代表可用于装载卷烟成品的空间单元。若未超过时间上限且还有未使用输入参数,则根据输入参数设置一组未使用的搜素算法参数,生成块列表,并把容器作为唯一的空间加入剩余空间列表。若超过时间上限或者不存在未使用输入参数,则算法结束,输出已记录的装载方案的最优解。可以理解的是,输入问题为容器信息和物品信息。

Step2:初始化当前部分装载方案:算法初始化一个当前部分装载方案,并准备开始装载过程。

Step3:装载阶段循环:在每个装载阶段,执行以下步骤:

取出一个空间:从堆栈中取出一个空间,该空间用于装载卷烟成品。

生成可行块列表:生成可行块的列表,这些可行块是适合当前空间的卷烟成品块。

选择块进行装载:如果可行块列表不为空,算法选择一个合适的块进行装载,并将其添加到当前部分装载方案中。

划分未填充空间并插入堆栈:将未填充的空间划分成更小的空间,并将这些空间插入堆栈中,以供后续的装载过程使用。

检查列表是否为空:检查可行块列表是否为空。如果列表为空,转到步骤“取出一个空间”;否则,返回步骤“选择块进行装载”继续进行装载。

移动剩余空间:当可行块列表为空时,算法尝试将剩余空间中可利用的部分移动到堆栈中的相应剩余空间,以完成装载。

Step4:结束装载过程:当所有的空间都被处理并且装载完成时,结束装载过程。

请参阅图2,在一些实施例中,步骤S110可以包括但不限于包括步骤S210至步骤S250:

步骤S210,获取剩余空间列表;剩余空间列表包括多个空间单元;

步骤S220,从剩余空间列表取出一个空间单元,得到目标空间单元;

步骤S230,根据目标空间单元进行物品块生成,得到可行物品块列表;

步骤S240,若可行物品块列表包含多个候选物品块,从可行物品块列表选取候选物品块,得到目标物品块;

步骤S250,将目标物品块放置在目标空间单元,得到初始物品装载方案。

在一些实施例的步骤S210中,在卷烟成品装载问题中,所有需要被装载的卷烟成品都被抽象为一个具有规则外形的物体,并且规定所有的卷烟成品的装载方向必须与装载空间的某一个面保持平行。为了表达和计算的简洁性,将会引入一个基于装载空间而建立的空间直角坐标系来更好的描述需要被装载的卷烟成品,这个空间直角坐标系将以装载空间的左、后、下的角作为坐标原点,以装载空间的左、后、下的边作为坐标轴建立。

卷烟成品的装载操作将在一个抽象出来的剩余空间中进行。本申请实施例引入剩余空间的概念,并用space来表示剩余空间,同时将上述提到的建立空间直角坐标系的方法引入到每一个剩余空间中,用一个(x,y,z)的三元组来描述剩余空间中的点的坐标,用(lx,ly,lz)来描述剩余空间的长、宽、高。

卷烟成品是需要被装载的物品,本申请实施例以cigarette来代表这个概念。与剩余空间类似,本申请实施例使用(lx,ly,lz)这个三元组来描述卷烟成品三条边的长度。不同朝向的相同卷烟成品被视为一个独立的个体,每个独立的个体都有一个type参数,用于指定卷烟成品的种类。

在建立空间直角坐标系之后,本申请实施例给出了卷烟成品装载问题的实例的描述:(container,cigaretteList,number)。其中,container表示用于装载卷烟成品的容器,同时也是一个初始的剩余空间,cigaretteList是一个由卷烟成品为元素组成的向量,指定可用于装载的卷烟成品,number则是一个整数向量,描述了每种类型的卷烟成品的数量。

在给出了卷烟成品装载问题的实例之后,为了支持提出的基于分层搜索的启发式算法,本申请实施例引入了“块”这个重要的抽象概念。block用于表示块,它既可以表示仅由一种卷烟成品组成的简单块,也可以表示由多种不同种类的卷烟成品组成的复合块。block包含一个number向量,描述了block中含有的卷烟成品的数量。考虑到实际的卷烟成品装载问题的约束,为了避免block的内部不满足完全支撑约束,因此在block中,引入了一个以左后上角为坐标原点,block的长和宽为坐标轴的平面直角坐标系,并使用ax和ay两个参数来描述block的顶部可以放置的空间的大小。

具体地,将容器作为唯一的空间加入剩余空间列表。判断剩余空间列表是否为空,若剩余空间列表为空,则将所有已防止的块构成一个放置方案,并记录该放置方案。若剩余空间列表不为空,即剩余空间列表包括多个空间单元,多个空间单元是对容器进行划分得到的空间。

在一些实施例的步骤S220中,在进行装载之前,首先根据卷烟成品列表和限制条件,初始化由卷烟成品组成的块的列表blockTable和当前的卷烟成品放置方案packingState。

blockTable=BlockGeneration(problem.container,problem.container.cigaretteList,problem.number)。blockTable是预先生成的所有可行块的列表。剩余空间列表以堆栈的形式存在,在卷烟成品装载过程中,每次将会从装载空间堆栈的栈顶取出一个剩余空间,得到目标空间单元。目标空间单元为处于栈顶的空间单元。

在一些实施例的步骤S230中,利用可行块列表生成算法BlockList Generation从blockTable中获取适合当前剩余空间的可行块列表,生成基于目标空间单元这个装载空间的可行块列表,得到可行物品块列表,可行物品块列表包括多个卷烟组合。即blockList=BlockListGeneration(space,avail)。space可为目标空间单元,avail表示可用的卷烟成品的数量。这种分离式的设计使得基础启发式算法与块生成算法完全无关,块生成算法BlockGeneration可以根据需要进行定制而不影响基础启发式算法。在每个装载阶段,可行块列表生成算法即BlockList Generation都会对一个来自装载空间堆栈的剩余空间进行装载的尝试。每一次尝试都有两种结果,即可行的卷烟组合列表不为空或可行的卷烟组合列表为空。当可行的卷烟组合列表不为空时,BlockList Generation算法会调用后续的块选择算法,挑选出最优的可行块,并重新切割装载空间。

在一些实施例的步骤S240中,若可行物品块列表包含多个候选物品块,即可行块列表不为空,则从可行物品块列表选取最大化装载率的候选物品块,得到目标物品块。

在一些实施例的步骤S250中,将目标物品块放置在目标空间单元,同时更新剩余物品列表blockTable,重复执行步骤S220至步骤S240,直至剩余空间列表为空,所有放置的目标物品块构成初始物品装载方案。可以理解的是,已经放置的物品块不能重复放置,更新剩余物品列表指的是将已放置的物品块从剩余物品列表中剔除。物品装载方案为空间单元与物品块的组合。

将目标空间单元从剩余空间列表中弹出,并对avail进行更新,更新后的avail为avail-block.require。block.require为目标物品块的卷烟成品的数量。卷烟成品放置方案更新为ps.plan+(space,block)。卷烟成品放置方案对应的体积更新为ps.plan.volume+block.volume。

通过上述步骤S210至步骤S250,能够得到初始物品装载方案,以基于初始物品装载方案进行分层搜索,提高物品装载方案的准确性。

请参阅图3,在一些实施例中,目标空间单元具有第一长度、第一宽度和第一高度,步骤S230可以包括但不限于包括步骤S310至步骤S330:

步骤S310,获取初始物品块;初始物品块具有第二长度、第二宽度和第二高度;初始物品块包括第三预设数目个物品;

步骤S320,若第三预设数目小于或者等于预设物品数目,且第二长度小于或者等于第一长度,且第二宽度小于或者等于第一宽度,且第二高度小于或者等于第一高度,则将初始物品块作为候选物品块;

步骤S330,根据候选物品块进行物品块列表构建,得到可行物品块列表。

在一些实施例的步骤S310中,采用块生成算法BlockGeneration获取初始物品块,初始物品块具有第二长度、第二宽度和第二高度,初始物品块包括第三预设数目个物品,物品为卷烟成品,物品的类型可以不同。初始物品块为blockTable中的物品块,为卷烟成品的组合。由卷烟组合而成的块是由相同类型的卷烟成品在同一朝向上堆叠而成的长方体,块内部的卷烟成品之间彼此没有空隙。

在一些实施例的步骤S320中,第三预设数目表示为block.require,预设物品数目为avail,avail表示可用的卷烟成品数量,第二长度表示为block.lx,第二宽度表示为block.ly,第二高度表示为block.lz。第一长度、第一宽度和第一高度分别表示为space.lx、space.ly、space.lz,若block.require小于等于avail,且block.lx小于等于space.lx,且block.ly小于等于space.ly,且block.lz小于等于space.lz,将初始物品块作为候选物品块。

在一些实施例的步骤S330中,根据步骤S320得到的全部候选物品块进行物品块列表构建,得到可行物品块列表。可行物品块列表包括多个候选物品块或者可行物品块列表为空。

通过上述步骤S310至步骤S330,能够得到可行物品块列表,以对可行物品块列表中的物品块进行装载,从而实现物品块的自动装载。

请参阅图4,在一些实施例中,物品具有第三长度、第三宽度和第三高度,空间单元具有第四长度、第四宽度和第四高度,步骤S310可以包括但不限于包括步骤S410至步骤S440:

步骤S410,根据第三长度和第四长度进行物品数目评估,得到第一物品数目;第一物品数目为长度方向的物品数目;

步骤S420,根据第三宽度和第四宽度进行物品数目评估,得到第二物品数目;第二物品数目为宽度方向的物品数目;

步骤S430,根据第三高度和第四高度进行物品数目评估,得到第三物品数目;第三物品数目为高度方向的物品数目;

步骤S440,根据第一物品数目个物品、第二物品数目个物品和第三物品数目个物品进行物品块生成,得到初始物品块。

在一些实施例的步骤S410中,块生成算法会枚举所有满足约束条件的组合(nx,ny,nz),约束条件为块的体积应小于用于装载的剩余空间的体积、块所包含的卷烟成品数量应小于可用的卷烟成品数量。nx、ny、nz代表了每个维度上的卷烟成品的数量,nx×ny×nz表示了一个块所需的全部卷烟的数量。

具体地,遍历cigaretteList中的每一物品cigarette,物品具有第三长度、第三宽度和第三高度,第三长度、第三宽度和第三高度分别表示为cigarette.lx、cigarette.ly、cigarette.lz。容器所表征的空间单元具有第四长度、第四宽度和第四高度,分别表示为container.lx、container.ly和container.lz。若多个物品的第三长度之和cigarette.lx*nx小于或者等于第四长度container.lx,则将nx作为第一物品数目。第一物品数目用于表示长度方向(x轴)的物品数目。nx的取值范围为[1,number[cigarette.type]]。cigarette.type为卷烟成品的类型。number[cigarette.type]表示该类型卷烟成品的数量。

在一些实施例的步骤S420中,若多个物品的第三宽度之和cigarette.ly*ny小于或者等于第四宽度container.ly,则将ny作为第二物品数目,第二物品数目为宽度方向(y轴)的物品数目。ny的取值范围为[1,number[cigarette.type]/nx]。

在一些实施例的步骤S430中,若多个物品的第三高度之和cigarette.lz*nz小于或者等于第四高度container.lz,则将nz作为第三物品数目,第三物品数目为高度方向(z轴)的物品数目。nz的取值范围为[1,number[cigarette.type]/nx/ny]。

在一些实施例的步骤S440中,为了进行物品块生成,在x轴方向放置第一物品数目个物品,在y轴方向放置第二物品数目个物品,在z轴方向放置第三物品数目个物品,得到初始物品块。

通过上述步骤S410至步骤S440,可以生成能够放置进剩余空间的所有物品块,以选择装载率最高的物品块进行装载,在降低物流成本的同时,提高了物品装载的效率。

请参阅图5,在一些实施例中,在步骤S230之后,物品装载方法可以包括但不限于包括步骤S510至步骤S520:

步骤S510,若可行物品块列表未包含多个候选物品块,则将目标空间单元和剩余空间列表的其他空间单元进行空间合并,得到合并空间单元;

步骤S520,根据合并空间单元进行物品装载,得到初始物品装载方案。

在一些实施例的步骤S510中,若可行物品块列表未包含多个候选物品块,即可行物品块列表为空,则放弃目标空间单元,并将目标空间单元与剩余空间列表的其他空间单元进行合并。

在一些实施例的步骤S520中,根据合并空间单元进行物品装载,得到初始物品装载方案。将合并空间单元作为剩余空间列表中的一个空间单元,利用该空间单元进行物品装载的方法可参照步骤S210至步骤S250,此处不再赘述。

上述步骤S510至步骤S520,若目标空间单元没有适合放置的物品块,则对目标空间单元进行重新利用,通过对可转移的剩余空间的重新利用,提高了有限空间内物品的装载率。

请参阅图6,在一些实施例中,步骤S250可以包括但不限于包括步骤S610至步骤S640:

步骤S610,获取目标空间单元中未被填充的空间,得到候选空间;

步骤S620,对候选空间进行切割,得到多个子空间;

步骤S630,将多个子空间加入剩余空间列表;

步骤S640,将目标物品块放置在目标空间单元,直至剩余空间列表为空,得到初始物品装载方案。

在一些实施例的步骤S610中,若可行块列表为空则对可转移的剩余空间进行重新利用。若可行块列表不为空,则通过对物品块进行块选择,挑选出能够最大化装载率的物品块与剩余空间的组合,形成物品装载方案,并记录物品装载方案。切割物品装载方案中未填充的空间,并将切割而成的新的剩余空间加入剩余空间列表。具体地,获取目标空间单元中未被填充的空间,得到候选空间。

在一些实施例的步骤S620中,在重新切割装载空间时,会按照已被填充的可行的卷烟组合的进行切割,并切割为三个不同的剩余空间。对候选空间进行切割,得到多个子空间,多个子空间包括第一子空间、第二子空间和第三子空间。第一子空间为沿z轴切割的空间,第一子空间表示为spaceZ;第二子空间为沿x轴切割的空间,第二子空间表示为paceX。第三子空间为沿y轴切割的空间,第三子空间表示为spaceY。

在一些实施例的步骤S630中,为了尽可能保持空间的完整性,采用了一种度量剩余空间大小的策略,即使用剩余空间在x轴、y轴、z轴上的余度mx、my、mz作为度量标准,这里的余度是指原剩余空间的三维减去放置的卷烟成品的三维得到的差。按照mx、my、mz从小到大的顺序排列第一子空间、第二子空间和第三子空间,按照从小到大的顺序将第一子空间、第二子空间和第三子空间加入剩余空间列表。第一子空间、第二子空间和第三子空间均为包含可转移空间的剩余空间。例如,一个长度为10×10×10的装载空间,装载一个长度为2×3×4的卷烟成品,那么余度mx、my、mz分别为8、7、6。对该装载空间进行切割得到的spaceZ的三维为2×3×6,spaceX的三维为10×7×10,spaceY的三维分别为8×3×10,这时三个切割得到的空间的入栈顺序为spaceZ、spaceY、spaceX。这样可转移空间最大的方向将获得更大的新空间,从而提高了卷烟装载效率。

在一些实施例的步骤S640中,将目标物品块放置在目标空间单元,重复执行步骤S220至步骤S240,直至剩余空间列表为空,所有放置的目标物品块构成初始物品装载方案。

通过上述步骤S610至步骤S640,能够得到初始物品装载方案,以在初始物品装载方案的基础上进行多层搜索,提高了得到物品装载方案的效率,以基于物品装载方案进行实际的物品装载,降低了物品装载的复杂性。

请参阅图7,在一些实施例中,多个子空间包括第一子空间、第二子空间和第三子空间,步骤S620可以包括但不限于包括步骤S710至步骤S730:

步骤S710,根据预设物品块顶部的可放置矩形,沿高度方向对候选空间进行切割,得到第一子空间;

步骤S720,沿长度方向对候选空间进行切割,得到第二子空间;

步骤S730,沿宽度方向对候选空间进行切割,得到第三子空间。

在一些实施例的步骤S710中,在每个装载阶段,都会将一个剩余空间装载进去。装载过程分为两种情况:有可行块和无可行块。在有可行块时,会从可行块列表中选择一个可行块,并将未填充空间切割成新的剩余空间。在无可行块时,当前剩余空间会被抛弃,如果其中一部分空间可以被合并到其他空间中,就会进行空间转移,以便重新利用这些空间。

在卷烟装载问题中,沿着块的三个面进行未填充空间的分割,将未填充空间会被切分成三个不同的剩余空间。考虑到卷烟装载问题的完全支撑约束,在切割时需要确保这三个剩余空间都能够得到足够的支撑。沿着z轴的剩余空间切割必须保证块的顶部有可放置的矩形区域,即新的剩余空间在z轴上的切割必须沿着所选块的顶部可放置矩形进行,以确保稳定性。这样块顶部的可放置矩形确定了一个新的剩余空间spaceZ,得到第一子空间。

在一些实施例的步骤S720中,沿长度方向即x轴方向对候选空间进行切割,得到第二子空间spaceX。

在一些实施例的步骤S730中,沿宽度方向即y轴方向对候选空间进行切割,得到第三子空间spaceY。

通过上述步骤S710至步骤S730,能够将未填充空间分割为三个不同的剩余空间,以获得更大的新空间,从而提高了卷烟装载效率。

在一些实施例的步骤S120中,多层搜索以一种递归的形式搜索可能的装载方案,每一次搜索都是针对一个剩余空间的装载尝试,根据选定的剩余空间,生成可行块列表进行装载,然后根据装载结果,切割未装载的剩余空间,继续下一层的搜索(即新的剩余空间的装载尝试)。当前搜索层具有第一层索引,表示为i。搜索层相当于整数拆分里面的每一个拆分,每一层的深度都为1。获取当前搜索层的初始物品装载方案,初始物品装载方案包括第一预设数目个目标物品块,当前搜索层具有第一层索引,第一预设数目与第一层索引相等。第i层的节点代表初始物品装载方案装载了i个块后得到的结果。为了提高计算效率,并防止启发式算法在迭代过程中收敛到非最优,本申请实施例使用贪心算法与启发式算法结合的方式。在第i层,不再只选择一个块继续搜索,而是选择最优的HeapM个初始物品装载方案,这里最优的初始物品装载方案是指装载率最高的装载方案。获取当前搜索层的搜索深度,搜索深度表示为d。对于每个初始物品装载方案,采用不同的深度d进行深度优先搜索。

在一些实施例的步骤S130中,搜索算法有两个关键参数:分支数(b)和搜索深度(d)。这意味着需要遍历的叶子节点总数为b的d次方。为了确保算法能够在合理时间内执行完毕,需要谨慎选择这两个参数的值,这两个参数的值不宜过大。在这个算法中,有一些关键参数对搜索的效率和性能起着重要作用。maxDepth参数规定了整个搜索过程中放置块的总数。effort参数用来控制搜索的复杂程度,类似于将问题分解成子问题的方式,确保每个搜索阶段不会访问超过effort个叶子节点。maxDeep参数规定了在每个层次上允许的最大深度,从而影响搜索的广度和深度。HeapM参数用于指定每个层次上维护的最佳部分放置方案的最大数量。

多层搜索的逻辑可表示为:

for layer←0到maxDepth-1

for ps in heap[layer]

for d←1到maxDeep

branch←max{b,d},d≤effort

DepthFirthSearch(ps,d,branch,layer+d)

为了确定当前搜索阶段的深度,列举所有可能的拆分来计算最大的分支数。接下来,调用深度优先搜索以找出当前节点的近似最优解,然后进入下一个搜索阶段。由于搜索的复杂度已经确定,不同的搜索深度对应不同的搜索分支数,这有助于在合理的时间内完成搜索任务。

从第0层开始迭代,直到达到maxDepth层结束。整个算法的运行过程与树搜索类似,在每个层上至多拓展HeapM个节点,同时已经经过计算的上层节点不会被重复计算。其中,maxDepth参数表示要装载的块数目,是一个预先设定的参数,用于限制最大放置的块的数目,节省空间复杂度。maxDeep指定了每个层上将尝试的最大深度值,MaxHeap是每个层上用堆维护的最优物品装载方案的最大数目,branch表示可放置块的最大数目,即当前层的宽度。而effort则用于限制每次搜索访问的节点数目,任何一个搜索的阶段都不会访问超过effort个节点。

在当前搜索层,根据搜索深度对初始物品装载方案进行深度优先搜索,得到第二预设数目个目标物品块。第二预设数目为branch。

针对每一层的搜索方法如下所示:

若maxDepth不为0,则从剩余空间列表中取出栈顶空间,得到空间单元。利用块列表生成算法BlockList Generation生成适合该空间单元的物品块列表blockList。若物品块列表为不为空,利用当前搜索层的搜索宽度branch进行深度优先搜索。根据搜索宽度branch进行深度优先搜索的方法如下所述:

for i←0到branch-1

BlockPlacement(ps,blockList[i])

DepthFirthSearch(ps,maxDepth-1,branch,layer)

BlockRemoval(ps,blockList[i],space)

若物品块列表为空,则将空间单元与剩余空间列表中的其他空间单元进行合并,对合并后的空间进行深度优先搜索,即:

DepthFirthSearch(ps,maxDepth,branch,layer)。

若maxDepth为0,则完成对当前搜索层的搜索,将当前层的搜索结果放置于堆heap[layer]。

每一搜索层的搜索不仅记录局部最优解,而且将所有叶子节点的评估结果都加到相应层上。其中,Block Placement和Block Removal抽象了块装载和块移除的过程。BlockPlacement将生成一个新的装载方案,然后移除这个装载方案中已经被使用的卷烟成品,并切割未被利用的装载空间,加入剩余空间堆栈。而Block Placement是Block Placement的逆过程,将返回所有在Block Placement中使用的卷烟成品组合,并重新组合已经被切割的装载空间。

块装载算法的逻辑如下所示:

输入:packing State,block。输出:packing Stateoutput

space←ps.spaceStack.top();

ps.spaceStack.pop();

ps.avail←ps.avail-block.require;

ps.plan←ps.plan+(space,block);

ps.plan.volume←ps.plan.volume+block.volume;

ps.spaceStack.push(ResidualSpaceGeneration(space,block));

块装载算法主要的任务是将块和栈顶空间结合成一个装载加入当前装载方案,移除栈顶空间(表示占用了该空间进行装载),去掉已使用的卷烟成品,然后划分未填充空间并加入到剩余空间堆栈中。ResidualSpaceGeneration表示对未填充的空间进行分割。

块移除算法是块装载算法的逆过程。该过程首先需要恢复已使用的由卷烟成品组合而成的块,以便将当前块所属的装载从当前部分装载方案中移除。这样可以确保装载方案的准确性和一致性。

块移除算法的逻辑如下所示:

输入:packingState,block,space。输出:packingState

ps.avail←ps.avail+block.require;

ps.plan←ps.plan-(space,block);

ps.plan.volume←ps.plan.volume-block.volume;

remove 3top spaces from ps.spaceStack;

ps.spaceStack.push(space);

通过移除这些装载空间,块移除算法可以还原出块装载算法执行前的空间状态。块移除算法将恢复的装载空间重新插入到剩余空间堆栈,保持堆栈的完整性和正确性,以便进行后续的搜索和卷烟成品装载操作。块移除算法的实施可以有效地移除当前卷烟成品组合的装载(即移除当前装载方案),恢复已使用的卷烟成品,调整剩余空间堆栈的状态,以便于后续的搜索和装载过程。3top spaces指的是spaceX、spaceY和spaceZ。

在一些实施例的步骤S140中,将深度优先搜索的所有搜索结果都插入到第i+d层的结果中。在每个搜索层上,使用堆来存储最优的HeapM个结果。该算法的运行过程类似树搜索和动态规划的结合,此时在每个搜索层上有至多HeapM个节点,并且已计算的上层节点不会被再次计算。具体地,将第二预设数目个目标物品块放置在目标搜索层的初始物品装载方案中,目标搜索层具有第二层索引,第二层索引通过第一层索引和搜索深度相加得到,第二层索引表示为i+d。

在一些实施例的步骤S150中,若当前搜索层的下一搜索层为预设搜索层,则将每一搜索层的初始物品装载方案作为目标物品装载方案,根据目标物品装载方案进行装载。预设搜索层的层索引为maxDepth。

分层搜索算法对于卷烟装载问题非常有效。解的优秀程度在一定意义上是可以被继承的,一个优秀解很可能会导出另一个优秀解。这个特点可以描述为:虽然k层上的最优解不一定是k+1层上最优解的父节点,但是k层上最优的N个解很可能包括了所有k+1层上最优的N个解的节点。如果只选择一个最优解,有可能会错过下一层的最优解。而选择多个最优的解进行后续搜索,将以更大的概率包含下一层的最优解。

分层搜索算法的这种特性也可以被用来进行优化块选择。由于k+1层最优的N个解很可能只来自k层最优的N个解,不需要对所有可行块执行最大深度分层搜索。相反,可以用不同的深度进行搜索,每次采用贪心算法过滤掉一些不够优秀的可行块。只要选择的N足够大,最终的最优解就以很大的概率被包含。

请参阅图8,本申请实施例还提供一种物品装载装置,可以实现上述物品装载方法,该装置包括:

第一获取模块810,用于获取当前搜索层的初始物品装载方案;初始物品装载方案包括第一预设数目个目标物品块;当前搜索层具有第一层索引;第一预设数目与第一层索引相等;

第二获取模块820,用于获取当前搜索层的搜索深度;

深度优先搜索模块830,用于根据搜索深度对初始物品装载方案进行深度优先搜索,得到第二预设数目个目标物品块;

放置模块840,用于将第二预设数目个目标物品块放置在目标搜索层的初始物品装载方案中;目标搜索层具有第二层索引;第二层索引通过第一层索引和搜索深度相加得到;

物品装载模块850,用于若当前搜索层的下一搜索层为预设搜索层,则将每一搜索层的初始物品装载方案作为目标物品装载方案。

该物品装载装置的具体实施方式与上述物品装载方法的具体实施例基本相同,在此不再赘述。

本申请实施例还提供了一种电子设备,电子设备包括括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现上述物品装载方法。该电子设备可以为包括平板电脑、车载电脑等任意智能终端。

请参阅图9,图9示意了另一实施例的电子设备的硬件结构,电子设备包括:

处理器910,可以采用通用的CPU(CentralProcessingUnit,中央处理器)、微处理器、应用专用集成电路(ApplicationSpecificIntegratedCircuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本申请实施例所提供的技术方案;

存储器920,可以采用只读存储器(ReadOnlyMemory,ROM)、静态存储设备、动态存储设备或者随机存取存储器(RandomAccessMemory,RAM)等形式实现。存储器920可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器920中,并由处理器910来调用执行本申请实施例的物品装载方法;

输入/输出接口930,用于实现信息输入及输出;

通信接口940,用于实现本设备与其他设备的通信交互,可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信;

总线950,在设备的各个组件(例如处理器910、存储器920、输入/输出接口930和通信接口940)之间传输信息;

其中处理器910、存储器920、输入/输出接口930和通信接口940通过总线950实现彼此之间在设备内部的通信连接。

本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时实现上述物品装载方法。

存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序以及非暂态性计算机可执行程序。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至该处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

本申请实施例描述的实施例是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域技术人员可知,随着技术的演变和新应用场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。

本领域技术人员可以理解的是,图中示出的技术方案并不构成对本申请实施例的限定,可以包括比图示更多或更少的步骤,或者组合某些步骤,或者不同的步骤。

以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。

本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、设备中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。

本申请的说明书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

应当理解,在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括多指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例的方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序的介质。

以上参照附图说明了本申请实施例的优选实施例,并非因此局限本申请实施例的权利范围。本领域技术人员不脱离本申请实施例的范围和实质内所作的任何修改、等同替换和改进,均应在本申请实施例的权利范围之内。

相关技术
  • 具有至少一个颗粒和/或纤维产生装置和至少一个连续带的设备
  • 具有至少一个现场设备和至少一个控制单元的自动化系统
  • 用于控制机动车的至少一个减振器的方法和控制设备
  • 用于控制至少一个添加式制造设备的操作的方法
  • 根据TDMA协议在主设备与至少一个从设备之间进行通信的方法
  • 用于在至少两个前后相继行驶的车辆之间进行通信的方法以及具有至少一个通信设备的车辆
技术分类

06120116561247