[发明专利]一种基于改进GN算法的程序控制流图划分方法有效
申请号: | 201810819671.9 | 申请日: | 2018-07-24 |
公开(公告)号: | CN108958793B | 公开(公告)日: | 2020-11-10 |
发明(设计)人: | 马锐;窦伯文;高浩然;王龙;孔雷 | 申请(专利权)人: | 北京理工大学;北京计算机技术及应用研究所 |
主分类号: | G06F8/75 | 分类号: | G06F8/75;G06F11/36 |
代理公司: | 北京理工大学专利中心 11120 | 代理人: | 高燕燕 |
地址: | 100081 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 改进 gn 算法 程序控制 划分 方法 | ||
本发明采用一种基于改进GN算法的程序控制流图划分方法,将程序划分为多个段,解决了划分子图规模的不均衡性和迭代次数过多的问题。一种基于改进GN算法的程序控制流图划分方法,首先由程序分析工具获取程序的控制流图;其次,对由节点和有向边构成的控制流图进行处理,为其中的各个节点设置权值;然后结合权值对控制流图进行划分,得到划分后的子图。
技术领域
本发明属于软件分析技术领域,具体涉及一种基于改进GN算法的程序控制流图划分方法。
背景技术
程序段划分的本身是为了降低程序分析的复杂度,将较大规模的程序划分为较小的程序段,从而进行后期分析。现实世界中的程序的规模往往非常大,直接分析这样的程序会消耗很大的计算机资源,并且分析效率不高。因此,如果能将一个大规模的程序用合适的方法划分成若干个较小规模的程序段,并对其分别进行分析,然后将分析结果进行合并,得到总体的分析结果,可以有效降低分析过程对计算机软、硬件资源的消耗,提高程序分析的效率。
程序段划分可以采用基于语义分析的方法或基于控制流图的方法。由于获取语义需要根据特定程序制定相应语义规则,很难扩展到语义不同的程序,而通过控制流图则不存在这一问题,因此程序段的划分往往采用分析其控制流图的方法。由于程序的控制流图本质上也是网络图,对其划分即是对特殊网络图的划分。因此,选择较为合适的网络图划分方法,或对现有的网络图划分方法进行改进,成为提升程序控制流图划分效果的关键因素。
接下来将介绍一种用于网络图划分的GN算法,该算法也可以用来划分程序段。
GN算法是一种典型的网络图划分算法,它是在2002年由Girvan和Newman提出的。GN算法可以高效地对网络图进行划分,并产生相应的划分子图。这里的划分子图简称子图,它是原网络图的一部分,其节点集和边集分别是原网络图中的节点集和边集的子集。GN算法中,将网络图中任意两点间的最短路径上的边赋予边介数值,通过计算每条边的边介数,每次去掉边介数值最高的边,如此迭代从而完成对网络图的划分。GN算法使用边介数Betweenness度量边删除的优先级,使用模块度Q度量子图的划分结果。接下来将详细说明GN算法的两个重要参数边介数Betweenness和模块度Q,然后介绍GN算法划分网络图的基本流程。
边介数(Betweenness)是一种边的度量指标。对于网络图中的任意一条边,如果是连接两个子图的边,那么该边的边介数较大;如果是子图内部的边,那么该边的边介数较小。具体而言,本发明中的边介数是指网络图中通过该边的最短路径的数量。这里的最短路径是指网络图中两节点间的距离最短的路径。边介数的计算方法如公式1所示。
其中,l表示网络图中的任意一条边,s,t分别表示网络图中的两个不同节点,σst(l)表示经过边l的从节点s到节点t的最短路径数量,σst表示从节点s到节点t的最短路径数量,V表示网络图中所有节点的集合。
模块度Q是一种衡量网络图划分优劣的指标。在将一个网络图划分为多个子图后,如果各个子图内的节点具有较高的相似度,不同子图的节点之间具有较低的相似度,那么该网络图就具有较高的模块度,网络图的划分效果较好;反之,模块度则较低,网络图的划分效果也较差。模块度计算方法如公式2所示。
其中,n是网络图中划分子图的总个数,c表示子图的编号,m表示整个网络图中边的数量,lc是子图c内的边的数量,dc是子图c内的所有节点的度数之和,在这里节点的度数是指和该节点相关联的边的数量。
原始的GN算法的流程如下:
(1)计算每一条边的边介数Betweenness(计算方法采用公式1);
(2)删除边介数最大的边,并将其加入划分时删除边的集合;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京理工大学;北京计算机技术及应用研究所,未经北京理工大学;北京计算机技术及应用研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810819671.9/2.html,转载请声明来源钻瓜专利网。