发明内容
本发明所要解决的技术问题是如何在实现网络负载均衡的条件下提高物联网请求流的接收率,目的在于提供一种基于深度强化学习的动态服务功能链编排方法及系统,综合考虑了网络资源状态信息,实现了在减少物联网请求流对资源消耗成本和时延的同时实现了网络的负载均衡,并提高了网络流量接收率。
本发明通过下述技术方案实现:
一方面,本发明提供基于深度强化学习的动态服务功能链编排方法,包括以下步骤:
S1、根据SDN控制器获取历史网络状态;网络状态包括支持移动边缘计算的物联网网络中产生的服务功能链请求流信息以及对应的网络资源状态信息;
S2、根据网络状态设定深度强化学习参数并初始化神经网络的权重;
S3、根据智能体与环境交互产生的经验样本训练神经网络;
S4、对于实时获取的服务功能链请求流,利用训练好的神经网络,采用启发式算法,确定并部署满足服务功能链请求流要求的虚拟化网络功能的放置与路由路径。
目前,大多数文献不能在保证负载均衡的条件下合理利用边缘云服务器中的计算资源和链路上的带宽资源并联合考虑物联网请求流的接收率和时延要求。因此,需要从多VNF实例支持的基于移动边缘计算物联网网络环境中动态部署服务功能链,制定一种优化策略,以满足具有服务功能链要求的物联网请求流要求,从而最小化物联网请求流的成本和时延,提高物联网请求流的接收率,确保网络的负载均衡。并且由于深度强化学习可以使用马尔可夫决策过程建模网络资源状态的转换且适合解决组合优化问题,因此,本发明中利用深度强化学习的方法训练神经网络,并利用启发式算法使得智能体可以快速响应在支持移动边缘计算的物联网网络中产生的物联网请求流,并动态部署所需的VNF实例并找到最优路由路径。
进一步地,所述步骤S1中,服务功能链请求流按预定义的顺序依次遍历不同的VNF;网络资源状态信息包括微云上CPU计算资源的剩余率、链路上带宽资源的剩余率、微云上VNF实例的处理时延和链路上数据流量的传输时延。
进一步地,所述步骤S2中,初始化神经网络的权重包括:
初始化经验池,将智能体与环境交互产生的经验样本存入经验池中;
将第一状态值函数Q作为在线网络,并随机初始化Q对应的权重参数θ,将第二状态值函数作为目标网络,并将/>对应的权重参数θ-初始化值与θ相同。
进一步地,所述步骤S2中,神经网络包括VNF放置神经网络和流量路由神经网络,设定深度强化学习参数包括设定强化学习中马尔科夫决策过程的相关参数:
状态S:其中,Sp为VNF放置神经网络的输入,Sr为流量路由神经网络的输入,/>为微云c上CPU计算资源的剩余率;/>为属于服务功能链请求流i的类型为p的VNF的CPU计算资源需求,/>为请求流i可容忍的最大延迟;Be,Be+1分别表示路径(e,e+1)上起始节点e和目的节点e+1的二进制编码;/>为第l条链路上带宽资源的剩余率;/>为请求流i的带宽资源需求;
动作A:VNF放置神经网络的动作为请求流i需要遍历的VNF实例的集合;流量路由神经网络的动作为起始节点和目的节点之间的路由路径;
奖励R:VNF放置神经网络的奖励为微云上的处理时延和CPU计算资源消耗成本之和,流量路由神经网络的奖励为请求流i在链路上的传输时延和带宽资源消耗成本的加权和。
进一步地,神经网络包括VNF放置神经网络和流量路由神经网络,则步骤S3中训练神经网络的过程包括:
训练VNF放置神经网络:
从当前网络状态中获取VNF放置神经网络的输入,并利用经验样本训练VNF放置神经网络,输出最优VNF实例组合;
训练流量路由神经网络:
获取最优VNF实例组合及当前网络状态作为流量路由神经网络的输入,并利用经验样本训练流量路由神经网络,输出路由路径。
进一步地,经验样本以四元组的形式进行存储:{S,A,R,S′},表示智能体在状态S下执行动作A,到达新的状态S′,并获得相应的奖励R。
进一步地,两个神经网络的具体训练过程均包括:
S31、随机初始化神经网络的在线网络和目标网络;`
S32、初始化状态S;
S33、在运行时间周期内,根据环境在在线网络中选择动作;
S34、输出在线网络所有动作对应的Q值,并用ε贪婪法选择最优Q值对应的动作A;
S35、在状态S下执行动作A,得到新状态S′和奖励R;并将得到的经验样本{S,A,R,S′}存入经验池中;
S36、从经验池中选择部分经验样本训练目标网络,输出目标Q值:
S37、根据目标Q值,使用均方差损失函数,通过梯度反向传播来更新在线网络的权重参数θ;并利用更新后的权重参数θ更新目标网络的权重参数θ-。
进一步地,步骤S4的具体过程包括:
S41、根据训练好的VNF放置神经网络,得到当前请求流所需的VNF实例所在的微云组合,并根据微云上部署情况动态部署所需的VNF实例;
S42、将当前请求流所需的VNF实例所在的微云组合输入到训练好的流量路由神经网络中,将输出的Q值进行排序,选择前k个Q值对应的路由路径组成动作集K;
S43、利用启发式算法,在动作集K中选择满足带宽资源约束时奖励总值最高时对应的路由路径。
S44、根据当前请求流的服务功能链长度n,重复执行n-1次S42-S43,对服务功能链中的相邻微云节点获得n-1条奖励总值最高的路由路径。
进一步地,步骤S43的具体过程包括:
基于真实的支持移动边缘计算的物联网网络构建一个相同的模拟仿真环境;初始化可行动作的奖励集合;
对动作集K中的每个动作进行判断,是否违反链路带宽资源约束;
对于每个动作,如果未违反链路带宽资源约束,则在模拟仿真环境下执行该动作,并将其获得的奖励总值记录至可行动作的奖励集合中;
对可行动作的奖励集合中所有的奖励总值进行排序,将最高奖励总值对应的动作在真实的支持移动边缘计算的物联网网络环境中执行。
另一方面,本发明提供基于深度强化学习的动态服务功能链编排系统,包括:
物联网终端,用于在物联网网络中产生支持移动边缘计算的服务功能链请求流信息;
SDN控制器,用于获取所述服务功能链请求流信息和网络资源状态信息;
预定义模块,用于根据获取的网络状态设定深度强化学习参数并初始化神经网络的权重;并负责在微云上进行VNF的动态部署以及管理服务功能链(SFC)请求流路由路径的配置;
网络训练模块,用于根据智能体与环境交互产生的经验样本训练神经网络;
网络部署模块,用于利用训练好的神经网络,采用启发式算法,确定所述服务功能链请求流对应的虚拟化网络功能的放置与路由路径。
本发明与现有技术相比,具有如下的优点和有益效果:
1、本发明提供基于深度强化学习的动态服务功能链编排方法及系统,既考虑了资源消耗成本也考虑了端到端延迟,适用于动态复杂的,对通信成本和时延都要求较高的场景;在智能体训练完成后,可根据当前的网络资源状态迅速响应物联网请求流并为其分配合适的微云和链路,且具有一定的泛化能力;
2、本发明提供一种基于深度强化学习的动态服务功能链编排方法及系统,通过利用指数函数刻画资源使用的相对成本,从而在部署VNF和路由流时避免资源瓶颈节点和链路并自动实现网络负载平衡;
3、本发明提供一种基于深度强化学习的动态服务功能链编排方法及系统,通过在资源约束或时延约束不满足时降低奖励值作为惩罚,使得智能体自动选择资源剩余率较高的微云和链路,从而提高物联网请求流的接收率。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施例和附图,对本发明作进一步的详细说明,本发明的示意性实施方式及其说明仅用于解释本发明,并不作为对本发明的限定。
实施例1
如图1所示,本实施例公开了基于深度强化学习的动态服务功能链编排方法,包括以下步骤:
S1、根据SDN控制器获取历史网络状态;网络状态包括支持移动边缘计算的物联网网络中产生的服务功能链请求流信息以及对应的网络资源状态信息;
具体地,服务功能链请求流为支持移动边缘计算的物联网网络中物联网终端发出的请求流,并且该请求流要求按预定义的顺序依次遍历不同的VNF;网络资源状态信息包括微云上CPU计算资源的剩余率、链路上带宽资源的剩余率、微云上VNF实例的处理时延和链路上数据流量的传输时延。
S2、根据网络状态设定深度强化学习参数并初始化神经网络的权重;
具体地,所述神经网络包括VNF放置神经网络和流量路由神经网络,对于每个神经网络,初始化神经网络的权重均包括:
初始化经验池,将智能体与环境交互产生的经验样本存入经验池中,经验池的容量为N(即可以存储N个历史样本),用作历史经验回放;经验池中存储有经验样本,经验样本以四元组的形式进行存储:{S,A,R,S′},表示智能体在状态S下执行动作A,到达新的状态S′,并获得相应的奖励R。
如图2所示,左侧部分为VNF放置神经网络,右侧部分为流量路由神经网络,两个网络均包含在线(online)网络和目标(target)网络,在线网络用于找出最大Q值对应的动作,目标网络用于计算目标Q值,图3中的Network即为图2中的物理网络。
则对于每个网络将第一状态值函数Q作为在线网络,并随机初始化Q对应的权重参数θ,将第二状态值函数作为目标网络,并将/>对应的权重参数θ-初始化值设置成与θ相同。
设定深度强化学习参数包括设定强化学习中马尔科夫决策过程的三大要素:
状态S:其中,Sp为VNF放置神经网络的输入,Sr为流量路由神经网络的输入,/>为第c个微云上CPU计算资源的剩余率;/>为属于服务功能链请求流i的类型为p的VNF的CPU计算资源需求,为请求流i可容忍的最大延迟;Be,Be+1分别表示路径(e,e+1)上起始节点e和目的节点e+1的二进制编码;/>为第l条链路上带宽资源的剩余率;/>为请求流i的带宽资源需求;
动作A:VNF放置神经网络的动作为请求流i需要遍历的VNF实例的集合;流量路由神经网络的动作为起始节点和目的节点之间的路由路径;
奖励R:VNF放置神经网络的奖励为微云上的处理时延和CPU计算资源消耗成本之和,即:
流量路由神经网络的奖励为请求流i在链路上的传输时延和带宽资源消耗成本的加权和,即:
其中,表示根据VNF放置神经网络输出的最优Q值所对应选择的微云集合,/>表示根据流量路由神经网络输出的最优Q值对应选择的路由路径的集合,F表示服务功能链的节点集合,包括起始节点、VNF节点和目的节点;dc为第c个微云上的处理延迟,由以下公式计算可得,/>为微云c上的单位数据包处理时间;xpc为二进制变量表示第c个微云上是否部署了类型为p的VNF实例;其中,ηa,ηb为大于1的常数;/>为类型为p的VNF实例的激活成本;dl为第l条链路上的传输延迟;/>为二进制变量表示服务功能链(SFC)中的链路mn是否映射到了物理链路uv上;物理链路即为图2中的物理网络的链路,以上路由路径均是在物理链路上进行寻找,λ1和λ2为权重系数。值得注意的是,本实施例考虑到了资源的边际成本问题,利用相对成本来刻画资源消耗成本,这样智能体agent可以在VNF放置和路由的选择过程中避免选择资源消耗较多的微云和链路以减少网络拥塞并自动实现负载均衡,并且利用奖励与惩罚使得智能体自动选择资源消耗和延迟较小的微云和链路,并通过当物联网请求流被拒绝导致路由失败时设置较低的奖励值,例如当因请求流的时延或资源约束不满足导致请求流被拒绝接收时将奖励值设置为负数;通过在资源约束或时延约束不满足时降低奖励值作为惩罚,使得智能体自动选择资源剩余率较高的微云和链路,从而提高物联网请求流的接收率。
S3、根据智能体与环境交互产生的经验样本训练神经网络;神经网络的训练是根据S1和S2中的定义,使用基于Double深度Q学习的算法进行的,具体地,两个神经网络的具体训练过程均包括:
S31、随机初始化神经网络的在线网络和目标网络;
S32、初始化状态S作为当前序列的第一个状态;
S33、在运行时间周期内,根据环境在在线网络中选择动作:
for t∈[1:T*episode]
for t∈[1:T]
其中,T表示时间周期,episode是运行周期数;
S34、输出在线网络所有动作对应的Q值,并用ε贪婪法选择最优Q值对应的动作A;
S35、在状态S下执行动作A,得到新状态S′和奖励R并判断是否达到终止条件;若否则重复上述步骤S31-S35,直到达到终止条件,将所有得到的经验样本{S,A,R,S′}存入经验池中;
S36、从经验池中进行采样,选择m个样本{Sj,Aj,Rj,S′j},j=1,2,...m,训练目标网络,根据目标Q值,得到各个状态下对应的奖励值yj:
S37、根据不同状态下获得的奖励值,使用均方差损失函数:
通过梯度反向传播来更新在线网络的权重参数θ;并利用更新后的权重参数θ更新目标网络的权重参数θ-。具体地,若Sj为终止状态时,则奖励值yj=Rj,若Sj不是终止状态,则奖励值其中,γ是衰减因子(discountfactor),是介于[0,1]之间的常数。
更加具体地,如图2所示,对两个神经网络进行训练时,需要先对VNF放置神经网络训练,根据上述步骤分别产生VNF放置神经网络的经验样本(ss,as,rs,ss+1)和流量路由神经网络的经验样本(sp,ap,rp,sp+1)且分别存储在经验池Es和经验池Ep中,其中,先根据步骤①-步骤③对VNF放置神经网络进行训练,
步骤①表示从环境中获取VNF放置神经网络的状态ss作为输入;
步骤②表示经过经验样本训练后的VNF放置神经网络,输出最优Q值对应的动作即输出最优VNF实例组合;
步骤③中,智能体通过SDN控制器获得奖励和变化后的状态后,将生成的经验样本存储至经验池Es中;
步骤④-⑥对流量路由神经网络进行训练,与步骤①-③类似,
步骤④根据步骤②输出的最优VNF实例组合及当前网络状态作为流量路由神经网络的输入,
步骤⑤输出最优Q值对应的最优路由路径,
步骤⑥为智能体通过SDN控制器获得奖励和变化后的状态后,将产生的经验样本存储至经验池Ep中,在步骤⑦中,智能体在经验池中随机采样小批量数据用于训练在线网络,并每隔固定时间按照上述步骤更新目标网络的参数。
S4、对于实时获取的服务功能链请求流,利用训练好的神经网络,采用启发式算法(heuristic algorithm),确定并部署满足服务功能链请求流要求的虚拟化网络功能的放置与路由路径。
具体的,S4的具体步骤包括:
S41、根据训练好的VNF放置神经网络,得到当前请求流所需的VNF实例所在的微云组合,并根据微云上部署情况动态部署所需的VNF实例;
S42、将当前请求流所需的VNF实例所在的微云组合输入到训练好的流量路由神经网络中,将输出的Q值进行排序,选择前k个Q值对应的路由路径组成动作集K;
S43、利用启发式算法,在动作集K中选择满足带宽资源约束时奖励总值最高时对应的路由路径。
S44、根据当前请求流的服务功能链长度n,重复执行n-1次S42-S43,为服务功能链中的相邻微云节点获得前k个Q值对应的路由路径,最终获得n-1条奖励总值最高的路由路径。
进一步地,步骤S43的具体过程包括:
基于真实的支持移动边缘计算的物联网网络构建一个相同的模拟仿真环境;初始化可行动作的奖励集合为空集Φ;
对动作集K中的每个动作进行判断,是否违反链路带宽资源约束:for a∈K;
对于每个动作,如果未违反链路带宽资源约束,则在模拟仿真环境下执行该动作a,,并将其获得的奖励总值ra记录至可行动作的奖励集合中且环境到达下一状态,其中奖励总值ra为两个神经网络输出的奖励值的总和,按如下公式进行计算:
ra=rr+rp
(5)
若违反链路带宽资源约束,则路由失败,拒绝接受请求流;
对可行动作的奖励集合中所有的奖励总值进行排序,将最高奖励值对应的动作在真实的支持移动边缘计算的物联网网络环境中执行。
如图2所示,步骤(1)到步骤(5)表示利用本方法得到最优路由路径的过程。
步骤(1)表示获取请求流SFCRi和当前网络状态的资源信息,
步骤(2)表示输出放置了SFCRi所需的VNF实例所在的微云组合,并根据微云上VNF实例的部署情况动态部署所需的VNF,假如SFCRi的SFC长度为5,则需要分别循环执步骤(3)和步骤(4)行四次来获取流量路由神经网络的状态并为相邻的微云选择Q值较高的k条路由路径,在实际应用时,可选择在排序中前20%的Q值对应的k条路由路径;步骤(3)和步骤(4)对应上述步骤S42的过程;
步骤(5)表示利用启发式算法网络输出的性能较好的候选路由路径集合K中选择满足带宽资源约束时奖励总值最高时对应的路由路径,也需循环执行四次。
实施例2
如图3所示,本实施例提供基于深度强化学习的动态服务功能链编排系统,包括:
物联网终端,用于在物联网网络中产生支持移动边缘计算的服务功能链请求流信息;
SDN控制器(SDN Controller),用于获取所述服务功能链请求流信息和网络资源状态信息;并负责在微云上进行VNF的动态部署以及管理服务功能链(SFC)请求流路由路径的配置。
智能体包括:
预定义模块,用于根据获取的网络状态设定深度强化学习参数并初始化神经网络的权重;
网络训练模块,用于根据智能体与环境交互产生的经验样本训练神经网络;
网络部署模块,用于利用训练好的神经网络,采用启发式算法,确定所述服务功能链请求流对应的虚拟化网络功能的放置与路由路径。
智能体内网络的训练过程与实施例1中的方法一致,在此不再赘述,在一种具体的实施方式中,如图3所示,环境为整个物理网络环境,环境中包括了多个微云,其中,物联网终端(IoT terminal)作为起始节点,发送支持移动边缘计算的服务功能链请求流SFCRi,该请求流需要依次被Cloudlet3上的防火墙、Cloudlet4上的入侵检测系统和Cloudlet5上的负载均衡器所处理,最终到达目的节点Src,则最终形成的请求流SFCRi服务功能链(SFC)的路由路径如图4所示。
可以理解的是,本发明通过以上方法不仅考虑了节点和链路的负载,实现了网络的负载均衡,还综合考虑了多种资源约束,例如微云上的CPU容量和链路上的剩余带宽。利用奖励与惩罚使得智能体自动选择资源消耗和延迟较小的微云和链路,并通过当物联网请求流被拒绝导致路由失败时设置较低的奖励值(例如设置为负值)来提高物联网请求流的接收率。利用训练好的神经网络,智能体可以快速响应在支持移动边缘计算的物联网网络中产生的物联网请求流,动态部署所需的VNF实例并找到最优路由路径。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本领域普通技术人员可以理解实现上述事实和方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,涉及的程序或者所述的程序可以存储于一计算机所可读取存储介质中,该程序在执行时,包括如下步骤:此时引出相应的方法步骤,所述的存储介质可以是ROM/RAM、磁碟、光盘等等。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。