《转》常用Petri网模拟软件工具简介
本文转载自liusj2003,如给您带来不便之处,请联系博主。
首先要介绍的的一个非常有名的Petri 网网站--Petri Nets World:
http://www.informatik.uni-hamburg.de/TGI/PetriNets/
我这里介绍的软件大部分在该网站中的Tools and Software中的Petri Nets Tool Database里可以找到相关的链接。
Petri网的相关模拟仿真软件现在已经相当成熟了,在国外已经有很多投入商用的案例。但目前每年的国际性Petri网学术会议上都有一个专题就是:Petri Nets Tools的开发。也就是说Petri网界对于新的模拟软件的开发是十分重视。
这里不是要跟大家说如何开发软件,而是想跟大家分享如何下载和使用适合我们自己的Petri网学习工具软件。
下面介绍我比较熟悉的几款软件,大家不妨自己下载安装使用(注意,其中有些是要钱的,不管打不打折,对于我们来说肯定不会下):
Visual Object Net ++
Tool homepage: http://www.systemtechnik.tu-ilmenau.de/~drath/visual_E.htm
Visual Object Net ++可以说是一款入门级的模拟软件了。我用得最多。具有非常直观的操作和非常强大的功能。
支持时间以及混杂网,但是我们用得最多的还是使用它来队最普通的P/T网建模。
这款软件虽然很好用,但感觉就是太普通、太普通了。

Tina
Tool homepage: http://www.laas.fr/tina
Tina是一款对时间Petri网支持得比较好的软件,也是我用得较多的一款软件。 它的运行程序是解压后/bin目录下的nd.exe文件(NetDraw),适用于Windows和Linux操作系统,也就是说他的移植性很好。
Tina的操作也比较特别,很多操作需要借助键盘按键来完成,如:
Ctrl + g用来切换软件背景网格线的有无;鼠标中键用来添加库所;Ctrl +鼠标中键用来添加变迁;用鼠标中键在库所与变迁间拖拽可以添加弧。
他有专门的模拟模块,点击菜单的tools-stepper simulator可以切换到运行模拟器中,如图。其中Rand表示随机运行,完了之后可回复到初始状态进行单步运行分析等。

CPNTools
Tool homepage: http://www.daimi.au.dk/CPNTools/
CPN Tools是颜色Petri网领域鼎鼎大名的建模软件,操作界面如同所示:
其操作也独具特色--添加库所、变迁以及弧的方法是使用鼠标右键点击不放,在出现的圆形弹出菜单内用左键选择相应的项目。
下图大家一看就明白,乃是经典的哲学家进餐问题的CPN模型。

更多的操作细则请参看在线帮助文档:
http://wiki.daimi.au.dk/cpntools-help/cpntools-help.wiki
JFern、PIPE
Tool homepage: http://sourceforge.net/projects/jfern
之所以放在一起讲是因为JFern和PIPE都是基于JAVA平台的Petri网模拟软件。所以不管是在Windows下还是Linux下都必需有JDK/JRE作为运行环境方可使用。
JFern支持面向对象Petri网,目前支持OOPN的软件比较少,所以很有价值。
PIPE 是Platform Independent Petri Net Editor的缩写,没有给下载地址因为Petri Nets World上没有。而我是从西北大学一位研究生处得到的,当我问起他们一般使用什么Petri网模拟软件时,他只说了PIPE,可见他还是很有影响力的。
下载到JRE,并设置好PATH后运行PIPE软件包中的pipe.bat(Windows下,Linux下的启动程序是pipe.sh)文件就可以打开操作界面了(见图) 。

可见其见面也很直观易懂,且采用分页结构。
另外我想提出的一点说明是:在PIPE所建模型的库所属性框里可是有“Capacity”一栏的哦!这是我看到的第一个设置了库所容量的成熟软件。
说了这么多,最后想说一点:Petri网模拟软件其实还有很多很多,只要是不要钱的大家都可以拿来下着玩玩,弄不好就被你发现点什么玄机了,呵呵。如果觉得这些软件的操作你不熟悉,拿着不知道怎么用,最有效也是最直接的办法是:看帮助文档或者说用户手册!
《转》常用Petri网模拟软件工具简介的更多相关文章
- 常用Petri网模拟软件工具简介
常用Petri网模拟软件工具简介 首先要介绍的的一个非常有名的Petri 网网站--Petri Nets World: http://www.informatik.uni-hamburg. ...
- petri网学习心得
本文转载自duxw,如给您带来不便之处,请联系博主. 1.Petri网书籍:<petri网导论>,吴哲辉 非常适合初学者.概念清晰,容易理解. 2.工作流书籍:<Workflow M ...
- APP网络测试要点和弱网模拟
当前APP网络环境比较复杂,网络制式有2G.3G.4G网络,还有越来越多的公共Wi-Fi.不同的网络环境和网络制式的差异,都会对用户使用app造成一定影响.另外,当前app使用场景多变,如进地铁.上公 ...
- 用于并发系统建模和验证的着色Petri网及其工具软件的CPN Tools(笔记整理)
1.着色Petri网(CPNS)是一种建模和验证系统的语言,在这些熊中并发性,交互性和同步性扮演着主要的角色,着色Petri网是一种功能编程语言Standard ML结合起来的离散时间建模语言,Pet ...
- 基于Petri网的工作流分析和移植
基于Petri网的工作流分析和移植 一.前言 在实际应用场景,包括PEC的订单流程从下订单到订单派送一直到订单完成都是按照一系列预先规定好的工作流策略进行的. 通常情况下如果是采用面向过程的编程方法, ...
- Petri网
Petri网是一种适合于系统描述和分析的数学模型,主要描述异步和并发关系.(或者Petri网是对离散并行系统的数学表示,适用于描述异步的,并发的计算机系统模型.) Petri网模型自然,直观,简单易懂 ...
- petri网初步
历史:Petri网的概念是德国的Carl Adam Petri早在1962年提出来的.他在他的论文里提出了一个新的信息流模型,这个模型基于系统各部分的异步并发的操作,并把各部分之间的关系用网状的图来描 ...
- Petri网的工具
需要寻找 Petri 网的工具的朋友可以在 http://www.informatik.uni-hamburg.de/TGI/PetriNets/tools/complete_db.html 里面找一 ...
- Knockout.Js官网学习(简介)
前言 最近一段时间在网上经常看到关于Knockout.js文章,于是自己就到官网看了下,不过是英文的,自己果断搞不来,借用google翻译了一下.然后刚刚发现在建立asp.net mvc4.0的应用程 ...
随机推荐
- [转]DIV+CSS和TABLE的区别
现在全国大大小小的网站都在搞一场技术“革命”,就是所谓“网站重构”说简单点就是DIV+CSS进行网站制作.用DIV+CSS代替传统的Table制作框架和美化页面.百度搜索优化 在重构之前,肯定要了解为 ...
- OC基础--OC中类的定义
OC中类的定义与使用跟C#和java差别相当明显,做个笔记,牢记并加以区别! 一.OC中类的定义:关键字@implementation 和 @end 注意事项: 1.定义好一个类之后,要让这个类继承N ...
- Maven-在eclipse创建maven项目
在eclipse使用maven则需要给eclipse安装maven插件,具体安装maven插件安装相关文章 构建Maven项目 以eclipse3.6为例 1)创建简单Maven项目 点击Eclips ...
- 12.Android之Tabhost组件学习
TabHost是整个Tab的容器,TabHost的实现有两种方式: 第一种继承TabActivity,从TabActivity中用getTabHost()方法获取TabHost.各个Tab中的内容在布 ...
- Mac上的终端(Terminal)启动缓慢
最近重装10.9系统,装完后,发现终端(Terminal)启动之前1秒都不用,现在却需要5-10秒,搜寻了下,发现是终端的统日志导致的问题,只需要执行下下面的命令,终端就又身轻如燕了! sudo rm ...
- 在使用easyui,datagrid时,JSON中的如果含有换行符,则不能显示数据
http://www.xuebuyuan.com/2103538.html 每项值需处理换行符 item = item.Replace("\r\n", ""); ...
- 添加一个txt文件(例如在桌面),利用后台对文件写入内容
string str = "今天天气好晴朗,处处好风光."; //需要将字符串转化成字节数组 byte[] buffer = Encoding.Default.GetBytes(s ...
- PHP FORUM
1.index.php <html> <!--功能:php论坛标题部分--> <head><meta http-equiv="content-typ ...
- python -os、sys
个人还不是很懂 os操作文件目录.sys针对系统环境的交互.大概是这样 使用os.system函数运行其他程序 os模块中的system()函数可以方便地运行其他程序或者脚本.其函数原型如下所示. o ...
- JavaScript 实现鼠标拖动元素
一.前言 最开始实现鼠标拖动元素的目的就是在一个页面上拖动很多小圆点,用于固定定位,然后在复制HTML,粘贴在页面的开发代码中,就是这么一个功能,实现了很多遍,都没有做好,不得已采用了jQuery.f ...