模型训练方法、货物堆放的优化方法、装置和电子设备与流程

文档序号:32522809发布日期:2022-12-13 20:07阅读:21来源:国知局
模型训练方法、货物堆放的优化方法、装置和电子设备与流程

1.本公开涉及数据处理领域,尤其涉及深度学习技术领域。具体涉及一种模型训练方法、货物堆放的优化方法、装置和电子设备。


背景技术:

2.目前,在货物运输的场景中,通常涉及到货物堆放的问题。为提高空间利用率,在货物堆放之前,通常需要依靠人工经验对堆放流程进行设计,以确保在堆放空间不变的情况下,能够堆放尽可能多的货物。


技术实现要素:

3.本公开提供了一种模型训练方法、货物堆放的优化方法、装置和电子设备。
4.根据本公开的第一方面,提供了一种模型训练方法,包括:
5.获取k个训练数据组,所述k个训练数据组为按照k个分类类别对训练数据集中的初始训练数据进行分类得到的k个训练数据组,所述k个分类类别与k种货物堆放优化函数的函数类别相对应,所述k为大于1的整数;
6.基于所述k个训练数据组,分别对k个预先构建的神经网络模型进行训练,得到k个目标神经网络模型,其中,所述k个训练数据组与所述k个目标神经网络模型一一对应,所述目标神经网络模型为基于所对应的训练数据组进行训练得到的模型,且在对所述货物堆放优化函数进行混合整数规划的过程中,所述目标神经网络模型用于预测决策变量。
7.根据本公开的第二方面,提供了一种货物堆放的优化方法,包括:
8.获取第二函数信息和第二决策变量集,所述第二函数信息包括:以在第二货仓中堆放的第二货物的数量最多为优化目标确定的函数信息;
9.确定所述第二函数信息的函数类别,其中,所述第二函数信息的函数类别为k个分类类别中的类别;
10.在k个目标神经网络模型中确定与所述第二函数信息的函数类别相对应的第二目标神经网络模型;
11.将所述第二函数信息和所述第二决策变量集输入所述第二目标神经网络模型进行预测,得到预测结果,且所述预测结果用于指示在对所述第二函数信息进行混合整数规划的过程中,求解树中的分支节点对应的决策变量,且所述决策变量为所述第二决策变量集中的决策变量;
12.基于所述预测结果对所述第二函数信息进行混合整数规划,得到堆放信息,所述堆放信息用于指示所述第二货物在所述第二货仓中的堆放方式。
13.根据本公开的第三方面,提供了一种模型训练装置,包括:
14.获取模块,用于获取k个训练数据组,所述k个训练数据组为按照k个分类类别对训练数据集中的初始训练数据进行分类得到的k个训练数据组,所述k个分类类别与k种货物堆放优化函数的函数类别相对应,所述k为大于1的整数;
15.训练模块,用于基于所述k个训练数据组,分别对k个预先构建的神经网络模型进行训练,得到k个目标神经网络模型,其中,所述k个训练数据组与所述k个目标神经网络模型一一对应,所述目标神经网络模型为基于所对应的训练数据组进行训练得到的模型,且在对所述货物堆放优化函数进行混合整数规划的过程中,所述目标神经网络模型用于预测决策变量。
16.根据本公开的第四方面,提供了一种货物堆放的优化装置,包括:
17.获取模块,用于获取第二函数信息和第二决策变量集,所述第二函数信息包括:以在第二货仓中堆放的第二货物的数量最多为优化目标确定的函数信息;
18.确定模块,用于确定所述第二函数信息的函数类别,其中,所述第二函数信息的函数类别为k个分类类别中的类别;
19.所述确定模块,还用于在k个目标神经网络模型中确定与所述第二函数信息的函数类别相对应的第二目标神经网络模型;
20.预测模块,用于将所述第二函数信息和所述第二决策变量集输入所述第二目标神经网络模型进行预测,得到预测结果,且所述预测结果用于指示在对所述第二函数信息进行混合整数规划的过程中,求解树中的分支节点对应的决策变量,且所述决策变量为所述第二决策变量集中的决策变量;
21.生成模块,用于基于所述预测结果对所述第二函数信息进行混合整数规划,得到堆放信息,所述堆放信息用于指示所述第二货物在所述第二货仓中的堆放方式。
22.根据本公开的第五方面,提供了一种电子设备,包括:
23.至少一个处理器;以及
24.与所述至少一个处理器通信连接的存储器;其中,
25.所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述第一方面或第二方面所述的方法。
26.根据本公开的第六方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行上述第一方面或第二方面所述的方法。
27.根据本公开的第七方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现第一方面或第二方面所述的方法。
28.本公开实施例中,通过基于k个不同类别的训练数据组,训练得到k个目标神经网络模型,这样,可以针对不同的货物堆放场景,选用不同类别的目标神经网络模型预测混合整数规划过程中的决策变量,从而可以提高决策变量的选择效果,进而有利于提高对货物的堆放方式进行预测得到的预测结果的合理性。
附图说明
29.附图用于更好地理解本方案,不构成对本公开的限定。其中:
30.图1是本公开实施例提供的一种模型训练方法的流程图之一;
31.图2是本公开实施例中集装箱堆放于船舱中的示意图;
32.图3是本公开实施例提供的一种模型训练方法的流程图之二;
33.图4是本公开实施例中神经网络模型的结构示意图;
34.图5是本公开实施例提供的一种货物堆放的优化方法的流程图之一;
35.图6是本公开实施例提供的一种货物堆放的优化方法的流程图之二;
36.图7是本公开实施例提供的一种模型训练装置的结构示意图;
37.图8是本公开实施例中获取模块的结构示意图;
38.图9是本公开实施例中训练模块的结构示意图;
39.图10是本公开实施例提供的一种货物堆放的优化装置的结构示意图;
40.图11本公开实施例提供的用于实现模型训练方法或货物堆放的优化方法的电子设备的框图。
具体实施方式
41.以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
42.请参见图1,图1,为本公开实施例提供的一种模型训练方法,所述方法包括以下步骤:
43.步骤s101、获取k个训练数据组,所述k个训练数据组为按照k个分类类别对训练数据集中的初始训练数据进行分类得到的k个训练数据组,所述k个分类类别与k种货物堆放优化函数的函数类别相对应,所述k为大于1的整数;
44.步骤s102、基于所述k个训练数据组,分别对k个预先构建的神经网络模型进行训练,得到k个目标神经网络模型,其中,所述k个训练数据组与所述k个目标神经网络模型一一对应,所述目标神经网络模型为基于所对应的训练数据组进行训练得到的模型,且所述目标神经网络模型用于预测货物的堆放方式。
45.上述货物堆放优化函数可以是根据具体的货物堆放场景构造的函数信息,通过对该货物堆放函数进行求解,可以得到具体地货物堆放方式,例如,可以根据各种类型的货物的尺寸、货仓的尺寸构造函数,以确定各种类型的货物的堆放数量为多少时,可以使得货仓利用率最高。
46.可以理解的是,上述初始训练数据可以包括所述货物堆放优化函数,同时,所述初始训练数据还可以包括:在对所述货物堆放优化函数进行混合整数规划过程中,求解树中各个分支节点的决策变量。如此,通过基于所述初始训练数据对预先构建的神经网络模型进行训练,即可使得模型能够学习在对货物堆放优化函数进行混合整数规划过程中,如何选取决策变量。
47.上述货物堆放优化函数的构建通常取决于堆放空间的尺寸和形状、以及、待堆放的货物的类型、尺寸等信息。因此,不同的货物堆放场景,所述货物堆放优化函数的差别通常较大。而当所述训练数据集中不同初始训练数据中的货物堆放优化函数的差别时,在对所述神经网络模型进行训练的过程中,所述神经网络模型可能无法较好的拟合不同类型的货物堆放优化函数,进而无法学习到相关的知识,导致最终训练得到的模型的效果较差。
48.基于此,本公开实施例中,通过对所述初始训练数据集中的多个初始训练数据进行分类,具体可以将包含同种类型的货物堆放优化函数的初始训练数据划分至同一个训练数据组。然后,利用每一个训练数据组分别训练得到一个目标神经网络模型,由于每一个训
练数据组中的初始训练数据中的货物堆放优化函数的函数类别相同,因此,可以提高对模型的训练效果。
49.可以理解的是,在训练得到所述k个目标神经网络模型之后,后续可以根据待求解的货物堆放优化函数的函数类别,选择对应的目标神经网络模型进行混合整数规划求解,如此,有利于提高对货物堆放优化函数的混合整数规划的规划效果。
50.相关技术中,可以基于scip求解器对货物堆放优化函数进行求解。其中,所述scip求解器主要使用分支定界法对混合整数优化问题进行求解,首先scip求解器会建立一个求解树,然后从求解树的根节点开始在每个节点上计算当前节点应该使用哪个决策变量进行分支,经过不断分支求解固定变量从而最后求解出问题的最优解。所述分支定界法是一种求解整数规划问题的最常用算法。这种方法不但可以求解纯整数规划,还可以求解混合整数规划问题。分支定界法是一种搜索与迭代的方法,选择不同的分支变量和子问题进行分支。
51.具体地,在基于scip求解器对混合整数规划问题进行求解的过程中,需要在求解的每一步上选择一个决策变量进行分支,但使用scip来选择时需要计算每个变量的强分支得分,根据这个得分来进行变量的选择,这是非常耗时的过程。基于此,本公开实施例中,通过训练得到目标神经网络模型,并通过目标神经网络模型取代所述scip求解器的决策变量选择过程,如此,有利于提高求解的速度。
52.所述k个分类类别与k种货物堆放优化函数的函数类别相对应可以是指:所述k个分类类别为所述k种货物堆放优化函数的函数类别。或者,所述k个分类类别也可以是指k种货物堆放场景的场景类别,其中,同一场景中的货物堆放优化函数相同或相似。
53.该实施方式中,通过基于k个不同类别的训练数据组,训练得到k个目标神经网络模型,这样,可以针对不同的货物堆放场景,选用不同类别的目标神经网络模型预测混合整数规划过程中的决策变量,从而可以提高决策变量的选择效果,进而有利于提高对货物的堆放方式进行预测得到的预测结果的合理性。
54.可选地,所述获取k个训练数据组,包括:
55.获取所述训练数据集,所述训练数据集包括多个初始训练数据,所述初始训练数据包括所对应的货物堆放优化函数的函数信息;
56.基于所述函数信息对应的目标参数对所述多个初始训练数据进行分类,得到所述k个训练数据组;
57.其中,所述目标参数包括以下参数中的至少一项:整数变量占总变量的比例、连续变量占总变量的比例、隐整数变量占总变量的比例、二进制变量占总变量的比例、不等式约束个数占总约束个数的比例、变量总个数和约束总个数。
58.上述整数变量即变量取值为任意整数的变量。上述连续变量即变量取值为任意实数的变量。上述隐整数变量可以是指:在进行运算过程中变量的取值为实数,且输出结果时变量的取值为整数的变量。上述二进制变量的取值为0或1。上述总变量即所述货物堆放优化函数中变量的总个数。
59.具体地,上述货物堆放优化函数通常包括待优化的目标函数和约束条件,因此,所述目标参数还可以包括所述货物堆放优化函数中的不等式约束个数占总约束个数的比例、变量总个数和约束总个数。
60.由于不同的货物堆放优化函数的上述七种类型的目标参数通常不同,且上述七种类型的目标参数可以表征货物堆放优化函数的的整体函数特征,因此,可以利用所述目标参数对不同类型的货物堆放优化函数进行分类,以实现对所述初始训练数据的分类过程。
61.在本公开一个实施例中,可以预先训练得到一个分类模型,以通过所述分类模型对所述初始训练数据进行分类。具体地,所述获取k个训练数据组之前,所述方法还包括:
62.获取目标训练数据,所述目标训练数据包括所述货物堆放优化函数的目标参数和所述货物堆放优化函数对应的类别标签。具体可以预先确定k个类别标签,然后,通过对不同的货物堆放优化函数进行分析,以得到各货物堆放优化函数的目标参数和类别标签,所述k个类别标签对应所述k个分类类别;
63.基于所述目标训练数据对预先构建的初始分类模型进行训练,得到目标分类模型;
64.所述基于所述函数信息对应的目标参数对所述多个初始训练数据进行分类,得到所述k个训练数据组,包括:
65.基于所述目标分类模型利用所述函数信息对应的目标参数对所述多个初始训练数据进行分类,得到所述k个训练数据组。
66.具体地,可以通过使用大量不同的目标训练数据对所述初始分类模型进行训练,使得所述目标分类模型能够学习所述目标参数与类别标签之间的对应关系。如此,后续仅需将货物堆放优化函数的目标参数输入所述目标分类模型,即可通过目标分类模型对所述货物堆放优化函数进行分类,得到货物堆放优化函数所述的分类类别。
67.该实施方式中,通过利用整数变量占总变量的比例、连续变量占总变量的比例、隐整数变量占总变量的比例、二进制变量占总变量的比例、不等式约束个数占总约束个数的比例、变量总个数和约束总个数,对初始训练数据进行分类,如此,可以提高对所述初始训练数据进行分类的分类效果。
68.可选地,所述基于所述k个训练数据组,分别对k个预先构建的神经网络模型进行训练,得到k个目标神经网络模型,包括:
69.基于混合整数规划求解器,利用第一训练数据组中的第一初始训练数据,对第一神经网络模型进行n次迭代训练,得到第一目标神经网络模型,其中,所述n为大于1的整数;
70.其中,所述第一训练数据组为所述k个训练数据组中的任意一个训练数据组,所述第一目标神经网络模型为所述k个目标神经网络模型中与所述第一训练数据组相对应的目标神经网络模型;
71.所述第一神经网络模型用于对所接收到的第一函数信息进行混合整数规划的过程中,确定求解树的各节点的决策变量;所述第一初始训练数据包括所述第一函数信息和求解树中各分支节点对应的目标决策变量的标签数据,所述第一函数信息包括:以在第一货仓中堆放的第一货物的数量最多为优化目标确定的函数信息。
72.上述混合整数规划求解器可以是开源求解器,例如,scip求解器。
73.上述基于混合整数规划求解器利用第一初始训练数据对所述第一神经网络模型进行训练的具体过程可以是:第一初始训练数据输入第一神经网络模型,第一神经网络模型基于所述第一函数信息在第一决策变量集中选择决策变量,其中,所述第一初始训练数据还包括所述第一决策变量集。然后,将所选择的决策变量输入scip求解器进行求解,scip
求解器基于求解结果生成回报值(reward),然后,将所述reward返回至第一神经网络模型,以使第一神经网络模型基于所述reward进行参数优化。
74.可以理解的是,上述第一初始训练数据的数量可以为多个,且不同的第一初始训练数据对应的第一函数信息不同,通过将大量第一初始训练数据输入第一神经网络模型进行训练。这样,可以使得训练得到的第一目标神经网络模型学习到如何在利用分支定界法解决混合整数规划问题中选中最优的决策变量。
75.可以理解的是,上述k个神经网络模型的训练过程与所述第一神经网络模型的训练过程相似,为避免重复,在此不再予以赘述。
76.上述第一函数信息可以视为一个待求解的混合整数规划问题,所述第一函数信息可以是基于具体场景构建的需要进行求解的函数信息。例如,在码头集装箱堆放场景中,可以根据集装箱的类型、尺寸、以及、货仓的尺寸构建所述函数信息。请参见图2,在本公开一个实施例中,假设需要向船舱中堆放两种不同类型的集装箱,且所述集装箱与船舱的高度匹配,因此,在堆放过程中无需考虑高度影响,也即可以将堆放问题转换为二维装箱问题。请参见图2,假设船舱的长宽尺寸为w*h,第一种类型的集装箱的尺寸为hi*wi,第二种类型的集装箱的尺寸为hj*wj,那么所述第一决策变量集可以包括以下至少一种决策变量:决策变量pi表示第i个箱子是否要被放入;决策变量lij表示箱子i是否位于箱子j的左侧;bij表示箱子i是否位于箱子j的下方。其中,(xi,xi)表示如果第i个箱子要被放进去,它的左下角顶点的横纵坐标。
77.所述第一目标函数可以为:
78.上述第一约束条件可以包括:
[0079][0080][0081][0082][0083][0084][0085]
如此,即可得到上述第一函数信息。
[0086]
该实施方式中,通过训练得到目标神经网络模型,这样,在将货物堆放至货仓之前,可以以堆放的货物最多为优化目标,构建函数信息。然后,可以先基于目标神经网络模型选择与函数信息对应的决策变量,并基于所选择的决策变量利用混合整数规划求解器对函数信息进行求解,从而可以优化货物堆放的流程。
[0087]
可选地,所述n次迭代训练中的第s次训练包括:
[0088]
将第s个训练数据输入第s个神经网络模型,得到所述第s个神经网络模型输出的第s个决策变量,所述第s个决策变量为与所述求解树中的第s个节点相对应的决策变量;
[0089]
将所述第s个训练数据和所述第s个决策变量输入所述混合整数规划求解器进行预测,得到预测结果;
[0090]
基于所述预测结果与理论结果生成第s个回报值;
[0091]
基于所述第s个回报值对所述第s个神经网络模型进行更新,得到第s+1个神经网络模型;
[0092]
在所述s等于1的情况下,所述第s个训练数据为所述第一初始训练数据,所述第s个神经网络模型为所述第一神经网络模型;
[0093]
在所述s不等于1的情况下,所述第s个训练数据为基于第s-1个神经网络模型输出的决策变量对第s-1个训练数据进行更新之后得到的训练数据。
[0094]
其中,上述理论结果可以是不考虑决策变量为整数的情况下,求解得到的结果,例如,
[0095]
当目标函数为:max:z=p1+p2
[0096]
所述混合整数规划问题的约束条件为:
[0097]
2p3+4p4《=11;
[0098]
3p3+5p4《=15;
[0099]
p1》=0,且为整数;
[0100]
p2》=0,且为整数;
[0101]
则求解得到的理论结果为p3=2.5,p4=1.5。其中,所述第一函数信息的理论结果可以由其他程序计算得到,并传递至所述混合整数规划求解器。此外,所述第一函数信息的理论结果也可以由所述神经网络模型求解过程中计算得到,对此,不作限制。
[0102]
其中,上述第一神经网络模型可以从所述action_set中选取决策变量action,然后,将所选的决策变量传输至scip求解器,scip求解器判别所选的action的优劣,并生成对应的回报值reward,同时,scip求解器还可以判断是否需要继续训练。所述scip求解器可以输出如下格式的数据:(observe,action_set,action,reward,is_done);
[0103]
其中,observe是当前求解的混合整数规划问题的特征矩阵,这个矩阵可以无损地表示一个混合整数优化问题;action_set表示当前observe下候选的决策变量集,由于分支定界法求解混合整数优化问题时需要选择一个决策变量进行分支,而第s个神经网络模型也是输出一个决策变量,所输出的决策变量在action_set中选取;action就是第s个神经网络模型所输出的决策变量,reward是第s个神经网络模型选择的决策变量的回报值;is_done表示是否结束。
[0104]
该实施方式中,通过基于所述预测结果与理论结果生成回报值,如此,有利于基于所述回报值对神经网络模型的模型参数进行优化,从而进一步提高优化得到的目标神经网络模型对决策变量选择的效果。
[0105]
可选地,所述基于所述第s个回报值对所述第s个神经网络模型进行更新,得到第s+1个神经网络模型,包括:
[0106]
基于目标回报值对所述第s个神经网络模型进行更新,得到第s+1个神经网络模型;
[0107]
其中,在所述第s个回报值小于或等于第一阈值的情况下,所述目标回报值为基于第一缩放函数对所述第s个回报值进行放大之后,得到的回报值;
[0108]
在所述s大于所述第一阈值,且所述s小于第二阈值的情况下,所述目标回报值为所述第s个回报值;
[0109]
在所述第s个回报值大于或等于所述第二阈值的情况下,所述目标回报值为基于第二缩放函数对所述第s个回报值进行缩小之后,得到的回报值。
[0110]
上述第一阈值和第二阈值的取值范围可以根据具体场景进行选取,例如,所述第一阈值的取值范围可以位于1-50之间,所述第二阈值的取值可以位于90-200之间。在本公开一个实施例中,可以基于如下公式确定所述目标回报值r
*

[0111][0112]
其中,所述第一阈值为10,所述第二阈值为100,所述r表示第s个回报值。
[0113]
回报值是当前问题的求解目标变化的大小和时间的乘积,即要求解的目标要不断逼近最优解,且找到最优解的时间要尽可能地少,也就是要又快又好地找到一个尽可能逼近最优解的解。如果当前求解目标逼近最优解的逼近程度比较大,说明模型选择当前的变量会更快地达到最优解,给予一个比较大的正向回报,否则将会给予一个较低的回报。但此处方法存在以下缺陷:如果目标值很大(如几十万)或是目标值很小(如0.0000001),那么返回的奖励值就会偏差很大,导致模型在更新时损失太大或太小,甚至值越界,模型难以进行学习和更新,因此为了解决这个问题,本公开针对这个问题对奖励进行了改进,即通过将所述第s个回报值分别与第一阈值和第二阈值进行比较,并在第s个回报值过大时,对所述第s个回报值进行缩小;同时,在所述第s个回报值过小时,对所述第s个回报值进行放大,以确保所述目标回报值位于相对稳定的范围内。
[0114]
该实施方式中,通过对所述第s个回报值进行缩放,以得到目标回报值,这样,在第s个回报值过大时,对所述第s个回报值进行缩小;同时,在所述第s个回报值过小时,对所述第s个回报值进行放大,以确保所述目标回报值位于相对稳定的范围内。
[0115]
可选地,所述基于所述第s个回报值对所述第s个神经网络模型进行更新,得到第s+1个神经网络模型之后,所述方法还包括:
[0116]
在所述第m+1个神经网络模型满足第一预设收敛条件的情况下,将所述第m+1个神经网络模型确定为所述目标神经网络模型;
[0117]
在所述第m+1个神经网络模型不满足所述第一预设收敛条件的情况下,进行第s+1次迭代训练。
[0118]
其中,所述第一预设收敛条件可以是连续若干次计算得到所述损失值上下浮动不超过预设值,例如,可以是连续20次计算得到的损失值上下浮动不超过100。即当连续20次计算得到的损失值上下浮动不超过100时,确定第s+1个神经网络模型满足第一预设收敛条件。反之,则确定所述第s+1个神经网络模型不满足所述第一预设收敛条件。
[0119]
此外,在本公开另一实施例中,所述第一预设条件也可以是训练次数超过预设次数。
[0120]
该实施方式中,通过预先设置模型的收敛条件,并在每次训练结束之后均判断所训练得到的模型是否满足所述收敛条件,如此,可以避免对模型进行过度训练的问题。
[0121]
可选地,所述第一函数信息:目标函数和约束条件,所述将第s个训练数据输入第s个神经网络模型,得到所述第s个神经网络模型输出的第s个决策变量,包括:
[0122]
将所述第s个函数信息转换为第一矩阵a、第二矩阵b、第三矩阵和第四矩阵,所述第一矩阵中的不同行用于表征所述目标函数中的不同变量,所述第二矩阵中的不同行用于表征所述目标函数中的不同约束,所述第三矩阵用于表征所述变量与所述约束之间的关联关系,所述第四矩阵用于表征所述变量在所述约束条件中的系数;
[0123]
将所述第一矩阵、第二矩阵、第三矩阵、第四矩阵和所述第m个决策变量集输入第s个神经网络模型,得到所述第s个神经网络模型输出的第s个决策变量集中每个决策变量的评分值,其中,所述第s个决策变量集为经过第s-1次迭代训练更新之后的决策变量集;其中,所述评分值可以是概率值;
[0124]
输出所述第s个决策变量,所述第s个决策变量为所述第s个决策变量集中,评分值最高的决策变量;
[0125]
在所述s等于1的情况下,所述第s个函数信息为所述第一函数信息;
[0126]
在所述s不等于1的情况下,所述第s个函数信息为基于第s-1个决策变量对第s-1个函数信息进行更新之后的函数信息。
[0127]
在本公开一个实施例中,所述初始训练数据的获取过程包括:
[0128]
首先,从开源数据集中获取混合整数规划问题,假设所述混合整数规划问题的目标函数为:max:z=p1+p2
[0129]
所述混合整数规划问题的约束条件为:
[0130]
9p1+7p2《=56;
[0131]
7p1+20p2《=70;
[0132]
p1》=0,且为整数;
[0133]
p2》=0,且为整数;
[0134]
基于此,可以确定所述混合整数规划问题所对应的决策变量集为(p1,p2),其中,p1和p2为不同的决策变量。
[0135]
然后,可以将上述目标函数和约束条件输入到ecole的scip中,在scip使用分支定界法求解这个问题的第一步中,会使用强分支算法选着一个变量如p1进行分支,同时,ecole包会根据当前的求解状态输出4个矩阵a,b,c,d,其中a矩阵的每一行代表一个变量pi,每一列是这个变量的特征;b矩阵的每一行代表一个约束sub,每一列是这个约束的特征;c矩阵代表变量pi和约束sub中联系;d矩阵代表变量pi在约束sub中的系数,所以这4个矩阵就可以完整地表达上面的具体式子。在这一步我们可以采集到一个样本:[a,b,c,d,(p1,p2),p1],也就是这一步得到的4个矩阵a,b,c,d,(p1,p2)表示决策变量集,p1表示我们在这一步选择的变量,这个p1也就是这条样本的标签。
[0136]
在选择了p1之后,将p1返回给scip,scip会将p1的值固定继续求解子问题,求解子问题就到了第二步,首先,将p1的值更新至a,b,c,d矩阵,得到4个更新后的矩阵a_1,b_1,c_1,d_1,由于p1已经被选出,因此,决策变量集更新为(p2),然后,使用强分支在更新后的决策变量集(p2)中选择一个变量,如选择了p2,那么我们就可以得到样本[a_1,b_1,c_1,d_1,(p2),p2],其中这条样本的标签是p2。所得到的样本即可作为所述初始训练数据。
[0137]
具体地,所述神经网络模型可以采用图卷积神经网络(graph convolutional neural network,gcnn)。在进行训练的过程中,可以将所述第一函数信息转换为4个矩阵a,b,c,d,然后,将4个矩阵a,b,c,d输入到gcnn的输入层中,经过gcnn层后会得到决策变量集
(p1,p2)中每个决策变量的选择概率,这样,选择一个概率最高的决策变量作为模型的输出,然后,将所选出的决策变量与该节点对应的目标决策变量进行损失计算,得到所述损失值,基于所述第s个损失值对所述第s个神经网络模型进行更新,得到第s+1个神经网络模型。
[0138]
由上述论述可知,gcnn层每次选出一个决策变量之后,均会将所选的决策变量传递至scip求解器,scip求解器会将所接收到的决策变量的值固定,进行求解,且求解完成之后,基于所述决策变量的固定值对所述矩阵a,b,c,d,以及,决策变量集进行更新。因此,在所述s不等于1的情况下,所述第s个函数信息为基于第s-1个决策变量对第s-1个函数信息进行更新之后得到的函数信息,所述第s个决策变量集为基于第s-1个决策变量对第s-1个决策变量集进行更新之后的决策变量集。
[0139]
该实施方式中,该实施方式中,通过将第s个函数信息转换为第一矩阵a、第二矩阵b、第三矩阵c和第四矩阵d,以便于神经网络模型基于矩阵还原出所述第s函数信息中的目标函数和约束条件,进而可以学习矩阵与决策变量之间的关联关系,以完成模型的训练过程。
[0140]
请参见图3,为本公开实施例提供的一种模型训练方法的流程示意图,所述方法,包括以下步骤:
[0141]
首先,对问题实例集合中的货物堆放问题(即货物堆放优化函数)进行特征提取,然后,进行聚类训练,得到问题实例分类模型(即目标分类模型),其中,所述问题实例集合包括各种类型的货物堆放优化函数。再利用所述问题实例分类模型对所述问题实例集合中的货物堆放优化函数进行分类,得到k个训练数据组,并基于所述k个训练数据组分别对k个预先构建的神经网络模型进行训练,得到k个目标神经网络模型。
[0142]
请参见图4,为本公开一个实施例中,所述神经网络模型包括依次连接的:输入层、图像卷积层、全连接层、激活函数(rectified linear unit,relu)激活层和输出层。
[0143]
在对所述神经网络模型进行训练的过程中,每一次迭代训练均可以通过将:环境观测值(即真实结果)、变量候选集和奖励值(即上一次迭代得到的回报值)输入所述神经网络模型的输入层,然后,在神经网络模型可以先基于奖励值进行参数更新,然后,可以从所述变量候选集中选择一个变量,基于神经网络模型所选择的变量与所述环境观测值生成下一次迭代的奖励值。如此不断迭代,即可完成对神经网络模型的训练。
[0144]
该实施方式提供的模型训练方法与上述实施例中的模型训练方法的过程类似,为避免重复,在此不再予以赘述。
[0145]
请参见图5,图5为本公开实施例提供的一种货物堆放的优化方法的流程示意图,所述货物堆放的优化方法,包括:
[0146]
步骤s501、获取第二函数信息和第二决策变量集,所述第二函数信息包括:以在第二货仓中堆放的第二货物的数量最多为优化目标确定的函数信息;
[0147]
步骤s502、确定所述第二函数信息的函数类别,其中,所述第二函数信息的函数类别为k个分类类别中的类别;
[0148]
步骤s503、在k个目标神经网络模型中确定与所述第二函数信息的函数类别相对应的第二目标神经网络模型;
[0149]
步骤s504、将所述第二函数信息和所述第二决策变量集输入所述第二目标神经网
络模型进行预测,得到预测结果,且所述预测结果用于指示在对所述第二函数信息进行混合整数规划的过程中,求解树中的分支节点对应的决策变量,且所述决策变量为所述第二决策变量集中的决策变量;
[0150]
基于所述预测结果对所述第二函数信息进行混合整数规划,得到堆放信息,所述堆放信息用于指示所述第二货物在所述第二货仓中的堆放方式。
[0151]
其中,所述第二货物可以与上述第一货物相同,也可以是所述第一货物之外的其他货物。且所述第二货物可以包括多种不同尺寸规格的货物。相应地,所述第二货仓可以与所述第一货仓相同,也可以是所述第一货仓之外的其他货仓。上述第二函数信息可以是基于具体地货物堆放场景中,货物的尺寸信息、货仓的尺寸信息确定的函数信息。
[0152]
可以理解的是,上述k个目标神经网络模型为基于上述模型训练方法训练得到的模型。即所述k个目标神经网络模型为:基于所述k个训练数据组,分别对k个预先构建的神经网络模型进行训练,得到k个目标神经网络模型,其中,所述k个训练数据组与所述k个目标神经网络模型一一对应,所述目标神经网络模型为基于所对应的训练数据组进行训练得到的模型,且在对所述货物堆放优化函数进行混合整数规划的过程中,所述目标神经网络模型用于预测决策变量。
[0153]
请参见图6,在本公开一个实施例中,所述货物堆放的优化方法具体包括以下步骤:将问题实例(即第二函数信息)输入问题实例分类器模型(即目标分类模型),得到所述第二函数信息所述类别为地i类问题,然后,利用强化学习模型i(即第i个目标神经网络模型)进行预测,得到预测结果,基于所述预测结果对所述第二函数信息进行混合整数规划,得到问题求解结果,其中,所述问题求解结果包括所述堆放信息。
[0154]
其中,所述堆放信息可以包括各种类型的货物堆放的数量,或者,各种类型的货物的堆放位置等堆放信息。
[0155]
该实施方式中,通过基于k个不同类别的训练数据组,训练得到k个目标神经网络模型,这样,可以针对不同的货物堆放场景,选用不同类别的目标神经网络模型预测混合整数规划过程中的决策变量,从而可以提高决策变量的选择效果,进而有利于提高对货物的堆放方式进行预测得到的预测结果的合理性。
[0156]
请参见图7,为本公开实施例提供的模型训练装置700的结构示意图,所述模型训练装置700,包括:
[0157]
获取模块701,用于获取k个训练数据组,所述k个训练数据组为按照k个分类类别对训练数据集中的初始训练数据进行分类得到的k个训练数据组,所述k个分类类别与k种货物堆放优化函数的函数类别相对应,所述k为大于1的整数;
[0158]
训练模块702,用于基于所述k个训练数据组,分别对k个预先构建的神经网络模型进行训练,得到k个目标神经网络模型,其中,所述k个训练数据组与所述k个目标神经网络模型一一对应,所述目标神经网络模型为基于所对应的训练数据组进行训练得到的模型,且在对所述货物堆放优化函数进行混合整数规划的过程中,所述目标神经网络模型用于预测决策变量。
[0159]
可选地,请参见图8,所述获取模块701,包括:
[0160]
获取子模块7011,用于获取所述训练数据集,所述训练数据集包括多个初始训练数据,所述初始训练数据包括所对应的货物堆放优化函数的函数信息;
[0161]
分类子模块7012,用于基于所述函数信息对应的目标参数对所述多个初始训练数据进行分类,得到所述k个训练数据组;
[0162]
其中,所述目标参数包括以下参数中的至少一项:整数变量占总变量的比例、连续变量占总变量的比例、隐整数变量占总变量的比例、二进制变量占总变量的比例、不等式约束个数占总约束个数的比例、变量总个数和约束总个数。
[0163]
可选地,所述训练模块702,具体用于基于混合整数规划求解器,利用第一训练数据组中的第一初始训练数据,对第一神经网络模型进行n次迭代训练,得到第一目标神经网络模型,所述n为大于1的整数;
[0164]
其中,所述第一训练数据组为所述k个训练数据组中的任意一个训练数据组,所述第一目标神经网络模型为所述k个目标神经网络模型中与所述第一训练数据组相对应的目标神经网络模型;
[0165]
所述第一神经网络模型用于对所接收到的第一函数信息进行混合整数规划的过程中,确定求解树的各节点的决策变量;所述第一初始训练数据包括所述第一函数信息和求解树中各分支节点对应的目标决策变量的标签数据,所述第一函数信息包括:以在第一货仓中堆放的第一货物的数量最多为优化目标确定的函数信息。
[0166]
可选地,请参见图9,所述训练模块702,包括:
[0167]
选择子模块7021,用于将第s个训练数据输入第s个神经网络模型,得到所述第s个神经网络模型输出的第s个决策变量,所述第s个决策变量为与所述求解树中的第s个节点相对应的决策变量;
[0168]
预测子模块7022,用于将所述第s个训练数据和所述第s个决策变量输入所述混合整数规划求解器进行预测,得到预测结果;
[0169]
生成子模块7023,用于基于所述预测结果与理论结果生成第s个回报值;
[0170]
更新子模块7024,用于基于所述第s个回报值对所述第s个神经网络模型进行更新,得到第s+1个神经网络模型;
[0171]
在所述s等于1的情况下,所述第s个训练数据为所述第一初始训练数据,所述第s个神经网络模型为所述第一神经网络模型;
[0172]
在所述s不等于1的情况下,所述第s个训练数据为基于第s-1个神经网络模型输出的决策变量对第s-1个训练数据进行更新之后得到的训练数据。
[0173]
可选地,所述更新子模块7024,具体用于基于目标回报值对所述第s个神经网络模型进行更新,得到第s+1个神经网络模型;
[0174]
其中,在所述第s个回报值小于或等于第一阈值的情况下,所述目标回报值为基于第一缩放函数对所述第s个回报值进行放大之后,得到的回报值;
[0175]
在所述s大于所述第一阈值,且所述s小于第二阈值的情况下,所述目标回报值为所述第s个回报值;
[0176]
在所述第s个回报值大于或等于所述第二阈值的情况下,所述目标回报值为基于第二缩放函数对所述第s个回报值进行缩小之后,得到的回报值。
[0177]
需要说明地,本实施例提供的模型训练装置700能够实现上述模型训练方法实施例的全部技术方案,因此至少能够实现上述全部技术效果,此处不再赘述。
[0178]
请参见图10,为本公开实施例提供的一种货物堆放的优化装置1000的结构示意
图,所述货物堆放的优化装置1000,包括:
[0179]
获取模块1001,用于获取第二函数信息和第二决策变量集,所述第二函数信息包括:以在第二货仓中堆放的第二货物的数量最多为优化目标确定的函数信息;
[0180]
确定模块1002,用于确定所述第二函数信息的函数类别,其中,所述第二函数信息的函数类别为k个分类类别中的类别;
[0181]
所述确定模块1002,还用于在k个目标神经网络模型中确定与所述第二函数信息的函数类别相对应的第二目标神经网络模型;
[0182]
预测模块1003,用于将所述第二函数信息和所述第二决策变量集输入所述第二目标神经网络模型进行预测,得到预测结果,且所述预测结果用于指示在对所述第二函数信息进行混合整数规划的过程中,求解树中的分支节点对应的决策变量,且所述决策变量为所述第二决策变量集中的决策变量;
[0183]
生成模块1004,用于基于所述预测结果对所述第二函数信息进行混合整数规划,得到堆放信息,所述堆放信息用于指示所述第二货物在所述第二货仓中的堆放方式。
[0184]
需要说明地,本实施例提供的货物堆放的优化装置1000能够实现上述货物堆放的优化方法实施例的全部技术方案,因此至少能够实现上述全部技术效果,此处不再赘述。
[0185]
本公开的技术方案中,所涉及的用户个人信息的获取,存储和应用等,均符合相关法律法规的规定,且不违背公序良俗。
[0186]
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
[0187]
图11示出了可以用来实施本公开的实施例的示例电子设备1100的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
[0188]
如图11所示,电子设备1100包括计算单元1101,其可以根据存储在只读存储器(rom)1102中的计算机程序或者从存储单元1108加载到随机访问存储器(ram)1103中的计算机程序,来执行各种适当的动作和处理。在ram 1103中,还可存储设备1100操作所需的各种程序和数据。计算单元1101、rom 1102以及ram 1103通过总线1104彼此相连。输入/输出(i/o)接口1105也连接至总线1104。
[0189]
电子设备1100中的多个部件连接至i/o接口1105,包括:输入单元1106,例如键盘、鼠标等;输出单元1107,例如各种类型的显示器、扬声器等;存储单元1108,例如磁盘、光盘等;以及通信单元1109,例如网卡、调制解调器、无线通信收发机等。通信单元1109允许设备1100通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
[0190]
计算单元1101可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元1101的一些示例包括但不限于中央处理单元(cpu)、图形处理单元(gpu)、各种专用的人工智能(ai)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(dsp)、以及任何适当的处理器、控制器、微控制器等。计算单元1101执行上文所描述的各个方法和处理,例如模型训练方法,或,货物堆放的优化方法。例如,在一些实施例中,模型训练方法,
或,货物堆放的优化方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元1108。在一些实施例中,计算机程序的部分或者全部可以经由rom 1102和/或通信单元1109而被载入和/或安装到设备1100上。当计算机程序加载到ram 1103并由计算单元1101执行时,执行上文描述的模型训练方法,或,货物堆放的优化方法的一个或多个步骤。备选地,在其他实施例中,计算单元1101可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行模型训练方法,或,货物堆放的优化方法。
[0191]
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、芯片上系统的系统(soc)、负载可编程逻辑设备(cpld)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
[0192]
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
[0193]
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
[0194]
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
[0195]
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网
(lan)、广域网(wan)和互联网。
[0196]
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。
[0197]
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
[0198]
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1