劉 飛
(哈爾濱工業大學 控制與仿真中心,黑龍江 哈爾濱 150080)
Petri網是一種離散事件建模語言,也是一種圖形化建模工具,已經廣泛應用于計算機網絡、通信協議、軟件工程、柔性制造系統、生物系統等眾多領域[1-5]。目前,許多高校都開設了Petri網相關課程,這在很大程度上推廣了Petri網技術在國內的發展和應用。然而,國內的Petri網教學通常只關注理論和方法的講解,而忽視實驗教學的作用。
教育部所提出的卓越工程師教育培養計劃的核心要求之一是實踐能力、研究能力和創新能力。然而,過度依賴書本的教學方式會導致學生的定式思維、機械地記憶,而缺乏實際的操作能力和研究能力。目前,實驗課應該成為Petri網教學的一個重要實踐環節,這直接關系到學生綜合運用專業知識解決實際問題的能力,而教師要成為學生自主實踐的引導者、支持者和幫助者,實現教學主體的轉變。本文將對“Petri網系統建模與仿真”課程的實驗教學從教學內容、方法等方面進行探討和研究。
實驗教學內容的建設要有可操作性、趣味性和適當的難度。可操作性保證學生都能完成實驗而促進學生學習信心的建立;趣味性體現“寓教于樂”以提高學生完成實驗的積極性;而適當的難度有助于激發優秀學生的進一步鉆研。因此,根據教學目標、學生的知識和能力基礎,Petri網實驗課可以按照由淺入深的順序分為3個層次,即:認知性導入實驗、計算機實驗和結合科研工程項目實踐。
認知性導入實驗是Petri網實驗教學的第一階段,需要學生利用軟件完成一些小的建模案例,以理解和掌握各個知識點。
Petri網是一種圖形化建模軟件,需要工具的支持。因此,從課程的開始,我們就要求學生學習使用我們自己開發的工具軟件Snoopy[4],并利用Snoopy建立和分析該課程中涉及的各種Petri網模型。不僅如此,與Snoopy配套的相關軟件工具(如Charlie,Marcie等[6])還可以對Petri網從行為屬性、結構屬性、模型檢查等多個方面提供自動化的分析功能。針對課堂的每個知識點,要求學生能夠自己應用工具軟件去建立和分析Petri網模型。這不僅鍛煉了學生使用工具軟件的能力,更重要的是加深了學生對知識點的理解。
例如,在講授隨機Petri網時,我們利用到Lotka-Voltera(或Predator-Prey)模型[7-8]。該模型由 Lotka(1925年)和Voltera(1926年)分別提出,是用來描述捕食者和獵物之間相互關系的一個經典模型。通過建立一個捕食者捕食與獵物被捕食之間關系的數學模型,可以研究兩個相互作用的種群之間的規律。Lotka-Voltera模型可以描述為以下方程:

其中,k1和k2分別表示獵物種群的繁殖率和由于被捕食而導致的死亡率,k3表示捕食者的死亡率。?表示死亡。
根據Lotka-Voltera方程,我們首先讓學生自己去嘗試建立隨機Petri網模型(如圖1所示),然后讓學生自己動手分析該模型的各種性質或運行隨機仿真并觀察仿真結果。例如,如果分別為位置Prey和Predator分配50和100個初始標志,可以得到如圖2所示的隨機仿真曲線。從圖中可以看出:Prey和Predator存在一種周期性振蕩的關系。學生通過運用軟件建模并分析簡單的系統,可以牢固的掌握Petri網教學的各個知識點。

圖1 Lotka-Voltera隨機Petri網模型
對于研究生來說,僅能熟練掌握Petri網的各個知識點是不夠的,還需要培養他們的研究和實踐能力,需要進行計算機實驗來培養他們的算法設計和編程能力。對于Petri網實驗教學來說,需要設計多個計算機實驗,如連續仿真算法設計與實現、隨機仿真算法設計與實現等。

圖2 Lotka-Voltera隨機Petri網模型的一條仿真曲線
例如,對于隨機仿真實驗,我們需要讓學生設計Gillespie直接方法和第一反應方法[9-10],并且運用Matlab或VC++進行編程實現。而對于連續仿真實驗,我們則讓學生設計常用的數值解算算法,如歐拉法、龍格庫塔法、后向微分公式法等[11-12],然后運用Matlab或VC++進行編程實現(圖3給出了一個連續仿真曲線)。通過這樣的訓練,學生不僅對各種隨機算法和數值算法有了深入的理解,而且對于隨機和連續建模和仿真的本質有個更深的領悟。

圖3 Lotka-Voltera連續Petri網模型的仿真曲線
目前,Petri網已經大量應用于我們正在進行的科研項目中,如復雜仿真系統概念建模與分析、仿真劇情校核與分析等。與上面兩個階段的教學實驗內容不同,為了讓學生對實驗課更加感興趣,有必要從科研項目中提取相關的研究內容,如各類飛行器模型的建立、各種統計方法在模型驗證中的應用等,讓學生去討論和實踐。針對該課程的需要,對相關科研項目中的模型進行模塊劃分,然后讓學生充分了解課題的背景,完成相應的模塊,最后還要求學生對此做出總結并匯報實驗心得。
在具體實驗教學中,我們從實際工程項目中提取出了多個小的子項目,讓學生獨立思考,利用已學到的知識去解決問題。針對學生的實踐結果和存在的問題,我們再聯系工程實際進行講解,引導學生早日進入工程項目的研發中。例如,一個簡單的生產單元由2臺機器(m1,m2)組成,它們共用一個機器人接送工件,共有3個托盤可用于存放工件(1個托盤僅存放1個工件)。機器人抓取載有工件的托盤,裝載到機器m1上;加工完畢,再將成品從機器m2上卸下,托盤與成品自動脫落,然后裝載新的工件。2臺機器間有一個緩沖區,可存放兩個中間工件。該生產單元的時間Petri網模型表示如圖4,其中位置和變遷的含義分別見表1和表2。

圖4 一個生產單元的時間Petri網模型

表1 時間Petri網模型的位置含義

表2 時間Petri網模型的變遷含義
對上述模型運行仿真,可得到如圖5所示的仿真曲線。

圖5 時間Petri網模型的仿真曲線
除了實驗教學內容,良好的實驗教學方法也是非常重要的。針對我們的課程,用以下的教學方法獲得很好的實驗效果。
Petri網實驗教學模式的重點和難點在于實驗任務的選擇與設計。在實驗教學過程中,教師對所選定實驗項目的理解會直接影響學生的學習效果。因此,教師備課需要明確實驗的目的、任務、過程、要解決的問題等,要思考學生在完成實驗過程中容易出現的問題以及解決方案。
針對本課程教學內容,我們將實驗分為必做和選做兩類,其中必做實驗是學生必須完成的實驗,并要在規定的時間內完成;選做實驗是學生可根據自己的意愿自由選擇的實驗,重在培養學生的創新能力和實際應用能力。無論是必做實驗還是選做實驗,都允許學生獨立或合作完成。
具體地,在每個章節都設計了認知性導入實驗,這些實驗屬于必做實驗。例如,對于Petri網的行為屬性一章,我們設計了不同的實驗任務來分析Petri網模型的各種行為屬性(如可達性、活性、有界性、可逆性等)。學生需要在課前或課后來運用工具軟件建立模型并分析其屬性。
在一些章節(如隨機Petri網、連續Petri網),我們設計了多個計算機實驗,如設計和編程實現隨機仿真算法和連續仿真算法等,這些可能是必做實驗,也可能是選做實驗。而在結合科研工程項目實踐環節,我們通常針對具體的科研項目設計若干實驗任務,通常都屬于選做實驗,學生可根據自己具體承擔的科研項目選擇適合的實驗任務。例如,針對仿真概念模型項目,我們設計了若干仿真劇情,讓學生針對具體的劇情來設計仿真概念模型,并運用各種方法對所建立的模型進行分析。
在任務實施之前,先將學生分成若干個小組,每組有2~3人,由小組成員推薦出小組長,然后發放實驗設計指導書,使學生明確自己的實驗目標、實驗過程以及自己需要解決的問題。在任務的實施過程中,鼓勵學生進行交流、討論和分析。
教師則要注意觀察學生的實驗操作,及時發現問題,鼓勵學生主動、大膽地完成實驗任務。當全部實驗完成后,要求學生回顧所有實驗內容,進行系統的概括、評價和總結,以鞏固通過實驗所掌握的Petri網相關知識和技術。師生通過“實驗總結”和“教師評價”過程,總結和交流對學科知識、實驗內容的理解與體會。每個實驗單元要設計“實驗單元的學習評價”、“實驗成績記錄”,方便教師對學生實驗進行評價和記錄管理,對學生學習情況進行必要的評估。
我們允許每位學生根據自己的情況安排實驗,實驗室對學生不限時開放,這樣就使學生有充足的時間進行實驗,而不會因為時間緊迫而草草完成實驗。如果實驗失敗,學生可以安排時間重做實驗,有興趣的學生可以安排時間嘗試更多的實驗,培養實驗能力和創新能力。
根據學生實驗情況的反饋,我們可以對課堂教學內容進行調節,例如某些內容需要深入或者粗略講解等,從而在一定程度上提高了課堂教學效果。
本文對研究生課程“Petri網系統建模與仿真”的實驗教學進行了一些探討,目前本課程已經用于實際教學中。通過這種系統的Petri網實踐能力訓練,學生可以將所學的Petri網課本知識轉化為綜合的實際操作能力和科研開發能力,為今后研發工作打下了良好的基礎。
(
)
[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.