一种邻近协作网络的邻对计算自分配方法转让专利

申请号 : CN201610979920.1

文献号 : CN106534295B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王晓初孙婷尹航王宇浩

申请人 : 中国空间技术研究院

摘要 :

本发明提出一种邻近协作网络的邻对计算自分配方法,属于信号处理技术领域。该方法首先对于每个当前智能体,依次建立比较变量,能力变量,拓扑变量,分配变量,负担变量和承受变量;然后通过当前智能体与邻近智能体通信,根据邻对间比较变量大小比较的结果,对分配变量进行初始化赋值;随后,根据分配结果是否依赖于计算能力对初始化赋值后的分配变量进行迭代更新;最后,按照计算能力的分辨率对迭代更新完成后的分配变量进行四舍五入,其结果确定为分配变量的最终值,完成邻近协作网络的邻对计算自分配。本发明适用于任意规模的连通的由多智能体组成的邻近协作网络,通过分布式的方式实现全局优化的自分配。

权利要求 :

1.一种邻近协作网络的邻对计算自分配方法,该方法首先对于每个当前智能体,依次建立比较变量,能力变量,拓扑变量,分配变量,负担变量和承受变量;然后通过当前智能体与邻近智能体通信,根据邻对间比较变量大小比较的结果,对分配变量进行初始化赋值;随后,根据分配结果是否依赖于计算能力对初始化赋值后的分配变量进行迭代更新;最后,按照计算能力的分辨率对迭代更新完成后的分配变量进行四舍五入,其结果确定为分配变量的最终值,完成邻近协作网络的邻对计算自分配;其特征在于,该方法包括以下步骤:

1)建立变量;

记多智能体数量是M个,对于每个标记序号为i的当前智能体,依次建立比较变量,能力变量,X个拓扑变量,Y个分配变量,Z个负担变量和承受变量;其中,X,Y,Z均为正整数,且X,Y,Z分别小于等于M-1;具体步骤如下:

1-1)使用随机数生成比较变量ri,ri为实数;

1-2)根据当前智能体i对计算负荷的最大承受能力,以计算负荷相同的度量标准为度量单位,生成能力变量ci,ci为正实数;

1-3)对当前智能体i与其他智能体的通信连接情况进行判断:对每一个与智能体i互相通信的邻近智能体j,分别建立一个与之对应的拓扑变量aij,并根据连接强度对拓扑变量aij赋值,满足aij>0;而对于未能与智能体i互相通信的任何其他智能体h,令对应的拓扑变量aih=0;拓扑变量的总数为X个;

1-4)对每一个与当前智能体i互相通信的邻近智能体j,分别建立一个与之对应的分配变量 分配变量 初始值均为0,同时根据邻对智能体之间协作计算的计算量生成负担变量 为正实数;分配变量的总数为Y个,负担变量的总数为Z个;

1-5)建立承受变量bi,承受变量bi初始值为0;

2)初始化分配变量;

当前智能体通过与邻近智能体通信进行邻对间比较变量的广播发送与接收,根据邻对间比较变量的大小对步骤1-4)的分配变量进行初始化赋值,具体包括以下步骤:

2-1)当前智能体i广播发送比较变量ri,并接收每一个邻近智能体j所广播发送的比较变量rj;

2-2)当前智能体根据自身的比较变量ri和每一个接收的比较变量rj的大小对比,对分配变量 初始化赋值,具体规则如下:如果ri>rj,则 如果ri<rj,则如果ri=rj,则重复步骤1-1),当前智能体i重新生成比较变量ri后,进行步骤2)直到初始化赋值成功;其中ε为修正因子;

3)迭代更新分配变量;

当前智能体与邻近智能体进行通信,并根据分配结果是否依赖于计算能力而对分配变量进行N次迭代更新,N为正整数,每次迭代过程包括以下具体步骤:

3-1)根据分配变量的当前迭代值,更新当前智能体i的承受变量bi,函数表达式如式(1)所示:其中 表示智能体i的全部邻近智能体;分配变量首次迭代开始时,分配变量的当前迭代值为步骤2)得到的分配变量的初始化赋值;

3-2)如果分配结果独立于智能体的计算能力,则进行步骤3-2-1);如果分配结果依赖于智能体的计算能力,则进行步骤3-2-2);

3-2-1)当前智能体i广播发送步骤3-1)计算得到的承受变量bi,并接收每一个邻近智能体j所广播发送的承受变量bj;当前智能体i根据自身的承受变量bi和每一个接收的承受变量bj,按算法协议A1对分配变量 进行迭代,算法协议A1如式(2)所示:其中, 是迭代后的分配变量;κi是保证算法协议收敛的收缩因子且

3-2-2)当前智能体i广播发送承受变量bi和能力变量ci,并接收每一个邻近智能体j所广播发送的承受变量bj和能力变量cj;当前智能体i根据自身的承受变量bi、能力变量ci和每一个接收的承受变量bj、能力变量cj,按算法协议A2对分配变量 进行迭代,算法协议A2如式(3)所示:

3-3)对每次迭代后的分配变量进行区间约束处理,如式(4)和式(5)所示:式(4)和式(5)同时约束分配变量,使迭代后的分配变量既不大于对应的负担变量也不小于0,并作为下一次迭代开始时的分配变量的当前迭代值;

4)确定分配变量;

按照计算能力的分辨率对步骤3)完成N次迭代后的分配变量进行四舍五入,其结果确定为分配变量的最终值,完成邻近协作网络的邻对计算自分配。

说明书 :

一种邻近协作网络的邻对计算自分配方法

技术领域

[0001] 本发明属于信号处理技术领域,特别涉及一种邻近协作网络的邻对计算自分配方法。

背景技术

[0002] 随着社会需求的快速增长和科学技术的不断进步,邻近协作的网络化协同工作成为智能体未来研究发展的重要方向。多智能体邻近协作网络是由多个智能体通过邻近的通信与交互而组成的协作系统,允许通信拓扑结构中存在通信交互关系的邻近的智能体之间进行协作。多智能体邻近协作网络是目前多智能体系统通常采用的组织及工作方式之一,尤其是对于具有较大规模数量的多智能体系统而言,邻近协作网络可以有效提升多智能体系统的功能性、灵活性、鲁棒性及可扩展性等诸多方面。多智能体邻近协作网络工作的优势在于,多个相对简单低价的智能体可以通过协同工作实现原本复杂昂贵的单一智能体具备的功能,例如综合孔径观测相机、云计算平台等,具有低成本、高鲁棒、易维护、可重构等优点。
[0003] 任意的邻对智能体在交互与协作任务的过程中都会产生相应的计算量,也就是邻对计算。邻对计算需要由组成邻对的两个智能体按比例分配承担,而分配方式的不同会直接影响多智能体系统的效率及性能。因此,如何确定邻对计算的分配方式是这种多智能体系统发展应用的关键问题之一。现有技术方案中,大多采用集中式优化方法进行邻对计算的分配,例如采用遗传算法、模拟退火算法等,但是这种集中式优化方法需要全局统筹计算,不利于分散式处理;也有部分技术方案采用某些分散式的优化方法进行邻对计算的分配,例如根据预先给定或经全局通信确定的某个目标函数进行分散式优化,但是这些分散式优化方法通常具有局限性,例如或仅针对于特定问题、或依赖非邻近协作导致增加系统负担与计算复杂性、或难以保证优化的全局性与收敛性等,不利于多智能体邻近协作网络应用中期望的自动性、灵活性和广泛适用性。

发明内容

[0004] 本发明的目的是为克服已有技术的不足之处,提供一种邻近协作网络的邻对计算自分配方法。本发明方法适用于任意规模的连通的由多智能体组成的邻近协作网络,能够使得整个多智能体邻近协作网络的邻对计算通过分布式的方式实现全局优化的自分配。
[0005] 本发明提出的一种近协作网络的邻对计算自分配方法,其特征在于,该方法首先对于每个当前智能体,依次建立比较变量,能力变量,拓扑变量,分配变量,负担变量和承受变量;然后通过当前智能体与邻近智能体通信,根据邻对间比较变量大小比较的结果,对分配变量进行初始化赋值;随后,根据分配结果是否依赖于计算能力对初始化赋值后的分配变量进行迭代更新;最后,按照计算能力的分辨率对迭代更新完成后的分配变量进行四舍五入,其结果确定为分配变量的最终值,完成邻近协作网络的邻对计算自分配。该方法包括以下步骤;
[0006] 1)建立变量;
[0007] 记多智能体数量是M个,对于每个标记序号为i的当前智能体,依次建立比较变量,能力变量,X个拓扑变量,Y个分配变量,Z个负担变量和承受变量;其中,X,Y,Z均为正整数,且X,Y,Z分别小于等于M-1;具体步骤如下:
[0008] 1-1)使用随机数生成比较变量ri,ri为实数;
[0009] 1-2)根据当前智能体i对计算负荷的最大承受能力,以计算负荷相同的度量标准为度量单位,生成能力变量ci,ci为正实数;
[0010] 1-3)对当前智能体i与其他智能体的通信连接情况进行判断:对每一个与智能体i互相通信的邻近智能体j,分别建立一个与之对应的拓扑变量aij,并根据连接强度对拓扑变量aij赋值,满足aij>0;而对于未能与智能体i互相通信的任何其他智能体h,令对应的拓扑变量aih=0;拓扑变量的总数为X个;
[0011] 1-4)对每一个与当前智能体i互相通信的邻近智能体j,分别建立一个与之对应的分配变量 分配变量 初始值均为0,同时根据邻对智能体之间协作计算的计算量生成负担变量 为正实数;分配变量的总数为Y个,负担变量的总数为Z个;
[0012] 1-5)建立承受变量bi,承受变量bi初始值为0;
[0013] 2)初始化分配变量;
[0014] 当前智能体通过与邻近智能体通信进行邻对间比较变量的广播发送与接收,根据邻对间比较变量的大小对步骤1-4)的分配变量进行初始化赋值,具体包括以下步骤:
[0015] 2-1)当前智能体i广播发送比较变量ri,并接收每一个邻近智能体j所广播发送的比较变量rj;
[0016] 2-2)当前智能体根据自身的比较变量ri和每一个接收的比较变量rj的大小对比,对分配变量 初始化赋值,具体规则如下:如果ri>rj,则 如果ri<rj,则如果ri=rj,则重复步骤1-1),当前智能体i重新生成比较变量ri后,进行步骤2)直到初始化赋值成功;其中ε为修正因子;
[0017] 3)迭代更新分配变量;
[0018] 当前智能体与邻近智能体进行通信,并根据分配结果是否依赖于计算能力而对分配变量进行N次迭代更新,N为正整数,每次迭代过程包括以下具体步骤:
[0019] 3-1)根据分配变量的当前迭代值,更新当前智能体i的承受变量bi,函数表达式如式(1)所示:
[0020]
[0021] 其中Ni表示智能体i的全部邻近智能体;分配变量首次迭代开始时,分配变量的当前迭代值为步骤2)得到的分配变量的初始化赋值;
[0022] 3-2)如果分配结果独立于智能体的计算能力,则进行步骤3-2-1);如果分配结果依赖于智能体的计算能力,则进行步骤3-2-2);
[0023] 3-2-1)当前智能体i广播发送步骤3-1)计算得到的承受变量bi,并接收每一个邻近智能体j所广播发送的承受变量bj;当前智能体i根据自身的承受变量bi和每一个接收的承受变量bj,按算法协议A1对分配变量 进行迭代,算法协议A1如式(2)所示:
[0024]
[0025] 其中, 是迭代后的分配变量;κi是保证算法协议收敛的收缩因子且
[0026] 3-2-2)当前智能体i广播发送承受变量bi和能力变量ci,并接收每一个邻近智能体j所广播发送的承受变量bj和能力变量cj;当前智能体i根据自身的承受变量bi、能力变量ci和每一个接收的承受变量bj、能力变量cj,按算法协议A2对分配变量 进行迭代,算法协议A2如式(3)所示:
[0027]
[0028] 3-3)对每次迭代后的分配变量进行区间约束处理,如式(4)和式(5)所示:
[0029]
[0030]
[0031] 式(4)和式(5)同时约束分配变量,使迭代后的分配变量既不大于对应的负担变量也不小于0,并作为下一次迭代开始时的分配变量的当前迭代值;
[0032] 4)确定分配变量;
[0033] 按照计算能力的分辨率对步骤3)完成N次迭代后的分配变量进行四舍五入,其结果确定为分配变量的最终值,完成邻近协作网络的邻对计算自分配。
[0034] 本发明的特点及有益效果是:
[0035] 本发明可以适用于任意规模的连通的由多智能体组成的邻近协作网络,方法具有分布式并发的特点,不因智能体网络规模的增大而变化,具有良好的扩展性;根据该方法,每一对邻对智能体间按照协议自行进行局部的邻对计算分配,并通过分布式迭代使得系统网络中全部的邻对计算得到优化分配,最终分配结果等效于集中式方法下的全局最优分配结果。本方法可以通过严格数学方法证明其具有全局收敛的稳定性,能够得到确定性的全局优化配置结果,配置结果根据实际需求既可以独立于计算能力也可以依赖于计算能力,并且配置方法可以避免常规数值计算所可能产生的数值不确定性;

附图说明

[0036] 图1是本发明方法的总体流程框图。
[0037] 图2是本发明实施例的多智能体网络中智能体间的通信拓扑关系示意图。
[0038] 图3是本发明实施例中根据算法协议A1分配前后的各智能体所承受计算量的对比图。
[0039] 图4是本发明实施例中根据算法协议A2分配前后的各智能体所承受计算量的对比图。

具体实施方式

[0040] 本发明提出的一种邻近协作网络的邻对计算自分配方法,下面结合附图和具体实施例进一步说明如下。
[0041] 本发明提出的一种邻近协作网络的邻对计算自分配方法,其流程框图如图1所示,包括以下步骤:
[0042] 1)建立变量;
[0043] 记多智能体数量是M个,对于每个标记序号为i的当前智能体,依次建立比较变量,能力变量,X个拓扑变量,Y个分配变量,Z个负担变量和承受变量;其中,X,Y,Z均为正整数,且X,Y,Z分别小于等于M-1;具体步骤如下:
[0044] 1-1)使用随机数生成比较变量ri,ri为实数;
[0045] 1-2)根据当前智能体i对计算负荷的最大承受能力,以计算负荷相同的度量标准为度量单位,生成能力变量ci,ci为正实数;
[0046] 1-3)对当前智能体i与其他智能体的通信连接情况进行判断:对每一个与智能体i互相通信的邻近智能体j,分别建立一个与之对应的拓扑变量aij;并根据连接强度对拓扑变量aij赋值,满足aij>0;而对于未能与智能体i互相通信的任何其他智能体h令对应的拓扑变量aih=0;拓扑变量的总数为X个;
[0047] 1-4)对每一个与当前智能体i互相通信的邻近智能体j,分别建立一个与之对应的分配变量 分配变量 初始值均为0,同时根据邻对智能体之间协作计算的计算量生成负担变量 为正实数;分配变量的总数为Y个,负担变量的总数为Z个;
[0048] 邻近概念指的是通信拓扑结构意义上的相邻,邻对概念指的是邻近的一对,即,如果智能体B可以与智能体A存在直接通信交互,那么智能体B是智能体A的邻近智能体,智能体A和B合称为一对邻对智能体。
[0049] 1-5)建立承受变量bi,承受变量是当前智能体i下所有分配变量之和,承受变量bi初始值为0;
[0050] 2)初始化分配变量;
[0051] 当前智能体通过与邻近智能体通信进行邻对间比较变量(即步骤1-1)确定的比较变量)的广播发送与接收,根据邻对间比较变量的大小对步骤1-4)的分配变量进行初始化赋值,具体包括以下步骤:
[0052] 2-1)当前智能体i广播发送比较变量ri,并接收每一个邻近智能体j所广播发送的比较变量rj;
[0053] 2-2)当前智能体根据自身的比较变量ri和每一个接收的比较变量rj的大小对比,对分配变量 初始化赋值,具体规则如下:如果ri>rj,则 如果ri<rj,则如果ri=rj,则重复步骤1-1),当前智能体i重新生成比较变量ri后进行步骤2)直
到初始化赋值成功;其中ε是为了避免后续数值计算不确定性的修正因子,是相对于计算能力分辨率的小量正数;
[0054] 3)迭代更新分配变量;
[0055] 当前智能体与邻近智能体进行通信,并根据分配结果是否依赖于计算能力而对分配变量进行N次迭代更新,其中N是取值大到能够保证迭代收敛的正整数,可通过经验或实验确定或设定为一个足够大的正整数,每次迭代过程包括以下具体步骤:
[0056] 3-1)根据分配变量的当前迭代值,更新当前智能体i的承受变量bi,函数表达式如式(1)所示:
[0057]
[0058] 其中Ni表示智能体i的全部邻近智能体;分配变量首次迭代开始时,分配变量的当前迭代值为步骤2)得到的分配变量的初始化赋值;
[0059] 3-2)如果希望分配结果独立于智能体的计算能力,也就是无论智能体承受计算负荷的能力大小,分配方案都按照最公平原则对智能体的邻对计算进行分配,则进行步骤3-2-1);如果希望分配结果依赖于智能体的计算能力,也就是根据智能体承受计算负荷的能力大小,有倾向地以能者多劳的原则对智能体的邻对计算进行分配,则进行步骤3-2-2);
[0060] 3-2-1)当前智能体i广播发送步骤3-1)计算得到的承受变量bi,并接收每一个邻近智能体j所广播发送的承受变量bj;当前智能体i根据自身的承受变量bi和每一个接收的承受变量bj,按算法协议A1对分配变量 进行迭代,算法协议A1如式(2)所示:
[0061]
[0062] 其中, 是迭代后的分配变量;κi是保证算法协议收敛的收缩因子且
[0063] 3-2-2)当前智能体i广播发送承受变量bi和能力变量ci,并接收每一个邻近智能体j所广播发送的承受变量bj和能力变量cj;当前智能体i根据自身的承受变量bi、能力变量ci和每一个接收的承受变量bj、能力变量cj,按算法协议A2对分配变量 进行迭代,算法协议A2如式(3)所示:
[0064]
[0065] 3-3)对每次迭代后的分配变量进行区间约束处理,如式(4)和式(5)所示:
[0066]
[0067]
[0068] 式(4)和式(5)同时约束分配变量,使迭代后的分配变量既不大于对应的负担变量也不小于0,从而保证分配变量具有物理意义,并作为下一次迭代开始时的分配变量的当前迭代值;
[0069] 4)确定分配变量;
[0070] 按照计算能力的分辨率对步骤3)完成N次迭代后的分配变量进行四舍五入(本专利中,分辨率指的是度量计算能力的最小单位和精度,四舍五入的位数与分辨率保持一致,例如如果最小单位或精度是0.1(份),那么分辨率就对应是0.1,四舍五入也对应只保留到小数点后1位使得四舍五入结果可以被分辨率整除),其结果确定为分配变量的最终值,完成邻近协作网络的邻对计算自分配。
[0071] 下面结合一个具体实施例对本发明进一步详细解释如下。本实施例以5个智能体组成系统为例,该系统中智能体通信拓扑关系示意图如图2所示,并分情况1与情况2两种情况进行分配,其中情况1是希望分配准则是独立于计算能力,对各智能体一视同仁,而情况2是希望按智能体的计算能力大小进行分配,各智能体能者多劳。
[0072] 图2中,5个智能体的通信拓扑关系是:邻对智能体共有5对,分别是智能体1和3,智能体2和3,智能体4和3,智能体5和3,智能体4和5,每对邻对中的两个智能体可以相互收发信息。
[0073] 1)每个智能体建立变量:以智能体1为例,依次建立比较变量r1,能力变量c1,4个拓扑变量a12、a13、a14、a15;其中,智能体3为智能体1的邻近智能体,则a13大于0,其余拓扑变量a12、a14和a15均等于0;智能体1的分配变量为 初始值为0;智能体1的负担变量为为正实数;以及承受变量b1;同理,对智能体2至5也是采用同样操作;具体步骤
如下:
[0074] 1-1)使用随机数生成比较变量ri,ri为实数;实例中5个智能体生成结果分别是r1=0.1,r2=0.2,r3=0.3,r4=0.4,r5=0.5;
[0075] 1-2)根据当前智能体对计算负荷的最大承受能力大小,以计算负荷相同的度量标准为度量单位,生成能力变量ci,ci为正实数;实例中5个智能体计算能力分别为6,6,100,6,6,则能力变量c1=c2=c4=c5=6,c3=100;
[0076] 1-3)对当前智能体i与其他智能体的通信连接情况进行判断:对每一个与智能体i互相通信的邻近智能体j,分别建立一个与之对应的拓扑变量aij;并根据连接强度对拓扑变量aij赋值,满足aij>0;而对于未能与智能体i互相通信的任何其他智能体h,令对应的拓扑变量aih=0;实例中由于通信拓扑关系如图2所示,因此生成的拓扑变量分别是a13=1,a12=a14=a15=0,a23=1,a21=a24=a25=0,a31=a32=a34=a35=1,a43=a45=1,a41=a42=0,a53=a54=1,a51=a52=0;
[0077] 1-4)对每一个与当前智能体i互相通信的邻近智能体j,分别建立一个与之对应的分配变量 分配变量 初始值均为0,同时根据邻对智能体之间协作计算的计算量生成负担变量 为正实数;实例中每对邻对智能体之间的协作计算量假设均为2
(份),生成分配变量是
负担
变量是 除此之外无需生成其他分配变量和负担变量,
但如果生成则全部赋值为0(例如 等);
[0078] 1-5)建立承受变量bi,承受变量bi初始值为0;实例中,生成的承受变量初始值是b1=b2=b3=b4=b5=0;
[0079] 2)初始化分配变量;
[0080] 当前智能体通过与邻近智能体通信进行邻对间比较变量的广播发送与接收,根据邻对间比较变量的大小对步骤1-4)的分配变量进行初始化赋值,具体包括以下步骤:
[0081] 2-1)当前智能体i广播发送比较变量ri,并接收每一个邻近智能体j所广播发送的比较变量rj;
[0082] 2-2)当前智能体根据自身的比较变量ri和每一个接收的比较变量rj的大小对比,对分配变量 初始化赋值,具体规则如下:如果ri>rj,则 如果ri<rj,则如果ri=rj,则重复步骤1-1),当前智能体i重新生成比较变量ri后进行步骤2)直
到初始化赋值成功,其中ε是为了避免后续数值计算不确定性的修正因子,是相对于计算能力分辨率的小量正数;
[0083] 实例中取修正因子ε=0.00001时,可得
[0084] 3)迭代更新分配变量;
[0085] 当前智能体与邻近智能体进行通信,并根据分配结果是否依赖于计算能力而对分配变量进行N次迭代更新,本实施例N取15次,每次迭代过程包括以下具体步骤:
[0086] 3-1)根据分配变量的当前迭代值,更新当前智能体i的承受变量bi,函数表达式如式(1)所示:
[0087]
[0088] 其中Ni表示智能体i的全部邻近智能体;本实施例首次迭代开始时,承受变量的值分别是b1=0.00000,b2=0.00000,b3=3.99998,b4=1.99999,b5=3.99998;
[0089] 3-2)如果希望分配结果独立于智能体的计算能力,也就是无论智能体承受计算负荷的能力大小,分配方案都按照最公平原则对智能体的邻对计算进行分配,则进行步骤3-2-1);如果希望分配结果依赖于智能体的计算能力,也就是根据智能体承受计算负荷的能力大小,有倾向地以能者多劳的原则对智能体的邻对计算进行分配,则进行步骤3-2-2);
[0090] 3-2-1)当前智能体i广播发送步骤3-1)计算得到的承受变量bi,并接收每一个邻近智能体j所广播发送的承受变量bj;当前智能体i根据自身的承受变量bi和每一个接收的承受变量bj,按算法协议A1对分配变量 进行更新,算法协议A1如式(2)所示:
[0091]
[0092] 其中, 是更新后的分配变量;κi是保证算法协议收敛的收缩因子且
[0093] 3-2-2)当前智能体i广播发送承受变量bi和能力变量ci,并接收每一个邻近智能体j所广播发送的承受变量bj和能力变量cj;当前智能体i根据自身的承受变量bi、能力变量ci和每一个接收的承受变量bj、能力变量cj,按算法协议A2对分配变量 进行迭代,算法协议A2如式(3)所示:
[0094]
[0095] 3-3)对每次迭代后的分配变量进行区间约束处理,如式(4)和式(5)所示:
[0096]
[0097]
[0098] 式4和5可以保证迭代后的分配变量既不大于负担变量也不小于0,使得分配变量具有明确的物理意义,并作为下一次迭代开始时的分配变量的当前迭代值;
[0099] 根据实际需求,如果希望分配结果独立于智能体的计算能力,则按照算法协议A1进行迭代;如果希望分配结果依赖于智能体的计算能力,则按照算法协议A2进行迭代。在本实施例中将情况1按算法协议A1进行迭代,情况2按算法协议A2进行迭代;并按步骤要求取收缩因子κ1=κ2=κ3=κ4=κ5=0.25。可以计算得到,两种情况下各迭代15次(其中15次是根据次数选取规则选取的),承受变量变化过程如下所示:
[0100] 情况1,按算法协议A1进行独立于计算能力的迭代过程如表1所示:
[0101]迭代次数\变量 b1 b2 b3 b4 b5
0 0.00000 0.00000 3.99998 1.99999 3.99998
1 1.00000 1.00000 1.99999 2.49999 3.49998
2 1.24999 1.24999 1.99999 2.62499 2.87499
3 1.43749 1.43749 1.99999 2.53124 2.59374
4 1.57812 1.57812 1.99999 2.41405 2.42968
5 1.68359 1.68359 1.99999 2.31444 2.31835
6 1.76269 1.76269 1.99999 2.23681 2.23778
7 1.82201 1.82201 1.99999 2.17785 2.17809
8 1.86651 1.86651 1.99999 2.13344 2.13350
9 1.89988 1.89988 1.99999 2.10009 2.10011
10 1.92491 1.92491 1.99999 2.07507 2.07508
11 1.94368 1.94368 1.99999 2.05630 2.05630
12 1.95776 1.95776 1.99999 2.04222 2.04223
13 1.96831 1.96831 1.99999 2.03167 2.03167
14 1.97623 1.97623 1.99999 2.02375 2.02375
15 1.98217 1.98217 1.99999 2.01781 2.01781
[0102] 表1按算法协议A1迭代过程中的承受变量表
[0103] 表1中,第1列为迭代次数的序号,每一行迭代次数对应的后5列体现了按协议算法A1进行相应迭代次数后的每个智能体承受变量的赋值结果,其中第0次的结果即为本实施例首次迭代开始时的承受变量赋值结果。
[0104] 其中进行第15次迭代后分配变量的值如表2所示:
[0105]
[0106]
[0107] 表2按算法协议A1迭代15次后的分配变量取值表
[0108] 情况2,按算法协议A2进行依赖于计算能力的迭代过程如表3所示
[0109]迭代次数\变量 b1 b2 b3 b4 b5
0 0.00000 0.00000 3.99998 1.99999 3.99998
1 0.00000 0.00000 7.99996 0.50000 1.49999
2 0.00000 0.00000 7.99996 0.75000 1.24999
3 0.00000 0.00000 7.99996 0.87500 1.12499
4 0.00000 0.00000 7.99996 0.93750 1.06249
5 0.00000 0.00000 7.99996 0.96875 1.03124
6 0.00000 0.00000 7.99996 0.98437 1.01562
7 0.00000 0.00000 7.99996 0.99218 1.00781
8 0.00000 0.00000 7.99996 0.99609 1.00390
9 0.00000 0.00000 7.99996 0.99804 1.00195
10 0.00000 0.00000 7.99996 0.99902 1.00097
11 0.00000 0.00000 7.99996 0.99951 1.00048
12 0.00000 0.00000 7.99996 0.99975 1.00024
13 0.00000 0.00000 7.99996 0.99987 1.00012
14 0.00000 0.00000 7.99996 0.99993 1.00006
15 0.00000 0.00000 7.99996 0.99996 1.00003
[0110] 表3按算法协议A2迭代过程中的承受变量表
[0111] 表3中,第1列为迭代次数的序号,每一行迭代次数对应的后5列体现了按协议算法A2进行相应迭代次数后的每个智能体承受变量的赋值结果,其中第0次的结果即为本实施例首次迭代开始时的承受变量赋值结果。
[0112] 其中进行第15次迭代后分配变量的值如表4所示:
[0113]
[0114] 表4按算法协议A2迭代15次后的分配变量取值表
[0115] 4)确定分配变量:按照计算能力的分辨率对步骤3)完成迭代后的分配变量进行四舍五入,其结果确定为分配变量的最终值,完成邻近协作网络的邻对计算自分配。
[0116] 本实施例中,分别对步骤3)两种情况的分配变量进行确定。假设计算能力的分辨率为1(份),则对分配变量进行四舍五入保留整数。确定后的分配变量,情况1确定的分配变量结果如表5所示:
[0117]
[0118] 表5按算法协议A1最终确定分配变量取值表
[0119] 从整体效果来看,情况1在分配前后各智能体承受的计算量对比如图3所示,在分配前,智能体3和5承担的计算量各是4(份),而智能体1、2和4承担的计算量各是0(份),采用算法协议A1分配后,智能体1-5承担的计算量均是2(份)。这表明在情况1下,由于分配是独立于计算能力的,因此尽管智能体1-5的计算能力不同,但最后各自承受了计算负担为2的计算量。因此全局上达到了平均分摊的效果,达到了预期的分配目的。
[0120] 同样,情况2的确定的分配变量结果如表6所示:
[0121]
[0122] 表6按算法协议A2最终确定分配变量取值表
[0123] 从整体效果来看,情况2在分配前后各智能体承受的计算量对比如图4所示,在分配前,智能体3和5承担的计算量各是4(份),而智能体1、2和4承担的计算量各是0(份),采用算法协议A2分配后,智能体1和2承担的计算量各是0(份),智能体4和5承担的计算量各是1(份),而智能体3承担的计算量是8(份)。并且根据表6可以看出,图4中智能体4和5各承担的1(份)计算量实际上是发生于智能体4和5之间的,无法由其他智能体代为承受并进一步优化分配,意味着这种分配结果是最优的。由于采用了算法协议A2,因此情况2下的分配是依赖于计算能力的,计算能力超强的智能体3承受了所有与其相关的邻对计算量,而智能体4和5由于计算能力相同,因此它们之间的邻对计算由智能体4和5平均承受,全局上达到了按计算能力大小分配计算量的效果,达成了预期的分配目的。