一种基于冒泡排序粒子群优化的代码审计方法技术

技术编号:10106513 阅读:134 留言:0更新日期:2014-06-01 20:55
本发明专利技术公开了一种基于冒泡排序粒子群优化的代码审计方法,该方法包括:初始化粒子群;测试路径,计算适应度函数值;在采用可行性规则进行约束求解的基础上,将粒子群分为可行粒子和不可行粒子并将其分别放入两个容器中;基于冒泡排序法保留违反程度较低的不可行粒子并将其放入可行粒子群中,弥补全局最优点位于约束边界附近的问题;最终求解出缺陷代码最短路径,避免粒子群算法应用于面向路径的代码审计时易陷入早熟收敛等问题。

【技术实现步骤摘要】
【专利摘要】本专利技术公开了,该方法包括:初始化粒子群;测试路径,计算适应度函数值;在采用可行性规则进行约束求解的基础上,将粒子群分为可行粒子和不可行粒子并将其分别放入两个容器中;基于冒泡排序法保留违反程度较低的不可行粒子并将其放入可行粒子群中,弥补全局最优点位于约束边界附近的问题;最终求解出缺陷代码最短路径,避免粒子群算法应用于面向路径的代码审计时易陷入早熟收敛等问题。【专利说明】
本专利技术属于信息安全
,特别涉及路径搜索、粒子群优化方法。
技术介绍
当前,一般稍大规模的计算机程序通常包含数万到数十万行代码,单纯的人工评审一般情况下是不可行的,因此多借助自动化工具来完成该工作。静态分析是代码评审工具的主要应用技术,它是指无需运行被测代码,仅通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性,找出代码隐藏的错误和缺陷,如参数不匹配,有歧义的嵌套语句,错误的递归,非法计算,可能出现的空指针引用等。经过多年的发展,各类静态分析技术已比较成熟。用于静态缺陷检测的静态分析技术有很多,代表性的包括:抽象解释、自动定理证明、模型检查、约束求解、符号执行、类型推断、数据流分析等。研究表明,面向路径的测试数据生成可以很好地归结为约束求解问题。粒子群算法(particle swarm optimization, PS0)作为一种模拟鸟群飞行的仿生算法,将优化问题的潜在解看作是搜索空间中一个没有质量和体积的粒子,具有一定的飞行速度和位置,具有个体数目少、计算简单、鲁棒性好等优点,在约束求解问题上得到广泛应用。但是,PSO算法也存在一些固有的缺陷,如搜索过程中易陷入局部最优,进化后期的优化效率较低,甚至进入停滞状态。综上所述,利用PSO算法进行代码审计收敛速度快,全局搜索能力强,但须改进算法克服早熟收敛 。
技术实现思路
本专利技术实施例提供的一种基于冒泡排序(Bubble Sort, BS)粒子群优化的代码审计方法,用以解决PSO算法应用于面向路径的代码审计时易陷入早熟收敛的问题。初始化粒子群;测试路径,计算适应度函数值;将可行解和不可行解分别放在两个容器中;采用冒泡排序法选取较优不可行解并加入可行解中,更新粒子的速度和位置;最终输出全局最优解,即缺陷代码的最短路径。本专利技术实施例可实现快速准确求解缺陷代码最短路径。【专利附图】【附图说明】图1为本专利技术实施例提供的方法流程图;【具体实施方式】针对现有PSO算法应用于面向路径的代码审计时易陷入早熟收敛的问题,本专利技术实施例基于BS算法保留约束违反程度较低的不可行解信息,弥补最优点位于约束边界附近的问题,避免陷入早熟收敛,实现快速求解缺陷代码最短路径。如图1所示,本专利技术实施例提供的基于冒泡排序粒子群优化的代码审计方法包括下列步骤:步骤101、初始化粒子的位置和速度,设定迭代次数;步骤102、测试路径,计算曼哈顿适应度函数值;步骤103、对于每个粒子,比较当前位置适应度函数值F(Pi)和所经历的最优解F (Pbest),如果F (Pi)〈F (pbest),则新的粒子Pi取代前一轮粒子pbest,即Pbest = Pi ;步骤104、按照可行性规则,将可行粒子放入可行容器Gfs ;步骤105、按照可行性规则,将不可行粒子放入不可行容器Gifs ;步骤106、基于BS算法在Gifs中求解较优不可行粒子;步骤107、将较优不可行粒子放入Gfs中;步骤108、对于可行容器中的每个粒子,比较当前最优适应度函数值F (gi)和所有粒子最优解F (gbest),如果F (g^〈F (gbest),则粒子gi取代前一轮粒子gbest,即gbest=gi ;步骤109、判断迭代终止条件,若满足最大迭代次数则执行步骤110,若不满足最大迭代次数,更新粒子的速度和位置,转到步骤102继续执行搜索过程;步骤110、输出全局最优解,即求解出缺陷代码的最短路径。 从上述实施例中可以看出:本专利技术实施例针对现有PSO算法应用于面向路径的代码审计时易陷入早熟收敛的问题,提出了基于冒泡排序粒子群优化的代码审计方法。该方法能够避免PSO算法陷入早熟收敛,实现快速求解缺陷代码最短路径。显然,本领域的技术人员可以对本专利技术进行各种改动和变型而不脱离本专利技术的精神和范围。这样,倘若本专利技术的这些修改和变型属于本专利技术权利要求及其等同技术的范围之内,则本专利技术也意图包含这些改动和变型在内。【权利要求】1.一种基于粒子群优化的云计算代码审计方法,其特征在于,该方法包括: 初始化粒子群;测试路径,计算适应度函数值;在采用可行性规则进行约束求解的基础上,将粒子群分为可行粒子和不可行粒子并将其分别放入两个容器中;基于冒泡排序法保留违反程度较低的不可行粒子并将其放入可行粒子群中;更新粒子的速度和位置;最终求解出缺陷代码最短路径。2.如权利要求1所述的方法,其特征在于,所述初始化粒子群的方法具体包括: 粒子的初速度设为O。每个个体局部极值Pbest的初值设为每个粒子自身。粒子的全局极值gbest初始值为第一代粒子群的最优值。3.如权利要求1所述的方法,其特征在于,所述测试路径,计算适应度函数值方法具体包括: 适应度函数值计算采用曼哈顿算法,F(X)=I / D(X),其中,D (X) =abs( (D—(x)-D。urrent W ) +^bS ( (Dedstination (y) —D current (y))+l。4.如权利要求1所述的方法,其特征在于,所述采用可行性规则进行约束求解方法具体包括: 1)可行粒子始终优于不可行粒子; 2)若两个粒子都是可行的,适应度函数值较优的粒子胜出; 3)若两个粒子都是不可行的,约束违反程度较小的粒子胜出。5.如权利要求1所述的方法,其特征在于,所述更新粒子的速度和位置方法具体包括: 按照式1、式2更新粒子的速度和位置。Vt (t+Ι) = ω ^Vi (t) + W (Pbest-Vi (t)) +c2*r2* Cgbest-Vi (t))(I)Xi (t+l)=Xi(t)+Vi (t+1) (2) 其中,Kt)是粒子的速度,Pbest为当前粒子的位置。(^和^为学习因子’^和巧为随机数,ω为惯性系数。【文档编号】G06N3/00GK103823752SQ201310736949【公开日】2014年5月28日 申请日期:2013年12月25日 优先权日:2013年12月25日 【专利技术者】谢康, 王立进, 张玲, 李伟, 李星, 马艳彬, 徐勤 申请人:北京安码科技有限公司本文档来自技高网
...

【技术保护点】
一种基于粒子群优化的云计算代码审计方法,其特征在于,该方法包括:?初始化粒子群;测试路径,计算适应度函数值;在采用可行性规则进行约束求解的基础上,将粒子群分为可行粒子和不可行粒子并将其分别放入两个容器中;基于冒泡排序法保留违反程度较低的不可行粒子并将其放入可行粒子群中;更新粒子的速度和位置;最终求解出缺陷代码最短路径。

【技术特征摘要】

【专利技术属性】
技术研发人员:谢康王立进张玲李伟李星马艳彬徐勤
申请(专利权)人:北京安码科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1