本发明涉及任务调度优化领域,尤其是一种基于深度强化学习的控制系统任务云调度方法。
背景技术:
1、控制科学技术在人类的技术进步中发挥着至关重要的作用,为许多工业部门的自动化提供了理论基础和便利,如pid控制和模糊控制等。当这些控制系统或方法在应用于特定问题或场景时,需要计算资源来协助解决控制器问题,包括使用基本数学运算或复杂矩阵运算来计算控制器参数。当这些计算任务在不同型号的cpu或不同数量的cpu内核上运行时,所需的时间会有所不同。随着控制系统控制器求解器中任务计算复杂度的不断提高,所需的cpu资源也会相应增加,从而导致计算时间延长。因此,本地处理器cpu的处理能力已无法满足当前解决复杂问题的需求。因此,计算各种复杂问题的载体逐渐从本地处理器转向了云计算。云计算是一种基于互联网的计算模式,允许个人和企业通过远程服务器访问和使用计算资源。它以服务的形式提供网络和计算资源,即所谓的云服务,用户可以租用这些资源来满足自己的需求。在云服务中,基础设施即服务(iaas)是一种流行的基本服务解决方案。aws、azure、阿里云和华为云等领先的云服务提供商通常提供虚拟机(vm)来满足用户的计算需求(cpu和内存)。在云计算中,云服务提供商利用多numa(非统一内存访问)架构来提供具有大量内存和cpu资源的大容量vm。每台服务器都有多个numa,每个numa包含多个cpu内核和内存空间。每台服务器的cpu内核数量是有限的。对于虚拟机创建请求,服务提供商会选择一定数量的内核和内存,以便在不超过cpu内核总数的情况下,在服务器的一个numa或跨numa上创建虚拟机。当用户对虚拟机的要求不同时,例如对cpu的需求从2核到64核不等,服务器就会创建相应cpu核数的虚拟机来处理用户任务。不同内核的虚拟机处理计算任务所需的时间各不相同。收到用户的虚拟机请求后,云服务提供商会根据服务器的日程表创建虚拟机,并在不同的时间段内将用户任务分配给服务器内的虚拟机。在云计算中,如何安排时间段来创建虚拟机进行任务处理成为一个待解决的任务调度问题。
2、由于服务器中的cpu内核数量有限,且每天的工作时间有限,因此在这个任务规划问题中存在两个约束条件:时长和cpu内核数量。通过这些约束条件,任务调度问题可以被描述为一个二维装箱问题(bpp)。我们的目标是在服务器工作时间内,根据任务对cpu的要求有效利用服务器资源。通过求解这个二维bpp来解决这个任务调度问题。现有的装箱算法大多利用启发式算法求解这个组合优化问题,虽然这些方法在平衡空间利用率和效率方面发挥了重要作用,但这些方法往往无法提供最优解。因此,在规定时长和cpu核心数量的情况下,如何得到更高效的资源利用率,是一个急需解决的问题。
技术实现思路
1、本发明人针对上述问题及技术需求,提出了一种基于深度强化学习的控制系统任务云调度方法,以解决控制系统任务在规定工作时间和cpu内核总数的情况下的调度问题。本发明的技术方案如下:
2、一种基于深度强化学习的控制系统任务云调度方法,包括如下步骤:
3、通过实验测试和神经网络预测控制系统中的计算任务在不同cpu内核数量下所需要的运行时间,将每个计算任务对应的cpu内核数量和运行时间存入任务序列中;
4、在云服务器规定工作时间和cpu内核总数的限制条件下,将对任务序列的调度问题表述为二维装箱问题;
5、针对二维装箱问题建立马尔可夫决策模型,设置对应的状态空间、动作空间和奖励函数;
6、在二维装箱过程中,将每个时间步长观察到的当前状态输入至double dqn中的q网络,q网络输出该状态下采取动作的收益值,并通过ε-greedy方法得到最优调度策略。
7、其进一步的技术方案为,通过实验测试和神经网络预测控制系统中的计算任务在不同cpu内核数量下所需要的运行时间,包括:
8、计算任务是对控制系统中的无限时间情形下的线性二次型最优控制器的求解,对每个线性二次型最优控制器建立线性时不变状态空间模型;
9、通过实验的方法采集在不同cpu内核数量下,求解不同状态维数和系数矩阵的线性二次型最优控制器需要的cpu运行时间;
10、对系数矩阵进行特征提取,将实验所得数据按照运行时间长短和cpu内核数量大小分为四类并打上对应标签;引入神经网络模型,将系数矩阵特征作为模型输入并使用标签数据集来训练模型,使模型能预测不同线性二次型最优控制器对应的cpu内核数量和运行时间。
11、其进一步的技术方案为,对每个线性二次型最优控制器建立线性时不变状态空间模型,包括:
12、线性时不变状态空间模型为:
13、
14、式中,是t时刻的系统状态向量,是t时刻的控制输入向量,t∈[0,∞);和分别是系统的系数矩阵;
15、在最优控制器的设计中,给定二次型代价函数:
16、
17、式中,和为半正定矩阵,通过设计状态反馈控制器u(t)=-kx(t)来最小化代价函数j,以求解最优控制策略;其中状态反馈矩阵k通过对are求解得到,表达式为:
18、
19、式中p0为are的待求矩阵。
20、其进一步的技术方案为,将对任务序列的调度问题表述为二维装箱问题,包括:
21、根据云服务器的cpu内核总数和工作时间创建云服务器的资源时间表,并将资源时间表视为一个有限的二维容器;当云服务器接收到计算任务时,根据任务对应的cpu内核数量和运行时间创建一个虚拟机,二维容器用于调度执行计算任务的虚拟机;在此过程中,将任务序列视为一个矩形序列,则对任务序列的调度问题表述为将矩形序列装入二维容器的二维装箱问题,二维装箱问题的目标是在有限的二维容器中最大化矩形序列的填充密度;
22、其中,任务序列服从均匀分布,且各项任务按先后顺序有序排列。
23、其进一步的技术方案为,使用二维数组来表示装箱所用的二维容器,其中装箱时未占用的空间用0表示,已占用的空间用1表示,在时间步长i时,使用四个特征来表示系统的当前状态si,记为si=(h,u,p,g),其中:
24、h为height的简写,表示当前状态下每列中元素为1的高度之和;
25、u为unevenness的简写,表示当前状态下相邻两列之间元素为1的高度差总和;
26、p为perfect lines的简写,表示当前状态下元素均为1的行数;
27、g为gaps的简写,表示当前状态下已占用空间之间存在元素为0的孔洞数量。
28、其进一步的技术方案为,该方法还包括:
29、在二维装箱过程中,在每个状态下通过删除无效动作来缩减动作空间大小,当某一状态的动作空间中没有有效动作时,该状态即为终结状态。
30、其进一步的技术方案为,在第i个时间步长的当前状态si下,每个动作都会产生不同的后续状态si+1,对于这些导致不同结果的动作ai,定义了以下奖励函数:
31、
32、式中,表示簇的大小,表示簇的紧凑程度,lnew表示新形成的perfect line的数量,kw表示箱子宽度的常数倍数;
33、的解释如下:如果一个元素与另一个元素横向或纵向相连,则它们属于同一个簇;
34、的解释如下:在时间步长i时,采取了动作ai,产生了一个新的集群ci,集群大小为引入一个新变量它表示能包围集群ci的最小矩形的大小,则簇的紧凑程度定义为:
35、
36、其进一步的技术方案为,将每个时间步长观察到的当前状态输入至double dqn中的q网络,q网络输出该状态下采取动作的收益值,包括:
37、在智能体学习过程中,它会根据每个时间步长i观察到的当前状态si和策略π,执行一个动作ai,并根据动作-价值函数对策略π进行评估:
38、
39、式中,gi表示每个时间步长i的累计收益,ri+k+1表示在步长i+k+1时获得的奖励,k表示从第i个时间步长开始后的k个时间步,γ表示折扣因子;通过最大化整体策略的动作-价值函数,得到最优状态下的动作-价值函数q*(si,ai),表示为:
40、
41、采用double dqn中的q网络qθ(si,ai)和目标网络qθ-(si,ai)来拟合动作-价值函数,并通过更新网络参数θ和θ-来逼近最优的q*(si,ai);
42、double dqn中的q网络qθ(si,ai)和目标网络qθ-(si,ai)的隐含层均由三个全连接层组成,以在当前状态si下执行动作ai所得到的下一个状态si+1作为时间步长i+1时的q网络的输入,以生成的状态-行动对(si+1,ai+1)的动作-价值函数值作为时间步长i+1时的q网络的输出,并更新两个网络参数θ和θ-。
43、其进一步的技术方案为,该方法还包括:
44、在网络参数更新的过程中,目标网络qθ-(si,ai)的参数θ-会使用软更新的方式来复制q网络qθ(si,ai)的参数θ,参数θ的更新式为:
45、
46、θ-的软更新式为:
47、θ-=(1-τ)θ-+τθ;
48、式中τ表示软更新率。
49、其进一步的技术方案为,通过ε-greedy方法得到最优调度策略,包括:
50、智能体采用ε-greedy方法采取动作,表示为:
51、
52、式中,ai表示在时间步长i时智能体执行的动作,以1-ε的概率选择收益最大的动作,并在其他情况下选择随机动作;qθ(si,ai)表示double dqn拟合的动作-价值函数,表示动作空间。
53、本发明的有益技术效果是:
54、本发明根据控制系统中任务在云服务器中的调度提出一种调度方法。其中使用神经网络来预测对不同线性二次型问题设计状态反馈控制器需要的计算资源,然后利用提出的调度方法将这些计算资源在云服务器中进行规划。该调度方法以深度强化学习中的double dqn为基础,根据对装箱过程的研究,设计更高效的奖励函数并缩减了mdp(马尔可夫决策模型)中的动作空间,使得该方法对于动作空间大的控制系统任务调度问题提供快速且具备性能保障的可行策略,使本发明更具备普遍性和实用性。
1.一种基于深度强化学习的控制系统任务云调度方法,其特征在于,所述方法包括:
2.根据权利要求1所述的基于深度强化学习的控制系统任务云调度方法,其特征在于,所述通过实验测试和神经网络预测控制系统中的计算任务在不同cpu内核数量下所需要的运行时间,包括:
3.根据权利要求2所述的基于深度强化学习的控制系统任务云调度方法,其特征在于,对每个所述线性二次型最优控制器建立线性时不变状态空间模型,包括:
4.根据权利要求1所述的基于深度强化学习的控制系统任务云调度方法,其特征在于,将对所述任务序列的调度问题表述为二维装箱问题,包括:
5.根据权利要求1所述的基于深度强化学习的控制系统任务云调度方法,其特征在于,使用二维数组来表示装箱所用的二维容器,其中装箱时未占用的空间用0表示,已占用的空间用1表示,在时间步长i时,使用四个特征来表示系统的当前状态si,记为si=(h,u,p,g),其中:
6.根据权利要求1所述的基于深度强化学习的控制系统任务云调度方法,其特征在于,所述方法还包括:
7.根据权利要求5所述的基于深度强化学习的控制系统任务云调度方法,其特征在于,在第i个时间步长的当前状态si下,每个动作都会产生不同的后续状态si+1,对于这些导致不同结果的动作ai,定义了以下奖励函数:
8.根据权利要求1所述的基于深度强化学习的控制系统任务云调度方法,其特征在于,所述将每个时间步长观察到的当前状态输入至double dqn中的q网络,所述q网络输出该状态下采取动作的收益值,包括:
9.根据权利要求8所述的基于深度强化学习的控制系统任务云调度方法,其特征在于,所述方法还包括:
10.根据权利要求1所述的基于深度强化学习的控制系统任务云调度方法,其特征在于,所述通过ε-greedy方法得到最优调度策略,包括: