本文转载自duxw,如给您带来不便之处,请联系博主。

1.Petri网书籍:《petri网导论》,吴哲辉

非常适合初学者。概念清晰,容易理解。

2.工作流书籍:《Workflow Management: Models, Methods and Systems》, Wil van der Aalst

3.Petri网文章:《Petri Nets: Properties, Analysis and Application》,Tadao Murata,IEEE invited paper

既包含petri网基本知识的介绍,同时也有较深层次petri网知识的介绍。是一篇很全面的文章。短期内希望对petri网有所了解的人,推荐阅读这篇文章。

4.网站:

Petri Nets World,http://www.informatik.uni-hamburg.de/TGI/PetriNets/。这个强烈推荐。上面    有目前最全的petri网工具汇总。而且这对每种工具的特点进行了简要介绍。在学习了基本知识后,需要寻找工具着手尝试的时候,这里可以提供丰富的参考。而且还有一些小的在线绘制工具。

5.软件:

PIPE,开源软件,sourceforge有下载。可以方便的生成邻接矩阵。但是当网稍大的时候,就无法绘制可达图了。软件有一些bug(个人使用时遇到的),比如一旦绘制了某个元素(库所或者变迁),就无法删除。优点是容易上手。

WoPeD,这个专门针对WF_nets进行绘制的。个人感觉不错。可以方便的绘制可达图。同样支持模拟。支持判断完备性,活性等。

CPN,绘制着色petri网的强大工具,有自己的一套描述语言。个人没有深入研究。

学习建议:

先学习petri网书籍。整体上有了把握后,可以阅读上面推荐的文章《Petri Nets: Properties, Analysis and Application》,进行一次梳理。

个人对petri网的一些感触和理解

比较乱,大家一看就好:

1.初学时感觉比较容易。

不过是圆形为库所,方形为变迁,弧作为连接。真正入门后,感觉理论很扎实,有深度,不容易学精。可能在前期阅读过一些资料后,就可以上手进行petri网建模了。但是模型是否正确,很难保证。而且petri网理论研究居多,实际应用的例子并不是很多。如何将petri网应用到实际中,我也在思索这个问题。希望大家多多交流。

2.petri网有各种各样的扩展。但无外乎是将复杂的流程进行直观的展示。

个人学习这一段时间后,认为还是要注重最原始的petri网,多绘制,多分析,多思考。其他各种高级petri网不过是在原始的基础上,对库所、变迁、弧进行了更强的限制,使其能够包含更多的信息。包含的信息多了,可以方便对复杂系统的表达,但是同时带来的就是一些细节信息的缺失。将复杂的信息封装在了库所、变迁和弧上面,直观上就不能进行分析了。所以不要过于依赖高级petri网。当系统过大的时候,可以针对某个局部进行分析。能够用最简单的petri网绘制的,尽量用最简单的。这样才能最直接的反应系统的流程,并进行分析,发现问题。

3,由库所发出的多条弧(选择结构),最终要汇合在库所上。

由变迁发出的多条弧(并发结构),最终要汇总在变迁上。如果不是这样的情况,那一定要小心。多多考虑。因为,如果不是这样就很容易出问题。我在构建复杂系统的模型时,尝试过构造复杂的逻辑关系,但最终往往都发现存在问题。

关于此处说明的问题,在Aalst的文章《The Application of Petri Nets to Workflow Management》第40页中有详细阐述。建议大家阅读以下。当然,这样的错误在实际建模中还是非常容易出现的。简单的语言描述很难体会到,多画几次,遇到错误多做修改,才能有深刻的理解。

4.petri网的优势。

在于能够严格的反应系统的执行流程。如果详细分析,可以对系统的实现和开发(本人是做软件开发的)提供指导。举个简单的例子:

顺序结构是最常见的结构。当系统执行到p2的时候,是不能够在退回到t1的。那么对于系统的开发实现,就要考虑好,t1的具体操作,对p2以后的元素都是不可见的(不可用的)。这里要做的,有两种选择。要么在架构上,封装上,实现t1对后面的透明化;要么在用户操作上进行限制,一旦到达p2以后,t1的操作就不再可用。

在这里也顺便提一下。往往像上面这种顺序结构,很多是我们自己臆想出来的。各个操作之间,究竟有没有耦合关系,需要可观的考虑。如果没有,那他们之间就是并发关系。就不能表达为上面的顺序结构。专门提到这一点的原因是,往往(本人愚钝,遇到过)由于我们臆想的这种顺序结构,给自己带来混淆。实际上个操作之间是并发的,但是我们建模的时候,却理所当然的按照自己预想的一种操作顺序建模成顺序结构。从而也就产生了上面提到的问题,实际系统中可能完全执行了t2以后,再返回执行一次t1,这就和上面模型反应的情况完全不同。当然,也可能翻过来,实际是串行的,但我们实现系统的时候没有做好封装,使得操作t2执行完以后,t1还是可用的。这些细小的问题都需要尽量避免。

5.处于多条弧交汇点的元素需要着重考虑,这里可能会因为设计的不合理出现问题。

比如这个结构是系统中比较常见的结构。比如重新设置、重新生成等等需要反复执行的操作。t3变迁发生后到达p2,可能预计的下一步操作是继续执行t2,但是p2到t4也是可达的。那么这种情况是否合理?如果不合理,就应该讲交汇点p2错开,尽量让少的弧交汇在同一点,避免不符合逻辑的操作。比如可以通过添加库所和变迁来错开交汇点:

当然,如果通过逻辑上的修改来避免错误的路径是最好的。因为往往有些时候,这种添加的库所和变迁是没有实际意义的。

以上都是一些愚见。学习时间也短,仅仅是一些体会。正确的和大家分享,错误的还请指正,以作为以后学习petri网的同仁们的借鉴。

最后,总结一句体会:petri网模型是理性的,流程是用来给人用的。不可完全陷入模型的理性而妄断流程的对错;亦不可完全陷入流程的感性而臆想系统的运作。如何找到人与机器的平衡点,这就是个大课题了。

petri网学习心得的更多相关文章

  1. 《转》常用Petri网模拟软件工具简介

    本文转载自liusj2003,如给您带来不便之处,请联系博主. 首先要介绍的的一个非常有名的Petri 网网站--Petri Nets World: http://www.informatik.uni ...

  2. 常用Petri网模拟软件工具简介

    常用Petri网模拟软件工具简介 首先要介绍的的一个非常有名的Petri 网网站--Petri Nets World:       http://www.informatik.uni-hamburg. ...

  3. Spring Framework------>version4.3.5.RELAESE----->Reference Documentation学习心得----->关于spring framework中的beans

    Spring framework中的beans 1.概述 bean其实就是各个类实例化后的对象,即objects spring framework的IOC容器所管理的基本单元就是bean spring ...

  4. Spring Framework------>version4.3.5.RELAESE----->Reference Documentation学习心得----->使用Spring Framework开发自己的应用程序

    1.直接基于spring framework开发自己的应用程序: 1.1参考资料: Spring官网spring-framework.4.3.5.RELAESE的Reference Documenta ...

  5. Java学习心得之 Linux下搭建JavaWeb环境

    作者:枫雪庭 出处:http://www.cnblogs.com/FengXueTing-px/ 欢迎转载 Java学习心得之 Linux下搭建JavaWeb环境 1. 前言2. Java安装3. t ...

  6. windows类书的学习心得(转载)

    原文网址:http://www.blogjava.net/sound/archive/2008/08/21/40499.html 现在的计算机图书发展的可真快,很久没去书店,昨日去了一下,真是感叹万千 ...

  7. 开源项目live555学习心得

      推荐:伊朗美女找丈夫比找工作难女人婚前一定要看清三件事 × 登录注册   疯狂少男-IT技术的博客 http://blog.sina.com.cn/crazyboyzhaolei [订阅][手机订 ...

  8. PWA学习心得

    PWA学习心得 一.什么是PWA Progressive  Web  App , (渐进式增强 WEB 应用) 简称 PWA ,是提升WebApp的体验的一种新方法,能给用户原生应用的体验. PWA ...

  9. windows类书的学习心得

    原文网址:http://www.blogjava.net/sound/archive/2008/08/21/40499.html 现在的计算机图书发展的可真快,很久没去书店,昨日去了一下,真是感叹万千 ...

随机推荐

  1. HTML上传文件写法

    来源于:http://www.cnblogs.com/SkySoot/p/3525139.html html 表单上传文件 一般处理程序由于没有 apsx 页面的整个模型和控件的创建周期,而比较有效率 ...

  2. Linux(CentOS)下安装git

    上个月把VPS迁到budgetVM,终于不用再受digitalOcean的气了,入手很方便,重点是支持支付宝付款——paypal的界面真是不习惯,开通速度挺快的,1G的内存够我折腾一段时间了~,额外送 ...

  3. Java 关键字 native

    native 关键字说明其修饰的方法是一个原生态方法,方法对应的实现不是在当前文件中,而是在用其他语言实现的文件中.Java语言本身不能对操作系统底层进行访问和操作,但是可以通过JNI接口调用其他语言 ...

  4. ActiveMQ 入门使用实例

    1.下载ActiveMQ 去官方网站下载:http://activemq.apache.org/download-archives.html 2.运行ActiveMQ 解压缩apache-active ...

  5. 【bzoj1042】 HAOI2008—硬币购物

    http://www.lydsy.com/JudgeOnline/problem.php?id=1042 (题目链接) 题意 共有4种硬币,面值分别为c1,c2,c3,c4.某人去商店买东西,去了to ...

  6. HDU 5497 Inversion

    Time Limit: 3000MS   Memory Limit: 65536KB   64bit IO Format: %I64d & %I64u Description You have ...

  7. HackerRank Extra long factorials

    传送门 今天在HackerRank上翻到一道高精度题,于是乎就写了个高精度的模板,说是模板其实就只有乘法而已. Extra long factorials Authored by vatsalchan ...

  8. 连通性2 无向图的割边 (cut edge)

    这是DFS系列的第二篇 割边的概念 In graph theory, a bridge, isthmus, cut-edge, or cut arc is an edge of a graph who ...

  9. MVC简介

    全名是Model View Controller,模型-视图-控制器,一种软件设计典范,用一种业务逻辑.数据.界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互 ...

  10. HD 1533 Going Home(最小费用最大流模板)

    Going Home Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total ...