一种多段关键通信链路的分布式搜索方法与流程

文档序号:16544365发布日期:2019-01-08 20:44阅读:249来源:国知局

本发明涉及一种多段关键通信链路的分布式搜索方法,用于搜索多智能体系统中多段对系统连通度影响最大的链路集合,适用于系统拓扑未知,不包含中心节点,且节点数量巨大,单个节点的运算和存储能力有限的情形。



背景技术:

多智能体系统在现实生活中有广泛的应用,系统对于单一节点的性能要求较低,易于扩展。然而,由于缺少中心检测和监视节点,每个节点在系统中优先级相同,通过开放的因特网或者无线网络连接,系统容易受到外部攻击,而安全是系统运行的基础,系统安全问题变得越来越重要。多智能体系统面临着各种不同的攻击,比如欺骗攻击,数据注入攻击,拒绝服务攻击等等,攻击往往针对的是系统间的通信。相比于系统节点,系统间的通信链路暴露在开放的环境中,容易被截取或者干扰。因此,如何通过有效的方法搜索到对于多段关键通信链路,即其发生通信中断后系统性能下降最大,有重要意义,在保护资源受限制的条件下,优先保护关键通信链路,提高系统抗干扰的能力。

在多智能系统中,节点间的状态更新可以通过各种不同的协议实现。在本发明中考虑的是线性一致性更新协议。该协议由于其简单的信息交换方式,在多智能体系统中大量应用,其理论也最为成熟。线性一致性协议的具体实现方法是:在理想的通信环境下,系统中的每个节点接受来自邻居节点的信息,合上节点自身的信息,利用邻居和自身信息的线性组合作为更新后的信息,不断重复上述过程,节点的状态逐渐趋于稳定,到达一致性。

在多智能体系统中,节点并不是均匀分布,每个节点的重要性不相同,导致节点间的通信链路对于系统性能的重要性也不相同,部分节点间通信链路的中断可能对于系统无影响,但是某些节点间通信链路的中断会使系统性能迅速下降,可能使得系统无法稳定,无法实现一致性。当系统受到外部攻击时,会导致通信链路的中断,在保护资源受限制的情况下,无法保证所有的通信不受破坏。从设计者的角度出发,可以将系统中多段关键通信链路优先保护起来使之免受攻击,从而提高整个系统的抗干扰能力。

在描述对系统性能的影响时,选用代数连通度的下降量作为指标,即通信链路中断后与原系统的代数连通度差值。如果通信链路的中断导致代数连通度下降量大,说明通信链路对于系统关键。代数连通度决定线性一致性协议的收敛速度,当系统收敛速度过慢时,无法满足使用要求。当节点拥有全局信息时,可以直接通过拉普拉斯矩阵计算系统代数连通度的大小,但是在实际的分布式多智能体系统中,没有中心监控和管理节点,节点只能获取附近邻居的节点信息,无法得到系统全局信息。haoliu等人在文献(distributedidentificationofthemostcriticalnodeforaverageconsensus,ieeetransactionsonsignalprocessing2015.)中提出了使用代数连通度下降量作为节点重要性的评估方式,并提出了三类近似方法,用于估计单一节点的去除对于系统收敛速度的影响,并分析了分布式估计方法带来的估计误差,但是其未考虑节点间的单段以及多段通信链路的中断对于系统代数连通度的影响。arpitaghosh等人在文献(growingwell-connectedgraphs,decisionandcontrol,200645thieeeconferenceon.)中考虑了在已知全局信息时,考虑通信链路对系统代数连通度的影响,并使用半定规划方法求解规模较小的问题,解决代数连通度的优化问题。但是在实际应用中,各个节点无法获得全局信息,在分布式多智能系统中应用受到限制。同时,节点往往运算能力较弱,没有大量的计算资源和存储空间,只能进行简单的数据存储和数学运算。在这样的约束下,分布式算法可以让每个节点按照设计的协议进行状态更新,获取需要的信息用于决策,利用贪心思想,搜索多段关键通信链路。



技术实现要素:

本发明的目的是提供一种多段关键通信链路的分布式搜索方法,可以搜索到多段对于系统代数连通度影响最大的通信链路,便于系统设计者在保护资源受限制时可以根据重要性的不同优先保护关键通信链路。

本发明通过以下技术方案实现:

一种多段关键通信链路的分布式搜索方法,利用节点间的信息交互使得每个节点获取所需的feidler特征向量,根据该特征向量,每个节点计算出与邻居节点间通信链路的中断前后系统代数连通度差值,用以表征链路对于系统连通度的影响,搜索邻居节点中对于系统连通度影响最大的一段链路,即局部最优值;比较每个节点的局部最优值,获得全局最优值,将得到的全局最优值对应的通信链路移除;重复上述过程,将每次搜索到的通信链路合在一起,即为多段对于系统影响最大的通信链路。

进一步地,获取所需的feidler特征向量具体包括以下步骤:

步骤一、节点使用线性迭代算法更新一次状态,即

mi(k)表示的是k时刻,第i个节点的状态值;ni为节点i所有相邻节点的集合;

步骤二、系统中节点使用下式进行状态更新:

其中δ为步长,mi(k+1)作为初值,进行一次分布式最大值求解得到max(mi(k+1)),使用mi(k+1)/max(mi(k+1))作为下一次状态更新的初始值;

步骤三、重复上述过程,mi(k)逐渐收敛,所有节点的[m1(k)m2(k)…mn(k)]即为feidler向量。

进一步地,所述搜索对于系统连通度影响最大的一段链路采用以下方式:每个节点计算与邻居节点的mi(k)差值的绝对值,mi(k)表示的是k时刻第i个节点的状态值,找到||mi(k)-mj(k)||最大值对应的边,将(i,j)存储到ei第一个元素中,作为局部最关键的通信链路,将||mi(0)-mj(0)||存储到ei的第二个元素中,ei是第i个节点用于存储其与邻居之间对代数连通度影响最大的通信链路。

进一步地,所述获得全局最优值采用以下方式:将ei作为初值,重新进行分布式最大值算法,搜索ei最大值,当系统收敛时,每个节点获得全局最大值max(ei)对应的通信链路(i,j),将通信链路的信息存储在ki中,ki是第i个节点用于存储系统所有通信链路中对连通度影响最大的链路。

本发明的有益效果:

本发明能够实现单段通信链路的分布式搜索,当考虑到一组通信链路集的移除,使得系统的代数连通度下降最大,这是一个组合优化问题,问题的复杂度会随着系统规模的增加而增大,当系统中包含大量节点时,问题变得不可求解。为降低问题的计算复杂度,本发明不去遍历所有可能的通信链路组合,而是每次搜索一段对当前系统代数连通度影响最大的链路,记录下该通信链路,然后将通信链路移除,重新搜索移除通信链路后的系统,在新系统中找一段对当前系统代数连通度影响最大的链路,然后重复上述过程,将记录下的通信链路合在一起,即为对系统连通度影响最大的多段通信链路。

具体实施方式

本发明的原理是:本发明中要计算的feidler向量为系统拉普拉斯矩阵的特征向量,其对应的特征值即为代数连通度。系统每一次状态更新可以视为状态向量左乘拉普拉斯矩阵一次,代数连通度是拉普拉斯矩阵最小的非零特征值,状态更新的过程与幂法计算特征值和特征向量类似,通过设计合适的更新协议,可以使得每个节点获取feidler特征向量。利用特征向量可以线性近似通信中断对于系统代数连通度的影响,进一步搜索到当前最关键的通信链路,即对系统性能影响最大的一段。利用贪心思想,每次找到当前最优的通信链路,将每一步的搜索到的通信链路合在一起构成问题的解决方案,问题的计算复杂度迅速降低。

本实施例的一种多段关键通信链路的分布式搜索方法,包括feidler特征向量的分布式计算,全局最优值的求解和依据贪心思想过程重复;利用给定的信息更新协议,节点通过与邻居节点交互,获取feidler特征向量,用feidler特征向量的元素的差值可以近似表征节点间通信链路的中断对于系统性能的影响。系统逐渐收敛,每个节点获得了对于feidler向量的元素的估计,利用feidler特征向量获取局部最关键的通信链路,即与邻居间的通信链路的中断对于系统代数连通度影响最大的一段。使用最大值一致性算法,将节点的局部最优值作为初值,进行分布式最大值更新,使每个节点获得全局对于连通度影响较大的通信链路。获得当前的对系统性能影响最大的通信链路后,中断该段通信链路,重复上述的算法,即利用贪心思想,找到当前最优的通信链路,将每一步的通信链路合在一起构成该问题的一个解决方案。

特征向量的求取使用的是幂法,即随机选取初始向量,左乘待求矩阵,将得到的向量归一化,重复上述步骤,则向量收敛于待求矩阵最大特征值对应的特征向量。然而,fiedler向量不是最大特征值对应的向量,不能直接使用幂法进行估计,需要利用拉普拉斯矩阵,构造新的待求矩阵,使得新矩阵的最大特征值对应的向量是feidler向量。

构造过程如下:

c=i-δl-1*1t/n

其中,i为单位矩阵,l为拉普拉斯矩阵,δ∈(0,λn),1所有元素均为一的向量,n为系统中包含节点的数量。根据矩阵论,拉普拉斯矩阵的fiedler特征向量变成了新矩阵最大特征值对应的向量。虽然每个节点没有包含系统拉普拉斯矩阵信息,但是信息其实编码在图的拓扑本身。每次节点使用线性更新策略与邻居节点交互信息时,相当于节点状态变量左乘了一次拉普拉斯矩阵。定义作为fiedler向量第k次迭代的估计值,根据幂法,每个节点的更新策略为对于每个节点而言,更新策略为

上面更新策略中,前两部分仅仅需要节点本身的信息和邻居节点的信息,但是最后一部分却需要全局信息。由于幂法对于初始向量无严格约束,因此,通过选择合适的初始向量,避免最后一部分的更新计算。设置其中b为随机向量,因为1t是拉普拉斯矩阵对应零特征值的特征向量,所以对于迭代无影响,新的初始值对应的节点更新策略为

除了左乘矩阵c,向量还需要归一化处理,分布式归一化难以实现,使用当前求出的特征向量估计值中最大的元素进行归一化,

通过多次迭代,将逐渐收敛于fiedler特征向量。

具体的实现步骤包括:

1、每个节点通过分布式更新策略,计算出全局特征向量,利用fiedler向量对节点间通信的重要性进行估计。具体的算法如下:对于第i节点,分配一部分存储空间,定义变量mi作为fiedler向量估计值的第i个元素,ei存储局部最关键的通信链路,ki存储全局最关键的通信链路,mi是一个标量,使用随机值初始化,ei是一个二维向量,其中,一个元素存储最重要的局部通信链路的标签,另一个元素存储其移除对于系统代数连通度的影响。ki是一个自增长的向量,每完成一次完整的更新,会有新的元素加入其中,ki即为系统中多段通信链路的标签。

2、节点使用线性迭代算法更新一次状态,即这是为了避免计算需要全局信息而进行的初始化。

3、系统中节点开始状态更新,使用更新,完成更新后,节点使用mi(k+1)作为初值,进行一次分布式最大值求解,找到max(mi(k+1)),使用mi(k+1)/max(mi(k+1))作为下一次状态更新的初始值,使得mi(k)收敛于fiedler特征向量。

4、每个节点计算与邻居节点的mi(k)差值的绝对值,找到||mi(0)-mj(0)||最大值对应的边,将(i,j)存储到ei的第一个元素中,作为局部最关键的通信链路,将||mi(0)-mj(0)||存储到ei的第二个元素中。

5、将ei作为初值,重新进行分布式最大值算法,搜索ei最大的值,当系统收敛时,每个节点获得全局最大值max(ei)对应的通信链路(i,j),将通信链路的信息存储在ki中。

6、利用ki的信息,节点得到全局最关键的通信链路的信息。当节点的局部最优和全局最优值是相同时,即该节点与对应邻居间的通信的中断对于系统连通度影响最大,节点中断该通信链路,开始新的迭代,算法从第2步开始重复上述过程,每次搜索当前网络拓扑中对于系统代数连通度影响最大的通信链路,多次后即可得到多段通信链路的中断对于系统性能的影响。

以上所述的仅为本发明的较佳实施例而已,本发明不仅仅局限于上述实施例,凡在本发明的精神和原则之内所做的局部改动、等同替换、改进等均应包含在本发明的保护范围之内。

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