基于增强径向函数神经网络的错误定位方法
- 格式:pdf
- 大小:530.45 KB
- 文档页数:2
基于纠错编码和RBF神经网络的盲水印新算法冯祥斌;陈永红【摘要】结合RBF神经网络和纠错编码技术,提出了一种把经过混沌加密的图像水印嵌入小波域,并实现盲检测的新型水印算法.首先,对原始图像进行小波分解得到各子带的小波系数;其次,通过密钥选择在小波系数中嵌入水印的起始位置,并对该小波系数进行量化处理作为RBF神经网络模型的输入值;最后,用混沌加密技术和纠错编码技术对待嵌入的水印信息进行预处理以增强水印系统的安全性和鲁棒性,把处理后的水印信息嵌入到经过RBF神经网络模型处理后的小波系数中.实验表明,该算法人类视觉掩蔽性良好,同时对于诸如JEPG压缩、椒盐噪声、滤波等常见图像处理攻击的鲁棒性达到了预期的效果.【期刊名称】《微型机与应用》【年(卷),期】2013(032)007【总页数】4页(P30-33)【关键词】纠错编码;RBF神经网络;盲检测;混沌加密【作者】冯祥斌;陈永红【作者单位】华侨大学计算机科学与技术学院,福建厦门361021;华侨大学计算机科学与技术学院,福建厦门361021【正文语种】中文【中图分类】TP309.7随着数字技术[1]逐步渗透到社会生活中,多媒体数据的版权保护成为一个关键性问题。
数字水印技术作为传统加密方法的有效补充手段,是目前信息安全技术领域的一个新方向。
其中,数字图像水印技术通过在原始图像中隐藏相应的信息以保护合法的所有权。
一个完整的图像水印方案主要包括水印生成、水印嵌入、水印检测和水印攻击[2]。
在保护图像多媒体信息版权时,数字水印的鲁棒性是至关重要的。
由于很多时候原始图像获取不便,所以研究的趋势是在不需要提供原始图像的情况下进行水印的盲检测。
当前研究人员已经研究出了众多的盲检测水印算法,这些算法能够较好地抵御诸如JEPG压缩、高斯滤波等常见的信号处理攻击。
基于封面中像素的3-D色彩直方图特性的盲水印方案[3],它解决了水印的嵌入和检测的同步问题。
为了进一步加强被隐藏在宿主信号中的敏感信息的安全性,学者们一直在尝试加密和数字水印技术的结合研究。
径向基函数(RBF)神经⽹络RBF⽹络能够逼近任意的⾮线性函数,可以处理系统内的难以解析的规律性,具有良好的泛化能⼒,并有很快的学习收敛速度,已成功应⽤于⾮线性函数逼近、时间序列分析、数据分类、模式识别、信息处理、图像处理、系统建模、控制和故障诊断等。
简单说明⼀下为什么RBF⽹络学习收敛得⽐较快。
当⽹络的⼀个或多个可调参数(权值或阈值)对任何⼀个输出都有影响时,这样的⽹络称为全局逼近⽹络。
由于对于每次输⼊,⽹络上的每⼀个权值都要调整,从⽽导致全局逼近⽹络的学习速度很慢。
BP⽹络就是⼀个典型的例⼦。
如果对于输⼊空间的某个局部区域只有少数⼏个连接权值影响输出,则该⽹络称为局部逼近⽹络。
常见的局部逼近⽹络有RBF⽹络、⼩脑模型(CMAC)⽹络、B样条⽹络等。
径向基函数解决插值问题完全内插法要求插值函数经过每个样本点,即。
样本点总共有P个。
RBF的⽅法是要选择P个基函数,每个基函数对应⼀个训练数据,各基函数形式为,由于距离是径向同性的,因此称为径向基函数。
||X-X p||表⽰差向量的模,或者叫2范数。
基于为径向基函数的插值函数为:输⼊X是个m维的向量,样本容量为P,P>m。
可以看到输⼊数据点X p是径向基函数φp的中⼼。
隐藏层的作⽤是把向量从低维m映射到⾼维P,低维线性不可分的情况到⾼维就线性可分了。
将插值条件代⼊:写成向量的形式为,显然Φ是个规模这P对称矩阵,且与X的维度⽆关,当Φ可逆时,有。
对于⼀⼤类函数,当输⼊的X各不相同时,Φ就是可逆的。
下⾯的⼏个函数就属于这“⼀⼤类”函数:1)Gauss(⾼斯)函数2)Reflected Sigmoidal(反常S型)函数3)Inverse multiquadrics(拟多⼆次)函数σ称为径向基函数的扩展常数,它反应了函数图像的宽度,σ越⼩,宽度越窄,函数越具有选择性。
完全内插存在⼀些问题:1)插值曲⾯必须经过所有样本点,当样本中包含噪声时,神经⽹络将拟合出⼀个错误的曲⾯,从⽽使泛化能⼒下降。
基于机器学习的软件错误定位与修复模型软件开发过程中,出现错误是常见的现象。
对于开发人员来说,定位和修复软件错误是一项耗时且复杂的任务。
然而,随着机器学习技术的快速发展,利用机器学习来辅助软件错误定位和修复已成为一种新的解决方案。
本文将介绍基于机器学习的软件错误定位与修复模型,并探讨其在实际应用中的优势和挑战。
一、机器学习在软件错误定位中的应用软件错误定位是指通过分析、识别和定位错误产生的原因和位置,帮助开发人员准确找出错误。
传统的软件错误定位方法通常需要依赖开发人员的经验和调试技巧,其准确性和效率受到限制。
而机器学习能够通过学习大量数据和模式,自动识别错误并生成相应的定位结果。
基于机器学习的软件错误定位模型可以通过以下步骤实现:1. 数据收集和准备:收集软件的运行时数据、日志和代码等信息,为训练模型提供数据基础。
2. 特征提取和选择:对数据进行预处理和特征提取,选取有意义的特征来表示软件错误的特征模式。
3. 模型训练和选择:选择合适的机器学习算法和模型,根据训练数据训练模型,使其能够学习错误定位的规律和模式。
4. 错误定位和修复:使用训练好的模型对新的错误进行定位,并提供修复建议。
二、基于机器学习的软件错误定位模型的优势相比于传统的软件错误定位方法,基于机器学习的模型在以下方面具有明显的优势:1. 自动化和高效性:机器学习模型能够自动从大量数据中学习错误定位模式,避免了人工繁琐的调试过程,提高了定位和修复的效率。
2. 准确性和可靠性:机器学习模型能够学习并捕捉到错误定位的关键特征和模式,提供准确可靠的定位结果,降低了误判和漏判的风险。
3. 实时性和适应性:机器学习模型可以在实时场景中不断学习和优化,能够适应不同的软件系统和错误类型,具备更好的泛化能力。
4. 知识积累和共享:通过使用机器学习模型定位和修复错误,可以积累和分享错误定位的知识和经验,为日后的错误定位和修复提供更多的参考和支持。
三、基于机器学习的软件错误定位模型面临的挑战尽管基于机器学习的软件错误定位模型具有许多优势,但在实际应用中也面临一些挑战:1. 数据质量和可用性:机器学习模型对于训练数据的质量和可用性要求较高,需要准确、全面、代表性的数据来训练模型。
基于径向基神经网络的污水管网堵塞诊断方法刘文亮【期刊名称】《《天津科技大学学报》》【年(卷),期】2019(034)004【总页数】5页(P76-80)【关键词】污水管网; 径向基神经网络; 故障诊断; 堵塞【作者】刘文亮【作者单位】天津市排水管理处天津 300202【正文语种】中文【中图分类】TU992.4污水管网是城市基础重要设施,长期运行、雨天水量增加等易导致管网堵塞、污水冒溢现象,造成城市安全隐患.污水管网系统是一个复杂的非线性、随机系统,污水在管网流动及污水水位受降水、污水流量负荷、管网流阻等多因素影响,有一定的流动规律,又表现出较强的波动性和随机性.对污水管网运行健康状态的监测,特别是污水管网堵塞故障及时准确定位具有重要意义[1].对管网上、下游节点流量进行监测,是确定污水管网是否堵塞的直接手段,如文献[2]报道:通过安装37 台管道流量计,对Costa do Estoril 截流系统进行了监测,需在污水管网中同步安装很多管道流量计,极其费时费力且成本高昂.对污水管网特征参数进行选点实测,再建立管网流动状态故障诊断模型,对管网运行状态进行分析预测,既可以节省实测设备前期投资以及后期维护的费用,又可以充分利用实测数据,达到事半功倍的效果.污水井内水位是反映管网流通状态的重要参数,随着物联网技术成熟发展,基于无线数据传输的低功耗液位测量技术成为污水管网状态监测的新手段,具有低功耗无需直接供电、结构紧凑便于在井盖安装实施等显著优点,使得基于污水井液位并结合管网流量作为特征参数的污水管网流动建模成为可能.现有的污水管网节点流量建模主要是确定性建模,然而,污水在管网中流动受多因素影响,直接确定性建模需要大量的水文资料,实测数据难以获得,且污水管网流程呈现较强的随机性,难以准确确定建模.对于不易建立精确数学模型、具有多种不确定性和非线性的系统,应用人工神经网络智能预测方法往往可以处理传统方法难以解决的问题,人工神经网络以其可学习的特性和其高度并行的结构所带来的容错性强、并行计算、便于用大规模并行实现等优点,及其可逼近任意非线性函数的能力,在供水系统管网压力预测、管网优化设计、管网泄漏预测、污染源追踪等方面,人工神经网络都取得了有效应用[3-4].基于物联网技术的无线液位监测为神经网络训练提供大量有效数据,使得基于人工神经网络的污水管网堵塞诊断成为可能,目前尚未见到相关研究报道.多层感知器是神经网络应用最广泛的一种,但多层感知器采用的误差反向传播算法容易陷入局部最小值且需要较长训练时间,径向基网络有与多层感知器相当的非线性映射能力,径向基函数具有在微小局部范围内生效的非零响应的局部特性,可以在学习过程中获得高效化.径向基神经网络(RBF)学习过程中只需要调整隐含层径向基函数中的参数及隐含层到输出的连接权值,训练速度快,具有较高的效率,且能够实现较高精度的预测.本文以基于污水井液位结合部分特征管网流量为监测参数,构建基于径向基神经网络的污水管网堵塞诊断方法,并对方法的有效性进行验证.1 模型构建1.1 管网水力模型污水管网典型结构包括树形结构和环状结构,图1 给出的是典型环状污水管网结构.管网相邻节点间流动关系如图2 所示, pi 为节点i 的静压,ρ 为污水密度,Vi 为平均速度,hi 为污水井液位高度,H i 为污水井海拔高度(表征坡度),Δ pi , i1+ 为管段阻力损失,节点间流动规律遵循不可压流动伯努利方程.对于污水管网流动,可采用节点分析法对流动规律进行求解,对于具有 n+1 个节点/b 根管段的管网,无泵管段管网流动采用如下矩阵方程组描述[5-6]:式中:F 为n× b 基本关联矩阵,其元素 fij 取值为:f ij =1,节点i 与管段j 相连,且流动方向为离开节点i;f ij= - 1,节点i 与管段j 相连,且流动方向为流向节点i; f ij= 0,节点i 与管段j 不相连.G 为b ×1阶管段流量列向量,每个元素代表对应管段流量.Q 为n ×1阶节点流量列向量,每个元素代表对应节点流量.B 为 ( b - n )×b 阶基本回路矩阵,其内部元素对应边处于环路上且与环取向相同时,元素取值为1;内部元素对应边处于环路上且与环取向相反时,元素取值为-1;不在环路上时,元素取值为0.Z 为b ×1阶管段进出口压差列向量.0 为 ( b - n ) ×1的 0 向量.Z W 为b×1 阶管段阻力损失列向量.对于污水管网流动,管内污水流动阻力一般以沿程阻力为主,局部阻力占比较小,可根据海澄-威廉公式对管段阻力损失进行计算[5].该方程组共有2 b+ n 个方程与2b + n 个变量,方程组封闭具有唯一解,可以求得污水管网稳态下的节点及管段压力、液位高度、流量等流动特征参数. 图1 典型环状污水管网结构Fig.1 Schema of looped sewer network图2 管网相邻节点流动关系Fig.2 Schema of two sewer network adjacent nodes1.2 管网堵塞诊断模型直接分析管网流动状态需要大量的水文资料、管网信息等,往往难以准确获得,使得准确求解流动状态存在较大困难.管道堵塞会导致管段阻力损失变大,进而引起液位变化,同时液位变化受污水流量、降水、季节等多因素影响,表现出较强的随机性和非确定性.基于人工神经网络的智能诊断是解决该问题有效途径,基于物联网技术的无线液位监测可为神经网络训练提供大量有效数据,可通过自主学习提高诊断的准确性.径向基神经网络具有良好的模式分类能力,它是一个三层前向网络,对于具有n+1 个节点,b 根管段的管网、第一层为输入层,输入层变量为 n+1 个节点液位高度h1,…,hn+1;第二层为隐含层,第三层为输出层,输出层为b个管段是否堵塞的诊断结果y1,...,yb,网络结构如图3所示.Ω为输出权矩阵,即Ω =(ωij)N×b,(i=1,…,N;j=1,…,b),ωij为隐含层第i个节点与输出层第j个节点之间的输出权值.Φ i(i=1,…,N)为基函数,即隐节点的激活函数,一般采用Gauss 函数,即式中:δ 为扩展常数.图3 广义径向基神经网络结构Fig.3 Generalized radial basis neural network structure隐含层基函数中心可通过随机选取固定中心和自组织选取中心确定.本文采用K-means 自组织聚类方法[7]选取隐含层神经元径向基函数的数据中心,按照各个数据中心之间的欧几里德距离计算隐含层神经元的扩展常数;采用监督学习算法修正输出层权值,利用梯度法对权值进行调整.将第k 次迭代的数据中心用 c (k) 标识K-means 聚类算法步骤如下:(1)选择N 个不同向量作为对初始聚类中心ci (0)( i = 1,…,N ),赋小随机数作为初始值;(2)计算输入样本与聚类中心的欧几里德距离(3)进行相似性匹配,jℓ代表竞争获胜神经元,满足时,hi 就属于j ℓ类,把全部样本划分为N 个子集:,子集构成典型聚类域;(4)采用各聚类域样本平均方法更新聚类中心,U j(k )代表第j 个聚类域,N j代表第j 个聚类域样本数,则(5)重复步骤(2),直至 c (k) 变化量小于规定值.确定聚类中心后,即可确定扩展常数δ,采用基于LMS 算法[8],由监督学习调整输出层权值,目标是使得实际输出与期望输出之间的均方误差(误差容限)最小,ei 为第i 个训练样本所得结果与期望结果之间的误差.通过学习常数η 调整学习速率[8].基于径向基神经网络的污水管网堵塞诊断流程如图4 所示,训练数据可通过经过实测数据修正的水力模型计算构建和基于液位与堵塞故障长期监测积累大数据进行构建.对输入数据进行归一化处理,避免不同数据差异过大.式中:hmax 和 hmin 为输入数据集最大值与最小值;hi为数据原始值;为归一化值.图4 基于径向基神经网络的污水管网堵塞诊断流程Fig.4 Blocking fault diagnosis procedure for sewer network based on RBF neural network2 案例分析为验证方法的有效性,构建训练集和样本集进行检验.以图1 所示的管网为例,共包括9 个节点,11个管段,输入变量为 9 个节点的液位高度,即,输出变量即为故障类型,见表1.y0~ y11的变化范围为0~1,无堵塞管网正常状态,y0期望为1.y1 ~ y11 为表中对应管段对应故障状态,“0”表示没有堵塞,“1”表示严重堵塞.表1 故障期望输出Tab.1 Failure expectation output代号故障正常期望输出堵塞故障期望输出y 0 正常状态 1 0 y1 <1-2> 0 1 y 2 <1-3> 0 1 y 3 <2-4>0 1 y 4 <3-4> 0 1 y 5 <3-5> 0 1 y 6 <4-6> 0 1 y 7 <5-6> 0 1 y8 <6-7> 0 1 y 9 <7-8> 0 1 y1 0 <7-9> 0 1 y1 1 <8-9> 0 1表2 故障训练样本集(部分)Tab.2 Failure training samples(part)序号h1 h2 h3 h4液位高h5度 /m h6 h7 h8 h9 故障名称1 0.51 0.34 0.85 0.71 1.27 0.88 0.92 0.50 1.40 正常状态2 0.82 1.10 0.98 0.31 1.39 0.76 0.81 0.48 1.20 y3 =1 3 1.11 1.22 1.07 1.50 1.44 0.27 0.78 0.46 0.87 y3 =1基于前节给出了管网水力模型,在给定入口流量、管网特征尺寸、坡度等信息条件下,可直接获得各节点液位高度.先计算出给定入口流量正常状态下的液位高度 h 1, … ,h9,改变某一管段海澄-威廉系数,增加该管段阻力损失模拟堵塞状态,获得该管段堵塞状态对应的管网各节点液位高度,这样可以构造出大量的训练样本集.实际工程应用中,也可基于液位高度与堵塞故障积累数据作为训练样本集,增强方法应用的针对性.根据管网水力计算模型并通过二维插值构造200 个正常工况和故障工况样本集,典型示例见表2.选取前195 个作为训练集,后5 个作为检验集进行方法验证.根据已经设计好的故障集,利用Matlab R2016 编写神经网络故障诊断程序,可以得到故障诊断结果.通过设置不同神经元个数N,进行学习训练,系统训练误差曲线随神经元个数变化如图5 所示,随着神经元个数增加误差逐渐降低,神经元数量为120 个时,误差可达1 × 10-9量级.经水力模型构造的训练样本集学习后,选择5 组数据进行堵塞故障定位检验,故障诊断结果见表3.对5 组数据均进行了准确识别,故障诊断结果表明,基于径向基神经网络可以很好地对污水管网堵塞故障模式进行识别.表3 污水管网堵塞故障诊断结果Tab.3 Blocking fault diagnosis results for sewer network序号y 0 y1 y 2 y 3 y径 4 向基神y 5经网络y输 6 出结果y 7 y 8 y9 y1 0 y11诊断结果实际故障1 0.416 0.456 0.029 0.9890.458 0.1500.100 0.091 0.440 0.476 0.176 0.116 <2-4>堵塞<2-4>堵塞2 0.097 0.450 0.227 0.211 0.055 0.250 0.121 0.044 0.228 0.288 0.474 0.917<8-9>堵塞<8-9>堵塞3 0.187 0.023 0.480 0.280 0.062 0.9940.385 0.293 0.156 0.2520.550 0.387 <3-5>堵塞<3-5>堵塞4 0.136 0.597 0.511 0.593 0.9880.530 0.361 0.097 0.331 0.773 0.014 0.736 <3-4>堵塞<3-4>堵塞5 0.1440.9950.275 0.284 0.649 0.391 0.158 0.251 0.052 0.034 0.164 0.444 <1-2>堵塞<1-2>堵塞图5 训练误差随神经元数量的变化Fig.5 Training error variants with the number of neurons3 结论城市污水管网系统是一个复杂的多变量非线性系统,采用传统的预测方法要得到精确的堵塞预测模型并不容易,故障诊断及预测精确程度难以保证.本文提出基于径向基神经网络的污水管网堵塞故障诊断方法,建立了基于神经网络的管网预测模型,以管网水力分析模型构造了故障诊断训练集,以节点液位为输入变量,经训练的神经网络模型能够准确识别堵塞管段位置,方法有效.从预测过程和结果分析,基于径向基神经网络污水管网堵塞故障诊断方法操作简单,运行速度快,具有自学习能力.进一步研究时,可构建基于现场液位实测数据训练的污水管网堵塞诊断神经网络模型,推广应用于工程实际.参考文献:【相关文献】[1]孙红卫.浅谈我国污水管网建设运营改革之路[J].给水排水,2010,36(z1):373-375. [2] Almeida M C,Brito R S.System diagnostics using flow data:Quantifying sources and opportunities for performance improvement[C]//Proceedings of the 9th International Conference on Urban Drainage.Portland:American Society of Civil Engineers.2002:1-13. [3]常田,刘书明,王敏,等.基于BP 神经网络的城市供水管网健康状态评估[J].给水排水,2016(6):138-141.[4]陆健,陈卫,吴志成.基于BP 神经网络的供水管网分时段宏观模型研究[J].中国给水排水,2007,23(3):99-101.[5]严熙世,刘遂庆.给水排水管网系统[M].北京:中国建筑工业出版社,2002.[6]赵洪宾.给水管网系统理论与分析[M].北京:中国建筑工业出版社,2003.[7] Kang D,Lansey K.Real-time demand estimation and confidence limit analysis for water distribution systems[J].Journal of Hydraulic Engineering,2009,135(10):825-837. [8]苏小红,侯秋香,马培军,等.强神经网络的混合学习算法[J].哈尔滨工业大学学报,2006,38(9):132-136.。
BP神经网络以及径向基网络的研究RBF毕业论文BP神经网络(Backpropagation Neural Network)和径向基网络(Radial Basis Function Network)是常用的神经网络模型,在许多领域都有广泛的研究和应用。
本文将从两个方面分别介绍BP神经网络和径向基网络的研究,并讨论它们的优缺点。
首先是BP神经网络的研究。
BP神经网络是一种前馈式神经网络,具有多层结构,其中包含输入层、隐藏层和输出层。
BP神经网络通过反向传播算法来训练模型,根据输入数据和期望输出之间的误差来调整网络的权重和阈值,使得模型能够逐步优化。
BP神经网络具有灵活的拟合能力和较强的普适性,可以用于解决分类、回归和预测等问题。
在BP神经网络的研究中,一些学者提出了改进的算法和结构来提升其性能。
例如,对于训练速度较慢的问题,可以使用改进的优化算法,如共轭梯度法、遗传算法等,来加速权重和阈值的更新过程。
另外,为了防止过拟合现象,可以使用正则化方法或交叉验证等技术来选择最佳的模型参数。
此外,还可以通过调整隐藏层的节点数和层数等来改进模型的表达能力和泛化能力。
接下来是径向基网络的研究。
径向基网络是一种基于径向基函数的神经网络,通常包括输入层、隐藏层和输出层。
其中隐藏层使用径向基函数作为激活函数,将输入数据映射到高维特征空间中,然后通过线性函数进行分类或回归。
径向基函数具有局部性质和非线性拟合能力,适用于解决非线性问题。
在径向基网络的研究中,一些学者提出了不同的径向基函数和网络结构来适应不同的问题。
例如,高斯函数、多项式函数和多小波函数等都被用作径向基函数的选择。
此外,也有学者研究了递归径向基网络和自适应径向基网络等改进的算法和结构。
这些方法在模型的表达能力和泛化能力方面具有一定的优势。
综上所述,BP神经网络和径向基网络是两种常见的神经网络模型,在研究和应用中具有广泛的应用。
它们分别具有灵活的拟合能力和非线性拟合能力,可以用于解决各种问题。
优先出版 计 算 机 应 用 研 究 第32卷
--------------------------------
基金项目:中央高校基本科研业务费专项资金(NS2012072)
作者简介:张柯(1984-),男,硕士研究生,主要研究方向为软件测试与软件可靠性建模(syfy84@);张德平(1973-),男,讲师,博士,主要研究方向为软件测试与软件可靠性建模;汪帅(1987-),男,硕士研究生,主要研究方向为软件测试与软件可靠性建模.
基于增强径向函数神经网络的错误定位方法
张 柯,张德平,汪 帅
(南京航空航天大学 计算机科学与技术学院,南京 210016)
摘 要:软件调试是整个软件开发与维护过程中最为耗时耗力的部分,而错误定位方法的选择直接影响软件调试的效率与成本。
针对现有径向基函数神经网络中的参数设定问题,结合正交试验设计理论,提出了一种增强径向基函数神经网络错误定位算法。
首先,根据选择的测试用例执行得到源程序的语句覆盖信息和执行结果;然后,通过神经网络计算出每条语句的可疑度值,并利用正交实验设计方法自适应调整神经网络中的参数值;最后,按照可疑度值由高到低的顺序逐条检查程序的可疑语句进行错误定位。
通过实验对所提出方法与径向基函数神经网络算法以及反向传播神经网络算法进行比较分析,结果表明,基于增强径向基函数神经网络的错误定位方法具有更精确的错误定位效果和更显著的定位效率。
关键词:错误定位;径向基神经网络;正交实验设计;软件测试 中图分类号:TP 文献标志码:A
Fault localization method based on enhanced radial basis function neural network
ZHANG Ke, ZHANG De-ping, WANG Shuai
(College of Computer Science & Technology, Nanjing University of Aeronautics & Astronautics, Nanjing 210016)
Abstract: Software debugging and maintenance of the entire software development process is the most time-consuming part, but choosing the fault localization methods directly affect the efficiency and cost of software debugging. Determined for the existing radial basis function neural network parameters of the problem, combined with orthogonal design theory, proposed an enhanced radial basis function neural network fault location algorithm. First, according to the selected test cases covering the implementation of information and get the source code statement execution results; then calculated by the neural network suspicious value for each statement, and using orthogonal experimental design method to adjust the parameters of adaptive neural networks ; Finally, according to the statement suspicious values in descending order by one inspection program fault localization. Through experiments on the proposed method and radial basis function neural network algorithm and back propagation neural network algorithm were compared, the results showed that, Enhanced fault localization method based radial basis function neural network with more accurate results and more significant fault localization efficiency.
Key Words: fault localization; radial basis function network; orthogonal experimental design (OED); software testing
0 引言
软件开发和维护是非常复杂且容易出错的过程,据统计在软件开发和维护阶段大约50%-70%左右的工作量要花费在查找软件错误上[1]。
而查找软件错误的主要手段是调试,这是整个调试任务中最为困难的部分[2]。
随着现代计算机软件系统的规模日益庞大,功能越来越复杂,导致软件维护难度也越来越大,如何更加高效地定位软件中的错误已成为社会广泛关注的焦点之一。
传统的错误定位方法,主要是采用人工地利用调试工具设置断点,跟踪程序的执行,并检查程序运行时的状态值是否与预期值相同来进行错误定位。
显然,这种方法对调试人员的编程维护能力要求非常高,且对程序中所有的执行语句无差别对
待,费时费力,效率低下。
随着软件业突飞猛进的发展,软件规模日益增大,复杂性也越来越高,这种单纯利用人工查找错误的方法变得越来越困难,迫切需要引入自动化方法来定位程序中的错误,以提高整个软件调试过程的效率。
现有的错误定位方法,主要是采用具有良好覆盖的测试用例集或测试套件,得出程序的覆盖信息以及执行结果,并通过错误定位模型计算出可能出错的语句集合。
因此,一个高效的错误定位方法的核心问题在于出错语句可疑度计算的建模。
按照使用程序执行信息的差异和是否修改程序运行时的状态,可以将自动化错误定位方法分为3类:基于程序切片的方法,基于程序行为特征对比的方法和基于程序状态修改的方法。
基于程序切片的方法[3, 4]使用程序中的数据依赖,控制依赖等关系给出可能出错的语句集合,这个集合中不仅包含了出错
文章预览已结束
获取全文请访问
/article/02-2015-03-068.html。