李金友,紀(jì)洪波
(通化師范學(xué)院 計(jì)算機(jī)學(xué)院,吉林 通化 134002)
隨著計(jì)算機(jī)技術(shù)的迅速發(fā)展,計(jì)算機(jī)及其系統(tǒng)被廣泛地應(yīng)用到科研、教育、商業(yè),以及軍事等諸多領(lǐng)域.與之相應(yīng)的軟件開發(fā)的規(guī)模和復(fù)雜程度也越來越高.在開發(fā)過程中,不斷增加開發(fā)預(yù)算,推后交付日期已經(jīng)成為軟件項(xiàng)目中亟待解決的問題.為此,國內(nèi)外的學(xué)者和研究者對(duì)如何提高軟件開發(fā)質(zhì)量和開發(fā)效率進(jìn)行了大量的研究[1].目前解決這一問題的方法主要是從建立合理高效的軟件系統(tǒng)模型入手.而在眾多的開發(fā)和設(shè)計(jì)中,Agent以及MAS理論和方法最受關(guān)注.
目前,國內(nèi)外對(duì)Agent的研究和正在開發(fā)的項(xiàng)目有很多,主要包括形式化描述方法和非形式化描述兩種[2].形式化描述方法可以很容易地建立理論研究與實(shí)際工程項(xiàng)目之間的聯(lián)系(relation),能夠在最大程度上減少設(shè)計(jì)階段出現(xiàn)的錯(cuò)誤,因此,軟件的早期錯(cuò)誤較少,軟件開發(fā)成本較其它模型低.而非形式化描述方法語法簡(jiǎn)單,開發(fā)人員容易掌握和使用,但是存在精確度差,容易產(chǎn)生歧義性的缺點(diǎn).因此,這種描述方法只適合那些有豐富工程和開發(fā)經(jīng)驗(yàn)的人員使用.本文在對(duì)多種描述方法進(jìn)行研究的基礎(chǔ)上,采用了Petri網(wǎng)和面向?qū)ο蟮燃夹g(shù),提出一種面向代數(shù)Petri網(wǎng)的模型.通過實(shí)驗(yàn)表明,該模型可以有效解決目前形式化描述方法的缺點(diǎn).
定義1:假設(shè)給定代數(shù)規(guī)格說明為Sp=(S,OP,X,EQ),那么OOAPN模型定義為3元組:
OOAPN=(OIP,A,ION)
(1)
其中,ION是一個(gè)經(jīng)過修改的有色Petri網(wǎng),代表OOAPN模型的內(nèi)部行為,其形式為一個(gè)9元組:
ION=(P,T,H,d,,E,G,F,IO)
(2)
其中:
①P∪T=?,P∪T=?,HP×T∪T×P; ②d:P→GS,是一個(gè)映射,使得每一個(gè)庫所關(guān)聯(lián)一個(gè)基本類別,即:?p∈P,d(p)∈{s|s∈S}; ③v:T→Ut∈T(Xt)MS,是一個(gè)賦值函數(shù),給每一個(gè)轉(zhuǎn)換t∈T賦予一組多重集變量.即?t∈T,v(t)∈(Xt)MS;
OIP是對(duì)象標(biāo)識(shí)庫所,定義為一個(gè)4元組:
OIP=(oip,pid,m0,status)
(3)
定義2 在OOAPN中,庫所集P定義為一個(gè)2元組:
P=(BP,AP)
(4)
定義3 在OOAPN模型中,轉(zhuǎn)換集T定義為一個(gè)3元組:
T={BT,AT,TCREATE,COT}
(5)
其中:
BT是OOAPN模型類中的基本轉(zhuǎn)換;
AT=(tn,refine-state,action)是抽象轉(zhuǎn)換,其中:
①tn是抽象轉(zhuǎn)換名;
②refine-state是一個(gè)邏輯型標(biāo)志變量,指示抽象轉(zhuǎn)換的精化,G(AT)=true,同時(shí)遵循如下規(guī)則:
如果refine-state==true,
抽象庫所AT被進(jìn)一步精化,并且υ(AT)∈U(Ut∈T(Xt)MS),否則,提煉網(wǎng)不被精化,內(nèi)部行為的靜態(tài)反映模擬為action.
圖1 OOAPN模型的一般符號(hào)表示
OOAPN模型的圖形表示如圖1所示.其中TIN、TOUT分別表示IN轉(zhuǎn)換和OUT轉(zhuǎn)換.
OOAPN模型的標(biāo)識(shí)是一個(gè)映射M:P→DMS,即?p∈P,M(p)∈DMS(D(p)),滿足如下規(guī)則:
(1)對(duì)于簡(jiǎn)單庫所,初始標(biāo)識(shí)M0定義為初始化符號(hào)標(biāo)識(shí)的計(jì)算,即:?p∈BP,M0(p)=eval(m0(p));
通過定義和使能條件可以看出,基于面向?qū)ο蠹夹g(shù)的代數(shù)Petri網(wǎng)模型是類別代數(shù)理論、Petri網(wǎng)技術(shù)、結(jié)構(gòu)化原理和面向?qū)ο蠓椒ǖ挠袡C(jī)集成.基于面向?qū)ο蠹夹g(shù)的代數(shù)Petri網(wǎng)模型能夠在最大程度上減少設(shè)計(jì)階段出現(xiàn)的錯(cuò)誤,軟件的早期錯(cuò)誤較少,軟件開發(fā)成本較其它模型低.同時(shí)該方法語法簡(jiǎn)單,開發(fā)人員容易掌握和使用,并具有精確度高,不會(huì)產(chǎn)生歧義性的優(yōu)點(diǎn)[4-5],在軟件開發(fā)方面具有很好的可借鑒性.
參考文獻(xiàn):
[1]李金友.OOAPN模型建模工具正向代碼的生成[J].通化師范學(xué)院學(xué)報(bào),2009(8).
[2]Pillow.Pillow v2.2.1(PIL fork)tutorial[EB/OL].http://pillow.readthedocs.org/en/latest/handbook/tutorial.html,2013
[3]潘洪軍.面向?qū)ο蟠鷶?shù)Petri網(wǎng)[J].吉林大學(xué)學(xué)報(bào),2006(3).
[4]袁崇義.Petri網(wǎng)原理與應(yīng)用[M].北京:電子工業(yè)出版社,1998.
[5]賈立新,薛鈞義,茹峰.采用模糊Petri網(wǎng)的形式化推理算法及其應(yīng)用[J].西安交通大學(xué)學(xué)報(bào),2003(12).