一种任务求解方法及其装置与流程

文档序号:35973207发布日期:2023-11-09 15:04阅读:35来源:国知局
一种任务求解方法及其装置与流程

本技术涉及调度领域,尤其涉及一种任务求解方法及其装置。


背景技术:

1、调度问题是大型制造、物流、生产等环节中最常见的问题之一,在不同的场景下,调度总是有不同的意义。例如:物流调度主要是指在物流过程中,物流公司根据待发货物的重量、去向、规格、加急程度等对所属的车辆和人员进行合理的安排和调度。

2、很多的调度问题(如排产、线体调度、加工网络布局等)都可以建模成一个数学问题来求解,线性规划(linear programming,lp)是其中使用最广的一类建模方法。混合整数规划(mixed integer programming,mip)属于求解器领域的一种,广泛应用于云计算、金融、制造等领域。lp问题是在给定一组特定的线性约束条件下,求解目标函数最小值的问题。而mip问题就是在lp基础上新增了部分或全部变量是整数的整数约束。

3、mip求解在初始状态只有一个根节点(对应于初始的混合整数规划任务),在求解过程中会通过分支不断生成新的待求解子节点。可见,mip树搜索中的不同节点可以独立、并行处理,具有天然的并行性,即对这棵树的搜索存在多种维度的并行机会,如子树粒度、节点粒度以及节点内粒度等等。

4、在现有的实现中,每次进行mip的求解过程中均只支持一种并行策略,对于mip的求解过程的加速效果的提升有限。


技术实现思路

1、本技术公开了一种任务求解方法,在对mip进行求解的过程中,根据搜索树的信息来确定并行模式,可以动态选择并行模式,相比固定的并行模式,可以提升mip求解效率,缩短计算时间。

2、第一方面,本技术提供了一种任务求解方法,所述方法包括:获取搜索树,所述搜索树为通过分支定界,对混合整数规划任务进行求解得到的,所述搜索树包括第一子节点和第二子节点在内的多个子节点,每个子节点对应一个子任务,所述第一子节点和所述第二子节点为所述多个子节点中的待求解子节点;根据所述搜索树的信息,从多个并行模式中确定目标并行模式,并根据所述目标并行模式在第一设备和第二设备上并行求解所述第一子节点以及所述第二子节点中的至少一个;其中,所述搜索树的信息包括第一信息和第二信息中的至少一种;所述第一信息与所述搜索树上子节点的数量有关,所述第二信息与搜索树上的子节点之间的连接关系有关。

3、在一种可能的实现中,多个子节点还可以包括除了第一子节点和第二子节点之外的其他待求解子节点。

4、在现有的实现中,在对混合整数规划任务进行分支定界的并行处理时,整个过程一直保持采用相同的并行模式。其中,这里所谓的并行,可以理解为存在多个计算设备(或者描述为实例),多个计算设备之间同步进行子节点的求解过程。然而,针对于不同的搜索树结构,不同的并行模式进行求解的效率以及求解精度是不同的。例如针对于包括的子树的长度普遍较短的搜索树而言,以节点或者节点内为粒度进行的求解过程的效率较高,针对于包括的子树的长度普遍较长的搜索树而言,以子树为粒度进行的求解过程的效率较高。且随着求解过程的进行,搜索树的结构也在发生变化,例如一部分搜索树包括的子树的长度普遍较长,另一部分搜索树包括的子树的长度普遍较短。

5、本技术实施例中,在对mip进行求解的过程中,根据搜索树的信息来确定并行模式,可以动态选择并行模式,相比固定的并行模式,可以提升mip求解效率,缩短计算时间。

6、在一种可能的实现中,所述多个并行模式包括如下模式中的至少一种:在第一设备上求解所述第一子节点所在的第一子树包括的多个子节点、且在第二设备上求解所述第二子节点所在的第二子树包括的多个子节点;所述第一子树为通过分支定界,对所述第一子节点进行求解得到的,所述第二子树为通过分支定界,对所述第二子节点进行求解得到的;或者,在第一设备上求解所述第一子节点且不求解除所述第一子节点之外的其他子节点、以及在第二设备上求解所述第二子节点且不求解除所述第二子节点之外的其他子节点;或者,通过第一规划算法,在第一设备上求解所述第一子节点、以及通过第二规划算法,在第二设备上并行求解所述第一子节点。

7、应理解,除了上述三种并行求解模式之外,所述多个并行模式还可以包括其他并行求解模式,这里并不限定。

8、在一种可能的实现中,所述第一规划算法和所述第二规划算法为不同的线性规划算法。

9、在一种可能的实现中,所述搜索树的信息包括:所述搜索树上的子节点数量、或者所述搜索树上的子节点之间的连接关系。

10、在一种可能的实现中,所述第一信息,包括:所述搜索树上多个深度中每个深度的子节点数量、或者所述搜索树上待求解的子节点的数量,其中,所述混合整数规划任务对应于所述搜索树上的根节点,所述深度表示子节点到所述根节点之间的距离。

11、在一种可能的实现中,所述根据所述目标并行模式在第一设备和第二设备上并行求解所述第一子节点或所述第二子节点,包括:根据所述目标并行模式在第一设备和第二设备上并行求解所述第一子节点或所述第二子节点,以得到更新后的搜索树;所述更新后的搜索树包括第三子节点和第四子节点,所述第三子节点和所述第四子节点为求解所述第一子节点或所述第二子节点后新增的待求解的子节点;所述方法还包括:根据所述更新后的搜索树的信息,从多个并行模式中确定目标并行模式,并根据所述目标并行模式在第一设备和第二设备上并行求解所述第三子节点和所述第四子节点中的至少一个;其中,所述多个并行模式包括如下模式中的至少一种:在第一设备上通过分支定界,求解所述第三子节点所在的第三子树包括的多个子节点、且在第二设备上求解所述第四子节点所在的第四子树包括的多个子节点;所述第三子树为通过分支定界,对所述第三子节点进行求解得到的,所述第四子树为通过分支定界,对所述第四子节点进行求解得到的;或者,在第一设备上求解所述第三子节点且不求解除所述第三子节点之外的其他子节点、以及在第二设备上仅求解所述第四子节点且不求解除所述第四子节点之外的其他子节点;或者,通过第一规划算法,在第一设备上求解所述第三子节点、以及通过第二规划算法,在第二设备上并行求解所述第三子节点。

12、在一种可能的实现中,所述求解所述第一子节点所在的第一子树包括的多个子节点,包括:求解所述第一子节点所在的第一子树包括的预设数量的子节点;或者,在预设时间内,求解所述第一子节点所在的第一子树包括的多个子节点。

13、在一种可能的实现中,所述求解所述第二子节点所在的第二子树包括的多个子节点,包括:求解所述第二子节点所在的第二子树包括的预设数量的子节点;或者,在预设时间内,求解所述第二子节点所在的第二子树包括的多个子节点。

14、在一种可能的实现中,所述根据所述搜索树的信息,从多个并行模式中确定目标并行模式,包括:根据所述搜索树的信息,通过神经网络模型,从多个并行模式中确定目标并行模式。

15、第二方面,本技术提供了一种任务求解装置,所述装置包括:

16、获取模块,用于获取搜索树,所述搜索树为通过分支定界,对混合整数规划任务进行求解得到的,所述搜索树包括第一子节点和第二子节点在内的多个子节点,每个子节点对应一个子任务,所述第一子节点和所述第二子节点为所述多个子节点中的待求解子节点;

17、并行调度模块,用于根据所述搜索树的信息,从多个并行模式中确定目标并行模式,并根据所述目标并行模式在第一设备和第二设备上并行求解所述第一子节点以及所述第二子节点中的至少一个;其中,所述搜索树的信息包括第一信息和第二信息中的至少一种;所述第一信息与所述搜索树上子节点的数量有关,所述第二信息与搜索树上的子节点之间的连接关系有关。

18、在一种可能的实现中,所述多个并行模式包括如下模式中的至少一种:

19、在第一设备上求解所述第一子节点所在的第一子树包括的多个子节点、且在第二设备上求解所述第二子节点所在的第二子树包括的多个子节点;所述第一子树为通过分支定界,对所述第一子节点进行求解得到的,所述第二子树为通过分支定界,对所述第二子节点进行求解得到的;或者,

20、在第一设备上求解所述第一子节点且不求解除所述第一子节点之外的其他子节点、以及在第二设备上求解所述第二子节点且不求解除所述第二子节点之外的其他子节点;或者,

21、通过第一规划算法,在第一设备上求解所述第一子节点、以及通过第二规划算法,在第二设备上并行求解所述第一子节点。

22、在一种可能的实现中,所述第一信息,包括:

23、所述搜索树上多个深度中每个深度的子节点数量、或者所述搜索树上待求解的子节点的数量,其中,所述混合整数规划任务对应于所述搜索树上的根节点,所述深度表示子节点到所述根节点之间的距离。

24、在一种可能的实现中,所述并行调度模块,具体用于:

25、根据所述目标并行模式在第一设备和第二设备上并行求解所述第一子节点或所述第二子节点,以得到更新后的搜索树;所述更新后的搜索树包括第三子节点和第四子节点,所述第三子节点和所述第四子节点为求解所述第一子节点或所述第二子节点后新增的待求解的子节点;

26、所述方法还包括:

27、根据所述更新后的搜索树的信息,从多个并行模式中确定目标并行模式,并根据所述目标并行模式在第一设备和第二设备上并行求解所述第三子节点和所述第四子节点中的至少一个;其中,所述多个并行模式包括如下模式中的至少一种:

28、在第一设备上通过分支定界,求解所述第三子节点所在的第三子树包括的多个子节点、且在第二设备上求解所述第四子节点所在的第四子树包括的多个子节点;所述第三子树为通过分支定界,对所述第三子节点进行求解得到的,所述第四子树为通过分支定界,对所述第四子节点进行求解得到的;或者,

29、在第一设备上求解所述第三子节点且不求解除所述第三子节点之外的其他子节点、以及在第二设备上仅求解所述第四子节点且不求解除所述第四子节点之外的其他子节点;或者,

30、通过第一规划算法,在第一设备上求解所述第三子节点、以及通过第二规划算法,在第二设备上并行求解所述第三子节点。

31、在一种可能的实现中,所述并行调度模块,具体用于:

32、求解所述第一子节点所在的第一子树包括的预设数量的子节点;或者,

33、在预设时间内,求解所述第一子节点所在的第一子树包括的多个子节点。

34、在一种可能的实现中,所述并行调度模块,具体用于:

35、求解所述第二子节点所在的第二子树包括的预设数量的子节点;或者,

36、在预设时间内,求解所述第二子节点所在的第二子树包括的多个子节点。

37、在一种可能的实现中,所述并行调度模块,具体用于:

38、根据所述搜索树的信息,通过神经网络模型,从多个并行模式中确定目标并行模式。

39、在一种可能的实现中,所述第一规划算法和所述第二规划算法为不同的线性规划算法。

40、第三方面,本技术实施例提供了一种装置,包括存储器、处理器以及总线系统,其中,存储器用于存储程序,处理器用于执行存储器中的程序,以执行如上述第一方面及第一方面任一可选的方法。

41、第四方面,本发明实施例还提供一种系统,该系统包括至少一个处理器,至少一个存储器以及至少一个通信接口;处理器、存储器和通信接口通过通信总线连接并完成相互间的通信;

42、存储器用于存储执行以上方案的应用程序代码,并由处理器来控制执行。所述处理器用于执行所述存储器中存储的应用程序代码,以得到任务调度结果;其中存储器存储的代码可执行以上提供的一种任务求解方法。

43、通信接口,用于与其他设备或通信网络通信,以将所述任务求解结果发送至所述设备或通信网络。

44、第五方面,本技术实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,当其在计算机上运行时,使得计算机执行上述第一方面及其任一可选的方法。

45、第六方面,本技术实施例提供了一种计算机可读存储介质,所述计算机存储介质存储有一个或多个指令,所述指令在由一个或多个计算机执行时使得所述一个或多个计算机实施上述第二方面及其任一可选的系统。

46、第七方面,本技术实施例提供了一种计算机程序,当其在计算机上运行时,使得计算机执行上述第一方面及其任一可选的方法。

47、第八方面,本技术提供了一种芯片系统,该芯片系统包括处理器,用于支持终端设备或服务器实现上述方面中所涉及的功能,例如,发送或处理上述方法中所涉及的数据;或,信息。在一种可能的设计中,所述芯片系统还包括存储器,所述存储器,用于保存终端设备或服务器必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包括芯片和其他分立器件。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1