CPN Tools学习——时间和队列【重要】

news/2024/10/18 16:41:33/

-Timed Color Sets 时间颜色集

-Token Stamps 令牌时间戳

-Event Clock 全局/事件/模拟时钟

-Time Delays on Transitions过渡的时间延迟

- List Color Set列表颜色集

- Queue排队

1.时间颜色集

在定时CPN模型令牌中有:

(1)象征性的颜色

(2)时间戳:时间戳是一个非负整数.

句法:1`e@+表达式

示例:

(1)1`A@+5:表示这个令牌A将在时间5可用以启用转换

(2)多重令牌:1`A@+2++1`B@+5,表示A将在时间2可用以启用转换,B在时间5可用。中间两个++是用于多集的符号。

(3)1`(A,B)@+20,表示有序对在时间20可用

系统有一个表示模型时间的全局(事件)时钟。当全局时间为0,这些都不可用.

        通过在CPN工具定义末尾添加此时间关键字timed,来设置定时颜色集。可以看到net中P1和P2的令牌都自动出现了默认的@0。因为如果不指定,CPN工具默认提供当前全局时钟0.

这个time=0就表示。全局时钟时间或事件时钟时间此时为0.

将时间延迟分配给转换T所需要:

1)选择转换(即左键单击)

2)按Tab键

3)在@+后键入延迟表达式

        这里输出的结果P3由转换T1和输出弧表达式共同决定,所以这里输出P3的时间戳等于两个地方的时间戳加起来。

        虽然执行一次后,转换T1处有10的延迟,但是当前全局时间还是保持0不变,因为T1在时间0时在P1和P2中仍然有可用的,即0时仍可以触发转换。即全局时间time等于可以出发转换T1的最早时间。

2.令牌上的时间戳

手动设置令牌上的时间戳

执行一步操作后,当前全局时间为5,P1可执行(0<=5),P2可执行(5<=5),故T1可触发,累计时间戳就是输出的时间戳。

CPN当前的全局时间time等于可以出发转换T1的最早时间

3.队伍Implementing Queues

(1)HD和TL操作

(2)列表构造函数(: :)

构造函数,它显示为这两个冒号。这个构造函数在队列的实现中发挥非常重要的作用。

  • 构造 元素::元素列表——元素列表
  • 也构造两个变量
  • 将列表分配给变量的话,是前面X分配第一个元素,后面XS分配后面剩余元素并成为列表。

(3)串联运算符(^^)

用于从两个参数列表构造一个列表,因此该运算符的左侧是一个列表,右侧也是一个列表。

实操:

定义一个时间颜色集JOB和变量j,并在两个库所使用颜色集JOB,在弧上使用变量j。在转换上设置10的延迟。

在输入库所放置一些令牌,以触发转换。

在转换处放置一个循环:

可以看到最开始全局时间time=1,因为job=1,在其他中是最早可以触发转换的。因此是当前的全局时间。

新加的颜色集是E,里面只有一个变量e,(有点没明白这样做的意义,好像是当该服务器一次可以处理一项作业,就可以设置这样的自循环)

       因为转换sever会到输出,也会到timer,由于变量e获取过来的时间是11,那么要再回到转换sever重新触发,至少也要有11.

显示此时执行一次后,当前全局时间为11,因为剩余的job2和job3可执行时间都小于11,都是可以执行的,所以这里可以进行选择,否则就是随机了。

定义列表颜色集JOBList,以及变量js,并向net中添加队列(队列的实现就是红色框内的结构)。

理解:

队列初始是空的1`[ ],串联函数js^^[j]表示添加来自左边的元素j,且都是添加在Queue的末尾的。队列的形成方式:在现有队列的尾部添加一个元素

利用构造函数j::js,是为了删除Queue中的第一个元素,从中删除第一个元素(j代表的)后,将队列的其余部分并将其放回队列中,我可以拿走这个j,并将j与此转换一起使用,然后在输出位置放置.

  它取出队列中的第一个作业来处理,然后转到队列的下一个作业中。(太像优先级队列更新啦)

此时执行的转换是FormQ,要看的是job3的可执行时间。

此时执行的转换是Sver,要看的是Timer的可执行时间。队列的更新如图所示。


http://www.ppmy.cn/news/1470465.html

相关文章

Redis-数据类型-String

文章目录 1、通过客户端连接redis2、查看当前数据库的key的数量3、切换数据库3.1、切换到1数据库3.2、切换到2数据库3.3、切换到默认的数据库&#xff0c;0数据库 4、当前数据库没有数据5、添加键值对6、查看当前库所有key7、清空当前库8、设置存活的秒数&#xff08;例如验证码…

24年计算机等级考试22个常见问题解答❗

24年9月计算机等级考试即将开始&#xff0c;整理了报名中容易遇到的22个问题&#xff0c;大家对照入座&#xff0c;避免遇到了不知道怎么办&#xff1f; 1、报名条件 2、报名入口 3、考生报名之后后悔了&#xff0c;不想考了&#xff0c;能否退费&#xff1f; 4、最多能够报多少…

分类算法和回归算法区别

分类算法和回归算法在机器学习中扮演着不同的角色&#xff0c;它们的主要区别体现在输出类型、应用场景以及算法目标上。以下是对两者区别和使用场景的详细分析&#xff1a; 一、区别 1.输出类型&#xff1a; 分类算法&#xff1a;输出是离散的类别标签&#xff0c;通常表示为…

Sping事件发布机制

一、Spring事件发布 Spring事件发布机制是一种非常重要的通信方式&#xff0c;使用观察者设计模式&#xff0c;可以用于状态通知、业务解耦、异步处理的业务场景。 Spring事件发布对应的几个概念&#xff1a; 1、事件及事件源&#xff08;ApplicationEvent&#xff09; 对…

虚拟机使用桥接模式网络配置

1、获取本机的网络详细信息 windowr 输入cmd 使用ipconfig -all 一样即可 在自己的虚拟机中设置网络 虚拟机中的ip ---------192.168.36.*&#xff0c;不要跟自己的本机ip冲突 网关-----------192.168.36.254 一样即可 dns -----------一样即可&#xff0c;我多写了几个&am…

HTML5 新元素

HTML5 新元素 HTML5是最新版本的HTML&#xff0c;引入了许多新元素和功能&#xff0c;以更好地满足现代网页设计的需要。这些新元素不仅增强了网页的表现力&#xff0c;还提高了代码的可读性和可维护性。本文将详细介绍HTML5中的新元素&#xff0c;包括它们的功能和用法。 1.…

lighttpd cgi不能重启

1. 背景 cgi出现coredump后&#xff0c;lighttpd不能拉动cgi重启。 2. 重现问题 2.1. cgi实现 /*! cgi简单实现 */ #include <stdio.h> #include <fcgiapp.h> #include <stdlib.h> #include <pthread.h> #include <unistd.h> #include <s…

【SCAU数据挖掘】数据挖掘期末总复习题库简答题及解析——上

1.K-Means 假定我们对A、B、C、D四个样品分别测量两个变量&#xff0c;得到的结果见下表。 样品 变量 X1X2 A 5 3 B -1 1 C 1 -2 D -3 -2 利用K-Means方法将以上的样品聚成两类。为了实施均值法(K-Means)聚类&#xff0c;首先将这些样品随意分成两类(A、B)和(C、…