一种基于多代理程序的工作流调度方法及装置与流程

文档序号:15934493发布日期:2018-11-14 02:10阅读:115来源:国知局

本发明涉及人工智能领域,特别涉及一种基于多代理程序的工作流调度方法及装置。

背景技术

在计算机等智能设备工作时需要进行工作流调度,工作流指业务过程的部分或整体在计算机应用环境下的自动化,是对工作流程及其各操作步骤之间业务规则的抽象、概括描述。但是目前在工作流调度特别是云工作流调度时由于其具有业务流程复杂,计算任务耗时和数据量大等特征,因此往往会对工作流处理的公平性没有保证,造成资源优化分配时的智能性差等问题。



技术实现要素:

鉴于现有技术中存在的上述问题,本发明实施例的目的在于提供一种基于多代理程序的工作流调度方法及装置,该方法利用多代理程序处理工作流调度问题,能够使工作流调度具有智能性,提高工作流特别是云工作流的调度效率。

为了解决上述技术问题,本发明采用了如下技术方案:一种基于多代理程序的工作流调度方法,包括:

根据所述代理程序的输入时间和所述代理程序执行结果的输出时间获取所述代理程序的适应程度信息;

根据所述适应程度信息获取所述代理程序的位置和优势位置,并获取所述代理程序的位置对应的所述工作流分配到相应处理机的权重;其中,所述位置为所述工作流调度的可行解;

根据所述适应程度信息,并根据多个所述代理程序之间的通信结果,聚集部分所述代理程序并进行相似化处理,生成局部多代理程序系统;

利用所述局部多代理程序系统更新所述代理程序的位置和优势位置。

作为优选,所述适应程度信息包括所述工作流调度的完成时间,所述工作流调度的完成时间为所述代理程序的输入时间和所述代理程序执行结果的输出时间的差值。

作为优选,根据所述适应程序信息获取所述代理程序的位置和优势位置包括:所述代理程序根据预设搜索程序寻找所述优势位置,同时记录其位置和其他代理程序具有的所述优势位置。

作为优选,获取所述代理程序的位置对应的所述工作流分配到相应处理机的权重包括:获取所述代理程序对应的所述权重的增量;根据所述权重的增量更新所述代理程序的位置对应的所述工作流分配到相应处理机的权重。

作为优选,聚集部分所述代理程序并进行相似化处理,生成局部多代理程序系统包括:在聚集的所述代理程序中选取中心代理程序,聚集的其他所述代理程序与所述中心代理程序进行权重交互,以改变所述代理程序对应的权重。

本发明实施例还提供了一种基于多代理程序的工作流调度装置,包括相互连接的获取模块和处理模块;

所述获取模块配置为:根据所述代理程序的输入时间和所述代理程序执行结果的输出时间获取所述代理程序的适应程度信息;根据所述适应程度信息获取所述代理程序的位置和优势位置,并获取所述代理程序的位置对应的所述工作流分配到相应处理机的权重;其中,所述位置为所述工作流调度的可行解;

所述处理模块配置为:根据所述适应程度信息,并根据多个所述代理程序之间的通信结果,聚集部分所述代理程序并进行相似化处理,生成局部多代理程序系统;利用所述局部多代理程序系统更新所述代理程序的位置和优势位置。

作为优选,所述适应程度信息包括所述工作流调度的完成时间,所述工作流调度的完成时间为所述代理程序的输入时间和所述代理程序执行结果的输出时间的差值。

作为优选,所述获取模块包括搜索单元:所述搜索单元配置为驱动所述代理程序根据预设搜索程序寻找所述优势位置,同时驱动所述代理程序记录其位置和其他代理程序具有的所述优势位置。

作为优选,所述获取模块进一步配置为:获取所述代理程序对应的所述权重的增量;根据所述权重的增量更新所述代理程序的位置对应的所述工作流分配到相应处理机的权重。

作为优选,所述处理模块包括相互连接的选择单元和交互单元,所述选择单元配置为在聚集的所述代理程序中选取中心代理程序,以使所述交互单元将聚集的其他所述代理程序与所述中心代理程序进行权重交互,以改变所述代理程序对应的权重。

本发明实施例的有益效果在于:本方法通过代理程序之间进行信息共享和交流,从而更好地搜索到工作流调度的可行解,并且利用多代理程序的特点,在代理程序之间实现信息共享,进而调节代理程序的位置,即避免工作时盲目的过度随机,又避免陷入局部最优解,提高了工作流调度的智能性。

附图说明

图1为本发明实施例的基于多代理程序的工作流调度方法的流程图;

图2为本发明实施例的基于多代理程序的工作流调度装置的结构框图。

附图标记说明

1-获取模块2-处理模块3-搜索单元

4-选择单元5-交互单元

具体实施方式

为使本领域技术人员更好地理解本发明,下面参照附图对本发明的实施例进行详细说明,但不作为对本发明的限定。

代理程序(agent)能够在与其他代理程序协商之后可求得问题的解,具有交互性和智能性。代理程序(agent)具有属于其自身的计算资源和局部于自身的行为控制机制,能够在没有外界直接操纵的情况下,根据其内部状态和感知到的环境信息,决定和控制自身的行为,并且能够用自身通信语言实施灵活多样的交互,能够有效地与其他代理程序(agent)协同工作,并且能够遵循承诺采取主动行动,表现出面向目标的行为。本发明实施例的一种基于多代理程序的工作流调度方法例如用了多代理程序(agent)解决了工作流调度特别是云工作调度问题,如图1所示,该方法包括:

s1,根据代理程序的输入时间和代理程序执行结果的输出时间获取代理程序的适应程度信息,代理程序的输入时间为代理程序为解决工作流调度的起始工作时间,而代理程序执行结果的输出时间为代理程序完成相应的工作流调度并输出执行结果的时间,如代理程序将工作流分配到相应处理机(如虚拟机)后,处理机(如虚拟机)根据工作流输出执行结果的时间,适应程度信息是指代理程序(agent)适应环境程度,当环境发生变换时,通过基于能力和偏好的局部调整来解决任务和其它代理程序(agent)之间的匹配程度,使得每个代理程序(agent)能够根据局部信息选择理想的任务来执行,适应程度高,能够使得分配工作流调度的鲁棒性和多代理程序(agent)的整体效用提高。

s2,根据适应程度信息获取代理程序的位置和优势位置,并获取代理程序的位置对应的工作流分配到相应处理机(虚拟机)的权重;其中,位置为工作流调度的可行解。如果工作流分配到相应处理机的权重高则相应的工作流便能够尽早被处理和执行,反之则会拖慢该工作流的执行过程,较为重要工作流其被赋予的权重较高,不重要的工作流被赋予较低的权重会提高整个工作流调度效率,根据代理程序的位置(工作流调度的可行解)信息决定代理程序的位置对应的工作流分配到相应处理机的权重是科学的方式,能够有效提高工作流调度效率。

在一个实施例中,根据适应程序信息获取代理程序的位置和优势位置包括:代理程序根据预设搜索程序寻找优势位置,同时记录其位置和其他代理程序具有的优势位置。每个代理程序的移动都由一定的幅度和方向的速度描述,每个代理程序的位置(工作流调度的可行解)受到它自己的最佳位置和求解空间的最佳位置的影响,所有代理程序都由一个适应方程确定适应值以判断目前的位置的好坏,每一个代理程序具有记忆功能,能记录自己的位置和优势位置(或最佳位置(pbest))和整个代理程序中的最佳代理程序的位置和优势位置(gbest),而且代理程序总是往最优的搜索区域移动。

在一个实施例中基于多代理程序的相关概念可描述如下:

在每次迭代的过程中,代理程序可以通过获取两个记录值来更新自身,代理程序的速度和位置(工作流调度的可行解)方程公式如下:

其中,vik+1是代理程序i在第次k+1迭代时的速度,vik是代理程序i在第k次迭代时的速度,ω是惯性权重,非负数,调节对解空间的搜索范围,c1和c2是加速度常数(c1也称认知系数,c2也称社会系数),调节学习的最大步长。r1和r2是0到1之间的随机数,以增加搜索随机性,是代理程序i在第k+1次迭代时的位置,是代理程序i在第k次迭代时的位置,是pbesti第i个代理程序目前为止到达的优势位置(或最好位置),gbest是对整个种群而言最佳的代理程序的位置。

s3,根据适应程度信息,并根据多个代理程序之间的通信结果,聚集部分代理程序并进行相似化处理,生成局部多代理程序系统。

在一个实施例中,代理程序不仅可以拥有搜索个体极值和全局最优值的能力,还可以与其它代理程序进行交流,竞争和合作,从而积累学习经验,每个代理程序在迭代过程中不断从邻居代理程序中学习经验,加速逼近全局最优值。在一个实施例中,设定每个代理程序的邻居代理程序个数为低于10个,即每个代理程序的局部空间内存在低于10个可以相互通信的代理程序,通过代理程序间的相互通信,比较个体之间的距离,根据适应程度信息选取距离最近的代理程序,选取适应程度最相近的代理程序,聚集部分代理程序,生成相似的局部多代理程序系统,将整个代理程序抽象成局部多代理程序系统,以提高处理工作流调度效率。

s4,利用局部多代理程序系统更新代理程序的位置和优势位置,进而调节代理程序的位置,从而提高代理程序解决工作流调度的可行解的能力,从而更好地搜索到工作流调度的可行解,并且利用多代理程序的特点,在代理程序之间实现信息共享,避免工作时盲目的过度随机,又避免陷入局部最优解,提高了工作流调度的智能性。

在本发明的一个实施例中,适应程度信息包括工作流调度的完成时间,工作流调度的完成时间为代理程序的输入时间和所述代理程序执行结果的输出时间的差值,即工作流的完工时间m作为本实施例的适应程度ttotal,可以由以下公式表示:

ttotal=m=texit-tenter(3)

获取代理程序的位置对应的工作流分配到相应处理机的权重包括:获取代理程序对应的权重的增量(也可以叫做代理程序对应的速度);根据权重的增量更新代理程序的位置对应的工作流分配到相应处理机的权重。

在一个实施例中,代理程序的位置,即工作流调度问题的一个可行解,表示为一个二维矩阵x:

其中,二维矩阵x代表一个代理程序的位置,矩阵每个位置存放的任务ti分配到处理机(虚拟机)pj的权重,即

代理程序对应的速度:代表了工作流调度问题的在二元组xij在速度更新后获得的权重的增量,这是个存放增量的矩阵,可以表示为二维矩阵v:

其中,二维矩阵v代表一个代理程序对应的速度,矩阵每个位置存放着任务ti分配到处理机(虚拟机)pj速度更新后的权重的增量v(xij),初始化时,全部增量赋值为0。

聚集部分代理程序并进行相似化处理,生成局部多代理程序系统包括:在聚集的代理程序中选取中心代理程序,聚集的其他代理程序与中心代理程序进行权重交互,以改变代理程序对应的权重。

在一个实施例中,局部多代理程序系统存在一个中心代理程序(也可以叫做中心粒子,相应的每个代理程序都叫做一个粒子),记作agent_a,设置中心代理程序的邻居是agent_b,随机选取一个agent_b,若该邻居的适应程度小于agent_a的适应程度,则称其为劣粒子,反之,称为优粒子。在一个实施例中中心代理程序与其他代理程序(如该中心代理程序的邻居)进行权重交互包括了交叉阶段和变异阶段。

交叉阶段:在局部多代理程序系统中随机选取一个优粒子,与中心代理程序(中心粒子)进行交叉操作,从优粒子的位置矩阵x的第一行迭代到最后一行,本实施例是否进行交叉操作的概率为0.2,当遍历到第i行时,而且出现概率小于等于0.2时,就选取了优粒子的第i行与中心代理程序的位置矩阵x的第i行进行交叉操作。

变异过程:在局部多代理程序系统中随机选取一个优粒子,随机选取中心代理程序(中心粒子)的位置矩阵x的特定位置与优粒子位置矩阵x的进行比较,若权重比其大,则随机减少自身权重,反之增加自身权重。

在本发明的一个实施例中,更新代理程序的位置和优势位置后重新计算每个代理程序的适应程度,若满足优化结束条件,则输出最优解,否则再进行步骤s2。

本发明实施例还提供了一种基于多代理程序的工作流调度装置,如图2所示,包括相互连接的获取模块1和处理模块2;

获取模块1配置为:根据代理程序的输入时间和代理程序执行结果的输出时间获取代理程序的适应程度信息;根据适应程度信息获取代理程序的位置和优势位置,并获取代理程序的位置对应的工作流分配到相应处理机的权重;其中,位置为工作流调度的可行解。

代理程序的输入时间为代理程序为解决工作流调度的起始工作时间,而代理程序执行结果的输出时间为代理程序完成相应的工作流调度并输出执行结果的时间,如代理程序将工作流分配到相应处理机(如虚拟机)后,处理机(如虚拟机)根据工作流输出执行结果的时间,适应程度信息是指代理程序(agent)适应环境程度,当环境发生变换时,通过基于能力和偏好的局部调整来解决任务和其它代理程序(agent)之间的匹配程度,使得每个代理程序(agent)能够根据局部信息选择理想的任务来执行,适应程度高,能够使得分配工作流调度的鲁棒性和多代理程序(agent)的整体效用提高。

如果工作流分配到相应处理机的权重高则相应的工作流便能够尽早被处理和执行,反之则会拖慢该工作流的执行过程,较为重要工作流其被赋予的权重较高,不重要的工作流被赋予较低的权重会提高整个工作流调度效率,根据代理程序的位置(工作流调度的可行解)信息决定代理程序的位置对应的工作流分配到相应处理机的权重是科学的方式,能够有效提高工作流调度效率。

在一个实施例中,如图2所示,获取模块1包括搜索单元3:搜索单元3配置为驱动代理程序根据预设搜索程序寻找优势位置,同时记录其位置和其他代理程序具有的优势位置。每个代理程序的移动都由一定的幅度和方向的速度描述,每个代理程序的位置(工作流调度的可行解)受到它自己的最佳位置和求解空间的最佳位置的影响,所有代理程序都由一个适应方程确定适应值以判断目前的位置的好坏,每一个代理程序具有记忆功能,能记录自己的位置和优势位置(或最佳位置(pbest))和整个代理程序中的最佳代理程序的位置和优势位置(gbest),而且搜索单元3驱动代理程序总是往最优的搜索区域移动。

在一个实施例中基于多代理程序的相关概念可描述如下:

在每次迭代的过程中,代理程序可以通过获取两个记录值来更新自身,代理程序的速度和位置(工作流调度的可行解)方程公式如下:

其中,vik+1是代理程序i在第次k+1迭代时的速度,vik是代理程序i在第k次迭代时的速度,ω是惯性权重,非负数,调节对解空间的搜索范围,c1和c2是加速度常数(c1也称认知系数,c2也称社会系数),调节学习的最大步长。r1和r2是0到1之间的随机数,以增加搜索随机性,是代理程序i在第k+1次迭代时的位置,是代理程序i在第k次迭代时的位置,是pbesti第i个代理程序目前为止到达的优势位置(或最好位置),gbest是对整个种群而言最佳的代理程序的位置。

处理模块2配置为:根据适应程度信息,并根据多个代理程序之间的通信结果,聚集部分代理程序并进行相似化处理,生成局部多代理程序系统;利用局部多代理程序系统更新代理程序的位置和优势位置。在一个实施例中,代理程序不仅可以拥有搜索个体极值和全局最优值的能力,还可以与其它代理程序进行交流,竞争和合作,从而积累学习经验,每个代理程序在迭代过程中不断从邻居代理程序中学习经验,加速逼近全局最优值。在一个实施例中,处理模块2设定每个代理程序的邻居代理程序个数为低于10个,即每个代理程序的局部空间内存在低于10个可以相互通信的代理程序,处理模块2通过代理程序间的相互通信,比较个体之间的距离,并根据适应程度信息选取距离最近的代理程序,选取适应程度最相近的代理程序,处理模块2聚集部分代理程序,生成相似的局部多代理程序系统,将整个代理程序抽象成局部多代理程序系统,以提高处理工作流调度效率。

在本发明的一个实施例中,适应程度信息包括工作流调度的完成时间,工作流调度的完成时间为代理程序的输入时间和代理程序执行结果的输出时间的差值,即工作流的完工时间m作为本实施例的适应程度ttotal,可以由以下公式表示:

ttotal=m=texit-tenter(3)

获取模块1进一步配置为:获取代理程序对应的权重的增量;根据权重的增量更新代理程序的位置对应的工作流分配到相应处理机的权重。

在一个实施例中,代理程序的位置,即工作流调度问题的一个可行解,表示为一个二维矩阵x:

其中,二维矩阵x代表一个代理程序的位置,矩阵每个位置存放的任务ti分配到处理机(虚拟机)pj的权重,即

代理程序对应的速度:代表了工作流调度问题的在二元组xij在速度更新后获得的权重的增量,这是个存放增量的矩阵,可以表示为二维矩阵v:

其中,二维矩阵v代表一个代理程序对应的速度,矩阵每个位置存放着任务ti分配到处理机(虚拟机)pj速度更新后的权重的增量v(xij),初始化时,全部增量赋值为0。

如图2所示,处理模块2包括相互连接的选择单元4和交互单元5,选择单元4配置为在聚集的代理程序中选取中心代理程序,以使交互单元5将聚集的其他代理程序与中心代理程序进行权重交互,以改变代理程序对应的权重。

在一个实施例中,选择单元4在局部多代理程序系统选取一个中心代理程序(也可以叫做中心粒子,相应的每个代理程序都叫做一个粒子),记作agent_a,选择单元4设置中心代理程序的邻居是agent_b,随机选取一个agent_b,若该邻居的适应程度小于agent_a的适应程度,则称其为劣粒子,反之,称为优粒子。在一个实施例中交互单元5对中心代理程序与其他代理程序(如该中心代理程序的邻居)进行权重交互,包括了交叉阶段和变异阶段。

交叉阶段:选择单元4在局部多代理程序系统中随机选取一个优粒子,通过选择单元4与中心代理程序(中心粒子)进行交叉操作,从优粒子的位置矩阵x的第一行迭代到最后一行,本实施例是否进行交叉操作的概率为0.2,当遍历到第i行时,而且出现概率小于等于0.2时,就选取了优粒子的第i行与中心代理程序的位置矩阵x的第i行进行交叉操作。

变异过程:选择单元4在局部多代理程序系统中随机选取一个优粒子,交互单元5随机选取中心代理程序(中心粒子)的位置矩阵x的特定位置与优粒子位置矩阵x的进行比较,若权重比其大,则随机减少自身权重,反之增加自身权重。

在本发明的一个实施例中,获取模块1更新代理程序的位置和优势位置后重新通过处理模块2计算并获取每个代理程序的适应程度,若满足优化结束条件,则处理模块2输出最优解,否则获取模块1再次根据适应程度信息获取代理程序的位置和优势位置,并获取代理程序的位置对应的工作流分配到相应处理机的权重。

以上实施例仅为本发明的示例性实施例,不用于限制本发明,本发明的保护范围由权利要求书限定。本领域技术人员可以在本发明的实质和保护范围内,对本发明做出各种修改或等同替换,这种修改或等同替换也应视为落在本发明的保护范围内。

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