PSO推断多项式蜕变关系

解读的论文

论文标题:Search-Based Inference of Polynomial Metamorphic Relations
作者:Jie Zhang, Junjie Chen, Dan Hao, Yingfei Xiong, Bing Xie, Lu Zhang, Hong Mei
发表刊物:29th ACM/IEEE international conference on Automated software engineering
发表时间:2014年9月
页数:701-712

一、概要

提出了一种不需要了解程序内部结构的方法,通过搜索合适的参数值来推断多项式蜕变关系(MR),搜索参数值采用粒子群优先(PSO)算法。
MR定义为Ri(I1,I2)=>Ro(O1,O2) (3),I1,I2分别表示为原始输入和衍生输入(向量),O1,O2为对应的输出值(单个的值,如果输出也是向量,则把向量拆开表示)。作者研究了11篇论文的70条MR,发现43条(61.4%)MR是多项式形式,即输入和输出都是多项式等式,23条(53.5%)多项式MR是简单的多项式MR,即输入是线性等式,输出要么是线性等式要么是二次等式。

其它47条MR是哪种形式的呢(可能是不等式),多项式MR除了线和二次的,还有什么样的(可能是更高次的)?

作者只探索了简单的多项式MR,可以写成以下形式:
输入:I1,I2
输入MR:I2=α*I1+β。

输出:P(I1),P(I2)代表O1,O2,O2=P(I2)=P(α*I1+β)。

输出MR(两类)
1.线性MR(1-MR):c1P(I1)+c2P(α*I1+β)+d=0;
2. 二次MR(2-MR):c1P(I1)^2+c2P(I1)P(I2)+c3P(I2) ^2+d1P(I1)+d2P(I2)+e=0。

二、方法介绍

1.粒子群优先算法
粒子群算法最早是由Eberhart和Kennedy于1995年提出,它的基本概念源于对鸟群觅食行为的研究。设想这样一个场景:一群鸟在随机搜寻食物,在这个区域里只有一块食物,所有的鸟都不知道食物在哪里,但是它们知道当前的位置离食物还有多远。最简单有效的策略——寻找鸟群中离食物最近的个体来进行搜素。PSO算法就从这种生物种群行为特性中得到启发并用于求解优化问题。

粒子群算法通过设计一种无质量的粒子来模拟鸟群中的鸟,粒子仅具有两个属性:速度和位置,速度代表移动的快慢,位置代表移动的方向。每个粒子在搜索空间中单独的搜寻最优解,并将其记为当前个体极值,并将个体极值与整个粒子群里的其他粒子共享,找到最优的那个个体极值作为整个粒子群的当前全局最优解,粒子群中的所有粒子根据自己找到的当前个体极值和整个粒子群共享的当前全局最优解来调整自己的速度和位置。

速度公式:速度公式 (1)
公式(1)中,w,ξ1,ξ2是3个正数权重值(w是内部权重,ξ1,ξ2是加速因素),r1,r2是0或者1的随机数,pidt是d维t时刻粒子的局部优先位置,pgdt是d维t时刻粒子的全局优先位置。除了r1,r2以外,t+1时刻的速度影响因素有三个:t时刻的速度、局部优先位置、全局优先位置。
位置公式:位置公式 (2)
开始时,时刻1,N个粒子的位置和速度随机赋值,用公式(1)和(2)更新位置和速度,直到时刻T(终止时刻),返回最终解。一般地,每一维给定范围,任何粒子任何时刻超过范围,位置值设为边界值。

2.Implementation 实现(设计)
基于上述,开发了一款工具MRI(Metamorphic Relation Inferrer)。
关于PSO算法,使用PSO文献中的推荐值:加速因素(公式(1)中)=1.49445,粒子数(N)=20,终止时刻(总的时刻T)=350,内部权重在不同时刻不断变化,变化如下:
w的变化 (7)
其中,wt代表t时刻的值,ws(时刻1的值)=0.9,we(时刻T的值)=0.4
———————————————————————————————————————
关于MR参数,设置φ(防止MR降维,如由2-MR降维成1-MR,1-MR降维成0-MR(参数为0))=0.5,F(选择足够好的解,是适应度函数的阈值)=95%*M,当c1,c2,d趋于0,设它们的值为φ,粒子群优先算法需要设置边界值,c1,c2,c3,d1,d2,α,β,e(执行Apache2.2的sin功能推导参数的边界值),c1,c2,c3,d1,d2,α的边界值从-2到2,的边界值从-10到10,的边界值从0~10。

不知道它的方法是怎么实现的,PSO算法怎么和MR的参数联系起来???
根据一个功能推测的边界值,使用到其它功能上去,不太靠谱!

三、实验转置与实验结果

  1. 实验装置(实现)
    为了评估该方法,基于4个科学库的189个科学功能执行三个实证研究,回答下述研究问题:
    第一个研究:方法的可行性,RQ1: 方法可以推断MR吗?
    第二个研究:推断的MR的质量,RQ2: 方法推断的MR的质量如何?
    第三个研究:MR筛选器的影响,RQ3: MR筛选器提高推断的MR的质量了吗?
    1)研究对象
    4个科学库的189个科学功能
    2)过程
    执行PSO算法,记录结果……

  2. 实验结果
    RQ1: 可行,许多MR可以快速地推断出来,不排除有的MR推测速度比较慢
    RQ2: 1) 正确性(手动检测三角函数MR,正确)
    备注:但是它说Apache的sin功能产生了219条1-MR,但是只有2条具有代表性,这跟我以前看到的一篇论文关于sin的蜕变关系不对。
    sin的蜕变关系

  1. 故障检测能力:植入变异分析,能够用推断的MR检测到全部错误,但是很多变异没有被触发,如何使得每一个变异都被推断的MR检测到?
    植入变异

四、可进一步研究的方向

  1. 参数值没有任何限制,用其它参数值评估该方法的有效性,如何设置参数(5.3结尾);
    (7.2) 关于MR形式的改变
  2. 转变公式Ri(I1,I2)=>Ro(O1,O2) (3) 为 Ri(I1,I2,…,Im)=>Ro(O1,O2,…,Om) (8);
  3. 转变公式MR的线性等式到线性不等式,如“x1>x2, log10(x1)>log10(x2)”的MR;
  4. 输入到更高层次,如推断“log10(x2)=2log10(x)”的MR;
  5. 输出到更高层次,如推断“sin(3x)=3sin(x)-4sin3(x)”的MR;
  6. 多个输入(不止两个),如推断“sin(2x)=2sin(x)sin(pi/2-x)”的MR;
    (9) 关于PSO的改进/用其他算法
  7. 其它优先算法,如爬山算法,可以解决软件测试中相似的搜索问题;

。。。未完待续。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值