• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      應用于軟件缺陷預測模型的量子粒子群優(yōu)化BP算法

      2019-07-17 01:56:50洪曉彬姜利群
      關鍵詞:軟件缺陷全局量子

      洪曉彬,姜利群,趙 鵬

      (1.廣州工商學院 計算機科學與工程系, 廣州 510850;2.中國礦業(yè)大學 計算機學院, 江蘇 徐州 221116;3.太原師范學院 計算機科學與技術系, 太原 030619)

      從20世紀90年代開始,隨著計算機的普及和推廣,電腦操作系統(tǒng)得到了快速發(fā)展。各類軟件應用程序也迅速出現(xiàn)并在越來越多的企業(yè)中得到應用。企業(yè)需求的不斷增多和技術的不斷進步,導致軟件的復雜度呈現(xiàn)出指數(shù)型增長態(tài)勢[1],其功能和存儲大小都不斷增加。越來越復雜和龐大的軟件程序使出現(xiàn)故障的可能性也隨之不斷提高,而現(xiàn)在的企業(yè)已十分依賴軟件系統(tǒng)。如果軟件程序出現(xiàn)故障,會對企業(yè)造成不可預知的嚴重影響。因此,軟件的缺陷分析成為了軟件開發(fā)步驟中必要的環(huán)節(jié)。通過軟件缺陷分析,能夠有效地確保軟件質量,加強軟件的安全性。

      目前,通常將軟件失效分為3個方面:軟件錯誤(software error)、軟件故障(software fault)、軟件缺陷(software defect)。其中,軟件缺陷是指系統(tǒng)或系統(tǒng)部件中那些導致系統(tǒng)或部件不能實現(xiàn)其功能的缺陷。軟件缺陷屬性包括缺陷標識、缺陷類型、缺陷嚴重程度、缺陷產(chǎn)生可能性、缺陷優(yōu)先級、缺陷狀態(tài)、缺陷起源、缺陷來源、缺陷原因。在軟件開發(fā)的過程中,軟件缺陷的產(chǎn)生是不可避免的。因此,如何準確、有效地發(fā)現(xiàn),并快速修復軟件缺陷成為研究的一個熱點。文獻[4]提出了一種評估動態(tài)系統(tǒng)中軟件構件可靠性的模型選擇方法;文獻[5]提出一種基于優(yōu)化BP神經(jīng)網(wǎng)路的軟件缺陷預測方法,通過灰狼優(yōu)化算法克服BP神經(jīng)網(wǎng)絡陷入局部搜索,從而解決其參數(shù)設置依賴性問題;文獻[6]運用粒子群優(yōu)化算法(PSO)優(yōu)化BP神經(jīng)網(wǎng)絡的權值和閾值,提出了一種基于PSO-BP軟件缺陷預測模型,在一定程度上提高了預測的準確性。

      相比PSO算法,量子粒子群優(yōu)化算法通過結合量子進化理論,進一步提升了全局搜索能力,能在一定程度上克服BP神經(jīng)網(wǎng)絡算法在收斂性能上的不足。因此,本文將量子粒子群算法和BP神經(jīng)網(wǎng)絡相結合,以提高軟件缺陷預測模型的準確性和適用性。以3層BP神經(jīng)網(wǎng)絡構為基礎,運用量子粒子群優(yōu)化算法對BP神經(jīng)網(wǎng)絡的權值和閾值進行優(yōu)化,從而在調節(jié)參數(shù)較少的條件下優(yōu)化全局搜索能力。仿真實驗結果顯示:相比傳統(tǒng)BP神經(jīng)網(wǎng)絡和粒子群優(yōu)化BP神經(jīng)網(wǎng)絡,提出的軟件缺陷預測模型算法在準確率、效率方面均得到有效提高。

      1 相關工作

      軟件缺陷預測模型可以有效節(jié)約軟件測試項目的成本和資源,提高軟件工程質量。近幾年,基于BP神經(jīng)網(wǎng)絡的軟件缺陷預測技術研究成為了主流。

      1.1 BP神經(jīng)網(wǎng)絡架構

      BP神經(jīng)網(wǎng)絡的本質是一種多層次的前饋網(wǎng)絡,典型的架構為3層感知模型[7-8]。3層BP神經(jīng)網(wǎng)絡模型結構包含1個輸入層、1個隱含層和1個輸出層,如圖1所示。

      圖1 3層BP神經(jīng)網(wǎng)絡模型結構

      在第1層(輸入層)中輸入和輸出分別為:

      (1)

      (2)

      在第2層(隱含層)中,利用高斯函數(shù)對上一層的數(shù)值進行分類。該層的輸入和輸出分別為:

      i=1,2;j=1,2,…,n

      (3)

      i=1,2;j=1,2,…,n

      (4)

      輸出層的輸入和輸出分別為:

      (5)

      (6)

      其中W為連接權重。

      參數(shù)αij和參數(shù)βij的更新方法如下:

      λ(αik(t)-αik(t-1))

      (7)

      λ(βik(t)-βik(t-1))

      (8)

      圖2 基于BP神經(jīng)網(wǎng)絡的軟件缺陷預測流程

      1.2 量子粒子群優(yōu)化算法

      群智能優(yōu)化算法作為一種人工模仿動物群體生活習性的仿生技術,在數(shù)據(jù)挖掘算法方面具有較大的應用前景。例如,粒子群優(yōu)化算法作為群智優(yōu)化的重要方法之一,能夠模擬簡單群落中個體以及個體之間的互動行為來搜索全局最優(yōu)解[9]。2004年提出的量子粒子群優(yōu)化算法通過結合量子進化理論,進一步提升了全局搜索能力。利用該特性,文獻[10]將量子粒子群優(yōu)化算法應用于電網(wǎng)規(guī)劃問題。在量子粒子群優(yōu)化算法中設種群規(guī)模為M,粒子位置更新方法如下:

      P=a×Pbest(i)+(1-a)×Gbest

      (9)

      其中:Pbest表示粒子個體最佳值;Gbest表示粒子群最佳值;a為一個隨機數(shù),取值范圍為[0,1]。粒子個體最佳值的平均值為:

      (10)

      在取值空間內,粒子群搜索過程中收縮擴張因子的更新方式如下:

      (11)

      其中:generation表示當前進化代數(shù);max generation表示最大進化代數(shù)。

      position=

      (12)

      其中u為一個隨機數(shù),取值范圍為[0,1]。相比粒子群優(yōu)化算法,量子粒子群優(yōu)化算法更容易實現(xiàn),且所需的調節(jié)參數(shù)更少。此外,在全局搜索的過程,其陷入局部最優(yōu)的可能性更低。

      2 軟件缺陷預測模型的建立

      經(jīng)研究發(fā)現(xiàn),基于BP神經(jīng)網(wǎng)絡的軟件缺陷預測模型一般具有較高的概率陷入局部最小值,會導致學習時間長、預測精度差的問題。因此,不少文獻對BP神經(jīng)網(wǎng)絡進行了各種優(yōu)化和調整,以提高軟件缺陷模型的預測性能。例如,文獻[11]提出用模擬退火技術代替局部梯度下降法修正BP神經(jīng)網(wǎng)絡的權值。

      2.1 量子粒子群優(yōu)化BP神經(jīng)網(wǎng)絡

      本文研究目的是使用量子粒子群優(yōu)化算法改進BP神經(jīng)網(wǎng)絡各層的連接權值和閾值,從而提高其收斂性能。在確定軟件缺陷預測模型的BP神經(jīng)網(wǎng)絡結構和相關參數(shù)后,采用量子粒子群優(yōu)化算法對學習結果進行優(yōu)化,將優(yōu)化結果反饋到BP神經(jīng)網(wǎng)絡,從而解決BP神經(jīng)網(wǎng)絡收斂速度慢、易陷入局部最優(yōu)的缺陷。BP神經(jīng)網(wǎng)絡中隱含層采用的應激函數(shù)S(z)設置為:

      (13)

      其中:k表示一個控制應激函數(shù)陡峭性的調整因子;z表示該應激函數(shù)的輸入值。

      量子粒子群優(yōu)化BP神經(jīng)網(wǎng)絡算法的實現(xiàn)過程如下:

      ① 創(chuàng)建BP神經(jīng)網(wǎng)絡;

      ② 初始化粒子群,設定種群規(guī)模及相關參數(shù)并完成迭代過程;

      ③ 評估粒子的適應度以便得到每個粒子的個體極值和全局極值,并記錄全局極值;

      ④ 對于每個粒子的極值都要進行實時的更新,如式(12)所示;

      ⑤ 重新計算每個粒子的適應度,并記錄全局極值;

      ⑥ 判斷是否滿足收斂條件,是則跳轉下一步,否則繼續(xù)執(zhí)行步驟3;

      ⑦ 通過獲得的最佳位置對全局最佳值(BP神經(jīng)網(wǎng)絡各層的連接權值和閾值)進行更新,算法運行結束。

      2.2 軟件缺陷預測模型

      基于量子粒子群優(yōu)化BP算法的軟件缺陷預測模型如圖3所示。

      3 實例分析

      3.1 實驗數(shù)據(jù)

      本文采用NASA提供的MDP 軟件信息數(shù)據(jù)集(arff文件格式)[12-14],對基于量子粒子群優(yōu)化BP算法(QPSO-BP)的軟件缺陷預測模型進行驗證分析和性能對比。具體使用MDP數(shù)據(jù)集中的7個數(shù)據(jù)集文件進行了軟件缺陷預測,其相關信息如表1所示。實驗環(huán)境:Windows 10操作系統(tǒng),6 GB內存。在Eclipse平臺上采用Java開發(fā)語言進行具體編程實現(xiàn)。設定學習率為0.02,訓練次數(shù)為10 000次,最大誤差為0.002。

      圖3 軟件缺陷預測模型

      名稱訓練文件大小/KB學習樣本數(shù)驗證文件大小/KB驗證抽取樣本數(shù)MC19469 2772341 988MC21912719125PC19975992705PC21811 58590745PC31451 1251391 077PC41691 3991581 287PC51 63717 0012191 711

      3.2 評估指標

      為了對提出模型的性能進行量化分析,選用3種常用的評價準則[15-17]:均值誤差平方和、回歸曲線方程的相關指數(shù)和準確度來比較模型的預測能力。均值誤差平方和的計算方法如式(14)所示。

      (14)

      (15)

      其中:yave表示yi的均值;RSq的數(shù)值越接近1,可靠性評估性能越好。準確度的計算方法如式(16)所示:

      (16)

      其中:T表示正確預測的模塊數(shù)量;C表示觀測數(shù)據(jù)實例的總數(shù)。準確度的數(shù)值越高越好。

      3.3 結果與分析

      表2分別列出了基于傳統(tǒng)BP神經(jīng)網(wǎng)絡、PSO-BP和QPSO-BP的3種軟件缺陷預測模型在7個數(shù)據(jù)集文件上的預測結果。

      表2 不同模型的預測結果

      從7個數(shù)據(jù)集文件上的預測結果可以看出:相比其他2種基于BP神經(jīng)網(wǎng)絡的軟件缺陷預測模型,基于量子粒子群優(yōu)化BP算法的軟件缺陷預測模型的性能最佳,準確度最高。從表2中可以看出:本文提出模型的MSE數(shù)值均最小,分別為98.86、8.92、58.47、127.46、143.8、21.57和62.82。RSq數(shù)值均接近1,分別為0.993、0.99、0.982、0.898、0.971、0.96、0.973。7組預測的準確度結果也最高,均能達到90%左右。

      3種軟件缺陷預測模型的預測計算時間結果如圖2所示??梢钥闯觯合啾然趥鹘y(tǒng)BP神經(jīng)網(wǎng)絡和PSO-BP的方法,基于量子粒子群優(yōu)化BP算法的軟件缺陷預測模型所需的學習時間最短。這是由于量子粒子群優(yōu)化算法更容易實現(xiàn),且所需的調節(jié)參數(shù)更少。

      圖4 軟件缺陷預測的計算時間對比

      4 結束語

      本文將量子粒子群算法和BP神經(jīng)網(wǎng)絡相結合,提出了一種基于QPSO-BP的軟件缺陷預測模型。提出的優(yōu)化方法能更有效地提高BP神經(jīng)網(wǎng)絡的收斂速度,防止陷入局部極小。仿真實驗結果顯示:相比傳統(tǒng)BP神經(jīng)網(wǎng)絡和粒子群優(yōu)化BP神經(jīng)網(wǎng)絡,提出軟件預測模型的準確率、效率均得到有效提高。但是,提出算法的預測精度仍有提升空間,后續(xù)將會對BP神經(jīng)網(wǎng)絡結構和參數(shù)做進一步改進和優(yōu)化。

      猜你喜歡
      軟件缺陷全局量子
      2022年諾貝爾物理學獎 從量子糾纏到量子通信
      Cahn-Hilliard-Brinkman系統(tǒng)的全局吸引子
      量子Navier-Stokes方程弱解的全局存在性
      基于源文件可疑度的靜態(tài)軟件缺陷檢測方法研究
      決定未來的量子計算
      新量子通信線路保障網(wǎng)絡安全
      落子山東,意在全局
      金橋(2018年4期)2018-09-26 02:24:54
      基于NPE-SVM的軟件缺陷預測模型
      開源程序的軟件缺陷分布特征的量化分析研究
      一種簡便的超聲分散法制備碳量子點及表征
      碌曲县| 马鞍山市| 西昌市| 瑞安市| 射阳县| 英吉沙县| 汨罗市| 彭泽县| 开化县| 慈利县| 惠来县| 绩溪县| 梁山县| 九龙县| 河北区| 海丰县| 北碚区| 秭归县| 丹阳市| 安仁县| 武穴市| 鲁甸县| 攀枝花市| 石屏县| 贵定县| 康平县| 江源县| 石林| 清水河县| 阿拉善右旗| 连州市| 临夏市| 眉山市| 右玉县| 乌拉特前旗| 库车县| 盐城市| 寿光市| 鄂州市| 建昌县| 娄烦县|