CPN Tools学习——从平面网构建分层 PN

2024-06-16 20:36

本文主要是介绍CPN Tools学习——从平面网构建分层 PN,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.先创建平面petri网

创建如下petri网:

CPN ide创建petri网真的舒服很多,但是教程又是CPN Tools的,我的想法是看两个版本能不能互通,在前者创建,在后者运行学习。

新增定义:

colset E = unit with e;

但是很明显我想的有点天真:(但是这个在tools中新建号也会报这个错,为啥呢?)

从详细的平面网络构造分层Petri net所需的工具:

(1)视图(2)层次结构(3)模拟

用替代变迁来代替petri网中的一部分。

2.替代变迁

用变迁表征网结构中的某一整块是层次网中常用的一种方法,利用这种方法使得包含上述变迁网络从逻辑上得到简化。这样一种变迁就叫做替代变迁。

替代变迁根本上没有增加任何新的东西。利用替代变迁可以做的操作同样也可以利用融合库所fusion places 的方式来实现。但是类比于融合库所,替代变迁显得更方便、有用,它可以区分出建模上的可行性和整体不可行性上的不同。

3.创建分层petri net

(1)将视图中的第四个(创建新组)工具应用到net上

应用之后透明度会全部降低

(2)将视图中的第五个(选择组内元素)工具,将属于一个组元素进行选中。注意在这些选择之外,之后有一个输入或输出连接到这些节点。

要选择正确的节点组合,替代变迁才能起作用!

为什么选中这些,如果正确选择节点组合?

(3)利用分层托盘中的第一个工具,将选中部分发送到子页面,并将其替换为替换过渡。

应用到net中后,之前选中的组合结构已经消失了,被一个双倍的过渡给替换了。这个双层就叫替换过渡。可以进行重命名。

(4)再索引中可以找到并打开子页面。

观察发现子页面中,比之前选中的组合中,多出P2,P3,P7,这三个节点叫做端口节点,P2,P3叫做输入端口,P3叫做输出端口。分别标记有IN和OUT,是连接到父页面的节点!

(5)在父页面放置令牌,触发转换T1,看看会发生啥

T1执行完之后,令牌转移到P2和P3,同时双层替代变迁也显示绿框,这就表示在该替代的子页面中,至少触发了一个转换。

此时进入这个子页面就会发现输入端口分别有对应的相同令牌,T2已经被触发。

总结:为了隐藏网络的某些部分,我们创建了一个组,我们用替换过渡替换这个组,分层或不分层都具有相同的运行结果和行为,都是具有相同的连接性的,唯一的区别就是PN以分层的方式,将一些详细的连接放在子页面中了。
 (6)取消分层

用分层托盘中的第二个工具,作用是用它的子页面替换替换过渡,相当于取消原来的替换。

将这个工具作用到section_1这个替换过渡上,就回到了原来平面PN状态。

net左下角可以选择none恢复到最初的透明度。

这篇关于CPN Tools学习——从平面网构建分层 PN的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1067485

相关文章

一文详解如何从零构建Spring Boot Starter并实现整合

《一文详解如何从零构建SpringBootStarter并实现整合》SpringBoot是一个开源的Java基础框架,用于创建独立、生产级的基于Spring框架的应用程序,:本文主要介绍如何从... 目录一、Spring Boot Starter的核心价值二、Starter项目创建全流程2.1 项目初始化(

使用Java实现通用树形结构构建工具类

《使用Java实现通用树形结构构建工具类》这篇文章主要为大家详细介绍了如何使用Java实现通用树形结构构建工具类,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录完整代码一、设计思想与核心功能二、核心实现原理1. 数据结构准备阶段2. 循环依赖检测算法3. 树形结构构建4. 搜索子

使用Python和python-pptx构建Markdown到PowerPoint转换器

《使用Python和python-pptx构建Markdown到PowerPoint转换器》在这篇博客中,我们将深入分析一个使用Python开发的应用程序,该程序可以将Markdown文件转换为Pow... 目录引言应用概述代码结构与分析1. 类定义与初始化2. 事件处理3. Markdown 处理4. 转

Java进阶学习之如何开启远程调式

《Java进阶学习之如何开启远程调式》Java开发中的远程调试是一项至关重要的技能,特别是在处理生产环境的问题或者协作开发时,:本文主要介绍Java进阶学习之如何开启远程调式的相关资料,需要的朋友... 目录概述Java远程调试的开启与底层原理开启Java远程调试底层原理JVM参数总结&nbsMbKKXJx

Java使用Mail构建邮件功能的完整指南

《Java使用Mail构建邮件功能的完整指南》JavaMailAPI是一个功能强大的工具,它可以帮助开发者轻松实现邮件的发送与接收功能,本文将介绍如何使用JavaMail发送和接收邮件,希望对大家有所... 目录1、简述2、主要特点3、发送样例3.1 发送纯文本邮件3.2 发送 html 邮件3.3 发送带

Python结合Flask框架构建一个简易的远程控制系统

《Python结合Flask框架构建一个简易的远程控制系统》这篇文章主要为大家详细介绍了如何使用Python与Flask框架构建一个简易的远程控制系统,能够远程执行操作命令(如关机、重启、锁屏等),还... 目录1.概述2.功能使用系统命令执行实时屏幕监控3. BUG修复过程1. Authorization

Java深度学习库DJL实现Python的NumPy方式

《Java深度学习库DJL实现Python的NumPy方式》本文介绍了DJL库的背景和基本功能,包括NDArray的创建、数学运算、数据获取和设置等,同时,还展示了如何使用NDArray进行数据预处理... 目录1 NDArray 的背景介绍1.1 架构2 JavaDJL使用2.1 安装DJL2.2 基本操

nginx-rtmp-module构建流媒体直播服务器实战指南

《nginx-rtmp-module构建流媒体直播服务器实战指南》本文主要介绍了nginx-rtmp-module构建流媒体直播服务器实战指南,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有... 目录1. RTMP协议介绍与应用RTMP协议的原理RTMP协议的应用RTMP与现代流媒体技术的关系2

Python中构建终端应用界面利器Blessed模块的使用

《Python中构建终端应用界面利器Blessed模块的使用》Blessed库作为一个轻量级且功能强大的解决方案,开始在开发者中赢得口碑,今天,我们就一起来探索一下它是如何让终端UI开发变得轻松而高... 目录一、安装与配置:简单、快速、无障碍二、基本功能:从彩色文本到动态交互1. 显示基本内容2. 创建链

Golang使用etcd构建分布式锁的示例分享

《Golang使用etcd构建分布式锁的示例分享》在本教程中,我们将学习如何使用Go和etcd构建分布式锁系统,分布式锁系统对于管理对分布式系统中共享资源的并发访问至关重要,它有助于维护一致性,防止竞... 目录引言环境准备新建Go项目实现加锁和解锁功能测试分布式锁重构实现失败重试总结引言我们将使用Go作