[0001]技术领域
[0002]本发明涉及计算机技术领域,尤其涉及一种路由策略优化方法、系统、电子设备及存储介质。
[0003]背景技术
[0004]计算机网络通信中,路由技术是其关键和核心的一项技术。因此如何高效精准地对网络路由策略进行调整和优化,以提高网络性能、降低网络延迟、减少网络拥塞是目前亟待解决的技术问题。
[0005]相关技术中,通常是采用传统启发式优化方法实现路由策略优化,例如一种基于蚁群代理优化的路由协议算法,使用仿真实验,通过路由开销、平均分组延迟等评价指标证明了有效性。该方法解决了算法搜索过程中所需时间复杂度高的问题,但是所能寻找到的路由策略容易陷入局部最优解,无法应对无模型环境和动态变化环境,进而导致路由策略的优化时间复杂度高、自适应能力差。
[0006]发明内容
[0007]本发明提供一种路由策略优化方法、系统、电子设备及存储介质,用以解决现有技术中路由优化时间复杂度高和自适应能力差的缺陷,实现提高路由策略优化的适应性和高效性。
[0008]本发明提供一种路由策略优化方法,包括:
[0009]接收路由器传输的当前IP地址状态信息;
[0010]将所述当前IP地址状态信息输入至决策模型,得到最大价值函数值对应的当前最优决策动作参数;
[0011]将所述当前最优决策动作参数发送至所述路由器,以供所述路由器根据所述当前最优决策动作参数,获取所述当前IP地址状态信息对应的下一跳IP地址,并对所述下一跳IP地址进行路由转发。
[0012]根据本发明提供一种路由策略优化方法,所述决策模型是基于如下步骤训练得到的:
[0013]对于当前次迭代训练,若判断获知存储器所存储的经验池中样本数据的数量大于或等于预设数量,则从存储器所存储的经验池中随机采样多个所述样本数据,构建所述当前次迭代训练的训练数据集;
[0014]基于所述当前次迭代训练的训练数据集,对上一次迭代训练的DQN模型进行训练;
[0015]根据各次迭代训练的训练结果,构建所述决策模型;
[0016]其中,所述样本数据包括样本IP地址状态信息、样本决策动作、所述样本决策动作对应的奖励值,以及所述样本决策动作对应的下一IP地址状态信息。
[0017]根据本发明提供一种路由策略优化方法,所述DQN模型包括状态动作价值网络和目标价值网络;
[0018]所述基于所述当前次迭代训练的训练数据集,对上一次迭代训练的DQN模型进行训练,包括:
[0019]将所述训练数据集中各所述样本IP地址状态信息和各所述样本决策动作参数输入至上一次迭代训练的状态动作价值网络,以及将训练数据集中各所述下一IP地址状态信息输入至上一次迭代训练的目标价值网络,对所述上一次迭代训练的DQN模型进行训练。
[0020]根据本发明提供一种路由策略优化方法,所述样本决策动作参数对应的下一IP地址状态信息是由所述路由器根据所述样本决策动作参数,获取所述样本IP地址状态信息对应的下一跳IP地址索引,根据所述下一跳IP地址索引,获取所述样本IP地址状态信息对应的下一跳IP地址,并对所述样本IP地址状态信息对应的下一跳IP地址进行路由转发,根据路由转发结果进行IP地址状态转移产生的。
[0021]根据本发明提供一种路由策略优化方法,所述样本决策动作参数对应的奖励值是由所述路由器将所述样本决策动作参数对应的下一跳IP地址与目标IP地址进行匹配,在确定所述样本决策动作参数对应的下一跳IP地址与所述目标IP地址匹配的情况下,根据目标奖励值确定的,或者,在确定所述样本决策动作参数对应的下一跳IP地址与所述目标IP地址不匹配的情况下,在预先构建的路由通路矩阵中查找所述样本决策动作参数对应的下一跳IP地址与当前IP地址之间的路由度量值,根据所述路由度量值确定的。
[0022]本发明还提供一种路由策略优化方法,包括:
[0023]向服务器传输当前IP地址状态信息;
[0024]接收所述服务器传输的当前最优决策动作参数;
[0025]根据所述当前最优决策动作参数,获取所述当前IP地址状态信息对应的下一跳IP地址,并对所述下一跳IP地址进行路由转发;
[0026]其中,所述当前最优决策动作参数是由所述服务器将所述当前IP地址状态信息输入至决策模型得到的最大价值函数值对应的决策动作参数。
[0027]本发明还提供一种路由策略优化系统,包括服务器、路由器和存储器;
[0028]所述服务器,用于接收路由器传输的当前IP地址状态信息;将所述当前IP地址状态信息输入至决策模型,得到最大价值函数值对应的当前最优决策动作参数;将所述当前最优决策动作参数发送至所述路由器;
[0029]所述路由器,用于根据所述当前最优决策动作参数,获取所述当前IP地址状态信息对应的下一跳IP地址,并对所述下一跳IP地址进行路由转发。
[0030]本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述路由策略优化方法。
[0031]本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述路由策略优化方法。
[0032]本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述路由策略优化方法。
[0033]本发明提供的路由策略优化方法、系统、电子设备及存储介质,通过服务器与路由器进行环境交互形成的样本IP地址状态信息、样本决策动作参数、样本决策动作参数对应的奖励值,以及样本决策动作参数对应的下一IP地址状态信息进行DQN模型训练,使得所得到的决策模型能够根据依据当前IP地址状态信息,更好地与环境不断地交互、学习和优化,以更好地全局优化获取当前最优决策动作参数,进而获取全局最优的路由优化策略,由此给出当前IP地址状态信息下最优的下一跳IP地址,指导路由器的路由转发,提高路由策略优化的合理性,进而高效、低成本地进行路由策略实现,另外,直接通过服务器和路由的交互在试错中学习的方法,解决了系统建模较难和无模型的问题,且通过不断与路由器交互获得新的样本数据进行策略训练,使其具有较好的自适应性。
[0034]附图说明
[0035]为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0036]图1是本发明提供的路由策略优化方法的流程示意图之一;
[0037]图2是本发明提供的路由策略优化系统的结构示意图;
[0038]图3是本发明提供的路由策略优化方法的流程示意图之二;
[0039]图4是本发明提供的路由策略优化方法的流程示意图之三;
[0040]图5是本发明提供的电子设备的结构示意图。
[0041]具体实施方式
[0042]为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0043]现在OSPF(Open Shortest Path First,开放式最短路径优先)协议的路由表是通过Dijkstra算法(一种迪杰斯特拉算法,是典型的最短路径算法,主要利用广度优先遍历、贪心算法和动态规划思想实现的算法)进行构建的,由于Dijkstra算法本身是通过遍历的方式进行优化,因此时间复杂度一般较高,虽然可以通过使用不同的数据结构降低其复杂度,但一般稳定在O(n^2),n为所需路由转发的IP(Internet Protocol,互联网协议)地址数量;同时当今的网络规模越来越大,IP地址数量逐渐增加,该算法需要构成路由表的时间也逐渐增长。针对该弊端现在较新的解决方法和技术方案为:
[0044]一些相关技术,将高于预设网络通信质量标准的节点作为用于更新路由表的候选节点,然后当路由表中当前节点满足预设的更新条件时,就从候选节点中选取节点替代路由表中的当前节点,完成路由表更新。该技术方案通过添加预设条件进行路由表的更新,具有较低的时间复杂度,但预设条件的构建需要依靠专家经验,优化精准性较差。
[0045]对此,另一些技术提出采用传统启发式优化方法实现路由策略优化,例如一种基于蚁群代理优化的路由协议算法,使用仿真实验,通过路由开销、平均分组延迟等评价指标证明了有效性。该方法解决了算法搜索过程中所需时间复杂度高的问题,且减少了对专家经验的依赖,但传统启发式优化方法在使用时往往容易达到局部最优解,且需要预设的模型,并且对于动态变化的模型不能很好的处理,无法高效精准地获取全局最优解,进而导致路由策略的优化时间复杂度依然很高、自适应能力差。
[0046]因此,为解决现有技术中存在无法高效精准地获取全局最优解,导致路由策略的优化时间复杂度依然很高、自适应能力差的缺陷,本实施例提供一种路由策略优化方法,具体通过与路由器进行环境交互形成的样本数据,对DQN(Deep Q Network,深度Q学习网络)模型进行训练得到决策模型,以基于决策模型根据回报进行路径的优化,最终形成一种路由策略,使得路由的转发不再依靠查询路由表,而是直接通过训练好的策略来决定路由的转发,既减少了专家经验的依靠,也不需要知道环境的模型原理,同时交互试错的过程也使得该算法具有更好的适应性,实现了全局最优的路由策略优化,提高了路由的合理性,进而提高路由策略优化的适应性、鲁棒性和高效性;同时分布式强化学习的部署方式在应用时也具有更好的扩展性和易迁移性。
[0047]图1为本发明提供的路由策略优化方法的流程示意图之一;如图1所示,该方法可以是用于OSPF协议场景等协议场景下的路由,本实施例对此不作具体地限定;该方法可以是应用于路由策略优化系统;该系统包括有路由策略优化的服务器、具有交互环境的路由器和具有经验池存储的存储器。
[0048]图2为本发明提供的路由策略优化系统的结构示意图;如图2所示,该系统中的服务器主要是搭载强化学习算法和上层应用的算法调参软件,通过服务器可实现摈弃传统的路由表查询地址的方式,使用神经网络构成的路由策略来进行地址的选择,并且将该策略搭载在服务器中,可以更方便安装、调整、迁移等。同时,服务器通过算法调参软件对强化学习算法中的网络结构、学习率、折扣率、训练迭代次数等参数进行调整,使得强化学习模型具有更好的学习和决策效果。除了搭载上层应用的算法调参软件便于调参之外,该服务器还会接收并转发路由器发送的数据元组,而服务器内的不会存储该数据,当存储器内存储的数据元组的数据量达到设定值后,服务器就会对存储器中的数据元组进行随机采样,抽取设定的数据量进行强化学习模型的训练。训练好的策略网络,可以根据路由器发送的当前所有IP地址情况给出最优的下一跳IP地址,指导路由器的转发。路由策略的参数设置可以通过上层调参软件进行实时调整,便于针对不同规模的网络环境对策略网络进行更改。
[0049]具有交互环境的路由器则是和服务器进行环境交互和转发IP地址的分布式部署。所称的转发IP地址可以是通过多个路由设备分布式并发转发至各网络设备端,以使得该系统具有更好的灵活性、容错性和扩展性。所称的环境交互可以是交互形成模型训练所需的状态、动作和奖励函数。
[0050]相较于传统的路由器内搭载OSPF路由协议,通过构建路由表进行决策的过程,本实施例对传统路由器进行了改造,保留了OSPF协议中到链路状态数据库同步的过程,将使用Dijkstra算法构建路由表的过程删除,而是根据链路状态数据库进行交换环境的搭建;该搭建过程主要分为三个步骤:索引-IP地址映射关系、路由通路矩阵、交互环境三要素的构成。索引-IP地址映射关系是为了便捷表示不同IP地址,也有利于网络的训练和数据的转发;路由通路矩阵可以表示当前IP地址到其它IP地址的奖励大小,便于奖励函数的构建;三要素的构建则可以表示当前所有IP地址的状态、要执行下一跳IP地址的动作构成和进行评价的奖励,便于和服务器进行交互。路由的优化和决策全部由服务器内算法构成,路由器只负责环境交互和转发。
[0051]存储器用将服务器和路由器不断交互产生的数据元组保存至经验池,当数据量达到一定数量服务器就会从经验池中进行随机采样。
[0052]综上,本系统采用分布式部署方式,将算法、环境、数据分别分布式部署在服务器、路由器、存储器中。相较于传统将全部内容放在一套设备上,具有扩展性好、易迁移、模块拆分易于开发等特点。同时,将路由策略外置在服务器中,能够通过增加硬件配置的方式承载更深的神经网络和更大数据量,便于针对不同大小的网络结构进行神经网络的修改;路由策略的外置也使得路由器有更多的资源进行数据的汇总和校验,保证数据包的准确性和安全性;将交互数据元组存储在存储器中可以保存更多的数据量,保证策略网络具有更好的探索性和鲁棒性。
[0053]该方法的执行主体为服务器,该方法包括:
[0054]步骤110,接收路由器传输的当前IP地址状态信息;
[0055]此处,当前IP地址状态信息是路由器根据状态空间信息确定的;所称的状态空间信息用以表示当前IP地址以及其他IP地址是否到达(路由)过的记录,具体可以用以下矩阵进行当前IP地址状态信息的表示:
[0056]s t =[route_onehot 1 route_onehot 2 …route_onehot n ];
[0057]其中route_onehot i 表示t周期是否经过(路由转发)了第i个IP地址,如果经过取1,没有经过取0。当到达目标IP地址后置1表示本回合结束。
[0058]可选地,服务器可实时监听路由器,以获取路由器传输的当前IP地址状态信息,由此基于当前IP地址状态信息进行路由策略优化;
[0059]所称的当前IP地址状态信息是路由器,在所需进行路由策略优化的情况下,根据状态空间信息,对当前周期的路由下所有IP地址的路由状态信息进行采集得到的。
[0060]步骤120,将所述当前IP地址状态信息输入至决策模型,得到最大价值函数值对应的当前最优决策动作参数;
[0061]步骤130,将所述当前最优决策动作发送至所述路由器,以供所述路由器根据所述当前最优决策动作参数,获取所述当前IP地址状态信息对应的下一跳IP地址,并对所述下一跳IP地址进行路由转发;
[0062]其中,所述决策模型,是根据从存储器所存储的经验池中循环获取的各样本数据,对DQN模型进行训练得到的;所述样本数据包括样本IP地址状态信息、样本决策动作参数、所述样本决策动作参数对应的奖励值,以及所述样本决策动作参数对应的下一IP地址状态信息。
[0063]需要说明的是,针对两个设备交互的特点,服务器选择的当前最优决策动作参数可以是包括用于决策路由器的下一跳所需转发的最佳IP地址索引,以指示下一跳IP地址。
[0064]可选地,路由策略优化可以基于如下步骤:
[0065]服务器在接收到路由器发送的当前IP地址状态信息s t 后,通过训练好的决策模型,依据当前IP地址状态信息s t ,获取所有预先配置的候选动作对应的价值函数值,也即Q值,并选择对应Q值最大的动作a t 作为当前最优决策动作参数,转发给路由器。
[0066]路由器接收到当前最优决策动作参数后,通过查找映射下一跳IP地址索引,以通过下一跳IP地址索引找到下一跳IP地址,并对下一跳IP地址执行路由转发,并在执行转发后,IP地址发生变化,并发生状态转移,由此得到下一IP地址状态信息s t+1 ,并判断路由是否到达目标IP地址,也即下一跳IP地址是否与目标IP地址匹配,若匹配,则路由到达目标IP地址,若不匹配,路由未到达目标IP地址。如果到达则路由结束,否则将下一IP地址状态信息s t+1 作为新的当前IP地址状态信息传输至服务器,以便服务器依据新的当前IP地址状态信息迭代进行路由优化,直到路由到达目标IP地址。
[0067]此处的决策模型的训练步骤包括:
[0068]服务器收集大量与路由器的环境模型进行多次交互形成的数据元组,至少包括各历史周期产生的样本IP地址状态信息、样本决策动作参数、样本决策动作参数对应的奖励值,以及样本决策动作参数对应的下一IP地址状态信息;将大量数据元组转发并保存在存储器的经验池中。以在每次迭代训练过程中,从经验池中获取循环获取大量样本数据,并基于大量样本数据形成的训练集对DQN模型进行迭代训练,以基于训练的DQN模型构建形成可依据IP地址状态信息决策输出相应的最优决策动作参数的决策模型。
[0069]此处的环境模型是智能体进行学习和决策的场所。其定义了智能体可以观察到的状态空间、可以执行的动作空间以及状态转移规则。环境模型还根据智能体的动作提供反馈,通常是以奖励的形式。环境模型在强化学习中起着至关重要的作用,它不仅提供了智能体学习的场所,还通过奖励和状态转移反馈了智能体的表现,使得智能体能够通过与环境的交互来学习和优化其行为策略。因此,结合实际情况建立合理的环境模型尤为重要。
[0070]此处的样本IP地址状态信息可以是各路由器在历史路由过程中所产的IP地址状态信息;具体获取步骤可参见步骤110实现。
[0071]此处的样本决策动作参数可以是将样本IP地址状态信息输入至DQN模型中,由DQN模型决策输出的决策动作参数,也可是随机选择确定的决策动作参数,本实施例对此不作具体地限定。
[0072]此处的样本决策动作参数对应的奖励值以及样本决策动作参数对应的下一IP地址状态信息可以是与环境模型进行交互得到的执行样本决策动作参数所产生的动作奖励值以及状态变化值。
[0073]本发明实施例提供的路由策略优化方法,通过服务器与路由器进行环境交互形成的样本IP地址状态信息、样本决策动作参数、样本决策动作参数对应的奖励值,以及样本决策动作参数对应的下一IP地址状态信息进行DQN模型训练,使得所得到的决策模型能够根据依据当前IP地址状态信息,更好地与环境不断地交互、学习和优化,以更好地全局优化获取当前最优决策动作参数,进而获取全局最优的路由优化策略,由此给出当前IP地址状态信息下最优的下一跳IP地址,指导路由器的路由转发,提高路由策略优化的合理性,进而高效、低成本地进行路由策略实现,另外,直接通过服务器和路由的交互在试错中学习的方法,解决了系统建模较难和无模型的问题,且通过不断与路由器交互获得新的样本数据进行策略训练,使其具有较好的自适应性。
[0074]在一些实施例中,所述决策模型是基于如下步骤训练得到的:
[0075]对于当前次迭代训练,若判断获知存储器所存储的经验池中样本数据的数量大于或等于预设数量,则从存储器所存储的经验池中随机采样多个所述样本数据,构建所述当前次迭代训练的训练数据集;
[0076]基于所述当前次迭代训练的训练数据集,对上一次迭代训练的DQN模型进行训练;
[0077]根据各次迭代训练的训练结果,构建所述决策模型;
[0078]其中,所述样本数据包括样本IP地址状态信息、样本决策动作、所述样本决策动作对应的奖励值,以及所述样本决策动作对应的下一IP地址状态信息。
[0079]此处的预设数量可以是根据模型性能需求和计算复杂度进行适应性地设置的,也可是根据实际需求进行设置。
[0080]可选地,决策模型的具体训练步骤包括:
[0081]对于每一次迭代训练执行如下步骤:
[0082]先判断存储器的经验池中样本数据的数量是否达到(大于或等于)预设数量,若达到则基于如下步骤开始执行当前次迭代训练:
[0083]从经验池中随机抽取多个样本数据,构建形成当前次迭代训练的训练数据集;
[0084]基于训练数据集对上一次迭代训练的DQN模型进行训练;
[0085]在当前次迭代训练结束后,进行新的一轮决策和环境交互,新一轮交互后对经验池进行更新,满足迭代训练条件时则从经验池中抽取样本数据进行新一次的迭代训练,直到本回合结束。所称的经验池更新,可以是在获取到新的样本数据之后,若经验池中已达到最大容量限度值的情况下,则将最先存储的样本数据从经验池中删除,而将新的样本数据存入经验池中。
[0086]最后,对多次迭代训练的DQN的路由性能进行测试,以从中选择路由性能最优的DQN,构建决策模型。
[0087]本实施例提供的方法,通过基于多次迭代训练的决策模型训练方法有效提高模型的性能表现,使其在实际应用中具有更好的效果和泛化能力。在一些实施例中,所述DQN模型包括状态动作价值网络和目标价值网络;
[0088]所述基于所述当前次迭代训练的训练数据集,对上一次迭代训练的DQN模型进行训练:
[0089]将所述训练数据集中各所述样本IP地址状态信息和各所述样本决策动作参数输入至上一次迭代训练的状态动作价值网络,以及将训练数据集中各所述下一IP地址状态信息输入至上一次迭代训练的目标价值网络,对所述上一次迭代训练的DQN模型进行训练。
[0090]可选地,决策模型的训练步骤进一步包括:
[0091]对于当前次迭代训练,若判断获知所述经验池中样本数据的数量小于预设数量,则基于上一次迭代训练的状态动作价值网络进行样本数据生成,并将生成的样本数据循环存入所述经验池,直到判断获知所述经验池中的样本数据的数量大于或等于所述预设数量,则从所述经验池中随机采样多个所述样本数据,构建所述当前次迭代训练的训练数据集;
[0092]将所述训练数据集中各所述样本IP地址状态信息和各所述样本决策动作参数输入至上一次迭代训练的状态动作价值网络,得到各所述样本IP地址状态信息对应的多个预先配置的候选决策动作参数的第一价值函数值,并在多个所述第一价值函数值中获取各所述样本决策动作参数的价值函数值;
[0093]将所述训练数据集中各所述下一IP地址状态信息输入至上一次迭代训练的目标价值网络,得到各所述下一IP地址状态信息对应的多个所述候选决策动作参数的第二价值函数值,并在多个所述第二价值函数值中确定最优价值函数值;
[0094]基于各所述样本决策动作参数对应的奖励值、各所述样本决策动作参数的价值函数值,以及所述最优价值函数值,获取损失函数值;
[0095]基于所述损失函数值,对所述上一次迭代训练的状态动作价值网络和所述上一次迭代训练的目标价值网络进行迭代训练;
[0096]根据迭代训练结果,从多次迭代训练的状态动作价值网络中选择路由性能最优的状态动作价值网络,构建所述决策模型。
[0097]图3为本发明提供的路由策略优化方法的流程示意图之二;如图3所示,该DQN模型包括状态动作价值网络(或称Q网络)和目标价值网络(或称Target Q网络);Q网络和TargetQ网络为两个结构相同的神经网络;Q网络用以输出下一跳IP地址,Target Q网络则用于辅助Q网络的训练,训练所需要的样本数据则根据算法设定定期从存储器的资源池中进行采样得到的。
[0098]Q网络输入为样本IP地址状态信息s i ,用于计算样本IP地址状态信息s i 对应的各候选决策动作参数的价值函数值,Target Q网络输入为下一IP地址状态信息s i+1 ,用于计算目标决策动作参数(也即最优决策动作参数)的价值函数值。通过使用一个专用的网络计算目标价值可以更好的减少目标值与当前值的相关性。依据两个决策动作参数的价值函数值计算的损失通过反向传递更新Q网络参数。Target Q网络参数更新则是通过确定设定值,当训练迭代次数达到设定值时直接复制Q网络参数实现参数更新。
[0099]此处的预设数量可以是根据模型性能需求和计算复杂度进行适应性地设置的,也可是根据实际需求进行设置。
[0100]可选地,决策模型的具体训练步骤包括:
[0101]对于每一次迭代训练执行如下步骤:
[0102]先判断存储器的经验池中样本数据的数量是否达到预设数量,若未达到预设数量,则给定一个初始的样本IP地址状态信息s 0 ,依据每一次迭代训练配置的探索率以及随机确定的随机数,从多个预先配置的候选决策动作参数中获取样本IP地址状态信息s 0 对应的样本决策动作参数a 0 ,并将样本IP地址状态信息s 0 和样本决策动作参数a 0 输入至路由器,与路由器进行环境交互,依据路由器返回的元组数据实现样本数据的生成,再依据元组数据中包含的样本决策动作参数a 0 对应的下一IP地址状态信息s 1 迭代输入至上一次迭代训练的状态动作价值网络中以及依据状态动作价值网络输出的样本决策动作参数与路由器迭代进行环境形成新的样本数据,直到样本数据的数量达到预设数量,则停止当前次迭代训练的样本数据生成过程,并基于如下步骤开始执行当前次迭代训练:
[0103]从经验池中随机抽取多个样本数据,构建形成当前次迭代训练的训练数据集;
[0104]将训练数据集中各样本IP地址状态信息s i 和样本决策动作参数a i 输入至上一次迭代训练的状态动作价值网络,以从学习得到的多个预先配置的候选决策动作参数的第一价值函数值中选择样本决策动作参数的价值函数值Q(s i ,a i ;ω);并将样本IP地址状态信息s i 的下一IP地址状态信息s i+1 输入到上一次迭代训练的目标价值网络中,以从下一IP地址状态信息对应的多个候选决策动作参数的第二价值函数值中选择最大价值函数值最为最优价值函数值,也即maxQ(s i+1 ,a i+1 ;θ);
[0105]随后,基于样本决策动作参数对应的奖励值r i+1 、各样本决策动作参数的价值函数值Q(s i ,a i ;ω),以及最优价值函数值maxQ(s i+1 ,a i+1 ;θ),获取损失函数值L(ω),具体计算公式为:
[0106]其中,γ为折扣率,表示决策动作参数a 0 ,a 1 …a i-1 对当前回报的影响程度;θ和ω分别为目标价值网络和状态动作价值网络的模型参数。
[0107]随后,根据损失函数对上一次迭代训练的状态动作价值网络进行梯度下降,模型参数更新。当前次训练迭代次数达到Target Q网络参数更新预设值时,就会将更新后的Q网络参数复制到Target Q网络,以对Target Q网络进行同步更新。
[0108]在当前次迭代训练结束后,进行新的一轮决策和环境交互,新一轮交互后对经验池进行更新,满足迭代训练条件时则从经验池中抽取样本数据进行新一次的迭代训练,直到本回合结束。所称的经验池更新,可以是在获取到新的样本数据之后,若经验池中已达到最大容量限度值的情况下,则将最先存储的样本数据从经验池中删除,而将新的样本数据存入经验池中。
[0109]最后,对多次迭代训练的状态动作价值网络的路由性能进行测试,以从中选择路由性能最优的状态动作价值网络,构建决策模型。
[0110]本实施例提供的方法,通过基于多次迭代训练和损失函数优化的决策模型训练方法有效提高模型的性能表现,使其在实际应用中具有更好的效果和泛化能力。
[0111]在一些实施例中,基于上一次迭代训练的状态动作价值网络进行样本数据生成,并将生成的样本数据循环存入所述经验池,直到判断获知所述经验池中的样本数据的数量大于或等于所述预设数量,包括:
[0112]获取所述路由器传输的所述样本IP地址状态信息;
[0113]根据所述当前次迭代训练对应的探索率和随机数,从多个所述候选决策动作参数中,获取所述样本IP地址状态信息的样本决策动作参数;
[0114]将所述样本IP地址状态信息和所述样本决策动作参数发送至所述路由器;
[0115]接收所述路由器传输的数据元组;所述数据元组是由所述路由器根据所述样本IP地址状态信息和所述样本决策动作参数生成的,所述数据元组包括所述样本IP地址状态信息、所述样本决策动、所述样本决策动作参数对应的奖励值,以及所述样本决策动作参数对应的下一IP地址状态信息;
[0116]根据所述数据元组进行样本数据生成,并将生成的样本数据存入所述经验池;
[0117]将所述数据元组中的下一IP地址状态信息作为新的样本IP地址状态信息,对所述新的样本IP地址状态信息迭代进行样本数据生成,并将生成的样本数据循环存入所述经验池,直到判断获知所述经验池中的样本数据的数量大于或等于所述预设数量。
[0118]可选地,在经验池的样本数据达不到设定数量的情况下,服务器与路由器通过不断环境交互,得到每次交互后的元组数据保存至存储器进行经验池的更新;其中,经验池的更新步骤包括:
[0119]路由器将样本IP地址状态信息s i 发送给服务器,服务器接受该状态信息后,可以是依据当前次迭代训练对应的探索率和随机数,从多个候选决策动作参数中,随机选择一个样本决策动作参数a i 转发给路由器,也可是通过状态动作价值网络决策输出相应的样本决策动作参数a i 转发给路由器;
[0120]在一些实施例中,所述根据所述当前次迭代训练对应的探索率和随机数,从多个所述候选决策动作参数中,获取所述样本IP地址状态信息的样本决策动作参数,包括:
[0121]根据所述当前次迭代训练对应的探索率和随机数,从多个所述候选决策动作参数中,随机确定任一决策动作参数作为所述样本IP地址状态信息的样本决策动作参数;或者,
[0122]将所述样本IP地址状态信息输入至所述上一次迭代训练的状态动作价值网络,得到多个所述候选决策动作参数的第一价值函数值,根据所述第一价值函数值,从多个所述选决策动作参数中,确定最优价值函数值对应的决策动作参数作为所述样本IP地址状态信息的样本决策动作参数。
[0123]可选地,可以是将当前次迭代训练选择的随机数与当前次迭代训练设置的探索率进行比较,以在当前次迭代训练对应的随机数小于当前次迭代训练对应的探索率的情况下,从多个候选决策动作参数中,随机确定一个决策动作参数作为样本决策动作参数a i 转发给路由器;以在当前次迭代训练选择的随机数大于或等于当前次迭代训练对应的探索率的情况下,将样本IP地址状态信息输入至上一次迭代训练的状态动作价值网络,以得到多个候选决策动作参数的第一价值函数值,由此从中选择maxQ(s i ,a i )对应的动作作为样本决策动作参数a i 转发给路由器。需要说明的是,在每次决策后将探索率ε的值以线性或指数方式逐次减小,直到探索率ε达到1e-3,则停止对探索率ε的更新。
[0124]路由器在接收到样本决策动作参数a i 后,通过查找映射index_IP,找到下一跳IP地址,并执行下一跳IP地址的路由转发,执行转发后,IP地址发生变化,并发生状态转移,状态变为s i+1 ,路由器根据奖励函数对以上行为出评价得到样本决策动作参数对应的奖励值r i+1 。路由器将样本IP地址状态信息s i 、样本决策动作参数a i 、奖励值r i+1 和IP地址变化后,发生状态转移的下一IP地址状态信息s i+1 四个变量构成一个数据元组(s i ,a i ,r i+1 ,s i+1 )发送给服务器,服务器将其转发并保存在存储器的资源池中。当存储器的资源池中样本数据的数量达到设定值后,服务器开始通过随机采样获得数据进行Q网络的训练,否则继续执行上述经验池的更新步骤。其中,r i+1 表示在样本IP地址状态信息s i 的情况下,执行样本决策动作参数a i 后得到的奖励。s i+1 表示在样本IP地址状态信息s i 的情况下,执行样本决策动作参数a i 后发生的状态转移。
[0125]本实施例提供的方法,在训练过程中基于训练的模型对经验池中的样本数据进行实时更新,使得经验池中的样本更加多样化和全面,有助于提升模型的泛化能力和学习效果,且使得模型可以逐渐适应环境的变化和不确定性,提高模型的鲁棒性和适应能力,使其在面对新情况时能够做出更准确的决策,由此实现促进强化学习模型的学习和优化过程,提升模型的性能和应对能力。
[0126]在一些实施例中,所述样本决策动作参数对应的下一IP地址状态信息是由所述路由器根据所述样本决策动作参数,获取所述样本IP地址状态信息对应的下一跳IP地址索引,根据所述下一跳IP地址索引,获取所述样本IP地址状态信息对应的下一跳IP地址,并对所述样本IP地址状态信息对应的下一跳IP地址进行路由转发,根据路由转发结果进行IP地址状态转移产生的。
[0127]需要说明的是,OSPF协议在建立邻居和邻接关系后同步链路状态数据库,该数据库中记录了每个路由节点可以到达的下一跳IP地址以及到达该地址的方式和开销,然后优化算法通过利用以上信息找到最优路径。索引-IP地址映射表的构建是为了更便捷的满足交互所需的基本要素。
[0128]由于实际网络转发过程中使用的IP地址位数较多,如果直接使用不利于数据的传输和神经网络的训练,因此为了便捷表达不同的IP地址,本专利构建索引和IP地址的映射,如下公式所示:
[0129]其中,n表示IP地址的总个数,IP n 表示第n个IP地址。
[0130]并且考虑到实际Q网络的训练,直接使用位数较多的IP地址不利于网络的训练,因此根据上述公式的映射关系,将决策动作参数定义为IP地址的索引,相应地,路由器中的动作空间可通过如下公表示:
[0131]A=[a 1 a 2 … a t ];
[0132]其中,a t 表示为:a t =index_IP i0 i∈n,表示当前IP地址状态信息s t 的下一跳IP地址索引为a t 。
[0133]可选地,服务器在将样本决策动作参数发送至路由器之后,路由器可以根据样本决策动作参数获取样本IP地址状态信息对应的下一跳IP地址索引,以通过下一跳IP地址索引中所包含的索引,关联获取样本IP地址状态信息对应的下一跳IP地址,并对下一跳IP地址执行分布式并行转发,在执行转发后,IP地址发生变化,并发生IP地址状态转移,由此得到下一IP地址状态信息。
[0134]本实施例提供的方法,通过与路由器交互实现状态转移,既减少了专家经验的依靠,也不需要知道环境的模型原理,同时交互试错的过程也使得该算法具有更好的适应性,实现了全局最优的路由策略优化,提高了路由的合理性,进而提高路由策略优化的适应性、鲁棒性和高效性。
[0135]在一些实施例中,所述样本决策动作参数对应的奖励值是由所述路由器将所述样本决策动作参数对应的下一跳IP地址与目标IP地址进行匹配,在确定所述样本决策动作参数对应的下一跳IP地址与所述目标IP地址匹配的情况下,根据目标奖励值确定的,或者,在确定所述样本决策动作参数对应的下一跳IP地址与所述目标IP地址不匹配的情况下,在预先构建的路由通路矩阵中查找所述样本决策动作参数对应的下一跳IP地址与当前IP地址之间的路由度量值,根据所述路由度量值确定的。
[0136]需要说明的是,OSPF协议将信息在链路状态数据库同步后,根据该数据库中的信息构建路由通路矩阵,用以表示任意两个IP地址间的信息的同时方便后续状态空间、动作空间以及奖励的构建。该路由通路矩阵的计算公式为:
[0137]其中,路由通路矩阵route_matrix表示任意两个IP地址之间的连接状态和路由度量值,其中n,m表示IP地址的索引编号,cost nm 表示第n个IP地址到第m个IP地址的路由度量值(如路由开销),如果两者之间不能直接到达取无穷大。
[0138]奖励作为强化学习中独特的存在,既可以为每次动作后做出评价,又是求解状态价值和状态动作价值的基础,因此奖励函数设计的好坏关系到整个强化学习决策结果的好坏。
[0139]可选地,样本决策动作参数对应的奖励值可以是由路由器执行如下步骤实现:
[0140]在获取到样本决策动作参数之后,将样本决策动作参数对应的下一跳IP地址与目标IP地址进行匹配,在样本决策动作参数对应的下一跳IP地址与目标IP地址匹配的情况下,将预先设定的目标奖励值作为样本决策动作参数对应的奖励值;在样本决策动作参数对应的下一跳IP地址与目标IP地址不匹配的情况下,在路由通路矩阵中查找样本决策动作参数对应的下一跳IP地址与当前IP地址之间的路由度量值作为样本决策动作参数对应的奖励值。其中,奖励值的计算公式如下:
[0141]Rewawrd为从第i个IP地址到第j个IP地址的奖励值,其中i<j为了防止产生回环。
[0142]本实施例提供的方法,奖励的设置也是通过链路状态数据库中的路径开销进行自适应生成的,减少了专家经验的依靠,由此提高了路由策略优化的精准性和高效性。
[0143]以下以具体的实施例,对本实施例提供的决策模型训练的过程展开具体描述。
[0144]如表1所示,决策模型训练的完整步骤包括:
[0145]步骤1),初始参数,包括但不限于初始化Q网络结构、目标Q网络结构、网络参数,经验池、路由通路矩阵、索引-IP地址映射关系矩阵、奖励函数、环境参数、当前路由所在IP地址索引;
[0146]步骤2),对于每一回合(episode),初始化环境,得到状态s 0 ;
[0147]步骤3),路由器将IP地址状态信息s t 发送给服务器,服务器接受该状态后,可能随机选择一个决策动作参数a t 转发给路由器,或者通过Q网络获得所有动作对应的Q值Q(s t ,a;ε),算法选择对应Q值最大的决策动作参数a t ,转发给路由器。
[0148]步骤4),路由器接收到决策动作参数a t 后,通过查找映射index_IP,找到下一跳IP地址,并执行转发。
[0149]步骤5),路由器执行转发后,IP地址发生变化,并发生状态转移,IP地址状态信息变为s t+1 ,路由器判断当前index_IP at+1 是否为目标IP地址,如果不是根据奖励函数得到奖励值
[0150]步骤6),路由器将IP地址状态信息s t 、决策动作参数a t 、奖励值r t+1 和IP地址变化后,发生状态转移的新IP地址状态信息s t+1 四个变量构成一个数据元组(s t ,a t ,r t+1 ,s t+1 )发送给服务器,服务器将其转发并保存在存储器中。当存储器中数据量达到设定值后,执行步骤7),否则继续执行步骤3)-6)。
[0151]步骤7),服务器对存储器的经验池中的数据元组进行随机采样,得到小批量样本数据(s t ,a t ,r t+1 ,s t+1 )。
[0152]步骤8),依据样本数据获取的目标价值网络的输出结果以及状态动作价值网络的输出结果,并依据目标价值网络的输出结果以及状态动作价值网络的输出结果进行损失函数计算,通过损失函数进行梯度下降,以对Q网络的模型参数更新。当训练迭代次数达到Target Q网络参数更新预设值C时,就会将更新后的Q网络参数复制到Target Q网络。
[0153]步骤9),当本回合达到目标IP地址后,返回步骤2)开始下一回合,否则返回步骤3)继续本回合。
[0154]步骤10)当训练回合数达到设定回合后结束训练过程。
[0155]表1决策模型训练算法伪代码表
[0156]在一些实施例,本实施例还提供一种路由策略优化方法,该方法的执行主体为路由器;如图4所示,该方法包括:
[0157]步骤410,向服务器传输当前IP地址状态信息;
[0158]步骤420,接收所述服务器传输的当前最优决策动作参数;
[0159]步骤430,根据所述当前最优决策动作参数,获取所述当前IP地址状态信息对应的下一跳IP地址,并对所述下一跳IP地址进行路由转发;
[0160]其中,所述当前最优决策动作参数是由所述服务器将所述当前IP地址状态信息输入至决策模型得到的最大价值函数值对应的决策动作参数。
[0161]可选地,路由器根据状态空间信息确定当前IP地址状态信息,并将当前IP地址状态信息传输至服务器;所称的状态空间信息用以表示当前IP地址以及其他IP地址是否到达(路由)过的记录。
[0162]服务器在接收到路由器发送的当前IP地址状态信息s t 后,通过训练好的决策模型,依据当前IP地址状态信息s t ,获取所有预先配置的候选动作对应的价值函数值,也即Q值,并选择对应Q值最大的动作a t 作为当前最优决策动作参数,转发给路由器。
[0163]路由器接收到当前最优决策动作参数后,通过查找映射下一跳IP地址索引,以通过下一跳IP地址索引找到下一跳IP地址,并对下一跳IP地址执行路由转发,并在执行转发后,IP地址发生变化,并发生状态转移,由此得到下一IP地址状态信息s t+1 ,并判断路由是否到达目标IP地址,也即下一跳IP地址是否与目标IP地址匹配,若匹配,则路由到达目标IP地址,若不匹配,路由未到达目标IP地址。如果到达则路由结束,否则将下一IP地址状态信息s t+1 作为新的当前IP地址状态信息传输至服务器,以便服务器依据新的当前IP地址状态信息迭代进行路由优化,直到路由到达目标IP地址。
[0164]本发明实施例提供的路由策略优化方法,通过路由器与服务器与进行环境交互形成的样本IP地址状态信息、样本决策动作参数、样本决策动作参数对应的奖励值,以及样本决策动作参数对应的下一IP地址状态信息进行DQN模型训练,使得所得到的决策模型能够根据依据当前IP地址状态信息,更好地与环境不断地交互、学习和优化,以更好地全局优化获取当前最优决策动作参数,进而获取全局最优的路由优化策略,由此给出当前IP地址状态信息下最优的下一跳IP地址,指导路由器的路由转发,提高路由策略优化的合理性,进而高效、低成本地进行路由策略实现,另外,直接通过服务器和路由的交互在试错中学习的方法,解决了系统建模较难和无模型的问题,且通过不断与路由器交互获得新的样本数据进行策略训练,使其具有较好的自适应性。
[0165]下面对本发明提供的路由策略优化系统进行描述,下文描述的路由策略优化系统与上文描述的路由策略优化方法可相互对应参照。
[0166]如图2所示,路由策略优化系统包括服务器、路由器和存储器;
[0167]所述服务器,用于接收所述路由器传输的当前IP地址状态信息将所述当前IP地址状态信息输入至决策模型,得到最大价值函数值对应的当前最优决策动作参数;将所述当前最优决策动作参数发送至所述路由器;
[0168]可选地,服务器可实时监听路由器,以获取路由器传输的当前IP地址状态信息,由此基于当前IP地址状态信息进行路由策略优化;所称的当前IP地址状态信息是路由器,在所需进行路由策略优化的情况下,根据状态空间信息,对当前周期下所有IP地址的路由状态信息进行采集得到的。
[0169]服务器在接收到路由器发送的当前IP地址状态信息s t 后,通过训练好的决策模型,依据当前IP地址状态信息s t ,获取所有候选动作对应的价值函数值,也即Q值,并选择对应Q值最大的动作a t 作为当前最优决策动作参数,转发给路由器。
[0170]所述路由器,用于根据所述当前最优决策动作参数,获取所述当前IP地址状态信息对应的下一跳IP地址,并对所述下一跳IP地址进行路由转发。
[0171]可选地,路由器接收到当前最优决策动作参数后,通过查找映射下一跳IP地址索引,以通过下一跳IP地址索引找到下一跳IP地址,并对下一跳IP地址执行路由转发,并在执行转发后,IP地址发生变化,并发生状态转移,由此得到下一IP地址状态信息s t+1 ,并判断路由是否到达目标IP地址,也即下一跳IP地址是否与目标IP地址匹配,若匹配,则路由到达目标IP地址,若不匹配,路由未到达目标IP地址。如果到达则路由结束,否则将下一IP地址状态信息s t+1 作为新的当前IP地址状态信息传输至服务器,以便服务器依据新的当前IP地址状态信息迭代进行路由优化,直到路由到达目标IP地址。
[0172]本实施例针对OSPF路由协议中路径优化存在的时间复杂度高、自适应能力差等问题,提出了一种路由策略优化系统,该系统将算法、数据、环境部署在不同的网络设备中,通过设备间的多次交互进行算法的训练,解决了使用启发式优化算法需要预先指导模型的问题,通过调参软件的实时调参也可以避免出现局部最优解的问题。同时,针对组网中增减设备或动态变化的系统时,服务器内算法直接和路由器进行交互得到新的数据从而指导策略更新,不需要进行模型的重建和算法的重新遍历,便于路由策略的快速学习并且具有较好的自适应性和鲁棒性。分布式强化学习的部署方式也具有更好的扩展性、易迁移性和易安装性,同时将算法、环境、数据分别部署在服务器、路由器、存储设备中也将每个设备的资源利用最大化。路由策略的外置即可以有更多的资源进行策略的训练和学习,还节省路由器内资源进行数据包的汇总和校验。
[0173]本发明提供的系统是用于执行上述各方法实施例的,具体流程和详细内容请参照上述实施例,此处不再赘述。
[0174]图5示例了一种电子设备的实体结构示意图,如图5所示,该电子设备可以包括:处理器(processor)510、通信接口(Communications Interface)520、存储器(memory)530和通信总线540,其中,处理器510,通信接口520,存储器530通过通信总线540完成相互间的通信。处理器510可以调用存储器530中的逻辑指令,以执行路由策略优化方法,该方法包括:接收路由器传输的当前IP地址状态信息;将所述当前IP地址状态信息输入至决策模型,得到最大价值函数值对应的当前最优决策动作参数;将所述当前最优决策动作参数发送至所述路由器,以供所述路由器根据所述当前最优决策动作参数,获取所述当前IP地址状态信息对应的下一跳IP地址,并对所述下一跳IP地址进行路由转发,或者向服务器传输当前IP地址状态信息;接收所述服务器传输的当前最优决策动作参数;根据所述当前最优决策动作参数,获取所述当前IP地址状态信息对应的下一跳IP地址,并对所述下一跳IP地址进行路由转发;其中,所述当前最优决策动作参数是由所述服务器将所述当前IP地址状态信息输入至决策模型得到的最大价值函数值对应的决策动作参数。
[0175]此外,上述的存储器530中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0176]另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,计算机程序可存储在非暂态计算机可读存储介质上,所述计算机程序被处理器执行时,计算机能够执行上述各方法所提供的路由策略优化方法,该方法包括:接收路由器传输的当前IP地址状态信息;将所述当前IP地址状态信息输入至决策模型,得到最大价值函数值对应的当前最优决策动作参数;将所述当前最优决策动作参数发送至所述路由器,以供所述路由器根据所述当前最优决策动作参数,获取所述当前IP地址状态信息对应的下一跳IP地址,并对所述下一跳IP地址进行路由转发,或者向服务器传输当前IP地址状态信息;接收所述服务器传输的当前最优决策动作参数;根据所述当前最优决策动作参数,获取所述当前IP地址状态信息对应的下一跳IP地址,并对所述下一跳IP地址进行路由转发;其中,所述当前最优决策动作参数是由所述服务器将所述当前IP地址状态信息输入至决策模型得到的最大价值函数值对应的决策动作参数。
[0177]又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的路由策略优化方法,该方法包括:接收路由器传输的当前IP地址状态信息;将所述当前IP地址状态信息输入至决策模型,得到最大价值函数值对应的当前最优决策动作参数;将所述当前最优决策动作参数发送至所述路由器,以供所述路由器根据所述当前最优决策动作参数,获取所述当前IP地址状态信息对应的下一跳IP地址,并对所述下一跳IP地址进行路由转发,或者向服务器传输当前IP地址状态信息;接收所述服务器传输的当前最优决策动作参数;根据所述当前最优决策动作参数,获取所述当前IP地址状态信息对应的下一跳IP地址,并对所述下一跳IP地址进行路由转发;其中,所述当前最优决策动作参数是由所述服务器将所述当前IP地址状态信息输入至决策模型得到的最大价值函数值对应的决策动作参数。
[0178]以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
[0179]通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
[0180]最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。