一种基于群体智能的网络化软件共享资源分配方法及装置与流程

文档序号:23551123发布日期:2021-01-05 21:09阅读:128来源:国知局
一种基于群体智能的网络化软件共享资源分配方法及装置与流程

本发明属于信息技术及自动化技术领域,具体涉及一种基于群体智能的网络化软件共享资源分配方法及装置。



背景技术:

网络化软件(networkedsoftware),是一类以网络为基础,以信息或服务资源为元素,并以节点间的协同与互操作为构造手段的复杂软件系统,其结构和行为会随着网络的多变而动态演化。其中,网络化软件包括的各个网络化软件节点面对的参与者类型繁多、需求各异;因此,为了能够使网络化软件为参与者提供多元化、个性化、可信的服务,需要为网络化软件节点进行合理的共享资源分配。

现有的共享资源分配方法中,通常响应于用户上传的软件应用需求为网络化软件节点分配所需要的共享资源。这种分配方式没有考虑软件应用需求对共享资源需求的合理性,可能导致整个网络化软件资源利用不充分或能源浪费的情况出现。



技术实现要素:

为了合理的为网络化软件节点进行共享资源分配,提高资源利用率并降低资源浪费,本发明提供了一种基于群体智能的网络化软件共享资源分配方法。

本发明要解决的技术问题通过以下技术方案实现:

第一方面,本发明提供了一种基于群体智能的网络化软件共享资源分配方法,包括:

获取参与资源共享的各个网络化软件节点的运行状态信息,并根据所获取的运行状态信息,确定网络化软件节点群体的综合运行状态;

获取每个网络化软件节点的用户操作行为的信息熵集合,并根据所获取的信息熵集合预测每个网络化软件节点上即将发生的目标用户操作行为;

对所述网络化软件节点群体的服务质量进行评估,得到所述网络化软件节点群体的服务评估得分;

根据所述网络化软件节点群体的综合运行状态和服务评估得分,以及每个网络化软件节点的目标用户操作行为,确定共享资源分配方式;

当确定基于群体智能优化算法进行共享资源分配时,获取以各个网络化软件节点为顶点、并以每两个网络化软件节点之间的交互关系为边所预先构建的无向带权图;其中,所述边具有权值,所述边的权值根据网络化软件节点之间的交互关系所预先设定;

基于预先为各个网络化软件节点所分别设置的种群规模和所述无向带权图,对各个网络化软件节点进行基于群体智能优化算法的种群迭代,得到各个网络化软件节点的种群进化结果;

基于得到的各个网络化软件节点的种群进化结果进行共享资源分配。

可选地,所述基于预先为各个网络化软件节点所分别设置的种群规模和所述无向带权图,对各个网络化软件节点的种群进行基于群体智能优化算法的种群迭代,得到各个网络化软件节点的种群进化结果,包括:

基于预先为每个网络化软件节点设置的种群规模,对每个网络化软件节点的种群均运行一个群体智能优化算法,且在群体智能优化算法的迭代过程中,基于所述无向带权图对种群的适应度值进行更新,直至不同种群的粒子分布位置和适应度值在各自对应的误差精度下不再产生更新时,得到各个网络化软件节点的种群进化结果。

可选地,所述在群体智能优化算法的迭代过程中,基于所述无向带权图对种群的适应度值进行更新,包括:

针对每个网络化软件节点的种群,从所述无向带权图中获取该网络化软件节点所在的边的权值;并根据所获取的权值,更新该网络化软件节点的种群的适应度值。

可选地,所述基于各个网络化软件节点的种群进化结果进行共享资源分配,包括:

根据每个网络化软件节点的种群进化结果观测其种群的局部目标函数,得到每个网络化软件节点的局部最优解;

根据全部网络化软件节点的局部最优解,得到一个全局最优解;

当以最小资源分配为分配目标时,根据所述全局最优解,为每个网络化软件节点分配共享资源;当以单个网络化软件节点的资源需求为分配目标时,根据该网络化软件节点的局部最优解,为该网络化软件节点分配共享资源。

可选地,所述根据所获取的运行状态信息,确定网络化软件节点群体的综合运行状态,包括:

根据所获取的运行状态信息,构建网络化软件节点群体的运行状态评价信息;

根据所述运行状态评价信息,利用预设的阈值,确定所述网络化软件节点群体的综合运行状态。

可选地,所述运行状态信息包括:每个网络化软件节点的响应时延、内存使用率以及cpu使用率;

所述根据所获取的运行状态信息,构建网络化软件节点群体的运行状态评价信息,包括:

根据每个网络化软件节点的响应时延、内存使用率以及cpu使用率,构建网络化软件节点群体的状态评价三元组,作为网络化软件节点群体的运行状态评价信息;所述状态评价三元组表示为:

其中,cpu(t)代表单个网络化软件节点的所述cpu使用率,mem(t)代表单个网络化软件节点的所述内存使用率,res(t)代表单个网络化软件节点的所述响应时延,n代表全部网络化软件节点的数量,t代表所述响应时延、所述内存使用率以及所述cpu使用率的获取时刻。

可选地,所述根据所述运行状态评价信息,利用预设的阈值,确定所述网络化软件节点群体的综合运行状态,包括:

若所述状态评价三元组中的3个元素均不大于各自对应的阈值,确定所述网络化软件节点群体的综合运行状态为良好;

若所述状态评价三元组中有2个元素均不大于各自对应的阈值,确定所述网络化软件节点群体的综合运行状态为一般;

若所述状态评价三元组中有1个元素均不大于各自对应的阈值,确定所述网络化软件节点群体的综合运行状态为较差;

若所述状态评价三元组中3个元素均大于各自对应的阈值,确定所述网络化软件节点群体的综合运行状态为异常。

可选地,所述对所述网络化软件节点群体的服务质量进行评估,得到所述网络化软件节点群体的服务评估得分,包括:

获取每个网络化软件节点的成功响应概率以及信誉度;

按照预设的权重配比,对每个网络化软件节点的所述成功响应概率、所述信誉度以及所述响应时延求取加权和,得到每个网络化软件节点的服务评估得分;

根据所有网络化软件节点的服务评估得分,计算所述网络化软件节点群体的服务评估得分。

可选地,所述根据网络化软件节点群体的综合运行状态和服务评估得分,以及每个网络化软件节点的目标用户操作行为,确定共享资源分配方式,包括:

当所述网络化软件节点群体的服务评估得分不小于预设的得分阈值、综合运行状态不为较差或异常,且各个网络化软件节点的目标用户操作行为中不存在异常操作行为时,确定基于群体智能优化算法进行共享资源分配;否则,基于群体智能优化算法以外的其他参考方式进行共享资源分配。

第二方面,本发明提供了一种基于群体智能的网络化软件共享资源分配装置,所述装置包括:

获取和确定模块,用于获取参与资源共享的各个网络化软件节点的运行状态信息,并根据所获取的运行状态信息,确定网络化软件节点群体的综合运行状态;

用户行为预测模块,用于获取每个网络化软件节点的用户操作行为的信息熵集合,并根据所获取的信息熵集合预测每个网络化软件节点上即将发生的目标用户操作行为;

服务质量评估模块,用于对所述网络化软件节点群体的服务质量进行评估,得到所述网络化软件节点群体的服务评估得分;

资源分配方式确定模块,用于根据所述网络化软件节点群体的综合运行状态和服务评估得分,以及每个网络化软件节点的目标用户操作行为,确定共享资源分配方式;

无向带权图获取模块,用于当确定基于群体智能优化算法进行共享资源分配时,获取以各个网络化软件节点为顶点、并以每两个网络化软件节点之间的交互关系为边所预先构建的无向带权图;其中,所述边具有权值,所述边的权值根据网络化软件节点之间的交互关系所预先设定;

群体智能优化模块,用于基于预先为各个网络化软件节点所分别设置的种群规模和所述无向带权图,对各个网络化软件节点进行基于群体智能优化算法的种群迭代,得到各个网络化软件节点的种群进化结果;

共享资源分配模块,用于基于得到的各个网络化软件节点的种群进化结果进行共享资源分配。

可选地,所述群体智能优化模块,具体用于:

基于预先为每个网络化软件节点设置的种群规模,对每个网络化软件节点的种群均运行一个群体智能优化算法,且在群体智能优化算法的迭代过程中,基于所述无向带权图对种群的适应度值进行更新,直至不同种群的粒子分布位置和适应度值在各自对应的误差精度下不再产生更新时,得到各个网络化软件节点的种群进化结果。

可选地,所述群体智能优化模块,在群体智能优化算法的迭代过程中,基于所述无向带权图对种群的适应度值进行更新,包括:

针对每个网络化软件节点的种群,从所述无向带权图中获取该网络化软件节点所在的边的权值;并根据所获取的权值,更新该网络化软件节点的种群的适应度值。

可选地,所述共享资源分配模块,具体用于:

根据每个网络化软件节点的种群进化结果观测其种群的局部目标函数,得到每个网络化软件节点的局部最优解;

根据全部网络化软件节点的局部最优解,得到一个全局最优解;

当以最小资源分配为分配目标时,根据所述全局最优解,为每个网络化软件节点分配共享资源;当以单个网络化软件节点的资源需求为分配目标时,根据该网络化软件节点的局部最优解,为该网络化软件节点分配共享资源。

可选地,所述获取和确定模块,包括:运行状态信息获取子模块和综合运行状态确定子模块;

所述运行状态信息获取子模块,用于根据所获取的运行状态信息,构建网络化软件节点群体的运行状态评价信息;

所述综合运行状态确定子模块,用于根据所述运行状态评价信息,利用预设的阈值,确定所述网络化软件节点群体的综合运行状态。

可选地,所述运行状态信息包括:每个网络化软件节点的响应时延、内存使用率以及cpu使用率;

所述运行状态信息获取子模块,具体用于:

根据每个网络化软件节点的响应时延、内存使用率以及cpu使用率,构建网络化软件节点群体的状态评价三元组,作为网络化软件节点群体的运行状态评价信息;所述状态评价三元组表示为:

其中,cpu(t)代表单个网络化软件节点的所述cpu使用率,mem(t)代表单个网络化软件节点的所述内存使用率,res(t)代表单个网络化软件节点的所述响应时延,n代表全部网络化软件节点的数量,t代表所述响应时延、所述内存使用率以及所述cpu使用率的获取时刻。

可选地,所述综合运行状态确定子模块,具体用于:

若所述状态评价三元组中的3个元素均不大于各自对应的阈值,确定所述网络化软件节点群体的综合运行状态为良好;

若所述状态评价三元组中有2个元素均不大于各自对应的阈值,确定所述网络化软件节点群体的综合运行状态为一般;

若所述状态评价三元组中有1个元素均不大于各自对应的阈值,确定所述网络化软件节点群体的综合运行状态为较差;

若所述状态评价三元组中3个元素均大于各自对应的阈值,确定所述网络化软件节点群体的综合运行状态为异常。

可选地,所述服务质量评估模块,具体用于:

获取每个网络化软件节点的成功响应概率以及信誉度;

按照预设的权重配比,对每个网络化软件节点的所述成功响应概率、所述信誉度以及所述响应时延求取加权和,得到每个网络化软件节点的服务评估得分;

根据所有网络化软件节点的服务评估得分,计算所述网络化软件节点群体的服务评估得分。

可选地,所述资源分配方式确定模块,具体用于:

当所述网络化软件节点群体的服务评估得分不小于预设的得分阈值、综合运行状态不为较差或异常,且各个网络化软件节点的目标用户操作行为中不存在异常操作行为时,确定基于群体智能优化算法进行共享资源分配;否则,基于群体智能优化算法以外的其他参考方式进行共享资源分配。

第三方面,本发明提供一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;

存储器,用于存放计算机程序;

处理器,用于执行存储器上所存放的程序时,实现上述任一种基于群体智能的网络化软件共享资源分配方法所述的方法步骤。

第四方面,本发明提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一种基于群体智能的网络化软件共享资源分配方法所述的方法步骤。

在本发明的又一方面中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一种基于群体智能的网络化软件共享资源分配方法所述的方法步骤。

本发明提供的基于群体智能的网络化软件共享资源分配方法中,通过对整个网络化软件节点群体进行服务质量评估和运行状态进行评价,可以得到网络化软件节点群体的综合运行状态和服务评估得分;然后,基于该综合运行状态和服务评估得分以及每个网络化软件节点的目标用户操作行为,确定是否达到基于群体智能优化算法进行共享资源分配的条件,当条件满足时,基于对各个网络化软件节点进行基于群体智能优化算法的种群迭代得到的各个网络化软件节点的种群进化结果,实现为网络化软件节点的共享资源分配。在这个过程中,本发明兼顾了网络化软件群体本身的服务质量、综合运行状态以及每个网络化软件节点的目标用户操作行为,克服了现有技术在共享资源分配过程中按需分配的决策片面、经验匮乏等问题;并且,本发明基于群体智能优化算法为网络化软件节点分配共享资源,能够合理地为网络化软件节点分配最小化的共享资源,避免了资源浪费,提高了资源利用率。

以下将结合附图及对本发明做进一步详细说明。

附图说明

图1是本发明实施例提供的一种基于群体智能的网络化软件共享资源分配方法的流程示意图;

图2是图1所示方法中,基于群体智能的网络化软件共享资源分配方法的具体过程示意图;

图3示例性的示出了一个根据全部网络化软件节点的局部最优解,得到一个全局最优解的搜索示意图;

图4是本发明实施例提供的一种基于群体智能的网络化软件共享资源分配装置的结构示意图;

图5是本发明实施例提供的一种电子设备的结构示意图。

具体实施方式

下面结合具体实施例对本发明做进一步详细的描述,但本发明的实施方式不限于此。

为了合理的为网络化软件节点进行共享资源分配,提高资源利用率并降低资源浪费,本发明实施例提供了一种基于群体智能的网络化软件共享资源分配方法及装置;其中,本发明实施例提供的该方法可以应用于该装置中。在具体应用中,该电子设备可以是台式计算机、便携式计算机、服务器等。在此不作限定,任何可以实现本发明的电子设备,均属于本发明的保护范围。

首先,对本发明实施例提供的一种基于群体智能的网络化软件共享资源分配方法进行详细说明。如图1所示,该方法可以包括以下步骤:

s101:获取参与资源共享的各个网络化软件节点的运行状态信息,并根据所获取的运行状态信息,确定网络化软件节点群体的综合运行状态。

这里说的运行状态信息存在多种。示例性的,该运行状态信息可以包括每个网络化软件节点的响应时延、内存使用率以及cpu使用率等,并不局限于此。相应的,根据所获取的运行状态信息,确定网络化软件节点群体的综合运行状态的具体实现方式也存在多种;为了方案布局清晰,后续对根据所获取的运行状态信息,确定网络化软件节点群体的综合运行状态的具体实现方式进行举例说明。

可以理解的是,网络化软件节点群体即是由参与资源共享的各个网络化软件节点所组成的群体。

s102:获取每个网络化软件节点的用户操作行为的信息熵集合,并根据所获取的信息熵集合预测每个网络化软件节点上即将发生的目标用户操作行为。

在实际应用中,由于用户在不同的时刻对网络节点软件操作行为并不一样,所以可以按一定时长为周期进行用户操作行为的数据统计。例如,统计的周期可取1小时。如此,可得到包含用户行为频次和时间的数据表;然后,再按用户行为熵策略来计算各网络化软件节点的操作行为信息熵值,得到一个不规则的信息熵集合,从而可以基于该信息熵集合预测一定周期内用户对网络化软件节点的操作行为轨迹,即目标用户操作行为。

需要说明的是,该步骤s102中所示出的预测每个网络化软件节点上即将发生的目标用户操作行为的具体实现方式仅仅作为示例,并不构成对本发明实施例的限定。

s103:对网络化软件节点群体的服务质量进行评估,得到网络化软件节点群体的服务评估得分。

该步骤中,对网络化软件节点群体的服务质量进行评估的具体实现方式存在多种。示例性的,在一种实现方式中,针对每一个网络化软件节点,可以从网络化软件节点的响应速度、可靠性及信誉度三个方面来评价网络化软件节点的服务质量;具体的,用网络化软件节点的响应时间来衡量网络化软件节点的响应速度,该响应时间是指用户从发出应用请求消息到收到网络化软件节点的响应消息之间所历经的时间间隔;用网络化软件节点在最近一段时期内对应用请求实现成功响应的概率来衡量网络化软件节点的可靠性,例如,用一段预期时间内网络化软件节点对应用请求成功响应的次数除以网络化软件节点收到的应用求取的总次数,得到成功响应概率;利用网络化软件节点的用户对网络软件节点的满意度评价数据,来计算网络化软件节点的信誉度,例如可以计算所有历史满意度评价数据的平均值,作为网络化软件节点的信誉度;然后,按照预设的权重配比,对每个网络化软件节点的成功响应概率、信誉度以及响应时延求取加权和,得到每个网络化软件节点的服务评估得分。这样,便可以继续根据所有网络化软件节点的服务评估得分,计算网络化软件节点群体的服务评估得分;具体可以采用求和的方式或者求平均的方式来计算网络化软件节点群体的服务评估得分,本发明实施例不做具体限定。

需要说明的是,这里所示出的对网络化软件节点群体的服务质量进行评估的具体实现方式仅仅作为示例,并不构成对本发明实施例的限定;任何能够对网络化软件节点群体的服务质量进行评估的具体实现方式,均适用于本发明实施例中。

s104:根据网络化软件节点群体的综合运行状态和服务评估得分,以及每个网络化软件节点的目标用户操作行为,确定共享资源分配方式。

具体的,根据网络化软件节点群体的综合运行状态和服务评估得分,以及每个网络化软件节点的目标用户操作行为,确定是否满足基于群体智能优化算法进行共享资源分配的条件,如果满足,则基于群体智能优化算法进行共享资源分配,如果不满足,则可以基于群体智能优化算法以外的其他参考方式进行共享资源分配,或者不执行分配,这都是合理的。

具体而言,该步骤中,当网络化软件节点群体的服务评估得分不小于预设的得分阈值、综合运行状态不为较差或异常,且各个网络化软件节点的目标用户操作行为中不存在异常操作行为时,确定基于群体智能优化算法进行共享资源分配;否则,基于群体智能优化算法以外的其他参考方式进行共享资源分配或不执行分配。其中,基于群体智能优化算法以外的其他参考方式可以参见现有的共享资源分配方式,如按需分配的方式等,本发明实施例不做赘述。

s105:当确定基于群体智能优化算法进行共享资源分配时,获取以各个网络化软件节点为顶点、并以每两个网络化软件节点之间的交互关系为边所预先构建的无向带权图。

其中,无向带权图的各条边具有权值,该权值根据网络化软件节点之间的交互关系所预先设定,当且仅当两个网络化软件节点之间有交互关系时,该权值才不为0,否则该权值便等于0。该无向带权图可以表示为g(v,e);其中,v为网络化软件节点的集合v={v1,v2,...vi..,vn},vi为第i个网络化软件节点;e为网络化软件节点之间的边的集合,每条边上的权值可以用ε来表示;无向带权图的所有边的权值集合可以用一个权值矩阵w来表示,该权值矩阵w是一个对称矩阵,且满足的约束条件。

s106:基于预先为各个网络化软件节点所分别设置的种群规模和无向带权图,对各个网络化软件节点进行基于群体智能优化算法的种群迭代,得到各个网络化软件节点的种群进化结果。

具体的,基于预先为每个网络化软件节点设置的种群规模,对每个网络化软件节点的种群均运行一个群体智能优化算法,且在群体智能优化算法的迭代过程中,基于无向带权图对种群的适应度值进行更新,直至不同种群的粒子分布位置和适应度值在各自对应的误差精度下不再产生更新时,得到各个网络化软件节点的种群进化结果。

其中,基于无向带权图对种群的适应度值进行更新的具体实现方式可以是:针对每个网络化软件节点的种群,从无向带权图中获取该网络化软件节点所在的边的权值;并根据所获取的权值,更新该网络化软件节点的种群的适应度值。在实际应用中,对于每个网络化软件节点而言,在对其种群进行群体智能优化算法的迭代过程中,可以每迭代一次,获取一条该网络化软件节点所在的边的权值,并用所获取的权值更新该网络化软件节点的种群的适应度值。

另外,本发明实施例中,每个网络化软件节点的站群规模的大小可以根据经验而定。过小的种群规模运算开销小但搜索效率不高;较大的种群规模搜索效率高,但运算开销也大;优选地,网络化软件节点的种群规模可以在[20,40]的区间中取;对搜索效率要求高的场景下可以在[100,200]的区间中取。

s107:基于得到的各个网络化软件节点的种群进化结果进行共享资源分配。

具体的:

(1)根据每个网络化软件节点的种群进化结果观测其种群的局部目标函数,得到每个网络化软件节点的局部最优解;

(2)根据全部网络化软件节点的局部最优解,得到一个全局最优解;

(3)当以最小资源分配为分配目标时,根据该全局最优解,为每个网络化软件节点分配共享资源;当以单个网络化软件节点的资源需求为分配目标时,根据该网络化软件节点的局部最优解,为该网络化软件节点分配共享资源。

其中,局部最优解可以理解为以单个网络化软件节点的资源需求为分配目标时,该单个网络化软件节点所需的最小化资源量;全局最优解为一个向量,该向量中的各个元素就是以整个网络化软件节点群体的最小资源分配为分配目标时,各个网络化软件节点所需的最小化资源量。

基于步骤s101-s107所示的实施例可见,本发明兼顾了网络化软件群体本身的服务质量、综合运行状态以及每个网络化软件节点的目标用户操作行为,能够克服现有技术在共享资源分配过程中按需分配的决策片面、经验匮乏等问题;并且,本发明基于群体智能优化算法为网络化软件节点分配共享资源,能够合理地为网络化软件节点分配最小化的共享资源,避免了资源浪费,提高了资源利用率。

下面,对根据所获取的运行状态信息,确定网络化软件节点群体的综合运行状态的具体实现方式进行举例说明。示例性的,在一种实现方式中,根据所获取的运行状态信息,确定网络化软件节点群体的综合运行状态,可以包括:

(1)根据所获取的运行状态信息,构建网络化软件节点群体的运行状态评价信息;

(2)根据所述运行状态评价信息,利用预设的阈值,确定所述网络化软件节点群体的综合运行状态。

以运行状态信息包括每个网络化软件节点的响应时延、内存使用率以及cpu使用率为例而言,该步骤(1)中根据所获取的运行状态信息,构建网络化软件节点群体的运行状态评价信息,可以包括:

根据每个网络化软件节点的响应时延、内存使用率以及cpu使用率,构建网络化软件节点群体的状态评价三元组,作为网络化软件节点群体的运行状态评价信息;该状态评价三元组可以表示为:

其中,cpu(t)代表单个网络化软件节点的所述cpu使用率,mem(t)代表单个网络化软件节点的所述内存使用率,res(t)代表单个网络化软件节点的所述响应时延,n代表全部网络化软件节点的数量,t代表该响应时延、该内存使用率以及该cpu使用率的获取时刻。

相应的,该步骤(2)中根据状态评价三元组,利用预设的阈值,确定网络化软件节点群体的综合运行状态,可以包括:

若状态评价三元组中的3个元素均不大于各自对应的阈值,确定网络化软件节点群体的综合运行状态为良好;

若状态评价三元组中有2个元素均不大于各自对应的阈值,确定网络化软件节点群体的综合运行状态为一般;

若状态评价三元组中有1个元素均不大于各自对应的阈值,确定网络化软件节点群体的综合运行状态为较差;

若状态评价三元组中3个元素均大于各自对应的阈值,确定网络化软件节点群体的综合运行状态为异常。

在其他实现方式中,网络化软件节点的运行状态信息还可以包括更多种的信息,如应用请求数以及延迟未响应的请求数等等,这都是合理的。相应的,参见上述的状态评价三元组的形式构建状态评价多元组的方式,可以根据该状态评价多元组来确定网络化软件节点群体的综合运行状态;由此能够得到多种确定网络化软件节点群体的综合运行状态的具体实现方式,限于篇幅,本发明实施例不再赘述。

为了方案更为清楚,下面对本发明实施例中基于群体智能优化算法进行共享资源分配的具体实现过程进行详细说明。该示例中,假设是以最小资源分配为分配目标的。参见图2所示,该过程可以包括以下步骤:

s201:初始化各个网络化软件节点的种群以及运行群体智能优化算法所需的公共参数。

该步骤中,初始化各个网络化软件节点的种群,即是随机地初始化每个网络化软件节点的种群中的粒子的位置和速度其中,i为种群编号,j为单个种群中的粒子的编号,d代表资源维度,t为对向量求逆的符号。需要初始化的公共参数包括:网络化软件节点的个数n,种群规模mi,权值矩阵w,粒子群惯性权重ω,两个学习因子:认知要素c1和社会要素c2,粒子速度上界vmax,最大迭代次数、对不同种群的粒子分布位置进行一致性评估时的误差精度τ1,以及对不同种群的适应度值进行一致性评估时的误差精度τ2。

其中,惯性权重的取值介于[0,1]区间,通常采取自适应的取值方法,即初始时令ω=0.9,随着迭代次数的增加进行递减,当迭代结束时,ω=0.1。两个学习因子通常情况下设置为1.4961,当然,并不局限于此。

s202:按照预设的位置迭代更新公式和速度迭代更新公式,对每个网络化软件节点的种群中的粒子的速度和位置进行迭代更新。

该位置迭代更新公式为:

该速度迭代更新公式为:

其中,k代表迭代次数;分别表示种群i的第j个粒子的位置和速度;向量表示由种群i的第j个粒子找到的当前最佳位置;向量表示由种群i找到的最佳位置。

s203:在每次迭代完成时,对各个种群中粒子的分布位置进行一致性评估。当不同种群的粒子分布位置一致且在误差精度τ1下不再产生更新时,即当评估通过时,转入步骤s204;否则,评估不通过,根据权值矩阵w更新各个种群中粒子的适应度值,返回步骤s202。

具体的,根据局部终止规则进行一致性检查,若则转入步骤s204。否则,根据公式更新各个种群中粒子的适应度值,返回步骤s202。这里,代表目标函数,用于计算适应度值,t代表第t代种群。

s204:在每次迭代完成时,对各个种群中粒子的适应度值进行一致性评估。当不同种群的适应度值在误差精度τ2下不再产生更新且呈减小趋势时,即当评估通过时,结束迭代,得到各个网络化软件节点的种群进化结果;否则,评估不通过,根据权值矩阵w更新各个种群中粒子的适应度值,返回步骤s202。

具体的,当时,结束迭代,将此时各种群中粒子的位置和速度作为各个网络化软件节点的种群进化结果;否则,根据公式更新各个种群中粒子的适应度值,返回步骤s202。

s205:根据每个网络化软件节点的种群进化结果观测其种群的局部目标函数,得到每个网络化软件节点的局部最优解,并根据全部网络化软件节点的局部最优解,得到一个全局最优解。

图3示例性的示出了一个根据全部网络化软件节点的局部最优解,得到一个全局最优解的搜索示意图。图3中,每个网络化软件节点的种群规模均为m,任意一个网络化软件节点的局部最优解为得到的全局最优解为

s206:根据该全局最优解,为每个网络化软件节点分配共享资源。

具体的,以该全局最优解中的各个元素作为各个网络化软件节点所需的最小化资源,为各个网络化软件节点分配资源。

以上,完成对基于群体智能优化算法进行共享资源分配的具体实现过程的说明。

相应于上述的基于群体智能的网络化软件共享资源分配方法,本发明实施例还提供了一种基于群体智能的网络化软件共享资源分配装置,如图4所示,该装置可以包括:

获取和确定模块401,用于获取参与资源共享的各个网络化软件节点的运行状态信息,并根据所获取的运行状态信息,确定网络化软件节点群体的综合运行状态;

用户行为预测模块402,用于获取每个网络化软件节点的用户操作行为的信息熵集合,并根据所获取的信息熵集合预测每个网络化软件节点上即将发生的目标用户操作行为;

服务质量评估模块403,用于对所述网络化软件节点群体的服务质量进行评估,得到所述网络化软件节点群体的服务评估得分;

资源分配方式确定模块404,用于根据所述网络化软件节点群体的综合运行状态和服务评估得分,以及每个网络化软件节点的目标用户操作行为,确定共享资源分配方式;

无向带权图获取模块405,用于当确定基于群体智能优化算法进行共享资源分配时,获取以各个网络化软件节点为顶点、并以每两个网络化软件节点之间的交互关系为边所预先构建的无向带权图;其中,所述边具有权值,所述边的权值根据网络化软件节点之间的交互关系所预先设定;

群体智能优化模块406,用于基于预先为各个网络化软件节点所分别设置的种群规模和所述无向带权图,对各个网络化软件节点进行基于群体智能优化算法的种群迭代,得到各个网络化软件节点的种群进化结果;

共享资源分配模块407,用于基于得到的各个网络化软件节点的种群进化结果进行共享资源分配。

可选地,所述群体智能优化模块406,具体用于:

基于预先为每个网络化软件节点设置的种群规模,对每个网络化软件节点的种群均运行一个群体智能优化算法,且在群体智能优化算法的迭代过程中,基于所述无向带权图对种群的适应度值进行更新,直至不同种群的粒子分布位置和适应度值在各自对应的误差精度下不再产生更新时,得到各个网络化软件节点的种群进化结果。

可选地,所述群体智能优化模块406,在群体智能优化算法的迭代过程中,基于所述无向带权图对种群的适应度值进行更新,包括:

针对每个网络化软件节点的种群,从所述无向带权图中获取该网络化软件节点所在的边的权值;并根据所获取的权值,更新该网络化软件节点的种群的适应度值。

可选地,所述共享资源分配模块407,具体用于:

根据每个网络化软件节点的种群进化结果观测其种群的局部目标函数,得到每个网络化软件节点的局部最优解;

根据全部网络化软件节点的局部最优解,得到一个全局最优解;

当以最小资源分配为分配目标时,根据所述全局最优解,为每个网络化软件节点分配共享资源;当以单个网络化软件节点的资源需求为分配目标时,根据该网络化软件节点的局部最优解,为该网络化软件节点分配共享资源。

可选地,所述获取和确定模块401,包括:运行状态信息获取子模块和综合运行状态确定子模块;

所述运行状态信息获取子模块,用于根据所获取的运行状态信息,构建网络化软件节点群体的运行状态评价信息;

所述综合运行状态确定子模块,用于根据所述运行状态评价信息,利用预设的阈值,确定所述网络化软件节点群体的综合运行状态。

可选地,所述运行状态信息包括:每个网络化软件节点的响应时延、内存使用率以及cpu使用率;

所述运行状态信息获取子模块,具体用于:

根据每个网络化软件节点的响应时延、内存使用率以及cpu使用率,构建网络化软件节点群体的状态评价三元组,作为网络化软件节点群体的运行状态评价信息;所述状态评价三元组表示为:

其中,cpu(t)代表单个网络化软件节点的所述cpu使用率,mem(t)代表单个网络化软件节点的所述内存使用率,res(t)代表单个网络化软件节点的所述响应时延,n代表全部网络化软件节点的数量,t代表所述响应时延、所述内存使用率以及所述cpu使用率的获取时刻。

可选地,所述综合运行状态确定子模块,具体用于:

若所述状态评价三元组中的3个元素均不大于各自对应的阈值,确定所述网络化软件节点群体的综合运行状态为良好;

若所述状态评价三元组中有2个元素均不大于各自对应的阈值,确定所述网络化软件节点群体的综合运行状态为一般;

若所述状态评价三元组中有1个元素均不大于各自对应的阈值,确定所述网络化软件节点群体的综合运行状态为较差;

若所述状态评价三元组中3个元素均大于各自对应的阈值,确定所述网络化软件节点群体的综合运行状态为异常。

可选地,所述服务质量评估模块403,具体用于:

获取每个网络化软件节点的成功响应概率以及信誉度;

按照预设的权重配比,对每个网络化软件节点的所述成功响应概率、所述信誉度以及所述响应时延求取加权和,得到每个网络化软件节点的服务评估得分;

根据所有网络化软件节点的服务评估得分,计算所述网络化软件节点群体的服务评估得分。

可选地,所述资源分配方式确定模块404,具体用于:

当所述网络化软件节点群体的服务评估得分不小于预设的得分阈值、综合运行状态不为较差或异常,且各个网络化软件节点的目标用户操作行为中不存在异常操作行为时,确定基于群体智能优化算法进行共享资源分配;否则,基于群体智能优化算法以外的其他参考方式进行共享资源分配。

本发明实施例还提供了一种电子设备,如图5所示,包括处理器601、通信接口602、存储器603和通信总线604,其中,处理器601,通信接口602,存储器603通过通信总线604完成相互间的通信,

存储器603,用于存放计算机程序;

处理器601,用于执行存储器603上所存放的程序时,实现上述任一种基于群体智能的网络化软件共享资源分配方法所述的方法步骤。

上述电子设备提到的通信总线可以是外设部件互连标准(peripheralcomponentinterconnect,pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表征,图中仅用一条粗线表征,但并不表征仅有一根总线或一种类型的总线。

通信接口用于上述电子设备与其他设备之间的通信。

存储器可以包括随机存取存储器(randomaccessmemory,ram),也可以包括非易失性存储器(non-volatilememory,nvm),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。

上述的处理器可以是通用处理器,包括中央处理器(centralprocessingunit,cpu)、网络处理器(networkprocessor,np)等;还可以是数字信号处理器(digitalsignalprocessing,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

本发明还提供了一种计算机可读存储介质。在该计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时,实现上述任一种基于群体智能的网络化软件共享资源分配方法所述的方法步骤。

可选地,该计算机可读存储介质可以为非易失性存储器(non-volatilememory,nvm),例如为至少一个磁盘存储器。

可选的,所述计算机可读存储器还可以是至少一个位于远离前述处理器的存储装置。

在本发明的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一种基于群体智能的网络化软件共享资源分配方法所述的方法步骤。

需要说明的是,对于装置/电子设备/存储介质/计算机程序产品实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。此外,本领域的技术人员可以将本说明书中描述的不同实施例或示例进行接合和组合。

尽管在此结合各实施例对本申请进行了描述,然而,在实施所要求保护的本申请过程中,本领域技术人员通过查看所述附图、公开内容、以及所附权利要求书,可理解并实现所述公开实施例的其他变化。

本申请是参照本申请实施例的方法、装置(设备)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。

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