一种基于时间序列的动态多层耦合网络构建方法转让专利

申请号 : CN201910062498.7

文献号 : CN109840371B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 李大庆孙鹏飞姚安卓

申请人 : 北京航空航天大学

摘要 :

本发明提供一种基于时间序列的动态多层耦合网络构建方法,步骤有:步骤A:分析建模对象;步骤B:在线采样动态运行数据;步骤C:离线预处理动态运行数据;步骤D:动态多层耦合网络构建。本发明针对结构复杂、节点连边数量大,系统结构多层耦合、不同层次的运行信息采集机理差异大等系统复杂性,导致难以挖掘系统不同层次的耦合信息、不同层次的网络动态数据信息精度漂移较大等问题,直接机械地应用现有的单层动态网络构建方案会由于精度漂移问题导致构建出的动态网络模型不能如实反映系统真实运行状态。采用本发明的方法进行建模分析,可以更高精度地构建网络模型,快速地挖掘动态耦合关系,具有较高的可移植性,增强工程操作中的便利性。

权利要求 :

1.一种基于时间序列的动态多层耦合网络构建方法,其特征在于:其步骤如下:

步骤A:分析建模对象;

步骤B:在线采样动态运行数据;

步骤C:离线预处理动态运行数据;

步骤D:动态多层耦合网络构建;

其中,步骤A中所述的“建模对象”,其具体含义为:需要抽象为动态多层耦合网络进行分析的复杂系统;所述的“分析建模对象”,包括以下步骤:步骤A1:依据建模对象结构分层处理;

步骤A2:定义建模对象不同层次的节点;

步骤A3:定义网络同层的静态连边;

步骤A4:定义网络不同层次的静态耦合连边;

步骤A5:定义网络同层的动态连边;

步骤A6:确认动态运行数据采样工具;

其中,在步骤A1中所述的“依据建模对象结构分层处理”,其具体做法如下:对建模对象进行分析,依据建模对象的物理框架及逻辑框架中的一种对其进行分层处理,分别对应所需构建的动态多层耦合网络的层次关系,分层后的建模对象能清晰体现各个层次的依赖关系,设建模对象经过分层后共有n层,则对应的动态多层耦合网络模型应为n层;以嵌入式系统为例,能将其分为软件层与硬件层两层进行分析;

其中,在步骤A2中所述的“定义建模对象不同层次的节点”,其具体做法如下:分析建模对象的不同层次的属性与特征,确认能有效反应建模对象运行的节点;建模对象的不同层次,所对应的节点属性各不相同,嵌入式系统的软件层对应的节点能为软件模块、软件函数,硬件层对应的节点能为硬件各个硬件模块;

其中,在步骤A3中所述的“定义网络同层的静态连边”,其具体做法如下:静态分析建模对象同层次所有可能存在的交互关系,定义网络同层的静态连边;通过分析步骤A2所得的节点中同层节点间的属性与特征,建立同层静态拓扑结构;以嵌入式系统为例,其软件层步骤A2所定义的节点为软件模块、软件函数,则步骤A3所定义的网络同层的静态连边为其软件模块之间所有可能存在的调用关系;

其中,在步骤A4中所述的“定义网络不同层次的静态耦合连边”,其具体做法如下:分析建模对象跨层的耦合关系,统计所有可能存在的耦合连边,并将这些耦合连边信息写入耦合连边数据库;由于跨层动态数据难以采样且跨层的采样工具机制各不相同,直接动态实时监控耦合关系较难实现,故采用建立完整的耦合连边数据库,然后在后续“步骤D动态多层耦合网络构建”中,依靠该耦合连边数据库获取耦合连边集;

其中,在步骤A5中所述的“定义网络同层的动态连边”,其具体做法如下:定义多层耦合网络连边建立规则,即确定动态运行数据处于何值时多层耦合网络模型中的节点间建立连边,为接下来的在线获取建模对象动态运行数据提供支撑;以嵌入式系统软件层为例,设其内部模块间两个模块的调用频次为pij,当调用频次超过α次后,即pij>α,认为两个模块间具有调用关系,此时这两个模块间建立一条连边;

其中,在步骤A6中所述的“确认动态运行数据采样工具”,其具体做法如下:针对建模对象的不同层次的属性与特征,确认不同层次动态运行数据的追踪工具,嵌入式系统的软件层能采用代码插桩的方式获取动态运行数据,硬件层能通过逻辑分析工具对获取动态运行数据。

2.根据权利要求1所述的一种基于时间序列的动态多层耦合网络构建方法,其特征在于:步骤B中所述的“在线采样动态运行数据”,其具体含义为:通过在线监控建模对象不同层次的节点间互相作用的运行数据,为接下来的动态多层耦合网络构建提供数据支撑;包括以下步骤:步骤B1:数据采样工具开启;

步骤B2:执行测试用例;

步骤B3:保存动态运行数据;

其中,在步骤B1中所述的“数据采样工具开启”,其具体做法如下:同时开启步骤A4确认的动态运行数据采样工具对建模对象进行采样;在测试用例执行前开启数据采样工具,能保证在测试用例执行期间能完整记录建模对象动态运行数据;

其中,在步骤B2中所述的“执行测试用例”,其具体做法如下:开始执行针对建模对象的测试用例,根据建模需求不同,测试用例的复杂程度、激发手段各不相同,故需要按需执行所需的测试用例;

其中,在步骤B3所述的“保存动态运行数据”,其具体做法如下:在执行测试用例后,保存复数个数据采样工具的采样数据,为后续的步骤C离线预处理动态运行数据提供原始数据支撑。

3.根据权利要求1所述的一种基于时间序列的动态多层耦合网络构建方法,其特征在于:步骤C中所述的“离线预处理动态运行数据”,其具体含义为:通过对步骤B3保存的动态运行数据进行数据清洗、特征提取及精度校准,将原始动态运行数据离线处理为支撑步骤D构建动态多层耦合网络的数据信息;包括以下步骤:步骤C1:动态运行数据清洗;

步骤C2:动态运行数据校准;

步骤C3:按时间切片分割动态运行数据;

其中,在步骤C1中所述的“动态运行数据清洗”,其具体做法如下:利用正则表达式提取所有数据采样工具采集到的动态运行数据中建模对象不同层次的节点信息、节点间交互信息与时间信息,按时间序列并保存提取后的动态运行数据,若动态运行数据中存在缺失值,则进行均值填补操作;

其中,在步骤C2中所述的“动态运行数据校准”,其具体做法如下:由于数据采样工具可能存在的时钟误差,导致步骤C1清洗后的动态运行数据在时间序列上存在不一致,因此需要对动态运行数据时间序列校准,校准方式采用时间序列的互相关性或典型动作校准的方法,时间序列互相关性是一种在信号处理中常用的方法,互相关是两个序列相似度的度量,作为一个序列相对于另一个序列的位移的函数;这也被称为滑动点积、滑动内积,不同层次的动态运行数据发生耦合时具有相似的波形,故通过对齐相似波形的起始位校准动态运行数据;典型动作校准的原理为通过测试用例对建模对象施加一个突发扰动,而该扰动会在不同层次的动态运行数据中有所体现,以该扰动发生作为校准基准即对多层动态运行数据进行校准;

其中,在步骤C3所述的“按时间切片分割动态运行数据”,其具体做法如下:将时间序列校准后的动态运行数据按相同的时间间隔进行分割,分割后成为一组相同时间间隔的动态运行数据,即动态运行数据的时间切片,后续的步骤D动态多层耦合网络构建基于步骤C3得到的动态运行数据的时间切片;时间间隔的选取要适配建模对象的属性,交互频繁的建模对象,应选取短的时间间隔。

4.根据权利要求1所述的一种基于时间序列的动态多层耦合网络构建方法,其特征在于:步骤D中所述的“动态多层耦合网络构建”,其具体方法如下:根据步骤C3得到的动态运行数据的时间切片,建立动态多层耦合网络,计算动态多层耦合网络的动态统计特征;动态多层耦合网络是一组以时间为序的静态多层耦合网络的集合,每个静态多层耦合网络对应着一个动态运行数据的时间切片,设经过分割后的动态运行数据共有m片,则动态多层耦合网络中应包含m组静态多层耦合网络;由于节点间调用关系特别是耦合层的节点间调用关系存在方向性,故动态耦合网络的连边为有向连边,动态耦合网络为有向网络;包括以下步骤:步骤D1:依次提取时间切片中的节点集;

步骤D2:依次提取时间切片中的同层连边集;

步骤D3:依次提取时间切片中的耦合连边集;

步骤D4:计算动态多层耦合网络动态统计特征;

其中,在步骤D1所述的“依次提取时间切片中的节点集”,其具体做法如下:分别提取动态运行数据的时间切片中各层的节点信息,设建模对象共分为n层,故对于某时间间隔Tk下的静态多层耦合网络共有n组节点集,故时间间隔Tk下的节点集为其中,在步骤D2所述的“依次提取时间切片中的同层连边集”,其具体做法如下:分别提取动态运行数据的时间切片中各层的连边集,对于分为n层的建模对象,在某时间间隔Tk下的静态多层耦合网络中的同层连边集Lc(Tk),同层连边集共有n组,故时间间隔Tk下的同层连边集其中,在步骤D3所述的“依次提取时间切片中的耦合连边集”,其具体做法如下:对于分为n层的建模对象,在某时间间隔Tk下的静态多层耦合网络中首先遍历步骤D1提取的节点集的任意两个节点,然后在步骤A4建立的耦合连边数据库中查询是否存在这两个节点构成的连边,若存在,则写入耦合层连边集Ll(Tk);耦合层连边集最多有n*(n-1)组,故时间间隔Tk下的耦合层连边集结合 步 骤D 1 、D 2 、D 3 ,得 到 某时 间间 隔 T k下 静 态多 层 耦合 网 络对于共有m片时间切片的动态运行数据,其动态耦合网络应为

其中,在步骤D4所述的“计算动态多层耦合网络动态统计特征”,其具体做法如下:计算每个时间切片下的静态多层耦合网络的统计特征,接着汇总动态多层耦合网络的动态统计特征;对于具有m片时间切片的动态运行数据,依次计算每个时间间隔Tk下静态多层耦合网络G(Tk)的一组常用复杂网络统计指标为:网络规模、平均度及平均介数,然后汇总这m组指标构成动态多层耦合网络的动态统计特征。

说明书 :

一种基于时间序列的动态多层耦合网络构建方法

技术领域

[0001] 本发明提出了一种基于时间序列的动态多层耦合网络构建方法,它涉及一种基于时间序列的动态多层耦合网络构建方法,属于复杂性科学领域。

背景技术

[0002] 复杂网络理论作为一种抽象描述复杂系统整体结构与系统内部个体间交互规律的模型方法,成功应用于分析城市交通、互联网、生命科学、软件系统等多种结构复杂的系统。复杂网络具有网络规模庞大、连接结构复杂、节点属性复杂、演化过程复杂等特性,而由于计算机的计算能力不足,以往复杂网络理论多应用于分析系统的静态拓扑特性。物理信息系统、嵌入式系统等复杂系统抽象而成的多层耦合网络相比于传统复杂网络模型,其系统拓扑结构更为复杂,且多层网络之间存在耦合交互的情况,系统的非线性特性更为突出,耦合特性动态传播,导致更难预测系统运行结果。仅复杂系统的静态网络指标不能完整反映系统的实际运行特征,对系统的多层耦合网络的动态特性进行挖掘和分析成为研究的重点。
[0003] 分析多层耦合网络的动态特性首先需要构建动态网络模型,由于复杂系统的结构复杂、节点连边数量庞大,系统结构多层耦合、不同层次的运行信息采集机理差异较大等系统复杂性,导致难以挖掘系统不同层次的耦合信息、不同层次的网络动态数据信息精度漂移较大等瓶颈问题。例如分析嵌入式系统的故障传播时需要对嵌入式软件层的函数、模块调用信息与硬件层的模块性能信息分别进行动态采集,软件层信息采集方式基于软件插桩进行获取,硬件层的采集方式基于实时电压、电流、温度等物理信息获取,采集得到的数据时间精度差距较大,且不同数据起始时间存在较大误差,如何校准不同层次的网络运行数据,获取不同层次的耦合动态信息,构建可以如实反映系统动态运行机理的动态多层耦合网络,是耦合动态网络构建的关键技术。
[0004] 本发明针对于以上的问题提出了一种有效的解决方案。本方案主要对如何构建动态多层耦合网络提出了一套解决方案,首先在线采集不同层次网络模型的动态运行数据、接着离线对运行数据基于时间序列校准,然后对多层网络数据进行时间切片处理,最后构建动态多层耦合网络模型。本发明采用的基于时间序列的动态耦合网络模型构建方案,解决了现有的单层动态网络构建方案对于多层耦合网络构建中精度低、耦合层关系获取难的问题。

发明内容

[0005] 本发明主要提供一种动态多层耦合网络构建方法。针对复杂系统的结构复杂、节点与连边的数量庞大,系统结构多层耦合、不同层次的运行信息采集机理差异较大等系统复杂特性,如何挖掘信息-物理层次的系统耦合、避免不同层次的网络动态数据精度漂移较大等瓶颈问题,构建出能如实反映系统真实运行和故障状态的动态网络耦合网络是关键问题。这里我们提出一种可以有效挖掘多层网络耦合关系并且提升构建精度的网络构建方法。
[0006] 针对以上的技术问题以及本发明的目的,本文提出了一种基于时间序列的动态多层耦合网络构建方法,方案包括如下部分:
[0007] (一)发明目的
[0008] 针对现有技术中存在的缺陷,本发明的目的在于提供一种基于时间序列的动态多层耦合网络构建方法,在考虑到复杂系统的结构复杂、节点与连边的数量庞大,系统结构多层耦合、不同层次的运行信息采集机理差异较大等原因导致采集的不同层次的网络动态数据信息精度漂移较大、不同层次间动态耦合关系难挖掘等问题,采用本发明提出的动态多层耦合网络构建方法对复杂系统等结构复杂的系统建立动态多层耦合网络模型,可以更清晰精准地描述复杂系统动态运行机理,便于系统设计人员了解系统的性能和故障机理,更快定位系统故障,优化系统可靠性指标。
[0009] (二)技术方案
[0010] 为了实现上述目的,本发明的方法所采用的技术方案是:一种基于时间序列的动态多层耦合网络构建方法。
[0011] 本发明一种基于时间序列的动态多层耦合网络构建方法,其步骤如下:
[0012] 步骤A:分析建模对象;
[0013] 步骤B:在线采样动态运行数据;
[0014] 步骤C:离线预处理动态运行数据;
[0015] 步骤D:动态多层耦合网络构建。
[0016] 其中,步骤A中所述的“建模对象”,其具体含义为:需要抽象为动态多层耦合网络进行分析的复杂系统;所述的“分析建模对象”,包括以下步骤:
[0017] 步骤A1:依据建模对象结构分层处理;
[0018] 步骤A2:定义建模对象不同层次的节点;
[0019] 步骤A3:定义网络同层的静态连边;
[0020] 步骤A4:定义网络不同层次的静态耦合连边;
[0021] 步骤A5:定义网络同层的动态连边;
[0022] 步骤A6:确认动态运行数据采样工具;
[0023] 其中,在步骤A1中所述的“依据建模对象结构分层处理”,其具体做法如下:对建模对象进行分析,依据建模对象的物理框架或逻辑框架对其进行分层处理,分别对应所需构建的动态多层耦合网络的层次关系,分层后的建模对象可以清晰体现各个层次的依赖关系,设建模对象经过分层后共有n层,则对应的动态多层耦合网络模型应为n层;以嵌入式系统为例,可将其分为软件层与硬件层两层进行分析;
[0024] 其中,在步骤A2中所述的“定义建模对象不同层次的节点”,其具体做法如下:分析建模对象的不同层次的属性与特征,确认可以有效反应建模对象运行的节点;建模对象的不同层次,所对应的节点属性各不相同,如嵌入式系统的软件层对应的节点可为软件模块、软件函数,硬件层对应的节点可为硬件各个硬件模块;
[0025] 其中,在步骤A3中所述的“定义网络同层的静态连边”,其具体做法如下:静态分析建模对象同层次所有可能存在的交互关系,定义网络同层的静态连边;通过分析步骤A2所得的节点中同层节点间的属性与特征,建立同层静态拓扑结构;以嵌入式系统为例,其软件层步骤A2所定义的节点为软件模块、软件函数,则步骤A3所定义的网络同层的静态连边为其软件模块之间所有可能存在的调用关系;
[0026] 其中,在步骤A4中所述的“定义网络不同层次的静态耦合连边”,其具体做法如下:分析建模对象跨层的耦合关系,统计所有可能存在的耦合连边,并将这些耦合连边信息写入耦合连边数据库;由于跨层动态数据难以采样且跨层的采样工具机制各不相同,直接动态实时监控耦合关系较难实现,故采用建立完整的耦合连边数据库,然后在后续“步骤D动态多层耦合网络构建”中,依靠该耦合连边数据库获取耦合连边集;
[0027] 其中,在步骤A5中所述的“定义网络同层的动态连边”,其具体做法如下:定义多层耦合网络连边建立规则,即确定动态运行数据处于何值时多层耦合网络模型中的节点间建立连边,为接下来的在线获取建模对象动态运行数据提供支撑;以嵌入式系统软件层为例,设其内部模块间某两个模块的调用频次为pij,当调用频次超过α次后,即pij>α,认为两个模块间具有调用关系,此时这两个模块间建立一条连边;
[0028] 其中,在步骤A6中所述的“确认动态运行数据采样工具”,其具体做法如下:针对建模对象的不同层次的属性与特征,确认不同层次动态运行数据的追踪工具,如嵌入式系统的软件层可采用代码插桩的方式获取动态运行数据,硬件层可通过逻辑分析工具对获取动态运行数据。
[0029] 其中,步骤B中所述的“在线采样动态运行数据”,其具体含义为:通过在线监控建模对象不同层次的节点间互相作用的运行数据,为接下来的动态多层耦合网络构建提供数据支撑;包括以下步骤:
[0030] 步骤B1:数据采样工具开启;
[0031] 步骤B2:执行测试用例;
[0032] 步骤B3:保存动态运行数据;
[0033] 其中,在步骤B1中所述的“数据采样工具开启”,其具体做法如下:同时开启步骤A4确认的动态运行数据采样工具对建模对象进行采样;在测试用例执行前开启数据采样工具,可以保证在测试用例执行期间可以完整记录建模对象动态运行数据;
[0034] 其中,在步骤B2中所述的“执行测试用例”,其具体做法如下:开始执行针对建模对象的测试用例,根据建模需求不同,测试用例的复杂程度、激发手段各不相同,故需要按需执行所需的测试用例;
[0035] 其中,在步骤B3中所述的“保存动态运行数据”,其具体做法如下:在执行测试用例后,保存各个数据采样工具的采样数据,为后续的步骤C离线预处理动态运行数据提供原始数据支撑。
[0036] 其中,步骤C中所述的“离线预处理动态运行数据”,其具体含义为:通过对步骤B3保存的动态运行数据进行数据清洗、特征提取、精度校准等步骤,将原始动态运行数据离线处理为可以支撑步骤D构建动态多层耦合网络的数据信息;包括以下步骤:
[0037] 步骤C1:动态运行数据清洗;
[0038] 步骤C2:动态运行数据校准;
[0039] 步骤C3:按时间切片分割动态运行数据;
[0040] 其中,在步骤C1中所述的“动态运行数据清洗”,其具体做法如下:利用正则表达式等手段提取所有数据采样工具采集到的动态运行数据中建模对象不同层次的节点信息、节点间交互信息与时间信息,按时间序列并保存提取后的动态运行数据;若动态运行数据中存在缺失值,则进行均值填补操作;
[0041] 其中,在步骤C2中所述的“动态运行数据校准”,其具体做法如下:由于数据采样工具可能存在的时钟误差,导致步骤C1清洗后的动态运行数据在时间序列上存在不一致,因此需要对动态运行数据时间序列校准,校准方式可采用时间序列的互相关性、典型动作校准等方法;时间序列互相关性是一种在信号处理中常用的方法,互相关是两个序列相似度的度量,作为一个序列相对于另一个序列的位移的函数;这也被称为滑动点积、滑动内积;不同层次的动态运行数据发生耦合时具有相似的波形,故可通过对齐相似波形的起始位校准动态运行数据;典型动作校准的原理为通过测试用例对建模对象施加一个突发扰动,而该扰动会在不同层次的动态运行数据中有所体现,以该扰动发生作为校准基准即可对多层动态运行数据进行校准;
[0042] 其中,在步骤C3中所述的“按时间切片分割动态运行数据”,其具体做法如下:将时间序列校准后的动态运行数据按相同的时间间隔进行分割,分割后成为一组相同时间间隔的动态运行数据,即动态运行数据的时间切片,后续的步骤D动态多层耦合网络构建基于步骤C3得到的动态运行数据的时间切片;时间间隔的选取要适配建模对象的属性,如交互频繁的建模对象,应选取较短的时间间隔。
[0043] 其中,步骤D中所述的“动态多层耦合网络构建”,其具体方法如下:根据步骤C3得到的动态运行数据的时间切片,建立动态多层耦合网络,计算动态多层耦合网络的动态统计特征;动态多层耦合网络是一组以时间为序的静态多层耦合网络的集合,每个静态多层耦合网络对应着一个动态运行数据的时间切片,设经过分割后的动态运行数据共有m片,则动态多层耦合网络中应包含m组静态多层耦合网络;由于节点间调用关系特别是耦合层的节点间调用关系存在方向性,故动态耦合网络的连边为有向连边,动态耦合网络为有向网络;包括以下步骤:
[0044] 步骤D1:依次提取时间切片中的节点集;
[0045] 步骤D2:依次提取时间切片中的同层连边集;
[0046] 步骤D3:依次提取时间切片中的耦合连边集;
[0047] 步骤D4:计算动态多层耦合网络动态统计特征;
[0048] 其中,在步骤D1中所述的“依次提取时间切片中的节点集”,其具体做法如下:分别提取动态运行数据的时间切片中各层的节点信息,设建模对象共分为n层,故对于某时间间隔Tk下的静态多层耦合网络共有n组节点集,故时间间隔Tk下的节点集为[0049] 其中,在步骤D2中所述的“依次提取时间切片中的同层连边集”,其具体做法如下:分别提取动态运行数据的时间切片中各层的连边集,对于分为n层的建模对象,在某时间间隔Tk下的静态多层耦合网络中的同层连边集Lc(Tk),同层连边集共有n组,故时间间隔Tk下的同层连边集
[0050] 其中,在步骤D3中所述的“依次提取时间切片中的耦合连边集”,其具体做法如下:对于分为n层的建模对象,在某时间间隔Tk下的静态多层耦合网络中首先遍历步骤D1提取的节点集的任意两个节点,然后在步骤A4建立的耦合连边数据库中查询是否存在这两个节点构成的连边,若存在,则写入耦合层连边集Ll(Tk);耦合层连边集最多有n*(n-1)组,故时间间隔Tk下的耦合层连边集 结合步骤D1、D2、D3,可得某时间间隔Tk下静态多层耦合网络 对于共有m片时间切片的动态运
行数据,其动态耦合网络应为
[0051] 其中,在步骤D4中所述的“计算动态多层耦合网络动态统计特征”,其具体做法如下:计算每个时间切片下的静态多层耦合网络的统计特征,接着汇总动态多层耦合网络的动态统计特征;对于具有m片时间切片的动态运行数据,依次计算每个时间间隔Tk下静态多层耦合网络G(Tk)的一组常用复杂网络统计指标,如:网络规模、平均度、平均介数等,然后汇总这m组指标构成动态多层耦合网络的动态统计特征。
[0052] 通过以上步骤,本方法提出了一种基于时间序列的动态多层耦合网络构建方法,解决了因复杂系统的功能复杂、信息交互、故障耦合等原因导致的不同层次的网络耦合结构难以挖掘、动态信息难以校准的问题,构建的动态多层耦合网络精度较传统的动态网络构建方法精度较高,可快速地挖掘动态耦合关系,且易于计算,具有良好的实际应用价值。
[0053] (三)优点创新
[0054] 本发明具有如下的创新点:
[0055] 1.精度高:本发明中所采用的基于时间序列的动态多层耦合网络构建方法,对不同层次的采样数据使用时间序列互相关性等方法进行精度校准,使网络模型更精确,更能体现建模对象实际运行状态;
[0056] 2.易移植:本发明所设计的网络构建方法适用于多类复杂系统,具有通用性的特性,对于同类型系统实施网络构建时,步骤C中所述的“离线预处理动态运行数据”与步骤D“动态多层耦合网络构建”无需进行大规模重写,构建方法移植性强,增强工程操作中的便利性;
[0057] 3.好分析:依据本发明所构建的动态多层耦合网络便于实现故障机理分析、代码平台跨版本差异对比、测试用例生成、故障定位、系统架构优化等多种分析角度与手段,具有较强的工程实用性。
[0058] 综上,这种基于时间序列的动态多层耦合网络构建方法为工程应用中的动态多层耦合网络构建提供一种很好的解决方案。

附图说明

[0059] 图1是本发明所述方法流程图。

具体实施方式

[0060] 为使本发明要解决的技术问题、技术方案更加清楚,下面将结合附图及具体实施案例进行详细描述。应当理解,此处所描述的实施实例仅用于说明和解释本发明,并不用于限定本发明。
[0061] 本发明的目的在于解决由于复杂系统的结构复杂、节点与连边的数量庞大,系统结构多层耦合、不同层次的运行信息采集机理差异较大等系统特性导致的构建动态网络耦合网络时遇到的挖掘信息-物理层次系统耦合较难、不同层次的网络动态数据精度漂移较大等难题。这里我们提出一种可以有效挖掘多层网络耦合关系并且提升构建精度的网络构建方法,该方法具有构建动态多层耦合网络精度较传统的动态网络构建方法精度较高、可快速地挖掘动态耦合关系,且易于计算的优势。具有良好的实际应用价值。
[0062] 下面结合附图说明及具体实施方式对本发明进一步说明。
[0063] 本发明实施例以构建某型嵌入式开发平台故障定位的多层耦合网络为例,阐述本发明方法。具体地说,该嵌入式开发平台的底层软件层存在未知驱动故障,当对该嵌入式开发平台施加高强度计算负载、系统硬件层陷入算力瓶颈时,由于底层软件驱动异常导致该型嵌入式计算机系统无法完成既定任务,故需要建立动态多层耦合网络对该嵌入式开发平台动态运行状态进行建模,方便后续分析故障传播机理以及实现未知故障故障定位。
[0064] 为了实现上述目的,本发明的方法所采用的技术方案是:一种基于时间序列的动态多层耦合网络构建方法。其流程如图1所示:
[0065] 步骤A:分析建模对象;
[0066] 步骤B:在线采样动态运行数据;
[0067] 步骤C:离线预处理动态运行数据;
[0068] 步骤D:动态多层耦合网络构建。
[0069] 其中,步骤A中所述的“建模对象”,其具体含义为:需要抽象为动态多层耦合网络进行分析的复杂系统,在具体实施方式中为某型嵌入式开发平台。步骤A“分析建模对象”,包括以下步骤:
[0070] 步骤A1:依据建模对象结构分层处理;
[0071] 步骤A2:定义建模对象不同层次的节点;
[0072] 步骤A3:定义网络同层的静态连边;
[0073] 步骤A4:定义网络不同层次的静态耦合连边;
[0074] 步骤A5:定义网络同层的动态连边;
[0075] 步骤A6:确认动态运行数据采样工具;
[0076] 其中,步骤A1中所述的“依据建模对象结构分层处理”,其具体做法如下:对该嵌入式开发平台进行分析,依据嵌入式开发平台的逻辑框架进行分层处理,通过处理可分为三层:应用软件层、底层软件层与硬件层,这三层可以清晰体现嵌入式开发平台内部依赖关系。对于该嵌入式开发平台对应的动态多层耦合网络模型应为3层;
[0077] 其中,步骤A2所述的“定义建模对象不同层次的节点”,其具体做法如下:分析该嵌入式开发平台的3个层次的属性与特征,确认可以有效反应嵌入式开发平台运行的节点。嵌入式开发平台的不同层次,所对应的节点属性各不相同,对于应用软件层对应的节点为软件模块、软件函数,底层软件层对应的节点为驱动文件,硬件层对应的节点可为硬件各个硬件模块;
[0078] 其中,步骤A3所述的“定义网络同层的静态连边”,其具体做法如下:静态分析该嵌入式开发平台同层次所有可能存在的交互关系,定义网络同层的静态连边。通过分析步骤A2所得的节点中同层节点间的属性与特征,建立同层静态拓扑结构;
[0079] 其中,步骤A4所述的“定义网络不同层次的静态耦合连边”,其具体做法如下:分析建模对象跨层的耦合关系,统计所有可能存在的耦合连边,并将这些耦合连边信息写入耦合连边数据库。由于跨层动态数据难以采样且跨层的采样工具机制各不相同,直接动态实时监控耦合关系较难实现,故采用建立完整的耦合连边数据库,然后在后续“步骤D动态多层耦合网络构建”中,依靠该耦合连边数据库获取耦合连边集。如该嵌入式开发平台的底层软件层的驱动函数与硬件模块的对应、应用软件层的业务模块函数与底层软件层的系统调度函数的对应等都可写入耦合连边数据库;
[0080] 其中,步骤A5所述的“定义网络同层的动态连边”,其具体做法如下:定义多层耦合网络连边建立规则,即确定动态运行数据处于何值时多层耦合网络模型中的节点间建立连边,为接下来的在线获取建模对象动态运行数据提供支撑。以嵌入式开发平台应用软件层为例,设其内部模块间某两个模块的调用频次为pij,当单位时间内调用频次超过5次后,即pij>5,认为两个模块间具有调用关系,此时这两个模块间建立一条连边;
[0081] 其中,步骤A6所述的“确认动态运行数据采样工具”,其具体做法如下:针对该嵌入式开发平台的不同层次的属性与特征,确认不同层次动态运行数据的追踪工具,如该嵌入式开发平台的底层软件层可采用基于代码插桩的ftrace等工具获取动态运行数据,应用软件层可采用定时读取系统自带监控工具信息获取动态运行数据,硬件层可通过逻辑分析工具对获取动态运行数据。
[0082] 其中,步骤B中所述的“在线采样动态运行数据”,其具体含义为:通过在线监控该嵌入式开发平台不同层次的节点间互相作用的运行数据,为接下来的动态多层耦合网络构建提供数据支撑;包括以下步骤:
[0083] 步骤B1:数据采样工具开启;
[0084] 步骤B2:执行测试用例;
[0085] 步骤B3:保存动态运行数据;
[0086] 其中,步骤B1中所述的“数据采样工具开启”,其具体做法如下:同时开启步骤A4确认的动态运行数据采样工具对该嵌入式开发平台进行采样。在测试用例执行前开启数据采样工具,可以保证在测试用例执行期间可以完整记录建模对象动态运行数据;
[0087] 其中,步骤B2中所述的“执行测试用例”,其具体做法如下:开始执行针对该嵌入式开发平台的测试用例,根据建模需求不同,测试用例的复杂程度、激发手段各不相同,故需要按需执行所需的测试用例。对于该嵌入式开发平台的底层软件的未知驱动故障导致系统硬件层陷入算力瓶颈后崩溃的问题,应对系统施加并发高应力类的测试用例;
[0088] 其中,步骤B3所述的“保存动态运行数据”,其具体做法如下:在执行测试用例后,保存各个数据采样工具的采样数据,为后续的步骤C离线预处理动态运行数据提供原始数据支撑。
[0089] 其中,步骤C中所述的“离线预处理动态运行数据”,其具体含义为:通过对步骤B3保存的动态运行数据进行数据清洗、特征提取、精度校准等步骤,将原始动态运行数据离线处理为可以方便步骤D构建动态多层耦合网络的数据信息;包括以下步骤:
[0090] 步骤C1:动态运行数据清洗;
[0091] 步骤C2:动态运行数据校准;
[0092] 步骤C3:按时间切片分割动态运行数据;
[0093] 其中,步骤C1中所述的“动态运行数据清洗”,其具体做法如下:利用正则表达式提取所有数据采样工具采集到的动态运行数据中该嵌入式开发平台3个层次的节点信息、节点间交互信息与时间信息,按时间序列并保存提取后的动态运行数据。若动态运行数据中存在缺失值,则进行均值填补操作;
[0094] 其中,步骤C2中所述的“动态运行数据校准”,其具体做法如下:由于数据采样工具存在的时钟误差,导致步骤C1清洗后的动态运行数据在时间序列上存在不一致,因此需要对动态运行数据时间序列校准,校准方式采用时间序列的互相关性方法。时间序列互相关性是一种在信号处理中常用的方法,互相关是两个序列相似度的度量,作为一个序列相对于另一个序列的位移的函数。这也被称为滑动点积、滑动内积。不同层次的动态运行数据发生耦合时具有相似的波形,故可通过对齐相似波形的起始位校准动态运行数据;
[0095] 其中,步骤C3所述的“按时间切片分割动态运行数据”,其具体做法如下:将时间序列校准后的动态运行数据按相同的时间间隔进行分割,分割后成为一组相同时间间隔的动态运行数据,即动态运行数据的时间切片,后续的步骤D动态多层耦合网络构建基于步骤C3得到的动态运行数据的时间切片。时间间隔的选取要适配该嵌入式开发平台的属性,由于两个软件层皆存在频繁交互,应选取较短的时间间隔,本实施方式中选取0.5秒。
[0096] 其中,步骤D中所述的“动态多层耦合网络构建”,其具体方法如下:根据步骤C3得到的动态运行数据的时间切片,建立动态多层耦合网络。动态多层耦合网络是一组以时间为序的静态多层耦合网络的集合,每个静态多层耦合网络对应着一个动态运行数据的时间切片,设经过分割后的动态运行数据共有20000片,则动态多层耦合网络中应包含20000组静态多层耦合网络。由于节点间调用关系特别是耦合层的节点间调用关系存在方向性,故动态耦合网络的连边为有向连边,动态耦合网络为有向网络;包括以下步骤:
[0097] 步骤D1:依次提取时间切片中的节点集;
[0098] 步骤D2:依次提取时间切片中的同层连边集;
[0099] 步骤D3:依次提取时间切片中的耦合连边集;
[0100] 步骤D4:计算动态多层耦合网络动态统计特征;
[0101] 其中,步骤D1所述的“依次提取时间切片中的节点集”,其具体做法如下:分别提取动态运行数据的时间切片中各层的节点信息,设该嵌入式开发平台共分为3层,故对于某时间间隔Tk下的静态多层耦合网络共有3组节点集,故时间间隔Tk下的节点集为[0102] 其中,步骤D2所述的“依次提取时间切片中的同层连边集”,其具体做法如下:分别提取动态运行数据的时间切片中各层的连边集,对于分为3层的嵌入式开发平台,在某时间间隔Tk下的静态多层耦合网络中的同层连边集Lc(Tk),同层连边集共有3组,故时间间隔Tk下的同层连边集
[0103] 其中,步骤D3所述的“依次提取时间切片中的耦合连边集”,其具体做法如下:对于分为3层的嵌入式开发平台,在某时间间隔Tk下的静态多层耦合网络中首先遍历步骤D1提取的节点集的任意两个节点,然后在步骤A4建立的耦合连边数据库中查询是否存在这两个节点构成的连边,若存在,则写入耦合层连边集Ll(Tk)。耦合层连边集最多有9组,故时间间隔Tk下的耦合层连边集 结合步骤D1、D2、D3,可得某时间间隔Tk下静态多层耦合网络 共有20000片时间切片的动态运行
数据,其动态耦合网络应为
[0104] 其中,步骤D4所述的“计算动态多层耦合网络动态统计特征”,其具体做法如下:计算每个时间切片下的静态多层耦合网络的统计特征,接着汇总动态多层耦合网络的动态统计特征。对于具有20000片时间切片的动态运行数据,依次计算每个时间间隔Tk下静态多层耦合网络G(Tk)的网络规模、平均度、平均介数这三个复杂网络统计指标,然后汇总这20000组指标构成动态多层耦合网络的动态统计特征。
[0105] 本发明未详细阐述部分属于本领域公知技术。
[0106] 以上所述,仅为本发明部分具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本领域的人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。