劉 飛
(哈爾濱工業(yè)大學(xué) 控制與仿真中心,黑龍江 哈爾濱 150080)
Petri網(wǎng)是一種離散事件建模語(yǔ)言,也是一種圖形化建模工具,已經(jīng)廣泛應(yīng)用于計(jì)算機(jī)網(wǎng)絡(luò)、通信協(xié)議、軟件工程、柔性制造系統(tǒng)、生物系統(tǒng)等眾多領(lǐng)域[1-5]。目前,許多高校都開(kāi)設(shè)了Petri網(wǎng)相關(guān)課程,這在很大程度上推廣了Petri網(wǎng)技術(shù)在國(guó)內(nèi)的發(fā)展和應(yīng)用。然而,國(guó)內(nèi)的Petri網(wǎng)教學(xué)通常只關(guān)注理論和方法的講解,而忽視實(shí)驗(yàn)教學(xué)的作用。
教育部所提出的卓越工程師教育培養(yǎng)計(jì)劃的核心要求之一是實(shí)踐能力、研究能力和創(chuàng)新能力。然而,過(guò)度依賴書本的教學(xué)方式會(huì)導(dǎo)致學(xué)生的定式思維、機(jī)械地記憶,而缺乏實(shí)際的操作能力和研究能力。目前,實(shí)驗(yàn)課應(yīng)該成為Petri網(wǎng)教學(xué)的一個(gè)重要實(shí)踐環(huán)節(jié),這直接關(guān)系到學(xué)生綜合運(yùn)用專業(yè)知識(shí)解決實(shí)際問(wèn)題的能力,而教師要成為學(xué)生自主實(shí)踐的引導(dǎo)者、支持者和幫助者,實(shí)現(xiàn)教學(xué)主體的轉(zhuǎn)變。本文將對(duì)“Petri網(wǎng)系統(tǒng)建模與仿真”課程的實(shí)驗(yàn)教學(xué)從教學(xué)內(nèi)容、方法等方面進(jìn)行探討和研究。
實(shí)驗(yàn)教學(xué)內(nèi)容的建設(shè)要有可操作性、趣味性和適當(dāng)?shù)碾y度??刹僮餍员WC學(xué)生都能完成實(shí)驗(yàn)而促進(jìn)學(xué)生學(xué)習(xí)信心的建立;趣味性體現(xiàn)“寓教于樂(lè)”以提高學(xué)生完成實(shí)驗(yàn)的積極性;而適當(dāng)?shù)碾y度有助于激發(fā)優(yōu)秀學(xué)生的進(jìn)一步鉆研。因此,根據(jù)教學(xué)目標(biāo)、學(xué)生的知識(shí)和能力基礎(chǔ),Petri網(wǎng)實(shí)驗(yàn)課可以按照由淺入深的順序分為3個(gè)層次,即:認(rèn)知性導(dǎo)入實(shí)驗(yàn)、計(jì)算機(jī)實(shí)驗(yàn)和結(jié)合科研工程項(xiàng)目實(shí)踐。
認(rèn)知性導(dǎo)入實(shí)驗(yàn)是Petri網(wǎng)實(shí)驗(yàn)教學(xué)的第一階段,需要學(xué)生利用軟件完成一些小的建模案例,以理解和掌握各個(gè)知識(shí)點(diǎn)。
Petri網(wǎng)是一種圖形化建模軟件,需要工具的支持。因此,從課程的開(kāi)始,我們就要求學(xué)生學(xué)習(xí)使用我們自己開(kāi)發(fā)的工具軟件Snoopy[4],并利用Snoopy建立和分析該課程中涉及的各種Petri網(wǎng)模型。不僅如此,與Snoopy配套的相關(guān)軟件工具(如Charlie,Marcie等[6])還可以對(duì)Petri網(wǎng)從行為屬性、結(jié)構(gòu)屬性、模型檢查等多個(gè)方面提供自動(dòng)化的分析功能。針對(duì)課堂的每個(gè)知識(shí)點(diǎn),要求學(xué)生能夠自己應(yīng)用工具軟件去建立和分析Petri網(wǎng)模型。這不僅鍛煉了學(xué)生使用工具軟件的能力,更重要的是加深了學(xué)生對(duì)知識(shí)點(diǎn)的理解。
例如,在講授隨機(jī)Petri網(wǎng)時(shí),我們利用到Lotka-Voltera(或Predator-Prey)模型[7-8]。該模型由 Lotka(1925年)和Voltera(1926年)分別提出,是用來(lái)描述捕食者和獵物之間相互關(guān)系的一個(gè)經(jīng)典模型。通過(guò)建立一個(gè)捕食者捕食與獵物被捕食之間關(guān)系的數(shù)學(xué)模型,可以研究?jī)蓚€(gè)相互作用的種群之間的規(guī)律。Lotka-Voltera模型可以描述為以下方程:
其中,k1和k2分別表示獵物種群的繁殖率和由于被捕食而導(dǎo)致的死亡率,k3表示捕食者的死亡率。?表示死亡。
根據(jù)Lotka-Voltera方程,我們首先讓學(xué)生自己去嘗試建立隨機(jī)Petri網(wǎng)模型(如圖1所示),然后讓學(xué)生自己動(dòng)手分析該模型的各種性質(zhì)或運(yùn)行隨機(jī)仿真并觀察仿真結(jié)果。例如,如果分別為位置Prey和Predator分配50和100個(gè)初始標(biāo)志,可以得到如圖2所示的隨機(jī)仿真曲線。從圖中可以看出:Prey和Predator存在一種周期性振蕩的關(guān)系。學(xué)生通過(guò)運(yùn)用軟件建模并分析簡(jiǎn)單的系統(tǒng),可以牢固的掌握Petri網(wǎng)教學(xué)的各個(gè)知識(shí)點(diǎn)。
圖1 Lotka-Voltera隨機(jī)Petri網(wǎng)模型
對(duì)于研究生來(lái)說(shuō),僅能熟練掌握Petri網(wǎng)的各個(gè)知識(shí)點(diǎn)是不夠的,還需要培養(yǎng)他們的研究和實(shí)踐能力,需要進(jìn)行計(jì)算機(jī)實(shí)驗(yàn)來(lái)培養(yǎng)他們的算法設(shè)計(jì)和編程能力。對(duì)于Petri網(wǎng)實(shí)驗(yàn)教學(xué)來(lái)說(shuō),需要設(shè)計(jì)多個(gè)計(jì)算機(jī)實(shí)驗(yàn),如連續(xù)仿真算法設(shè)計(jì)與實(shí)現(xiàn)、隨機(jī)仿真算法設(shè)計(jì)與實(shí)現(xiàn)等。
圖2 Lotka-Voltera隨機(jī)Petri網(wǎng)模型的一條仿真曲線
例如,對(duì)于隨機(jī)仿真實(shí)驗(yàn),我們需要讓學(xué)生設(shè)計(jì)Gillespie直接方法和第一反應(yīng)方法[9-10],并且運(yùn)用Matlab或VC++進(jìn)行編程實(shí)現(xiàn)。而對(duì)于連續(xù)仿真實(shí)驗(yàn),我們則讓學(xué)生設(shè)計(jì)常用的數(shù)值解算算法,如歐拉法、龍格庫(kù)塔法、后向微分公式法等[11-12],然后運(yùn)用Matlab或VC++進(jìn)行編程實(shí)現(xiàn)(圖3給出了一個(gè)連續(xù)仿真曲線)。通過(guò)這樣的訓(xùn)練,學(xué)生不僅對(duì)各種隨機(jī)算法和數(shù)值算法有了深入的理解,而且對(duì)于隨機(jī)和連續(xù)建模和仿真的本質(zhì)有個(gè)更深的領(lǐng)悟。
圖3 Lotka-Voltera連續(xù)Petri網(wǎng)模型的仿真曲線
目前,Petri網(wǎng)已經(jīng)大量應(yīng)用于我們正在進(jìn)行的科研項(xiàng)目中,如復(fù)雜仿真系統(tǒng)概念建模與分析、仿真劇情校核與分析等。與上面兩個(gè)階段的教學(xué)實(shí)驗(yàn)內(nèi)容不同,為了讓學(xué)生對(duì)實(shí)驗(yàn)課更加感興趣,有必要從科研項(xiàng)目中提取相關(guān)的研究?jī)?nèi)容,如各類飛行器模型的建立、各種統(tǒng)計(jì)方法在模型驗(yàn)證中的應(yīng)用等,讓學(xué)生去討論和實(shí)踐。針對(duì)該課程的需要,對(duì)相關(guān)科研項(xiàng)目中的模型進(jìn)行模塊劃分,然后讓學(xué)生充分了解課題的背景,完成相應(yīng)的模塊,最后還要求學(xué)生對(duì)此做出總結(jié)并匯報(bào)實(shí)驗(yàn)心得。
在具體實(shí)驗(yàn)教學(xué)中,我們從實(shí)際工程項(xiàng)目中提取出了多個(gè)小的子項(xiàng)目,讓學(xué)生獨(dú)立思考,利用已學(xué)到的知識(shí)去解決問(wèn)題。針對(duì)學(xué)生的實(shí)踐結(jié)果和存在的問(wèn)題,我們?cè)俾?lián)系工程實(shí)際進(jìn)行講解,引導(dǎo)學(xué)生早日進(jìn)入工程項(xiàng)目的研發(fā)中。例如,一個(gè)簡(jiǎn)單的生產(chǎn)單元由2臺(tái)機(jī)器(m1,m2)組成,它們共用一個(gè)機(jī)器人接送工件,共有3個(gè)托盤可用于存放工件(1個(gè)托盤僅存放1個(gè)工件)。機(jī)器人抓取載有工件的托盤,裝載到機(jī)器m1上;加工完畢,再將成品從機(jī)器m2上卸下,托盤與成品自動(dòng)脫落,然后裝載新的工件。2臺(tái)機(jī)器間有一個(gè)緩沖區(qū),可存放兩個(gè)中間工件。該生產(chǎn)單元的時(shí)間Petri網(wǎng)模型表示如圖4,其中位置和變遷的含義分別見(jiàn)表1和表2。
圖4 一個(gè)生產(chǎn)單元的時(shí)間Petri網(wǎng)模型
表1 時(shí)間Petri網(wǎng)模型的位置含義
表2 時(shí)間Petri網(wǎng)模型的變遷含義
對(duì)上述模型運(yùn)行仿真,可得到如圖5所示的仿真曲線。
圖5 時(shí)間Petri網(wǎng)模型的仿真曲線
除了實(shí)驗(yàn)教學(xué)內(nèi)容,良好的實(shí)驗(yàn)教學(xué)方法也是非常重要的。針對(duì)我們的課程,用以下的教學(xué)方法獲得很好的實(shí)驗(yàn)效果。
Petri網(wǎng)實(shí)驗(yàn)教學(xué)模式的重點(diǎn)和難點(diǎn)在于實(shí)驗(yàn)任務(wù)的選擇與設(shè)計(jì)。在實(shí)驗(yàn)教學(xué)過(guò)程中,教師對(duì)所選定實(shí)驗(yàn)項(xiàng)目的理解會(huì)直接影響學(xué)生的學(xué)習(xí)效果。因此,教師備課需要明確實(shí)驗(yàn)的目的、任務(wù)、過(guò)程、要解決的問(wèn)題等,要思考學(xué)生在完成實(shí)驗(yàn)過(guò)程中容易出現(xiàn)的問(wèn)題以及解決方案。
針對(duì)本課程教學(xué)內(nèi)容,我們將實(shí)驗(yàn)分為必做和選做兩類,其中必做實(shí)驗(yàn)是學(xué)生必須完成的實(shí)驗(yàn),并要在規(guī)定的時(shí)間內(nèi)完成;選做實(shí)驗(yàn)是學(xué)生可根據(jù)自己的意愿自由選擇的實(shí)驗(yàn),重在培養(yǎng)學(xué)生的創(chuàng)新能力和實(shí)際應(yīng)用能力。無(wú)論是必做實(shí)驗(yàn)還是選做實(shí)驗(yàn),都允許學(xué)生獨(dú)立或合作完成。
具體地,在每個(gè)章節(jié)都設(shè)計(jì)了認(rèn)知性導(dǎo)入實(shí)驗(yàn),這些實(shí)驗(yàn)屬于必做實(shí)驗(yàn)。例如,對(duì)于Petri網(wǎng)的行為屬性一章,我們?cè)O(shè)計(jì)了不同的實(shí)驗(yàn)任務(wù)來(lái)分析Petri網(wǎng)模型的各種行為屬性(如可達(dá)性、活性、有界性、可逆性等)。學(xué)生需要在課前或課后來(lái)運(yùn)用工具軟件建立模型并分析其屬性。
在一些章節(jié)(如隨機(jī)Petri網(wǎng)、連續(xù)Petri網(wǎng)),我們?cè)O(shè)計(jì)了多個(gè)計(jì)算機(jī)實(shí)驗(yàn),如設(shè)計(jì)和編程實(shí)現(xiàn)隨機(jī)仿真算法和連續(xù)仿真算法等,這些可能是必做實(shí)驗(yàn),也可能是選做實(shí)驗(yàn)。而在結(jié)合科研工程項(xiàng)目實(shí)踐環(huán)節(jié),我們通常針對(duì)具體的科研項(xiàng)目設(shè)計(jì)若干實(shí)驗(yàn)任務(wù),通常都屬于選做實(shí)驗(yàn),學(xué)生可根據(jù)自己具體承擔(dān)的科研項(xiàng)目選擇適合的實(shí)驗(yàn)任務(wù)。例如,針對(duì)仿真概念模型項(xiàng)目,我們?cè)O(shè)計(jì)了若干仿真劇情,讓學(xué)生針對(duì)具體的劇情來(lái)設(shè)計(jì)仿真概念模型,并運(yùn)用各種方法對(duì)所建立的模型進(jìn)行分析。
在任務(wù)實(shí)施之前,先將學(xué)生分成若干個(gè)小組,每組有2~3人,由小組成員推薦出小組長(zhǎng),然后發(fā)放實(shí)驗(yàn)設(shè)計(jì)指導(dǎo)書,使學(xué)生明確自己的實(shí)驗(yàn)?zāi)繕?biāo)、實(shí)驗(yàn)過(guò)程以及自己需要解決的問(wèn)題。在任務(wù)的實(shí)施過(guò)程中,鼓勵(lì)學(xué)生進(jìn)行交流、討論和分析。
教師則要注意觀察學(xué)生的實(shí)驗(yàn)操作,及時(shí)發(fā)現(xiàn)問(wèn)題,鼓勵(lì)學(xué)生主動(dòng)、大膽地完成實(shí)驗(yàn)任務(wù)。當(dāng)全部實(shí)驗(yàn)完成后,要求學(xué)生回顧所有實(shí)驗(yàn)內(nèi)容,進(jìn)行系統(tǒng)的概括、評(píng)價(jià)和總結(jié),以鞏固通過(guò)實(shí)驗(yàn)所掌握的Petri網(wǎng)相關(guān)知識(shí)和技術(shù)。師生通過(guò)“實(shí)驗(yàn)總結(jié)”和“教師評(píng)價(jià)”過(guò)程,總結(jié)和交流對(duì)學(xué)科知識(shí)、實(shí)驗(yàn)內(nèi)容的理解與體會(huì)。每個(gè)實(shí)驗(yàn)單元要設(shè)計(jì)“實(shí)驗(yàn)單元的學(xué)習(xí)評(píng)價(jià)”、“實(shí)驗(yàn)成績(jī)記錄”,方便教師對(duì)學(xué)生實(shí)驗(yàn)進(jìn)行評(píng)價(jià)和記錄管理,對(duì)學(xué)生學(xué)習(xí)情況進(jìn)行必要的評(píng)估。
我們?cè)试S每位學(xué)生根據(jù)自己的情況安排實(shí)驗(yàn),實(shí)驗(yàn)室對(duì)學(xué)生不限時(shí)開(kāi)放,這樣就使學(xué)生有充足的時(shí)間進(jìn)行實(shí)驗(yàn),而不會(huì)因?yàn)闀r(shí)間緊迫而草草完成實(shí)驗(yàn)。如果實(shí)驗(yàn)失敗,學(xué)生可以安排時(shí)間重做實(shí)驗(yàn),有興趣的學(xué)生可以安排時(shí)間嘗試更多的實(shí)驗(yàn),培養(yǎng)實(shí)驗(yàn)?zāi)芰蛣?chuàng)新能力。
根據(jù)學(xué)生實(shí)驗(yàn)情況的反饋,我們可以對(duì)課堂教學(xué)內(nèi)容進(jìn)行調(diào)節(jié),例如某些內(nèi)容需要深入或者粗略講解等,從而在一定程度上提高了課堂教學(xué)效果。
本文對(duì)研究生課程“Petri網(wǎng)系統(tǒng)建模與仿真”的實(shí)驗(yàn)教學(xué)進(jìn)行了一些探討,目前本課程已經(jīng)用于實(shí)際教學(xué)中。通過(guò)這種系統(tǒng)的Petri網(wǎng)實(shí)踐能力訓(xùn)練,學(xué)生可以將所學(xué)的Petri網(wǎng)課本知識(shí)轉(zhuǎn)化為綜合的實(shí)際操作能力和科研開(kāi)發(fā)能力,為今后研發(fā)工作打下了良好的基礎(chǔ)。
(
)
[1]Petri C A.Kommunikation mit Automaten[D].Bonn:Institut für instrumentelle Mathematik,1962.
[2]Murata T.Petri Nets:Properties,Analysis and Applications[J].Proc.of the IEEE,1989,77(4):541-580.
[3]Liu F,Heiner M.Petri nets for modeling and analyzing biochemical reaction networks[C]//Chen Ming,Ralf Hofest?dt.Approaches in Integrative Bioinformatics:Towards Virtual Cell.Berlin:Springer,2014:245-272.
[4]Liu F.Colored Petri Nets for Systems Biology[D].Cottbus:Brandenburg University of Technology,2012.
[5]Heiner M,Gilbert D,Donaldson R.Petri Nets for Systems and Synthetic Biology[C]//Marco Bernardo,Pierpaolo Degano,Gianluigi Zavattaro.Formal Methods for Computational Systems Biology(LNCS 5016).Berlin:Springer,2008:215-264.
[6]Heiner M,Herajy M,Liu F,et al.Snoopy:a unifying Petri net tool[C]//SergeHaddad,Lucia Pomello.Application and Theory of Petri Nets(LNCS 7347).Berlin:Springer,2012:398 407.
[7]Bause F,Kritzinger P.Stochastic Petri Nets:An Introduction to the Theory[M].Berlin:Vieweg Verlag,1996.
[8]Hoppensteadt F.Predator-Prey Model[J].Scholarpedia,2006,1(10):1563.
[9]Gillespie D T.Exact Stochastic Simulation of Coupled Chemical Reactions[J].The Journal of Physical Chemistry,1977,81(25):2340-2361.
[10]Gillespie D T.Approximate accelerated stochastic simulation of chemically reacting system[J].The Journal of Physical Chemistry,2001,115(4):1716-1733.
[11]Butcher J C.Numerical methods for ordinary differential equations[M].West Sussex:John Wiley &Sons,2008.
[12]Ascher U M,Petzold L R.Computer Methods for Ordinary Differential Equations and Differential-Algebraic Equations[M].Philadelphia:SIAM,1998.