張燦青+彭成 薛智山 滿君豐
摘要:在開放、動態(tài)的網(wǎng)絡(luò)環(huán)境下,為了解決網(wǎng)構(gòu)軟件動態(tài)組裝問題,提出一種改進(jìn)的基于粒子群的優(yōu)化算法。首先在多約束條件下設(shè)計模型的可信組合方案,通過改進(jìn)的粒子群算法進(jìn)行最優(yōu)求解,找出構(gòu)件模型的最優(yōu)組合。結(jié)合實驗仿真和實證研究,結(jié)果表明所提方法在求解多約束構(gòu)件組合優(yōu)化問題上是有效的,能提高網(wǎng)構(gòu)軟件組裝的效率和可信性。
關(guān)鍵詞:網(wǎng)構(gòu)軟件;粒子群算法;構(gòu)件組合
中圖分類號:TP301.6 文獻(xiàn)標(biāo)識碼:ADOI:10.3969/j.issn.10036199.2017.01.016
1引言
由于互聯(lián)網(wǎng)軟件行業(yè)的高速發(fā)展和開發(fā)技術(shù)的不斷成熟,傳統(tǒng)的軟件開發(fā)方式很大程度上滿足不了系統(tǒng)業(yè)務(wù)的要求,這時提出了構(gòu)件的概念,并以構(gòu)件為架構(gòu)進(jìn)行程序的開發(fā)。目前企業(yè)越來越重視對構(gòu)件產(chǎn)品的應(yīng)用,通過組合具有各自不同功能的構(gòu)件來搭建軟件系統(tǒng)框架,以滿足企業(yè)業(yè)務(wù)所需[1]。
在基于構(gòu)件為程序架構(gòu)的軟件編程中發(fā)現(xiàn),如果僅僅使用單個構(gòu)件產(chǎn)品往往滿足不了用戶的需求,也不能實現(xiàn)系統(tǒng)中的特定功能,這時就需要通過組合不同構(gòu)件來構(gòu)成一個更加完善的系統(tǒng),進(jìn)而實現(xiàn)復(fù)雜業(yè)務(wù)功能[2]。面對企業(yè)復(fù)雜多變的環(huán)境,對構(gòu)件的選擇需求越來越高,如何從動態(tài)地海量組合方案中選擇出滿足用戶質(zhì)量需求的構(gòu)件,成為構(gòu)件組合領(lǐng)域的一個關(guān)鍵問題,這對構(gòu)件服務(wù)的研發(fā)具有重要的作用及市場價值。在文獻(xiàn)[2-4]中提出了以構(gòu)件為框架的軟件模型,但并沒有提到如何從若干些構(gòu)件組成的模塊中選擇合適的構(gòu)件結(jié)構(gòu)。文獻(xiàn)[5]用遺傳算法等解決構(gòu)件選擇的全局最優(yōu)化問題。不過上面提到的方法只取得了局部最優(yōu)解而不是全局最優(yōu)解,且在候選構(gòu)件集迅速增加時很難保證算法時間的收斂性。粒子群優(yōu)化算法(Particle Swarm Optimization,PSO) [6] 是一種集成群體智能的優(yōu)化算法,由于其操作簡單且功能強(qiáng)大,它已經(jīng)成為研究軟件優(yōu)化領(lǐng)域的重點方向。本文以粒子群算法為基礎(chǔ),融合遺傳算法的交叉、變異及選擇等方法,提出一種改進(jìn)后的粒子群算法。下面本文對改進(jìn)后的粒子群算法進(jìn)行定義描述及實驗,并對實驗結(jié)果進(jìn)行分析和驗證。
2問題描述
構(gòu)件的選擇問題在構(gòu)件的組合中成為軟件開發(fā)研究的熱點,處理構(gòu)件的參數(shù)還要考慮它的性能指標(biāo)等問題。針對目前構(gòu)件選擇缺乏定量化的質(zhì)量標(biāo)準(zhǔn),我們將可信性納入構(gòu)件選擇中?;跇?gòu)件有著不同的屬性及性能,在選擇構(gòu)件時依據(jù)這些參數(shù)進(jìn)行優(yōu)先考慮(如構(gòu)件的可靠性、適用性等)。因此本文提出了一種構(gòu)件選擇的可靠機(jī)制模型。
定義1 構(gòu)件[5] 為了對軟件構(gòu)件進(jìn)行選擇,本文從四個方面對構(gòu)件進(jìn)行描述,定義為WS=(N,B,P,Q),其中N表示構(gòu)件的名稱是對某個構(gòu)件的稱呼;B表示構(gòu)件的標(biāo)示,
3.2改進(jìn)粒子群算法設(shè)計
基本粒子群算法最明顯的優(yōu)點就是搜索速度快效率高,且應(yīng)用簡單等,但是對于組合優(yōu)化問題處理不佳容易出現(xiàn)早熟收斂現(xiàn)象陷入局部最優(yōu)。就構(gòu)件組合全局優(yōu)化問題而言,其變量為離散變量,難以描述粒子群算法中的速度信息,為了解決這些缺點,本文結(jié)合粒子群算法與遺傳算法的各自優(yōu)缺點,將兩者進(jìn)行集成,去除其算法缺點給程序帶來的不足。其主要的思想為:;依據(jù)粒子群算法中的局部和全局粒子群的信息值,適時計算并得到給定公式的最優(yōu)解。改進(jìn)后的粒子群算法的運(yùn)算過程可以分為:初始化階段和計算并更新階段。其中,預(yù)處理就是對不同類型的構(gòu)件可靠性數(shù)據(jù)進(jìn)行預(yù)處理,將可靠性數(shù)據(jù)限定在一定范圍內(nèi),以平衡各指標(biāo)對目標(biāo)函數(shù)的貢獻(xiàn);初始化階段主要是初始化改進(jìn)的粒子群算法,如將粒子的相關(guān)信息進(jìn)行公式化描述。粒子的更新階段在每次迭代產(chǎn)生新的粒子變量,保證粒子的適應(yīng)值不斷變化,從而獲得最優(yōu)解。
(1)種群初始化
由于全局優(yōu)化問題的解對應(yīng)著具體的構(gòu)件實例,而基本粒子群算法無法直接處理這些變量,本文采用隨機(jī)數(shù)的方式對群體進(jìn)行初始化,即用隨機(jī)函數(shù)為構(gòu)件賦編碼,方法為Num%m(Num為一個隨機(jī)整數(shù),m指構(gòu)架類的數(shù)目),將求得第一個數(shù)賦給第一個構(gòu)件,以此類推給所有的構(gòu)件賦標(biāo)號。對于給定的解(構(gòu)件),用一組n維向量來表示,每一維的取值范圍[1,m]。其具體的含義是指組合模型中每個構(gòu)件類的包含每個構(gòu)件實例,用這m個數(shù)對構(gòu)件實例進(jìn)行編號。如編號序列為1240表示的是:構(gòu)件集體中第一類中的第1個構(gòu)件實體,第二類中的第2個構(gòu)件實體,第三類中的第4個構(gòu)件實體,0表示在第四類構(gòu)件中沒有構(gòu)件被選中。
設(shè)定粒子群的規(guī)模為N,最大迭代次數(shù)為K,根據(jù)粒子定義的可行性根據(jù)式(1)計算每個粒子的適應(yīng)度f,并根據(jù)適應(yīng)度的值進(jìn)行依次排序,查找出粒子的局部最優(yōu)解
5結(jié)論
本文在國內(nèi)外對構(gòu)件研究成果的基礎(chǔ)上,對構(gòu)件進(jìn)行闡述分析,在組合優(yōu)化問題中提出自己的見解。其中主要的研究內(nèi)容包括:(1)本文對構(gòu)件選擇問題進(jìn)行綜合分析,建立了一個構(gòu)件選擇模型,將構(gòu)件選擇的全局最優(yōu)問題轉(zhuǎn)化為了一個帶約束條件下的多目標(biāo)優(yōu)化問題。(2)采用遺傳算法的交叉、變異、選擇等操作為粒子群進(jìn)行更新,使種群具有多樣性,以此來提高收斂速度及算法的效率。(3)在基本粒子群算法中無需設(shè)定其基本的參數(shù)(即慣性權(quán)重系數(shù),學(xué)習(xí)因子,速度即位置的范圍等),可以只將粒子群概念中的迭代次數(shù)和種群規(guī)模的值進(jìn)行初始化,減少了算法計算的過程。結(jié)合實驗仿真和實證研究,實驗結(jié)果證明了上述所提方法對解決多約束的構(gòu)件組合優(yōu)化問題是有效可行的。
參考文獻(xiàn)
[1]廖軍,譚浩,劉錦德.基于Pi-演算的Web服務(wù)組合的描述和驗證[J].計算機(jī)學(xué)報,2005,28(4):635-643.
[2]孫熙,莊磊,劉文,等.一種可定制的自主構(gòu)件運(yùn)行支撐框架[J].軟件學(xué)報,2008,19(6):1340-1349.
[3]劉文,孫熙,焦文品,等.一種基于自主構(gòu)件的網(wǎng)構(gòu)軟件協(xié)作框架[J].計算機(jī)研究與發(fā)展.2006,43:217-221.
[4]侯麗珊,金芝.基于環(huán)境變遷的構(gòu)件組合模型[J].電子學(xué)報,2005,33(12A):2370-2375.
[5]李佳偉,喻瑩,董才林.一種網(wǎng)構(gòu)軟件構(gòu)件選擇方法[J].計算機(jī)應(yīng)用與軟件,2013,3.142-146.
[6]KENNEDY EBERHART R.Particle swarm optimization[A].International Conference on Neural Networks[C].Washington:IEEE,1995,1942-1948.
[7]楊淑瑩,張樺.群體智能與仿生計算——MATLAB技術(shù)實現(xiàn)[D].北京:電子工業(yè)出版社,2014.
[8]MA Xiujuan,ZHOU Minghui,HONG Mei.A case study of internetware development[C]//Proceedings of the Second Asia-Pacific Symposium,2010:1-13.
[9]劉玲,.基于本體的構(gòu)件檢索的研究[D].青島:中國石油大學(xué)(華東),2010.
[10]張春梅,李蜀瑜.嵌入式軟件中一種修正QOS值的構(gòu)件選擇方法[J].計算機(jī)應(yīng)用與軟件,2011,28(6):63-65.
第36卷第1期2017年3月計算技術(shù)與自動化Computing Technology and AutomationVol36,No1Mar. 2 0 1 7第36卷第1期2017年3月計算技術(shù)與自動化Computing Technology and AutomationVol36,No1Mar. 2 0 1 7