Petri网系统建模与仿真实验课程教学探讨
2014-12-25刘飞
刘 飞
(哈尔滨工业大学 控制与仿真中心,黑龙江 哈尔滨 150080)
Petri网是一种离散事件建模语言,也是一种图形化建模工具,已经广泛应用于计算机网络、通信协议、软件工程、柔性制造系统、生物系统等众多领域[1-5]。目前,许多高校都开设了Petri网相关课程,这在很大程度上推广了Petri网技术在国内的发展和应用。然而,国内的Petri网教学通常只关注理论和方法的讲解,而忽视实验教学的作用。
教育部所提出的卓越工程师教育培养计划的核心要求之一是实践能力、研究能力和创新能力。然而,过度依赖书本的教学方式会导致学生的定式思维、机械地记忆,而缺乏实际的操作能力和研究能力。目前,实验课应该成为Petri网教学的一个重要实践环节,这直接关系到学生综合运用专业知识解决实际问题的能力,而教师要成为学生自主实践的引导者、支持者和帮助者,实现教学主体的转变。本文将对“Petri网系统建模与仿真”课程的实验教学从教学内容、方法等方面进行探讨和研究。
1 实验教学内容
实验教学内容的建设要有可操作性、趣味性和适当的难度。可操作性保证学生都能完成实验而促进学生学习信心的建立;趣味性体现“寓教于乐”以提高学生完成实验的积极性;而适当的难度有助于激发优秀学生的进一步钻研。因此,根据教学目标、学生的知识和能力基础,Petri网实验课可以按照由浅入深的顺序分为3个层次,即:认知性导入实验、计算机实验和结合科研工程项目实践。
1.1 认知性导入实验
认知性导入实验是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网模型
1.2 计算机实验
对于研究生来说,仅能熟练掌握Petri网的各个知识点是不够的,还需要培养他们的研究和实践能力,需要进行计算机实验来培养他们的算法设计和编程能力。对于Petri网实验教学来说,需要设计多个计算机实验,如连续仿真算法设计与实现、随机仿真算法设计与实现等。
图2 Lotka-Voltera随机Petri网模型的一条仿真曲线
例如,对于随机仿真实验,我们需要让学生设计Gillespie直接方法和第一反应方法[9-10],并且运用Matlab或VC++进行编程实现。而对于连续仿真实验,我们则让学生设计常用的数值解算算法,如欧拉法、龙格库塔法、后向微分公式法等[11-12],然后运用Matlab或VC++进行编程实现(图3给出了一个连续仿真曲线)。通过这样的训练,学生不仅对各种随机算法和数值算法有了深入的理解,而且对于随机和连续建模和仿真的本质有个更深的领悟。
图3 Lotka-Voltera连续Petri网模型的仿真曲线
1.3 结合科研工程项目实践
目前,Petri网已经大量应用于我们正在进行的科研项目中,如复杂仿真系统概念建模与分析、仿真剧情校核与分析等。与上面两个阶段的教学实验内容不同,为了让学生对实验课更加感兴趣,有必要从科研项目中提取相关的研究内容,如各类飞行器模型的建立、各种统计方法在模型验证中的应用等,让学生去讨论和实践。针对该课程的需要,对相关科研项目中的模型进行模块划分,然后让学生充分了解课题的背景,完成相应的模块,最后还要求学生对此做出总结并汇报实验心得。
在具体实验教学中,我们从实际工程项目中提取出了多个小的子项目,让学生独立思考,利用已学到的知识去解决问题。针对学生的实践结果和存在的问题,我们再联系工程实际进行讲解,引导学生早日进入工程项目的研发中。例如,一个简单的生产单元由2台机器(m1,m2)组成,它们共用一个机器人接送工件,共有3个托盘可用于存放工件(1个托盘仅存放1个工件)。机器人抓取载有工件的托盘,装载到机器m1上;加工完毕,再将成品从机器m2上卸下,托盘与成品自动脱落,然后装载新的工件。2台机器间有一个缓冲区,可存放两个中间工件。该生产单元的时间Petri网模型表示如图4,其中位置和变迁的含义分别见表1和表2。
图4 一个生产单元的时间Petri网模型
表1 时间Petri网模型的位置含义
表2 时间Petri网模型的变迁含义
对上述模型运行仿真,可得到如图5所示的仿真曲线。
2 实验教学方法
图5 时间Petri网模型的仿真曲线
除了实验教学内容,良好的实验教学方法也是非常重要的。针对我们的课程,用以下的教学方法获得很好的实验效果。
2.1 实验任务的选择与设计
Petri网实验教学模式的重点和难点在于实验任务的选择与设计。在实验教学过程中,教师对所选定实验项目的理解会直接影响学生的学习效果。因此,教师备课需要明确实验的目的、任务、过程、要解决的问题等,要思考学生在完成实验过程中容易出现的问题以及解决方案。
针对本课程教学内容,我们将实验分为必做和选做两类,其中必做实验是学生必须完成的实验,并要在规定的时间内完成;选做实验是学生可根据自己的意愿自由选择的实验,重在培养学生的创新能力和实际应用能力。无论是必做实验还是选做实验,都允许学生独立或合作完成。
具体地,在每个章节都设计了认知性导入实验,这些实验属于必做实验。例如,对于Petri网的行为属性一章,我们设计了不同的实验任务来分析Petri网模型的各种行为属性(如可达性、活性、有界性、可逆性等)。学生需要在课前或课后来运用工具软件建立模型并分析其属性。
在一些章节(如随机Petri网、连续Petri网),我们设计了多个计算机实验,如设计和编程实现随机仿真算法和连续仿真算法等,这些可能是必做实验,也可能是选做实验。而在结合科研工程项目实践环节,我们通常针对具体的科研项目设计若干实验任务,通常都属于选做实验,学生可根据自己具体承担的科研项目选择适合的实验任务。例如,针对仿真概念模型项目,我们设计了若干仿真剧情,让学生针对具体的剧情来设计仿真概念模型,并运用各种方法对所建立的模型进行分析。
2.2 实验任务实施
在任务实施之前,先将学生分成若干个小组,每组有2~3人,由小组成员推荐出小组长,然后发放实验设计指导书,使学生明确自己的实验目标、实验过程以及自己需要解决的问题。在任务的实施过程中,鼓励学生进行交流、讨论和分析。
教师则要注意观察学生的实验操作,及时发现问题,鼓励学生主动、大胆地完成实验任务。当全部实验完成后,要求学生回顾所有实验内容,进行系统的概括、评价和总结,以巩固通过实验所掌握的Petri网相关知识和技术。师生通过“实验总结”和“教师评价”过程,总结和交流对学科知识、实验内容的理解与体会。每个实验单元要设计“实验单元的学习评价”、“实验成绩记录”,方便教师对学生实验进行评价和记录管理,对学生学习情况进行必要的评估。
2.3 实验管理
我们允许每位学生根据自己的情况安排实验,实验室对学生不限时开放,这样就使学生有充足的时间进行实验,而不会因为时间紧迫而草草完成实验。如果实验失败,学生可以安排时间重做实验,有兴趣的学生可以安排时间尝试更多的实验,培养实验能力和创新能力。
根据学生实验情况的反馈,我们可以对课堂教学内容进行调节,例如某些内容需要深入或者粗略讲解等,从而在一定程度上提高了课堂教学效果。
3 结束语
本文对研究生课程“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.