1、离散数学结构Petri网与应用实验六
Petri网与应用
一 Petri网
Petri网是一个有向图,它包含几个元素:状态,变换,有向边,令牌,其中,有向边可以用变换的输入I和输出O取代,如图:
状态P:{P1,P2,P3,P4};
变换T:{T1,T2,T3};
输入:I(T1)={P1},I(T2)={P1},I{T3}={P2,P3};
输出:O(T1)={P2},O(T2)={P3},O{T3}={P4};
令牌
令牌是状态中的动态对象,可以从一个状态所移动到另一个状态,通常当每个输入位置所拥有的令牌数大于等于从该位置到转换的线数时,就允许转换
2、当T1被激发时,P2和P4上各有一个权标被移出,而P1上则增加一个权标,Petri网中权标总数不是固定的,在下例中两个权标被移出,而P1上只能增加一个权标,如图:
转换前
转换后
二 Petri网在电梯上的应用
Ef
Pg
Pf
电梯运行中
1 假设人在f层等电梯,电梯停在g层,那么可以用下图表示:
2 当按下电梯按钮的时候会亮灯,可以用令牌来表示,为了使多次按下按钮而不影响令牌数量的情况下,引入禁止线,如图所示,禁止线是用一个小圆圈而不是用箭头标记的输入线,通常当每个输入线上至少有一个权标,而禁止线上没有权标的时候,相应的转换才是允许的,在图中,
3、P3上有一个权标而 P2 上没有权标,因此转换 t1 可以被激发:
Ef
Pg
Pf
按下按钮
电梯运行
对以上的电梯进行完善:
由于禁止线的作用,当再次按下按钮的时候,Ef中的令牌数不会增加,每部电梯有 m 个按钮,每层对应一个按钮,当按下一个按钮时该按钮指示灯亮,指示电梯 移往相应的楼层,当电梯到达指定的楼层时,按钮将熄灭;
3 除了第一层与顶层之外,每个楼层都有两个按钮,一个要求电梯上行,另一个要求电梯下 行,这些按钮在按下时发亮,当电梯到达该层并将向 指定方向移动时,相应的按钮才会熄灭:
Ef
Pg
Pf
按下“上”按
4、钮
电梯运行
Ef
Pf
按下“下”按钮
电梯运行
4 在Petri网中,变换是瞬时的,但在电梯中,从g层到f层是需要时间的,所以变换T要加入时限,由于从g层到f层的时间time是固定的,所以只需要把这个时间添加到对应的变换上即可:
变换执行时间:time(电梯运行)=time(g,f);
time(g,f)是g层到f层所用时间;
5 一般情况下,一栋大楼有2部电梯,那么控制哪部运行,就要看电梯所在楼层与目的楼层的距离哪个最短:
Ef
Pg
Pf
按下“上”按钮
电梯运行
Ef
Pf
按下“下”按钮
电梯运行
Pa
Pb
楼层判断
楼层判
5、断
优先判断
当电梯分别在a和b楼层中,设|a-b|为a层和b层的距离,如果|f-a|≤|f-b|,那么Pc中例牌传递给Pb,那么在优先判断之后,距离较大的电梯就可以依然保持1个令牌,原地待命的状态;
6 从上图中可以看出,一个状态可能会与多个变换有关,那么该如何执行变换的先后顺序呢?
(1) 把同类变换分成一组;
(2) 限制每组变换的输入;
Pa
Pb
Pc
Pf
Pf
楼层判断
楼层判断
不动楼层
最优楼层判断
上下行判断
上下行状态
电梯运行
电梯运行
假如函数Itok为输入变换的令牌数量,那么限定
Itok(最优楼层判断
6、1;
Itok(上下行判断)=1;
7为了能使上题中的令牌更有区别性完成以上操作,需要将令牌特征化,也就是令牌的着色,可以将1个令牌标记为绿色,记为楼层令牌,将另一个令牌标记为红色,记为方向令牌,那么可以限定最优楼层判断值接受绿色令牌,上下行判断只接受红色令牌:
Pa
Pb
Pc
Pf
Pf
楼层判断
楼层判断
不动楼层
最优楼层判断
上下行判断
上下行状态
电梯运行
电梯运行
Ef
Pa
Pb
Pc
Pf
Pf
Ef’
楼层判断
楼层判断
不动楼层
最优楼层判断
优先判断
按下“上”按钮
按下“下”按钮
上下行状态
上下行判断
电梯运行
电梯运行
8 将以上的问题整合起来:
图中:
优先判断的输出令牌为红色;
最优楼层判断的输入令牌为绿色;
上下行判断的输入令牌为红色;
其他判断不设置要求;
三 参考文献
1安阳师范学院网络教学资源
2 Petri网-维基百科
http://zh.wikipedia.org/wiki/Petri%E7%BD%91#.E4.BB.A4.E7.89.8C.E7.9D.80.E8.89.B2
第9页