一种基于并行强化学习的云机器人任务调度方法和系统与流程

文档序号:17487529发布日期:2019-04-23 20:04阅读:175来源:国知局
本发明涉及一种基于并行强化学习的云机器人任务调度策略,属于机器学习领域,涉及云机器人、分布式计算、强化学习的结合及使用,具体地涉及一种基于并行强化学习的云机器人任务调度方法和系统。
背景技术
::近几年机器人进入了快速发展时期,人力成本的上升催生了使用机器替换人力的需求。目前由于机器人的能力,尤其是智能水平和期望相差很远,导致商业机器人的应用主要集中在汽车和电子设备等大规模重复生产领域。随着云计算的广泛使用,无论是租赁公有云还是部署本地云,都为大计算量的任务提供了解决方案。同时随着机器学习等技术进步,可以满足给机器人更高智能化程度的要求。传统机器人系统框架由调度中心分配任务给机器人执行,当执行的任务越来越复杂,需要更强的计算能力时,一种解决方式是提升每台机器人的性能,但是带来整体系统成本的大幅提升,另一种方式是采用云机器人框架。在2010年的humanoids会议上卡耐基梅隆大学jameskuffner教授提出了将云计算和机器人学相结合的“云机器人”框架被看作是机器人学下一个发展趋势。在该框架下将机器人需要的计算能力和存储资源卸载到到云端以降低本身负担,利用云端的计算资源不仅可以加快计算速度,有效减少每台机器人成本,还可以做到知识共享。为了提高云机器人的智能化程度,采用强化学习中的表格解决算法(tabularsolutionmethods,tsm)解决高维状态空间的复杂问题往往收敛时间长,很多学者在同一范畴内提出了基于近似解的解决方法,或者与其他方法结合提出了新思路如深度强化学习等。但在一些实际场景下仍需要得到解决问题的准确最优策略,如仓储物流领域的无人仓系统大量使用自动导引运输车(automatedguidedvehicle,agv)取代人力,系统采用云机器人架构,agv通过读取地上的二维码确认自身位置,二维码阵列构成栅格地图,在对agv进行路网规划、避障规则设置和仓库货位分配之前需要对地图进行学习,评价不同任务下采取不同动作的价值,得到的知识可直接使用或者用作其他功能的先验知识。这种情景型任务(episodictasks)采用表格解决算法可以解决,但随着状态空间扩大,完成学习需要的时间快速增加,实际应用中无法接受太大的时间开销;而近似解决方法利用有限状态空间的经验进行有效推广,在遇到未知情况时从之前遇到的情况中归纳类似情景,关键在于问题的泛化,难以得到关于整体问题的最优策略。技术实现要素:本发明实施例提供一种基于并行强化学习的云机器人任务调度方法及系统,以得到精确的最优策略。第一方面,提供了一种基于并行强化学习的云机器人任务调度方法,其包括:调度中心加载原始问题,并且将所述原始问题分割为多个子问题;所述调度中心将所述多个子问题与多个计算节点进行匹配;所述调度中心将各子问题发送到与其匹配的计算节点;所述多个计算节点对多个子问题进行并行的强化学习,并将对所述多个子问题的学习结果反馈给所述调度中心;所述调度中心根据对所述多个子问题的学习结果和预设的收敛条件,判断所述原始问题是否已经收敛,如果所述原始问题已经收敛,则输出所述原始问题的最优策略。可选地,调度中心将所述原始问题分割为多个子问题,包括:所述调度中心将所述原始问题的状态空间进行分割,得到多个子问题;和/或,所述方法还包括:不同子问题之间通过边界状态传递q值。可选地,所述调度中心将所述多个子问题与多个计算节点进行匹配,包括:所述调度中心从计算节点列表中按索引顺序依次选择计算节点;对于每个被选择的计算节点,所述调度中心根据子问题的优先级从高到低的顺序,选择相应的子问题分配给该计算节点。可选地,所述调度中心判断所述原始问题是否已经收敛,包括:所述调度中心判断是否所述计算节点学习到的q值更新达到了所述原始问题的预设收敛阈值,如果是,则所述原始问题已经收敛。可选地,所述输出原始问题的最优策略包括:输出所述原始问题的最优策略h*(x)为在各状态下选择q值最大的行动。可选地,所述计算节点对于每个子问题采用q-learning算法进行强化学习;和/或,每个计算节点将对子问题的学习结果通过异步方式反馈给所述调度中心。第二方面,提供了一种基于并行强化学习的云机器人任务调度系统,其包括:调度中心,用于加载原始问题,并且将所述原始问题分割为多个子问题;将所述多个子问题与多个计算节点进行匹配;并且将各子问题发送到与其匹配的计算节点;多个计算节点,用于对所述多个子问题进行并行的强化学习,并将对所述多个子问题的学习结果反馈给所述调度中心;所述调度中心,还用于根据对所述多个子问题的学习结果和预设的收敛条件,判断所述原始问题是否已经收敛,如果所述原始问题已经收敛,则输出所述原始问题的最优策略。可选地,所述调度中心,具体可以用于:将所述原始问题的状态空间进行分割,得到多个子问题;从计算节点列表中按索引顺序依次选择计算节点;对于每个被选择的计算节点,所述调度中心根据子问题的优先级从高到低的顺序,选择相应的子问题分配给该计算节点。可选地,所述调度中心,具体可以用于:判断是否所述计算节点学习到的q值更新达到了所述原始问题的预设收敛阈值,如果是,则所述原始问题已经收敛;当所述原始问题已经收敛时,输出所述原始问题的最优策略h*(x)为在各状态下选择q值最大的行动。可选地,所述计算节点,可以用于对于每个子问题采用q-learning算法进行强化学习;和/或,将对子问题的学习结果通过异步方式反馈给所述调度中心。第三方面,提供了一种计算机设备,其包括:一个或多个处理器;存储装置,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如下方法:加载原始问题,并且将所述原始问题分割为多个子问题;将所述多个子问题与多个计算节点进行匹配;将各子问题发送到与其匹配的计算节点;接收所述多个计算节点对多个子问题进行并行的强化学习后,反馈的学习结果;根据所述学习结果和预设的收敛条件判断所述原始问题是否已经收敛,如果已经收敛,则输出所述原始问题的最优策略。第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如下的方法:加载原始问题,并且将所述原始问题分割为多个子问题;将所述多个子问题与多个计算节点进行匹配;将各子问题发送到与其匹配的计算节点;接收所述多个计算节点对多个子问题进行并行的强化学习后,反馈的学习结果;根据所述学习结果和预设的收敛条件判断所述原始问题是否已经收敛,如果已经收敛,则输出所述原始问题的最优策略。上述技术方案具有如下有益效果:本发明的实施例利用云平台的并行计算资源,提出了一种基于并行强化学习的云机器人任务调度策略,由云端的调度中心将复杂问题分割成若干子问题,调度策略分配计算节点,由计算节点抽象智能体(agent)对各个子问题并行学习,通过异步方式将学习结果反馈给调度中心,从而可以缩短复杂问题学习时间,并且得到精确的最优策略。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本发明实施例的基于并行强化学习的云机器人任务调度方法的一种流程图;图2是本发明实施例的状态空间分割示意图;图3是本发明实施例的t时间步完成时示意图;图4是本发明实施例的基于并行强化学习的云机器人任务调度策略流程图;图5是本发明实施例的实验系统结构图;图6是本发明实施例的步长实验数据图;图7是本发明实施例的状态位置和权重关系图;图8是本发明实施例的子问题状态规模实验图;图9是本发明实施例的基于并行强化学习的云机器人任务调度策略与其他调度策略效率对比图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。为了得到精确的最优策略使用表格解决方法,并尽可能减少时间开销,本发明的实施例利用云平台的并行计算资源,提出了一种基于并行强化学习的云机器人任务调度策略,由云端的调度中心将复杂问题分割成若干子问题,调度策略分配计算节点,由计算节点抽象智能体(agent)对各个子问题并行学习,通过异步方式将学习结果反馈给调度中心,达到缩短复杂问题学习时间的目的。云平台的可扩展性保证了充足的计算资源,可根据需要增加计算节点补强算力;同时每一个接入云端的机器人均可获取整体问题的学习结果,实现学习知识复用,满足云机器人的一般需求。本发明的实施例是基于并行强化学的云机器人任务调度策略的研究及应用,针对主要包含了在强化学习问题中如何对大规模状态空间的分割方法,以及如何在云平台下对子问题进行调度,来达到机器人快速完成学习任务的目的。本发明的实施例采用的技术方案至少包括:1)提出一种通过边界状态传递q值的方法,解决不同子问题之间学习到的数据相互传递的问题;2)提出一种基于优先级的任务调度策略,调度中心将已经分割出的各子问题和云平台中的计算节点进行匹配,来实现并行计算,从而加快整体问题的收敛速度。如图1所示,本发明的实施例提供了一种基于并行强化学习的云机器人任务调度方法,其包括如下步骤:步骤110:调度中心加载原始问题,并且将该原始问题分割为多个子问题。步骤120:调度中心将多个子问题与多个计算节点进行匹配。步骤130:调度中心将各子问题发送到与其匹配的计算节点。步骤140:多个计算节点对多个子问题进行并行的强化学习,并将对多个子问题的学习结果反馈给调度中心。步骤150:调度中心根据对该多个子问题的学习结果和预设的收敛条件,判断原始问题是否已经收敛,如果该原始问题已经收敛,则输出原始问题的最优策略。具体地,在步骤140中,每个计算节点只负责分割出的一个子问题,在调度中心的数据库中保存着完整的由各计算节点学习到的知识,也就是完整的q值表,q值指的是在q-learning算法中对状态动作对的估计值,写作q(s,a),s∈s表示当前状态,a∈a表示在当前状态s下采取的动作,组合起来的(s,a)叫做状态动作对,qlearning算法研究的内容就是对(s,a)的值进行估计。可选地,步骤110中调度中心将原始问题分割为多个子问题,包括:调度中心将所述原始问题的状态空间进行分割,得到多个子问题。和/或,所述方法还包括:在不同子问题之间通过边界状态传递q值。某个子问题通过调用或访问上述保存于调度中心的同一数据库(完整的q值表)中的另一子问题上一次对该边界状态学习的结果,实现q值在不同子问题之间传递。可选地,步骤120中调度中心将多个子问题与多个计算节点进行匹配,包括:调度中心从计算节点列表nodeslist中按索引顺序依次选择计算节点;对于每个被选择的计算节点,调度中心根据子问题的优先级从高到低的顺序,选择相应的子问题分配给该计算节点。其中,该计算节点列表nodeslist是用于表示保存计算节点信息的一个列表。可选地,步骤150中调度中心判断原始问题是否已经收敛,包括:调度中心判断是否计算节点学习到的q值更新达到了原始问题的预设收敛阈值,如果是,则该原始问题已经收敛。可选地,步骤150中输出原始问题的最优策略包括:输出原始问题的最优策略h*(x)为在各状态下(贪婪地)选择q值最大的行动。在本步骤中,在输出最优策略时均是选择估计值最大的那个行动,因为这是计算节点中的agent通过学习认为最好的行动。可选地,步骤140中计算节点对于每个子问题采用q-learning算法进行强化学习;和/或,每个计算节点将对子问题的学习结果通过异步方式反馈给调度中心。以下对上述方法进行更加详细的说明:本发明的实施例采用的技术方案为一种基于优先级的强化学习任务调度策略,该方法的实现步骤包括如下步骤:(1)对大规模状态空间进行分割。为了缩短复杂问题的学习时间,充分利用并行计算资源,考虑将一个状态空间较大的原始问题分割成若干子问题,每个子问题的规模足够小,均可以在一个计算单元内快速完成学习任务,对子问题学习的知识通过异步方式和调度中心通信。在强化学习中,状态动作对(s,a)的收敛值不受学习顺序影响,其中s表示agent的当前状态,a表示在当前状态采取的动作。如何划分子问题,以及采用何种调度策略只影响计算效率,不影响(s,a)的估计值收敛到qsa*,qsa*表示该状态动作对理论的收敛值。本发明的实施例提出一种通过邻接(s,a)扩展子问题状态空间进行知识传递的方法,这里构建一个强化学习问题,状态空间如图2所示。x1~x7表示7个状态构成了原始问题的状态空间x,箭头规定各个状态之间的转移规则,状态转移概率为1。假设将整个问题分成a、b两部分,a的状态空间xa={x1,x2,x3,x4},b的状态空间xb={x5,x6,x7},其中x1为目标状态,值-1表示两个状态之间没有关联,值100和0表示对应(s,a)的立即奖励,通过以状态为列、行动为行构建整体问题的reward奖励表,如表1所示。表1立即奖励表table1rewardtable例如(x2,x1)=100表示在状态x2下执行转移到状态x1的动作获得立即奖励值为100,其他位置的值同理。初始化后的(s,a)值表如表2所示。表2初始化的(s,a)值表table2initializedthe(s,a)valuetable(s,a)值反映了agent对不同的状态动作对的好坏的估计,初始化之后的agent由于没有任何知识,所有(s,a)的值均为0。在状态分割之后,两个子问题的相邻状态通过对应动作相互转移;例如状态x2和x5根据(x2,x5)和(x5,x2)相互转移,则将通过邻接(s,a)可转移到的状态定义为边界状态,a的边界状态记为ext(a)={x2,x4},b的边界状态记为ext(b)={x5};定义扩展状态空间为原始状态空间和相邻子问题的边界状态之和,且边界状态也视为目标状态。则a的扩展空间xa’=xa∪ext(b)={x1,x2,x3,x4,x5},b子问题同理,以下的学习过程主要围绕着扩展问题进行,每个扩展问题采用q-learning算法,通过同属若干个扩展状态空间的邻接(s,a)进行不同子问题间的知识传递。假设首先对a’进行学习,步长α为0.9,折扣率γ为0.7,已学习到q(x2,x1)的值为90,在第i次episode的t时间步出现从x5转移到x2的情况,得到q(x5,x2)为56.7。该t时间步完成时扩展状态空间如图3所示。从图3中可分析得,在对a’学习完毕转换到对b’进行学习的时候,q(x5,x2)值被代入计算。通过这种方式经由与边界状态相关的(s,a)进行相邻问题的知识传递。需要注意的是在对b’学习的过程中还会改变相关(s,a)的估值,这些值改变会影响到下一次a’的学习,在通过异步方式进行知识传递后,使a’和b’均可以达到收敛状态。由强化学习理论可知,如果a’收敛,则q(x5,x2)收敛到q*(x5,x2),q(x5,x4)收敛到q*(x5,x4),同时q(x6,x5)和q(x7,x5)的值受q*(x5,a)影响并收敛到γmaxqx5a’=q*(x6,x5)和q*(x7,x5),所以子问题b’中(s,a)的收敛值等于其在原始问题背景下的收敛值。当所有子问题均收敛时,原始问题一定收敛。(2)对于每个子问题,本发明的实施例采用q-learning算法进行学习,假设环境是马尔可夫型,那么强化学习问题可以通过马尔可夫决策过程建模,根据在学习过程中是否需要精确的环境模型分为:基于模型法和模型无关方法。基于模型法需要准确的状态转移概率来评价当前状态的好坏,在强化学习问题中往往环境模型是未知的,故基于模型法的适用性有限。模型无关方法针对环境未知的情况,根据agent何时对知识进行更新分为时间差分法(temporaldifference,td)和蒙特卡洛(montecarlo,mc)方法。mc方法直到情景(episode)结束才进行知识更新,如果情景过长会产生较大的更新延迟,td方法则是在一个时间步(timestep)完成之后立刻更新当前获取的知识,通过迭代解决时间信度分配问题,这种快速更新知识的方式使得td方法及其改进型在强化学习中应用广泛。而td方法又根据值预测和动作选择时是否遵循同一策略分为在策略(onpolicy)和离策略(offpolicy)两种方式,分别对应q-learning和sarsa(stateactionrewardstateaction)算法,采用离策略方式的q-learning使学习数据更加多样性。综合以上算法特性和本发明的研究背景及实际需求,采用q-learning作为子问题学习算法。q-learning算法在给定策略h(x)下,在状态st采取行动at的评价函数为:q(st,at)←q(st,at)+α[rt+1+γmaxaq(st+1,a)-q(st,at)](1)式中:α∈(0,1)为学习步长;γ∈(0,1]为折扣率:决定agent以多大权重考虑未来奖励,t为时间步,rt+1为在采取当前(st,at)的立即奖励;max函数表示算法会根据下一个(st+1,at+1)中预测值的最大值来评价(st,at);式中rt+1+γmaxq(st+1,a)-q(st,at)定义为时间差分误差(tderror),算法通过tderror对估计值递增更新直到收敛,行动选择常采用ε-greedy策略。q-learning算法流程如下:1)开始情景(episode);2)在状态空间中随机或指定一个状态作为起始状态;3)开始时间步timestep;4)根据选择算法(如ε-greedy)选择行动;5)根据式(1)更新q值;6)如果下个状态是目标状态,则完成本次episode,如果不是则设置下一个状态为当前状态并返回步骤3);7)判断收敛条件,如果没收敛返回步骤1);8)输出原始问题的最优策略h*(x)为在各状态下贪婪地选择q值最大的行动。(3)基于优先级的任务调度策略考虑到强化学习的延迟奖惩特性,保证q-learning收敛性的一个前提条件是任何策略下最后都会达到回报为零的目标状态,且最大的立即奖励一定在目标状态的邻接位置,q-learning作为td预测算法下离策略的控制算法,算法前向观察一个(s,a),使有效值随着episode通过tderror以从目标状态向外的趋势累加,在设计任务调度策略时考虑这种趋势可减少无用的子问题学习时间。基于优先级的任务调度策略根据强化学习tderror的更新趋势将分割出的所有子问题分为priority1、priority2和priority3三类,所有子问题组成全集u,visited列表保存已学习过的子问题,以上列表中的元素根据计算过程动态变化并且可为空,nodeslist列表保存所有计算节点信息。定义包含目标状态的子问题为g子问题属于priority1,与已学习过的子问题相邻的子问题属于priority2,其余子问题均属于priority3。任务开始时,调度中心根据优先级从priority1到priority3的顺序选择子问题分配给nodeslist中的计算节点,由计算节点抽象agent进行强化学习,当边界状态的(s,a)有q值更新的epsiode完成后,计算节点通知调度中心将该子问题从原priority列表移动到visited列表,表示该子问题完成一次有效学习并在之后的迭代中不会再被选中,同时与其相邻的子问题从priority3移动到priority2,直到所有的子问题均被移动到visited表示本次循环完成,由调度中心判断是否收敛,如果没达到收敛条件则重置priority1、priority2、priority3和nodeslist,开始下一次迭代。参阅图4,基于优先级的任务调度策略过程如下:1)加载原始问题(输入完整任务)并进行状态分割,得到若干子任务(子问题)集合。2)开始迭代。3)初始化:priority1={g},priority3=u-priority1,获取所有计算节点信息保存在nodeslist;初始化q值表。4)根据从priority1到priority3的优先级顺序决定选择子问题的范围,同优先级的集合内随机选择子问题;从nodeslist中按索引顺序选择计算节点与子问题匹配。在云平台中,每个节点的计算能力相同,只要根据在表中的索引顺序进行匹配子问题学习即可,例如nodeslist中保存了三个计算节点的信息{p1,p2,p3},按顺序选择计算节点,就是先选p1按照子问题优先级的顺序匹配一个子问题,然后取p2匹配,依次类推。5)开始episode。6)计算节点判断当前学习子问题的边界状态的(s,a)是否有q值更新,并判断与该边界状态连接的相邻子问题是否属于priority3;如果满足条件,则通知将当前子任务移动到visited,将相邻的子问题添加到priority2,释放当前计算节点资源并将其重新添加到nodeslist。在本实施例中,当计算节点完成了子问题的计算任务之后,重新被添加到nodeslist中等待调用,nodeslist中保存的是暂时没有被分配到任务的计算节点信息列表。7)调度中心判断所有priority2中的子问题是否均被移动到visited,如果不是,则返回步骤4)根据优先级选择学习的子问题。8)调度中心判断原始问题是否收敛,如果没有收敛则返回步骤2);9)迭代结束,输出原始问题的最优策略。在本实施例中,每个计算节点只负责分配给自己的子问题的学习,而对于整个问题的知识保存在调度中心的数据库中。如图3所示,整个问题的状态空间是x1-x7,而计算节点只计算a’或者b’,它们都只是原始问题的一部分,当计算节点完成子问题的学习任务,会把当前子问题学习到的知识传给调度中心,调度中心会在数据库中更新对应q(s,a)的值。每个计算节点在完成任务之后都会回传学习到的知识,使得调度中心的数据持续更新,并且由于该算法的特点使得状态动作对的预测值q(s,a)是以一种递增的方式增加,也即q值只会一直增加并逐渐向收敛值靠拢,而不会减少。当调度中心的算法判断agent已经完全学会了该整个原始问题或者达到了预设的收敛条件,这时候输出的策略就是最优策略,策略是在给定状态如何判断该采取行动的方法,最优策略是状态转移最近的策略。再如图3所示,当前agent在x5的状态,需要agent变换到x1状态,agent会查询数据库中的知识,发现从x5到x2的q值要大于x5到x4的q值,所以选择走到x2,并在x2继续搜索数据库,发现x2到x1的得分(q值)最高,于是顺利地达到x1,状态转移为x5-x2-x1,这时的策略就是最优策略。该调度策略一方面考虑td预测算法时间信度分配问题,当前状态或者当前状态动作对的预测值只有在下次episode中被使用才会对邻接状态进行更新,根据这种趋势将分割的子问题赋予不同的优先级,分配子问题并行学习,并缩小agent的探索(exploration)范围,缩短无用学习时间来减少整体问题收敛时间。另一方面nodeslist作为云端资源池为调度策略提供了充足的扩展性,可通过添加计算节点以补强计算能力,使同一时刻并行计算的子问题数增加,缩短整体问题收敛时间。为使本发明的目的、技术方案和特点更加清楚明白,以下结合具体实施例子,并参照附图,对本发明的实施例进行进一步的细化说明。基于并行强化学习的云机器人任务调度策略流程图如图4所示。各个主要步骤说明如下:(1)提出一种不同子问题之间通过边界状态进行值传递的方法,将大规模的状态空间分割成若干子问题。(2)提出一种基于优先级的任务调度策略,通过在调度中心中加载该策略,使分布式的云计算平台能够自适应的根据任务优先级,匹配云平台中的计算节点,实现对原始问题(原始任务)的并行计算。(3)由调度中心负责根据预设的收敛条件判断原始问题是否收敛,如果没有收敛则继续计算流程,如果收敛了,则可根据在调度中心数据库中存储的各计算节点学习到的知识导出求解出的最优策略。强化学习中的策略指的是当前状态下选择采取何种行动的方式。以下对上述主要步骤(1)进行更加详细的解释说明:由于在强化学习算法中,s表示状态,a表示在状态为s时采取的动作,两个变量是关联的,q-learning将状态和动作看作一组共同研究,所以叫做状态动作对,也可写作(s,a),那么q(s,a)就表示对该状态动作对是好还是不好的估计,一般来说q值越大,便是在状态s下采取动作a是非常好的,这也是机器人希望学习到的。再参阅图2,x1-x4为a子问题的状态空间,与a子问题相邻且可以进行状态转移的状态被定义为边界状态,如图2中所示,x2和x5以及x4和x5都可以进行状态转移,所以x5被视为b子问题的边界状态,记作ext(b),那么定义a子问题的扩展状态空间为a子问题的原始状态空间与边界状态的并集计算,记作xa’=xa∪ext(b)。如果对b子问题进行同样的操作之后得到图3,这时称经过状态空间扩展的问题为a扩展问题和b扩展问题,如图3中方框和虚线框所示,可以看到x2,x4,x5为a’和b’重叠部分,那么例如在对a’进行训练时会更新x2和x5进行状态转移的q(s,a)的值,同时这个值在对b’进行训练时也会用到,且会在对b’的训练过程中被更新,通过两个扩展问题的重叠部分进行值传递,这样也就相当于将对a’训练的结果传递给了b’,反过来同理。传递的q值是状态动作对(s,a)的估计值,也就是q(s,a),举例如下:q(x5,x2)在本文中表示当agent当前处在x5的状态并且执行前往状态x2的动作的估计值,经过计算为56.7,agent表示智能体,为算法中虚拟的机器人。实验环境如下:本实验环境硬件为两台浪潮nf5280m4服务器,每台2个e5-2650v4的cpu,单个cpu24核,虚拟64个计算节点组成计算集群,调度中心和计算节点之间在同一个子网中;软件在云计算平台以云计算仿真器cloudsim为基础扩展,实现强化学习算法、基于并行强学习的任务调度和模型模块,同时维护着保存所有计算节点信息的nodeslist;调度中心ip为192.168.1.168,通过异步方式监听10001端口对计算节点的链接请求进行响应,同时和数据库建立链接,计算节点ip分别为192.168.1.101~192.168.1.164,每个计算节点虚拟一个agent并搭载强化学习算法;采用传输控制协议tcp/ip(transmissioncontrolprotocol/internetprotocol)协议实现调度中心和计算节点之间的通信,通信内容主要是调度中心给匹配到的计算节点发送分配到的子任务信息,以及计算节点在完成学习任务之后将学习到的数据发回给调度中心,由调度中心更新在数据库中的原始问题的相关数据。数据库采用sqlite(一款轻型的数据库),该数据库体积小,可嵌入程序开发,维护方便,经测试读取共百万数量级数据的时间在3-5秒之内,在100万条以上数据中搜索其中一条的时间为90-150ms,修改其中一条数据的时间为20-30ms,读取效率满足本实验需求;数据库在本实验中保存地图信息,reward值表和q值表,采用栅格法定义地图,每个栅格对应reward值表和q表里一条数据,字段u、d、l、r、n分别表示朝上、下、左、右、保持原地五个行动的reward值和q值。系统的整体结构如图5所示。在实验环境中,nodeslist中的可用的计算节点数量是动态变化的,可选的子任务数量也是动态变化的,所以计算节点数和子任务的数量并不一定一直一一对应,在实验中存在着计算节点闲置的情况,所以图5显示有计算节点在闲置中,没有抽象出虚拟的机器人进行学习。首先,由于不同的参数对算法的性能影响很大,需要进行前置实验确定参数,在实验环境相同的情况下,采用控制变量法分别对步长,折扣率和单个子问题规模求解,设置一张15×15的二维栅格地图作为实验问题。有一个目标状态,随机起始位置,根据ε-greedy选择行动,ε=0.5,状态转移概率为1,reward表和与reward表逐行对应的q表在初始化时产生保存在数据库中,机器人从四个方向中的任意一个到达目标状态立即奖励值为100,其他状态转移的立即奖励值为0。以agent学习到的q值更新达到了整体问题的90%作为收敛条件,进行20次实验。收敛条件表示agent对一个问题学习的程度,收敛值不限于90%,可以是50%-100%之间的任意值,收敛值的设置不影响调度策略,只影响学习时间以及对整体问题的学习程度的深浅。步长实验结果如图6所示,折扣率实验结果如表3所示,子问题规模实验结果如图8所示。表3不同折扣率的收敛数据table3convergencedataatdifferentdiscountrate由图6的结果可得,在步长大的情况下,无论是episode次数还是收敛时间的结果都更好。在以q值的更新达到设定阈值作为收敛条件的前提下,步长通过影响tderror的大小让估计值递增累加直到收敛,结果显示步长为0.9的效率最高。由表3可得折扣率γ越低,episode次数和time都越小,但如果直接选取γ为0.1在计算过程中会遇到问题,因为γ同时还影响q值在整体问题中的分布,不同γ情况下位置和权重的关系图如图7所示。图8中横坐标表明和目标位置的位置关系,纵坐标表示该距离下(s,a)的收敛值与目标状态最大奖励的比例,10%的水平线为本文收敛的判定条件。从图7中可以看出,γ为0.9时,即使对于距离目标状态较远的状态,其(s,a)的收敛值也有较高的比例,表明算法充分考虑了边缘状态,如果问题收敛,那么边缘状态也有很好的学习效果,带来的弊端是收敛时间长;如果γ为0.1,从图7上看线条陡,表明q值大量集中在目标状态周围,而边缘状态比例低,导致即使判定收敛后,仍存在很多边缘状态没有充分学习到,意味着agent对于整体问题的学习不充分。综合不同γ下的学习时长和本发明实施例的实验内容和环境,选择γ为0.7。最后由图8结果可得,随着状态空间的扩大,状态之间转移路径的数量以指数级增加,整体求解单个问题的时长快速增长。当状态空间达到20000以上,使用传统方式已经无法计算出这种规模问题的最优策略。在本发明实施例的研究背景下,要求每个子问题都在短时间内完成一次episode计算,结合实际情况得到最优参数值:步长为0.9;折扣率为0.7;单个子问题规模为20×20的状态空间。然后,为了验证本发明的实施例提出的基于并行强化学习的任务调度策略和其他调度策略相比的效率高低,设置原始问题为400×400的二维栅格地图,整个问题状态空间为16万,相邻状态可相互转移,状态转移概率为1,动作选择策略ε-greedy的ε为0.5。在调度中心中分别加载随机调度,轮询调度和本发明的实施例提出的任务调度策略,并使用不同数量的计算节点对原始问题进行求解,通过计算完成的时间验证实验策略的效率,实验结果如图9所示,量化结果如表4所示,数据单位为秒。表4不同策略和不同计算节点的计算时长table4thecalculationtimeofdifferentcalculationnodesanddifferentstrategies从图9和表4中可分析得,本发明的实施例的调度策略在任何计算节点数的情况下,比另两种调度策略均有很好的效果,在大数据量的情况下使用尽可能多的64个计算节点时实验调度策略、轮询调度和随机调度的实验时长分别为5187秒、13466秒和39723秒,计算时长分别缩短了61%和86%。分析主要的原因是:在强化学习过程中,(s,a)的有效值有从目标状态周围向外扩散的趋势,在对状态空间进行分割后,有效值从g子问题向外扩散,如果g子问题的边界状态没有达到收敛值,那么其他子问题使用过期信息更新知识也无法收敛,轮询和随机调度策略没有解决这个问题的机制;实验调度策略将包含目标状态的g子问题视为优先级最高的问题,调度策略中子问题优先级从高到低的分布规律和强化学习问题q值扩散的趋势基本相同,按照优先级的顺序使q值的更新扩展到整个状态空间。实验结果显示:将复杂问题分割进行并行计算的效率要远好于整体计算,本发明的实施例设计的调度策略对于解决并行强化学习问题的效果要优于常用的任务调度策略;同时,增加计算节点可以有效缩短整体问题的收敛时间。实验结果及最优参数可用在同类型计算情景下,例如agv和无人机得到解决控制问题的最优策略问题,并且每一个接入云端的机器人终端都会获得完整学习结果。继续参阅图5,本发明的实施例还提供了一种基于并行强化学习的云机器人任务调度系统,其包括:调度中心,用于加载原始问题,并且将该原始问题分割为多个子问题;将所述多个子问题与多个计算节点进行匹配;并且将各子问题发送到与其匹配的计算节点;多个计算节点,用于对该多个子问题进行并行的强化学习,并将对该多个子问题的学习结果反馈给所述调度中心;该调度中心,还用于根据对该多个子问题的学习结果和预设的收敛条件,判断该原始问题是否已经收敛,如果该原始问题已经收敛,则输出该原始问题的最优策略。可选地,该调度中心,具体可以用于:将该原始问题的状态空间进行分割,得到多个子问题;从计算节点列表nodeslist中按索引顺序依次选择计算节点;对于每个被选择的计算节点,该调度中心根据子问题的优先级从高到低的顺序,选择相应的子问题分配给该计算节点。可选地,该调度中心,具体可以用于:判断是否所述计算节点学习到的q值更新达到了所述原始问题的预设收敛阈值,如果是,则所述原始问题已经收敛;当所述原始问题已经收敛时,输出所述原始问题的最优策略h*(x)为在各状态下贪婪地选择q值最大的行动。可选地,该计算节点,可以用于对于每个子问题采用q-learning算法进行强化学习;和/或,将对子问题的学习结果通过异步方式反馈给该调度中心。本申请的系统工作过程请参阅前述方法实施例的描述,在此不再赘述。本发明的实施例还提供了一种计算机设备,其包括:一个或多个处理器;存储装置,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如下方法:加载原始问题,并且将所述原始问题分割为多个子问题;将所述多个子问题与多个计算节点进行匹配;将各子问题发送到与其匹配的计算节点;接收所述多个计算节点对多个子问题进行并行的强化学习后,反馈的学习结果;根据所述学习结果和预设的收敛条件判断所述原始问题是否已经收敛,如果已经收敛,则输出所述原始问题的最优策略。本发明的实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如下的方法:加载原始问题,并且将所述原始问题分割为多个子问题;将所述多个子问题与多个计算节点进行匹配;将各子问题发送到与其匹配的计算节点;接收所述多个计算节点对多个子问题进行并行的强化学习后,反馈的学习结果;根据所述学习结果和预设的收敛条件判断所述原始问题是否已经收敛,如果已经收敛,则输出所述原始问题的最优策略。本领域技术人员还可以了解到本发明实施例列出的各种说明性逻辑块(illustrativelogicalblock),单元,和步骤可以通过电子硬件、电脑软件,或两者的结合进行实现。为清楚展示硬件和软件的可替换性(interchangeability),上述的各种说明性部件(illustrativecomponents),单元和步骤已经通用地描述了它们的功能。这样的功能是通过硬件还是软件来实现取决于特定的应用和整个系统的设计要求。本领域技术人员可以对于每种特定的应用,可以使用各种方法实现所述的功能,但这种实现不应被理解为超出本发明实施例保护的范围。本发明实施例中所描述的各种说明性的逻辑块,或单元都可以通过通用处理器,数字信号处理器,专用集成电路(asic),现场可编程门阵列或其它可编程逻辑装置,离散门或晶体管逻辑,离散硬件部件,或上述任何组合的设计来实现或操作所描述的功能。通用处理器可以为微处理器,可选地,该通用处理器也可以为任何传统的处理器、控制器、微控制器或状态机。处理器也可以通过计算装置的组合来实现,例如数字信号处理器和微处理器,多个微处理器,一个或多个微处理器联合一个数字信号处理器核,或任何其它类似的配置来实现。本发明实施例中所描述的方法或算法的步骤可以直接嵌入硬件、处理器执行的软件模块、或者这两者的结合。软件模块可以存储于ram存储器、闪存、rom存储器、eprom存储器、eeprom存储器、寄存器、硬盘、可移动磁盘、cd-rom或本领域中其它任意形式的存储媒介中。示例性地,存储媒介可以与处理器连接,以使得处理器可以从存储媒介中读取信息,并可以向存储媒介存写信息。可选地,存储媒介还可以集成到处理器中。处理器和存储媒介可以设置于asic中,asic可以设置于用户终端中。可选地,处理器和存储媒介也可以设置于用户终端中的不同的部件中。在一个或多个示例性的设计中,本发明实施例所描述的上述功能可以在硬件、软件、固件或这三者的任意组合来实现。如果在软件中实现,这些功能可以存储与电脑可读的媒介上,或以一个或多个指令或代码形式传输于电脑可读的媒介上。电脑可读媒介包括电脑存储媒介和便于使得让电脑程序从一个地方转移到其它地方的通信媒介。存储媒介可以是任何通用或特殊电脑可以接入访问的可用媒体。例如,这样的电脑可读媒体可以包括但不限于ram、rom、eeprom、cd-rom或其它光盘存储、磁盘存储或其它磁性存储装置,或其它任何可以用于承载或存储以指令或数据结构和其它可被通用或特殊电脑、或通用或特殊处理器读取形式的程序代码的媒介。此外,任何连接都可以被适当地定义为电脑可读媒介,例如,如果软件是从一个网站站点、服务器或其它远程资源通过一个同轴电缆、光纤电缆、双绞线、数字用户线(dsl)或以例如红外、无线和微波等无线方式传输的也被包含在所定义的电脑可读媒介中。所述的碟片(disk)和磁盘(disc)包括压缩磁盘、镭射盘、光盘、dvd、软盘和蓝光光盘,磁盘通常以磁性复制数据,而碟片通常以激光进行光学复制数据。上述的组合也可以包含在电脑可读媒介中。以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1