一种基于Petri网的自动测试系统死锁预防策略

合集下载

基于有色Petri网并发进程模型及死锁避免方法

基于有色Petri网并发进程模型及死锁避免方法

1 引 言
并 发 进 程 死 锁 问题 是 计 算 机 操 作 系 统 中 一 个 重 要 的 研 究 课 题 。 在 两个 或多 个 并 发 进 程 中 , 如果 每 个 进 程 持 有某 种 资 源 而 又 都 等 待 着 别 的进 程 释 放 各 自保 持 着 的 资 源 . 则 就 不 能 向 否 前 推 进 。 此 时 , 个 进 程 都 占有 了一 定 的 资源 但 又 都 不 能 向前 每
E-mal lfgs 1 e m i:rz @ 63.o
LI U Ro g- e g, Yi z e Co c r e c p o e s n f n LI n- h n. n u r n y r c s mo l n wa o v i i g e d o k a e o c l r d e r n t de a d y f a o d n d a lc b s d n o o e P t i e .
to n e it g s n h n u a d o c re t y tm. t o t e e s a mo t n r s a c o u i g er e o c n u r n y o l o d p c i a y c r o s n c n u r n s s n o e Bu n w h r i l s o e e r h n sn P ti t n o c r c n e p c s o t l n r b e S t i a e n u t h e tn e c l rd P t n t b i s h e o r e s c n r l g p o l m. o hs o i p p r i d cs e xe d d o o e e r e , u l t mo e o o c re c r c s a d t i d d lfr c n urn y p o es n s o s a f ci e wa n h w o a o d d a l c . h w n e e t y o o t v i e d o k v Ke r s:c n u r n y p o e s P t e ; e d o k;e c a l r i g g a h y wo d o c r c r c s ; er n t d a l c r a h b e ma kn r p e i

基于Petri网的分析方法简述

基于Petri网的分析方法简述

基于Petri网的分析方法简述摘要:对数学和图形进行描述和分析的工具很多,但能用良好的数学性质把一些复杂的现象(例如,同步、并发、分布、冲突、资源共享等)描述的直观、生动形象的工具很少,而Petri网就具有这些优点。

在分布式系统、信息系统、离散事件系统等领域,都可以利用Petri网对离散事件动态系统建模、规范分析和设计,而且非常好。

Petri网有很多分析方法,文章就作简要概述。

关键词:Petri网;Petri网语言;可达性;不变量;死锁Petri网是一种计算模型,也是一种数学模型,最先是由德国的C.A.Petri教授提出来的,之后,得到了深入的研究,对于异步并发系统的描述和模拟,能用非常友好的图形表示出来。

友好的图形表示只是Petri网得到广泛应用的一个原因,更主要的原因是它的分析方法非常完备,而且这些方法对于分析和模拟系统的行为非常有效。

下面就简述一下其丰富的分析方法。

1Petri网语言Petri网语言,是用来解决一个网系统中由于变迁而引发的序列问题。

这种通过变迁引发的序列,可以控制事件发生的顺序,从而对资源进行合理的配置和有效地调度。

最初Petri网语言的目的是利用这种变迁引发的序列来分析系统的行为,并通过其语言来进行计算和模拟,对于系统的设计能有效地进行控制和改进。

随着Petri网语言的发展,它在理论和应用方面都得到很好的应用,成为了Petri网的重要组成部分。

2可达树Petri网是否可达如何判定,可以在一个网系统中设置一个标识,根据这个标识是否能够从初始标识可达来判定Petri网的可达性。

Petri网的很多问题都是通过可达性问题来进行分析的。

判定Petri网的可达性很难,但其可达性问题是可以判定的。

如何去判定?有很多方法,基其中之一是基于可达树或可覆盖树。

如果Petri网有界,那么可达树的节点就有限,其网系统的可达性就能够分析的非常准确。

如果Petri网无界,可达树的节点就无限,所以这样的可达树就没办法构造出来。

张晓东文献翻译

张晓东文献翻译

基于Petri网技术的柔性制造系统活性监督控制识别与冗余消除作者:李志武周孟初翻译:张晓东摘要:在过去二十年里,人们提出一些基于petri网的柔性制造系统的死锁预防方法(柔性制造系统)。

柔性制造系统作为一个Petri网,然后活性监督控制器是一个Petri网。

Petri网的活性控制保证它的自锁控制。

一个活性控制器包括很多控制点。

现在大部分注意力都集中在使Petri网模型没有问题不管所有的控制点是否都需要。

减少控制系统的复杂性是非常重要的。

本文提出了一种冗余测试的一个柔性制造系统。

该方法需要一个逻辑模型,由若干控制点控制,作为输入和存在的任何多余的控制点,它产生了很多多余和需要的控制点。

这个方法适用于任何活性Petri网模型。

1、简介:柔性制造系统包括:机器,机器人,存储设备,和输送机。

原料或中间部分是同时处理,通过预先确定的生产路线使用这些资源。

在柔性制造系统中自锁是最不希望发生的情况。

在柔性制造系统中有效的解决自锁是获得高效生产所必须具备的。

保证不会发生自锁是一个有效的柔性制造系统控制策略的必要条件。

在过去的二十年里有关柔性制造系统自锁的调查非常频繁。

这里提到了一个有关自锁控制的详细调查。

这里主要有三种解决自锁的方法:死锁的检测与恢复、死锁避免和死锁预防。

本文我们所关注的是自锁预防方法,即在一个控制系统完成以前要有一个合适的设计。

我们的目的是向系统添加一个控制政策,防止系统进入死锁状态。

在这种情况下,计算进行离线静态方式,一旦控制政策建立起来并投入应用,该系统就不会进入死锁状态。

很多机床对自锁采取了检测、恢复、避免和预防:图表技术,有限状态机模型,和Petri网模型。

由于其良好的检测性,Petri网已经广泛用于柔性制造系统的描述。

基于Petri网的的自锁预防控制方法,柔性制造系统被看作一个Petri网模型。

考虑到生产序列,活性监督控制器作为一系列的控制点。

迄今为止,研究主要集中在使Petri网模型没有疑点,不管所有的控制点是不是有必要。

Petri网详细介绍与学习

Petri网详细介绍与学习
随着技术的发展,Petri网模型也在不断演进和扩展,出 现了许多高级Petri网模型,如有色Petri网、时间Petri网 、概率Petri网等。这些模型在处理复杂系统方面具有更 强的表达能力和灵活性。
模型改进
针对传统Petri网的不足,研究者们不断尝试对其进行改 进和优化,以提高其适用性和性能。例如,通过引入新 的元素或规则,改进Petri网的表达能力;优化Petri网的 推理算法,提高其推理速度等。
有界性、安全性与死锁
01

03
有界性
Petri网中的每个库所至多 包含有限个标记,且每个 变迁最多可以消耗和产生 有限个标记。
安全性
Petri网中不存在死锁状态 ,即对于任意一个状态, 总存在一个后继状态。
死锁
当Petri网中存在一个状态 ,从该状态无法通过任何 变迁到达其他状态时,称 该状态为死锁状态。
Petri网与其他建模方法的融合
融合方法
为了更好地描述和分析复杂系统,研究者们尝试将 Petri网与其他建模方法进行融合。例如,将Petri网与 流程图、状态图等图形化建模方法相结合,可以更直 观地描述系统的结构和行为。
融合优势
通过融合不同的建模方法,可以取长补短,提高对复 杂系统的描述和分析能力。同时,这种融合也有助于 推动不同领域之间的交叉和融合,促进多学科研究的 开展。
实例分析学习
案例分析
分析不同类型Petri网的特点和适用场景,如同步Petri 网、时间Petri网和有色Petri网等。
通过学习经典的Petri网实例,深入理解Petri网的实际 应用和建模技巧。
对比不同Petri网实例的建模效果,提高对Petri网的实 际操作能力和应用水平。
实践应用学习

Petri网并发进程的死锁避免策略

Petri网并发进程的死锁避免策略
周 建勇 , 于 杰 , 刘海 阳 , 孙 燕 , 刘久富 , 王志胜 , 杨 忠 , 刘春 生
( 1 . 南京航 空航 天大学 自 动化 学院, 江苏 南京 2 1 0 0 1 6 ; 2 . 东南大学 电子工程学院, 江苏 南京 2 1 1 1 8 9 )
摘 要: 死 锁是 系统并 发 进程 中特有 的 问题 , 由于 发生 的不确 定性 , 死 锁检测 和 消 除非 常 困难 。在 以分 支界 定法 设 计最 优
s p e c i i f c a i t o n s i n a ma x i ma l l y er p mi s s i v e wa y. T h i s me ho t d p mn e s t h e t e a c h a b i l i t y g r a p h b y t h e na a ly s i s o f g r a p h, t o e n s u 1 ' e he t s e p a r a i t o n o f l e g l a ma r k i n g s nd a i l l e g l a ma r k i n gs , a n d b u i l d s t h e ix m d e i n t e g e r l i n e a r p r o g r a mm i n g t o o b t a i n g e n e r a l i z e d mu t u a l e x c l u s i o n c o n s t r a i n m a s he t o p i t ma l s u p e vi r or s . Th e s y s t e m mo de l o fF MS i s b u i l t wi h t P e Ne t . Ba s e d o n t h e o c c u p ti a o n nd a r e l e a s e o f r c ou s r c e i n he t ma c h i - n i n g p r o c e s s, eS r ea r c h i s ma d e o n a p p l i c a i t o n i n r o b o t p r o c e s s i n g s y s t e m. Th e o p i t ma l s u er p vi s o r s g e n e r a i t n g f r o m he t lg a o it r h m s h o w

基于Petri网的柔性制造系统可达性分析与死锁控制

基于Petri网的柔性制造系统可达性分析与死锁控制

基于Petri网的柔性制造系统可达性分析与死锁控制基于Petri网的柔性制造系统可达性分析与死锁控制柔性制造系统是一种高度自动化、灵活性强的生产制造系统,它可以根据需求快速地适应各种产品的生产。

然而,由于系统内部的各种资源和工序之间的关系复杂,柔性制造系统中容易出现死锁问题,导致生产效率下降甚至停止生产。

因此,如何分析系统的可达性并实施死锁控制是柔性制造系统中的关键问题。

为了解决这个问题,研究人员引入了Petri网作为柔性制造系统的建模工具。

Petri网是一种图形化且形式化的工具,可以用于描述系统中的资源、工序和它们之间的关系。

通过将柔性制造系统建模为Petri网,可以对系统进行可达性分析并采取相应的死锁控制策略。

首先,对柔性制造系统进行建模是可达性分析的前提。

通过将系统中的每个资源和工序表示为Petri网中的库所和变迁,可以清晰地描述它们之间的关系。

在Petri网中,库所表示系统的状态,变迁表示系统的转换过程。

通过定义库所和变迁之间的流动关系,可以表示资源和工序之间的依赖关系。

通过建模,可以得到柔性制造系统的Petri网。

接下来,利用求解Petri网的可达性图,可以分析系统的可达性。

可达性分析是指确定在给定初始状态下,柔性制造系统能否到达所期望的状态。

通过对Petri网的可达性图进行求解,可以确定系统是否能够正常运转,以及系统能够达到的状态。

如果系统无法到达所期望的状态,那么就存在死锁问题。

在分析可达性的基础上,可以采取相应的死锁控制策略。

死锁是指系统中的资源与工序之间出现循环依赖,导致系统无法进行下一步操作的情况。

为了避免死锁的发生,可以采取预防、避免和恢复的策略。

预防策略是通过设计系统的结构和规则,使得系统在运行过程中趋于无死锁状态。

避免策略是在系统运行过程中,通过动态地分配资源和调度工序,避免出现死锁。

恢复策略是在死锁已经发生时,通过释放部分资源或者回滚操作,使得系统恢复正常状态。

最后,通过实验验证可达性分析与死锁控制的有效性。

基于Petri网的无死锁控制器设计

基于Petri网的无死锁控制器设计
计算机科学 20 Vo. 5 o 1 0 8 13 N . 1
基 于 P ti 的 无 死锁 控 制 器 设 计 er 网
韦 娜 赵 咪 闫明明
( 西安 电子科 技 大学机 电工程 学 院 西 安 7 0 7) 10 1
摘 要 对柔性 制造 系统提 出了一种新的死锁预 防控制 算法。运 用 区域理论对 P t 网模型设计一个控制 器, er i 对控 制
p r io . evs r
Ke wo d FM S, a lc rv n in, tin t Th o yo e in y rs Dedo kp e e to Per e , e r frgo s
人们通常用 P ti er网来解 决离散 事件 系统 ( E ) D S 中的死
Ab ta t A e d a lc r v n in p l y frf xb ema ua t rn y tm s( src n w e do k p e e t o i o l il n fcu ig s se o c e FM S)wa rs n e . A u evs r sp e e td s p rio f rPer n t d lu ig t et e r frgo s wa ein d An ag b ac e p eso b u o to lc sa d r— o ti esmo e sn h h o y o e in sd sg e . le r i x rs in a o tc n r lpa e n e s u c lcsfralt esr tmii a ih n S S o h u evs rweeo tie O e s r h o tolb l yo o r epae o l h ti nm l p o s( M ) fte s p r io r b an d t n u et e c n r l it f c s a i te h m. Co ae t h xsigp l is t ea v na eo hsp p ri h trs u c salc t ni h u ev s rfl mp rd wi tee it oi e ,h d a tg ft i a e t a e o re l ai t es p r io o— h n c s o o n lwst ee p e so so l , ih rs l i b ann edo k fe u ev s rwi o t h n igt esr cu eo h U o h x rs in ny whc e ut no tiigad a lc -r es p r io t u a g n h tu tr ft eS — h c

自动制造系统的稳健控制方法的综述

自动制造系统的稳健控制方法的综述

自动制造系统的稳健控制方法的综述杜楠;胡核算【摘要】随着科学技术的快速发展,制造自动化在制造工厂已经成为一个主流方向.在过去的几十年中,研究人员已经对自动制造系统的死锁问题做了大量的研究.但是大多数解决方案总是假设分配的资源不会故障.然而,任何一个制造研究者都知道,资源故障来自各种各样的原因,包括工件破损、传感器故障、零件缺失和电器失灵等.显然,一旦资源发生故障,后续加工路径中需要使用这个故障资源的进程将停滞,不能完成其加工生产,直到故障资源被修复.那些不使用故障资源的支路也会被发生停滞的进程所阻塞.最坏的情况就是一个简单的资源故障可能会导致整个系统的崩溃.因此,制造系统中的资源故障问题急需解决.通过分析大量的文献资料,本文对解决死锁和阻塞问题的控制方法做了系统的总结研究.同时,对本文提出的稳健无死锁控制策略以及亟待开展的研究工作做了详细的介绍.%With the quick development of science and technology,manufacturing automation plays a role of mainstay for the construction of manufacturing industries. Over the past decades,researchers have made tremendous achievements in understanding deadlock issues in automated manufacturingsystems(AMSs);nevertheless,most of the deadlock avoid-ance or prevention methods have assumed that allocated resources never fail. In reality,as any practicing manufacturing researcher knows,resource failures derive from all kinds of causes,including tool breakages,sensor faults,part defects, component malfunctions, etc. Obviously, in case a resource fails undesirably, a process requiring the failed resource in its remaining route definitely cannot be accomplished unless the resource recovers.Moreover,a process not necessarily requiring the failed resource can be blocked innocently by this process. In the worst case,a single resource failure may paralyze the entire system.Therefore,resource failures in automated manufacturing systems need to be resolved forwardly. By surveying a large number of literatures,this paper summarizes the existing control approaches to resolving deadlock and blockingissues.Moreover,based on the reviews,our current and future research trends are pointed out in detail.【期刊名称】《控制理论与应用》【年(卷),期】2018(035)001【总页数】7页(P79-85)【关键词】自动制造系统;死锁预防;资源故障;稳健控制【作者】杜楠;胡核算【作者单位】西安电子科技大学机电工程学院,陕西西安710071;西安电子科技大学机电工程学院,陕西西安710071;西安交通大学机械制造系统工程国家重点实验室,陕西西安710049【正文语种】中文【中图分类】TP2731 引言(Introduction)自动制造系统(automated manufacturing systems,AMSs)是指在较少的人工直接或间接干预下,将原材料加工成零件或将零件组装成产品,并在加工过程中实现管理过程和工艺过程自动化.为了迎合激励的市场竞争和频繁的产品变化,自动制造系统已经在增加生产效率、优化产品质量和降低成本等方面取得了巨大的发展.自动制造系统往往是由许多小规模的、局部的、交互的、异步的以及事件驱动的并发子系统和一系列的资源(数控机床、机器人和自动处理设备等)构成.考虑到系统的体积和资源的成本,资源不会具备无限的供应.因而高度的资源共享在自动制造系统中变得非常普遍.由于子系统之间竞争有限的共享资源,导致并不期望的情况发生,如死锁和阻塞.因此,促使了监督控制理论的产生与发展.绝大多数自动制造系统可以归类为离散事件系统,对于自动制造系统的控制问题属于离散事件系统监督控制理论,是自动化学科的重要分支,一个相对年轻的学科,并且有着广泛的应用前景.在过去的几十年中,学术研究者已经研究了大量的解决系统死锁的问题,并形成了很多解决方案.大多数的解决方法总是假设分配的资源不会发生故障,然而事实并非如此.在实际生产中,资源故障是十分常见的现象,比如信号丢失、传感器故障、电器失灵和工件损坏等.因此,根据资源是否会发生故障,将它们分为可靠和不可靠的.显然,一旦资源发生故障,后续加工路径中需要使用这个故障资源的进程将停滞,不能完成其加工生产,直到故障资源被修复.同时,那些不使用该故障资源的支路也会被发生停滞的进程所阻塞.在最坏的情况下,一个简单的资源故障,可能会导致整个系统的崩溃.因此,排除行为上较低水平的控制问题,稳健性是控制问题中另一个重要的因素.对于一个可能发生资源故障的系统,即使在不可靠资源发生了故障的情况下,不使用故障资源的支路仍然可以进行加工生产,那么称这个系统是稳健的. 本文首先通过一个简单自动制造系统实例阐述由资源故障引起的阻塞问题.然后,在分析大量文献资料的基础上,对自动制造系统的稳健无死锁控制方法进行了总结和分析.最后,着重对本文提出的一种稳健无死锁控制策略做了详细的说明,分析了其优势和不足,并指出了未来将会在哪些方面做进一步的研究.2 一个典型的自动制造系统(A typical automated manufacturing system)通常,自动制造系统中包含了许多个加工进程,每一个加工进程负责生产不同的工件.当一个进程由于系统资源受到损坏而不得不中断时,人们总是希望其他进程不被中断影响而继续顺畅地进行加工任务.然而,在现实生产中,情况并非如此.图1是一个带有不可靠资源的自动制造系统[1].在该系统中,每一种产品由一个进程加工完成.这个系统拥有以下几个特征:每一个工作站代表一种资源,它拥有若干存储单元(或缓冲器)和一个处理器(或服务器),分别用来存放和加工工件.如果资源发生故障,意味着那台工作站的服务器不能使用而缓冲器仍然可以放置待加工的工件,待加工的工件不会被破坏.进一步讲,可以继续往这个缓冲器中放置待加工的工件直到达到容量的上限.被故障资源加工完成的工件可以离开工作站进行下一阶段的加工,而待加工的工件却不能被当前服务器加工,更不能被后续资源加工,直到这个资源的服务器被修复.不失一般性地,假设只有在服务器正在加工的时候故障才可能发生.图1 带有不可靠资源的自动制造系统Fig.1 An automated manufacturing system with unreliable resources在该自动制造系统中,根据是否使用不可靠资源,将所有的加工进程区分为两类,一类是需要使用不可靠资源的进程,一类是只使用可靠资源的进程.当前者发生了中断,后者的加工不应该受到负面的影响.然而,事实并非如此.图1可以模拟一个具有不可靠资源的自动制造系统的加工情况.该系统中有4种加工类型,即P1,P2,P3和P4,它们在该自动制造系统中同时被加工,分别对应有序的加工阶段为:P1=〈P11,P12,P13,P14〉,P2=〈P21,P22,P23,P24〉,P3=〈P31,P32,P33〉和P4=〈P41,P42,P43〉,这里Pik代表第i个加工类型的第k个加工阶段.该系统有6种类型的资源r1,r2,r3,r4,r5和r6,其中r1是不可靠资源而其他都是可靠资源.这些资源中,除了r2的缓冲器存储单元为2,其余都为1.用Ti表示第i个加工类型的加工路径,这4种加工类型的加工路径分别为:T1=〈r4,r3,r2,r1〉,T2=〈r1,r2,r3,r5〉,T3=〈r5,r2,r6〉和T4=〈r6,r2,r5〉.假设系统加工到某一状态,资源r1中拥有加工阶段P14,资源r2中拥有加工阶段P13和P22,资源中r3拥有加工阶段P23,资源r5中拥有加工阶段P31.明显地,本文并不希望系统到达这个状态.一旦r1在此刻发生故障,首当其冲的是P1和P2,因为它使用了故障资源r1而不得不被终止.然而不使用故障资源的P3和P4也被迫中断加工,这是因为加工阶段P14停滞在故障资源r1处,从而导致P13不能前进到r1中,并因此不能释放资源r2,r2中没有多余的存储单元,致使P31停滞在资源r5中,也因此导致P23停滞在资源r3中.尽管这个例子很简单,却为阐明故障资源问题的重要性提供了科学证据.在现实的系统中,上百台机器同时生产大量的不同类型的工件,完全可能因为某一个资源的故障导致全部生产停滞,引发不可预想的后果.由此,自动制造系统中需要一个稳健的控制器,用以保证系统安全地运行.3 稳健无死锁控制的回顾(Review of robust deadlock-free control)自动制造系统可以归类为离散事件系统,对于自动制造系统的控制属于离散事件系统监督控制理论.相比较连续系统的控制理论,离散事件系统的控制理论既有相类似的基础,又有诸多不同.通过将事件区分为可控事件、不可控事件、可观事件和不可观事件,监督控制器可以禁止某些事件的发生来实现控制目标.监督控制器不会强迫特定事件发生,而是通过观测事件发生序列,禁止一些不安全事件的发生,从而确保系统的安全运行.尽管这个领域已经有大量的研究,但是很少有研究者讨论资源故障的问题,而资源故障的发生又是难以预测的.如果对资源状态没有精确的预测,控制器很难以最优的方式进行中断风险的管理.根据资源是否会发生故障,资源将被分为可靠和不可靠的.这将有助于控制器在资源发生故障的时间段内做出最优的调度决策.下面在总结现有文献的基础上分别讨论各种稳健无死锁控制方法.3.1 基于自动机的稳健无死锁控制(Robust deadlock-free control based onautomata)在监督控制理论范畴,Ramadge和Wonham应用形式语言和自动机为数学工具,率先提出了诸多基本的控制理论和方法[2].基于自动机,一个自动制造系统被表示为一个有限状态自动机,其中的节点代表了状态,而弧线代表了事件,事件的发生表示了工件在不同状态之间的转移.通过遍历所有的系统状态,导致死锁和阻塞状态的事件总是被提前检测并禁止.将自动机作为数学工具,文献[3]研究了一种容错的稳健控制器,它是由一系列的事件序列构成的.该控制器存在的合理性通过一个充分必要条件来说明.文献[4]研究了具有单一不可靠资源的自动制造系统.通过结合升级的资源顺序策略(resource order policy)和邻近限制策略(neighbourhood constraint policy),确保系统中不需要故障资源的进程可以继续加工.文献[5]同样针对具有单一不可靠资源的自动制造系统,研究了两种稳健监督控制器.一种是结合升级的银行家算法和邻近限制策略;另一种是结合单步向前预测策略(single-step look-ahead policy)和邻近限制策略.通过合理地分配资源,确保系统遇到资源故障时,不需要故障资源的进程能够继续地加工.文献[6]放松了限制,假设系统中有多个不可靠资源,但是每条加工路径中有且仅有一个.使用与文献[5]中类似的两种监督控制器,通过合理地分配资源,达到控制的目的.文献[1]研究了一种新的控制无阻塞的方法.通过使用共享资源缓存空间,一旦资源发生故障,需要使用故障资源的工件就会暂时进入到缓存空间中储存起来,从而确保不需要故障资源的工件继续加工.在同一时间内,该方法只允许一个不可靠资源发生故障.文献[7]针对一条路径中可以使用多个不可靠资源的系统研究稳健控制器.利用路径分割算法(route partitioning algorithm),使每条分割后的子路径只使用一个不可靠资源.通过引入中央缓冲器,并和文献[5]的两个控制器分别结合,研究出两种新的控制器.当多个不可靠资源同时故障时,需要使用故障资源的工件就会进入到中央缓冲器中,被占用可靠资源就会被释放,从而确保不需要故障资源的进程继续加工.文献[8]中应用与文献[3]中相类似的方法,解决控制系统中同时出现多个不可靠资源的情况.文献[9]研究了容错控制问题.首先,对于具有故障模式的离散事件系统,提出了一种新的建模结构;然后,分别对完全事件可观测和部分事件可观测的系统,提出了充分必要条件,当故障发生时,可确保系统避免不安全的状态;最后,针对具有多个故障的系统进行建模并控制.文献[10]为具有不可靠资源的自动制造系统提出了一种死锁避免方针.通过使用改进的银行家算法和预测有用资源的缓冲空间,合理地分配资源以确保系统无死锁无阻塞的加工.该方法对于系统的许可性有一定的改善.文献[11]使用了一种类似于文献[3]中的制造系统结构,研究出两种升级的银行家算法,利用分布式的方式解决多个资源同时故障的问题.文献[12]研究了由具有非确定性输出函数的Mealy状态机建模的离散事件系统的非阻塞监督控制问题.基于反许可方针(anti-permissive policy),作者研究了一种反许可监督控制器,只要满足所提出了充分必要条件,该控制器就能实现对系统的稳健无阻塞控制.文献[13]提出了一种迭代的计算方法,针对完全事件可观测的离散事件系统,研究了稳健无阻塞控制策略.该方法可以实现系统的最大许可性.文献[14]分别针对具有相同和不同控制规格要求的离散事件系统,提出了稳健控制的条件,从而成功地解决了稳健控制问题.3.2 基于Petri网的稳健无死锁控制(Robust deadlock-free control based on Petri nets)由于Petri网的并发性和简约性,被广泛地应用于自动制造系统的建模、分析和控制.在过去几十年中,研究者提出了许多基于Petri网的自动制造系统的死锁控制策略[15–21],然而,他们总是假设分配的资源不会故障,很少有研究者考虑资源故障的问题.接下来,将回顾基于Petri网的稳健无死锁控制策略.以Petri网为数学工具,在文献[22–28]中,作者对一系列具有不可靠资源的Petri网结构做了详尽的分析与研究.通过将使用故障资源的工件移出加工路径,从而确保系统顺利地运行.在这些文献中,系统网的活性条件和稳健性分析是基于一些预定的限制条件.最后通过一种结构分解的方法来验证系统运行的合理性.文献[29]使用分而治之策略(divided-and-conquer strategy)提出一种基于Petri网的稳健无死锁控制方法.通过给所有的不可靠资源以及使用不可靠资源的库所引入修复子网,结合已经存在的控制信标非空的死锁避免方法,实现稳健无死锁控制.为了保证控制策略的可用性,所有资源的缓冲空间必须大于1.然而,要执行该方法,首先要遍历整个系统Petri网结构,找到所有的信标.事实上,随着系统规模的增加,信标数目将会以指数的方式增长.文献[30]针对一种具有不可靠资源的复杂制造系统,基于改进的银行家算法,研究了一种稳健死锁避免策略.文献[31]设计了一种稳健无死锁控制器.首先,引入资源故障和修复子网来描述资源的故障和修复;然后,给每一个严格极小信标引入限制集;最后,通过控制限制集中托肯的数量,实现对系统的稳健无死锁控制.相比较文献[30],该控制器的结构复杂性简化了.文献[32]中提出了一种稳健死锁避免控制器.该控制器是由3种体系结构的控制器组成:第1种是通过避免最大资源变迁回路(maximal resource transition-circuit)饱和,确保在没有资源故障时,系统能够保持活性;第2种控制器是针对使用不可靠资源的子网.当资源故障时,资源尽可能地被释放,从而保证不需要故障资源的进程继续加工;第3种控制器是阻止由第2种控制器所造成的死锁问题.通过结合3种控制器,确保系统稳健无死锁运行.该控制器是以离线方式实现的.文献[33]中提出了一种新颖的稳健无死锁控制策略.通过预测剩余路径的资源需求和资源的状态,判断是否有足够的资源支持相应的工件到达一个关键位置,从而实现稳健无死锁控制.该文献研究了一种带有资源的简单有序进程系统.文献[34]在文献[33]的基础上,研究了一种更复杂的系统结构,即具有组合操作和灵活路径的自动制造系统.通过实时地判断资源分配状态和预测剩余路径对资源需求,确保系统进行稳健无死锁操作.4 应用关键库所的稳健无死锁控制策略(Robust deadlock-free control policy using critical places)事实上,监督控制理论趋于完善的最大障碍就在于指数规模的计算复杂度.基于以上文献分析可知,许多监督控制方法严重地依赖于系统预定的、静态的进程路线以及资源分配方案.它们禁止许多系统参数的变化,如工件的加工要求、系统的加工能力或者系统运行期间的工作负荷.很明显,对于大规模的自动制造系统,由于状态组合(可达图)爆炸和结构组合(信标)爆炸问题,控制器的计算复杂度将变得无法想象.当然,研究人员在简化计算复杂度方面做了大量的研究,但是大多数是以离线的和中心化的方式实现的.因此,这些方法几乎都没有能力处理具有动态路径和实时资源分配的系统,从而不能应用到现实世界中去.为了能更好地应用到实际生产中,本文提出了一种新颖的稳健无死锁控制策略.该控制策略适用于具有多个不可靠资源的自动制造系统,相比较控制具有单个不可靠资源的系统[3–4],本文提出的控制策略更具有普适性.系统的大小和资源的成本一直是制造研究者考虑的主要因素,尽管额外地增加缓冲器能够简化控制策略,但是会给生产厂家带来一定的资源浪费,不像文献[6–7]中提出的控制策略,本文的策略不需要使用额外的中央缓冲器暂存工件,而是通过实时地判断资源的状态和剩余路径中资源的数量,在局部范围内,判断工件能否安全地到达目标位置.结构组合(信标)是最为经典的控制死锁的方法,最近几年,许多研究者对其进行深入地研究,并形成了很多死锁控制策略[17].基于信标控制,文献[29,31]分别对具有不可靠资源的自动制造系统进行研究,并提出相应的稳健无死锁控制策略.事实上,要执行该策略,需要在离线的方式下遍历整个系统网,从而找到所有的信标,合成稳健无死锁控制器.同时,为了保证文献[29]中控制策略的合理性,所有的资源缓存空间必须大于1.相比较文献[29,31]中的控制策略,本文提出的策略放松了假设(所有的资源缓存空间大于1),在在线的方式下,利用分布式的思想对系统进行实时的控制.每一步的执行都是在局部范围内实现的,不需要检索系统的全局信息.因此,系统的计算复杂度也大大地降低了.相较于已经存在的稳健无死锁控制方法,本文的控制策略具有限制条件少、实施成本低、适用性广泛等特点.同时,本文的控制策略能够适用于具有并发特性的复杂系统.文献[33–34]对该策略做了初步的说明.下面,将对本文研究的稳健无死锁控制策略做进一步详细的介绍.应用Petri网为数学工具,本文的稳健无死锁控制策略将致力于避免遍历所有的系统状态,从而有效地实现大规模系统的无阻塞控制问题.该策略是一种在线的而非离线的、动态的而非静态的、柔性的而非刚性的、稳健的而非脆弱的监督控制策略,使得它能适用于可能发生资源故障和(或)路径改变的系统.用本文的方法,资源故障和恢复没有给监督控制策略的执行或者控制系统的运行带来不利的影响.不期望的资源故障和修复不受该控制方法约束,因为它们被认为是正常的资源分配.因而,最终的控制系统是容错的,而非故障敏感的.同时,去除和添加一些资源也不会影响该策略的运行.这里所指的“故障”,通常指资源损坏,需要从系统中移除进行修复和恢复.一旦修复好之后,就可以继续进行原来的加工.传统的方法需要对所有结构的和行为的对象(如信标,可达图)进行监督控制,从而合成控制器.由于结构和行为的对象是随着系统规模的增大以指数方式增长的,所以不适用于高速发展的现代化大规模自动制造系统.然而,本文提出的策略在控制子系统或者执行单元时,在没有必须要求达到最大许可行为的情况下,将致力于避免指数级规模的运算和控制.该策略使用一种预测分布式控制技术,从而替代已有的中心式控制方法.不失一般性地,可以假设当任意进程正在进行特定操作时,其他进程都暂时处于停止状态直到该操作执行完毕.该控制器关注的是一条任意的或者刻意挑选的进程.针对该进程,控制器需要对其中一个托肯进行预测评估,看其是否能够从当前位置到达一个特定的目标库所.如果可以,该托肯可以前进到下一个加工阶段;否则,它保持原有位置不变,即使它能够向前移动一步.由于这些特定的目标库所对控制策略的实现起到关键的作用,所以它们被称为关键库所,只要有足够资源支撑相应的托肯到达最近的关键库所,该托肯才可以向前移动一步.下面将会给出关键库所的详细说明. 在一个Petri网系统中,根据所使用的资源的类型以及数量的多少,将关键库所分成3种类型.第1种是不使用任何资源的闲置库所.对于该库所,在拥有最小资源占有量的位置之后,必然有着足够的资源支撑其他进程的加工;第2种是在同一进程中使用资源最多的操作库所.对于该库所,在拥有最大资源占有量的位置之后,必然不再需要更多的资源,任何的活动只会是释放资源而不是占有更多的资源.第3种是使用至少一种不可靠资源的操作库所.对于该库所,不可靠资源会突然地故障,从而导致需要故障资源的进程停止加工.本文提出的稳健控制策略是实时地判断是否有足够的资源支撑相应的托肯到达其最近的关键库所,从而避免死锁和阻塞问题的出现.因此,在每一个可达状态下,控制器需要确定哪一个变迁是可以被安全地发射并且哪一个状态是可以安全抵达的.通过局部的仿真,可以预测相关的托肯是否可以从当前库所前进到其最近的关键库所.如果该仿真结果为真,则该托肯前进一步,且只能前进一步;否则,就必须暂停在当前位置,进而对剩余托肯进行仿真,直到存在一个托肯可以前进一步.当托肯完成向前一步运动以后,同样地,控制器对其他进程中的托肯也需要进行仿真、筛选和决策,使其中一个托肯完成向前一步运动.这样的过程一步一步地迭代进行,使系统从一个状态到达另一个新的状态.从长远的角度看,这些托肯并行交替地从初始位置前进至目标位置.详细的实现方法如下所述.为了方便说明,将前两类关键库所称为无死锁关键库所,第3类关键库所称为稳健关键库所.首先,不考虑资源故障,那么稳健关键库所就不存在.在任何一个可达状态下,根据使能规则,可以得到一系列使能变迁TEN.在所有的使能变迁TEN中,根据是否有足够资源支持相应的托肯到达其最近的无死锁关键库所,可以得到一系列无死锁变迁TDF,其中任何一个变迁的发射都不会造成系统死锁.紧接着,为了实现稳健无死锁控制,从一系列保证系统无死锁的变迁TDF中,挑选出一组可规避故障阻塞的变迁TRB.这个过程是动态的和局部仿真的.当一个变迁发射后,导致托肯前进到只使用可靠资源的支路时,该变迁将被归类到TRB中.当一个变迁发射后,导致托肯前进到需要使用不。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一种基于Petri 网的自动测试系统死锁预防策略1马敏,陈光礻禹电子科技大学自动化工程学院,四川成都(610054)摘 要:针对自动测试系统中多任务并行测试复杂,容易出现死锁现象的问题,提出一种基于Petri 网的死锁预防策略。

首先为自动测试系统建立一个Petri 网模型,然后将Petri 网的状态方程作为约束条件,求出模型的发射序列即系统中无死锁的任务调度路径。

Petri 网的发射序列求解一直是NP 问题,针对这种情况,引入遗传算法对可行解空间进行搜索。

关键词:自动测试系统,并行测试,死锁,Petri 网,遗传算法 中图分类号:TP2021 引 言随着自动测试系统的发展,多任务并行测试技术越来越受到广泛的应用。

自动测试系统在同一时间完成多项测试任务,需要对被测任务和测试资源进行合理的调度,否则很容易发生死锁现象[1]。

一旦发生死锁现象,系统就无法正常工作,因此死锁一直都是系统设计者在组建系统之前,必须考虑避免的现象。

Petri 网是Petri 博士于1962年提出的一种系统描述和分析的形式化建模工具。

它作为一种数学方法,在离散事件系统建模、分析、性能评价和控制设计中得到广泛的应用,而且它能模拟系统的并发和冲突行为,反映系统的动态行为,因此经常被用来处理系统死锁问题[2],也适用于并行自动测试系统。

同样Petri 网技术也已经应用到测试领域,文献[3]就是运用Petri 网来进行测试仪器特性描述。

基于这种情况,本文提出一种基于Petri 网的自动测试系统死锁预防策略,并结合遗传算法搜索可行解。

2 基于Petri 网的自动测试系统死锁描述2.1 Petri 网基本原理Petri 网(Timed Transition Petri Net )定义为以下5元组:0{}PN P T I O M =,,,,此处:1{,...,}n P p p =是库所的有限集合,为库所的个数;是变迁的有限集合,为变迁的个数,并要求0n >1{,...,}m T t t =0m >P T =ΦI ;:I P T N ×→是输入函数,为非负整数集;{0,1,...}N =:O T P N ×→是输出函数;0M 是Petri 网的初始状态。

2.2系统的Petri 网模型首先为支持多任务并行测试的自动测试系统建立一个Petri 网模型,描述系统的结构与性能。

建立自动测试系统Petri 网模型的步骤如下:1) 根据库所和变迁的定义以及测试实施的过程,确定自动测试系统的库所集和变迁集。

2) 确定库所和变迁之间的关系,得到自动测试系统初始Petri 模型。

3) 根据Petri 网的基本规则和实际系统的状况,确定Petri 模型的初始状态,即初始状态下的托肯数 (token),得到最终的Petri 网模型。

自动测试系统Petri 网模型中的库所可以分为三类,分别是操作库所,资源库所和闲置1本课题得到教育部博士点基金(20030614006)的资助。

库所。

其中操作库所代表被测件的某一个参数的测试过程;资源库所代表测试过程中用到的测试资源,如测试仪器,计算机等;闲置库所代表测试过程的开始和结束状态。

Petri 网模型中的变迁表示测试进行的过程,也可以反映测试子任务调度的路径,本文中将每个参数的测试看作一项子任务。

例如:有两个测试任务,需要并行完成,每个测试任务需要完成三个参数的测试,故分解为三个子任务,三个子任务按顺序完成后,该测试任务结束,而且每个参数测试需要一定的测试仪器如,,。

如表1 所示:1J 2J 1m 2m 3m表1 一个并行测试的例子 待测参数 1J 2J 参数1 1m2m 参数2 2m 1m 参数33m3m根据上述模型建立的规则,可以得到这两个测试任务并行完成的Petri 网模型,如图1所示:6P J 7P 8P 9P 10P 5t 6t 7t 8t6P J 2J 7P 8P 9P 10P 5t 6t 7t 8t图1 并行测试的系统Petri 网模型 图2 系统死锁的Petri 网描述在该模型中,, 表示两个测试任务的开始,,表示两个测试任务的结束,它们为闲置库所;,,表示测试任务中三个参数的测试过程,,,表示测试任务中三个参数的测试过程,它们为操作库所;,,是资源库所。

模型中的变迁表示每个子任务的开始与结束。

,,中的托肯表示有三种资源可用,某一个子任务完成后,资源被释放给下一个子任务;, 中的托肯表示等待测试的两个任务。

1p 6p 5p 10p 2p 3p 4p 1J 7p 8p 9p 2J 1m 2m 3m 128,...,t t t 1m 2m 3m 1p 6p 2.3系统死锁的描述所谓死锁是指多任务在运行中为了竞争资源陷入了一个僵局。

一个任务锁定了另一个任务所需要的资源,而另一个任务又锁定了这个任务所需资源,两个任务都在等待对方释放资源,这就形成了一个死循环。

支持并行测试的自动测试系统可能会在运行中出现死锁的情况。

例如表1 所举的例子,测试任务在完成了参数1的测试后会锁定资源,等待测试任务释放,而会锁定等待释放。

这种死锁现象可用如图2的Petri 网模型表示。

出现了死锁现象,系统就无法继续正常运行。

1J 1m 2J 2m 2J 2m 1J 1m一般情况下,如果在Petri 网可达树中各变迁至少引发了一次,没有从不引发的变迁,对于Petri 网模型的终止标识0((f f M M R M ))∈必然有一条从到0M f M 的变迁路径:0:(f M M σσ∃>,即该Petri 网是活的,不会有死锁发生。

基于这种理论,人们研究了很多方法来预防死锁的发生。

如Viswanadham [4]等人提出搜索系统可达标识图,去除会使死锁发生的变迁来避免死锁,但这种方法搜索步数很难确定,不易实施。

而Mu Der Jeng [5]提出了一种利用启发式搜索算法,搜索系统的局部可达标识图,剔出死锁标识来得到系统可行的变迁发射序列σ。

这种方法利用启发式信息减小了搜索空间,可以快速的找到没有死锁发生的变迁发射序列。

但是随着Petri 网的复杂化,会发生“状态空间爆炸”问题,遇到这种情况即使是局部可达标识图都很难生成。

鉴于这种情况,可引入遗传算法这种有效的全局搜索算法,对Petri 网模型的变迁序列进行搜索,得到无死锁的发射序列σ。

它比启发式搜索具有更高的搜索效率。

3 基于遗传算法的发射序列求解3.1 Petri 网的发射序列Petri 网的状态方程为:1k k k M M CV −=+ (1)其中C 是Petri 网的关联矩阵,是发射序列k V σ中第个发射向量。

每个发射向量必须满足的变迁发射条件是:C C ,k C +−=−1k k M C V −−>。

假设初始状态标识通过发射序列0M σ到达终止状态标识f M ,那么Petri 网的状态方程可以写为:01f k k M M C V σ==+∑ (2)由于状态方程缺乏变迁发射顺序的信息,所以一般利用状态方程求解发射序列σ,经常会出现伪解[6]。

迄今为止,寻找Petri 网模型的无死锁发射序列σ一直是一个NP 难题[7]。

3.2 染色体编码在利用遗传算法的过程中,将变迁序列作为染色体。

如图1所举的例子,染色体为,,等等。

12345678t t t t t t t t 21346578t t t t t t t t 15263748t t t t t t t t 3.3 适应度函数的计算在染色体中,有很多变迁序列是无法成为发射序列的,如中不可能先于发射,因为同一任务的各个参数测试顺序一般不会改变。

又如 中和发射之后,就会出现图2所示的死锁现象,和根本无法继续发射。

引入遗传算法的目的主要是从变迁序列中剔出无法发射的死锁序列,找到满足21346578t t t t t t t t 2t 1t 15263748t t t t t t t t 1t 5t 2t 6t 0:(f M M σσ∃>条件的发射序列σ。

为了完成这个目的,设适应度函数为()f c c = (3)其中为变迁序列中能够发射的变迁的个数。

变迁序列中能够发射成功的变迁的个数一定小于等于Petri 网模型中变迁总个数,c c n ()f c c n =≤,因为每个参数在测试过程中只测试一次,即每个变迁最多成功发射一次。

如果它们相等()f c c n ==,即每一个变迁都是可以发射成功的,那么该变迁序列是发射序列σ。

如果()f c c n =<,该变迁序列中一定存在不能发射的变迁,这时系统就无法继续正常运行。

从式(3)中也可以看出,σ并不是唯一的,凡是满足()f c c n ==的变迁序列都是所求的解。

在计算每个染色体的适应度函数时,主要应用公式(1)和变迁发射条件来计算发射变迁的个数。

3.4 选择、交叉、变异算子选择算子主要采用轮盘赌选择方法;交叉算子主要采用随机产生一个交叉点的单点交叉方法;变异算子主要采用对换变异,即随机选中两点,交换其值。

3.5 算法描述该算法的主要实施步骤如下: 1. 确定Petri 网模型的变迁序列集,进行编码。

2. 随机生成初始群体,并初始化迭代次数。

3. 评估群体,如果满足适应度函数()f c c n ==,则保留染色体,跳转到2。

4. 如果不满足,检查是否超过最大迭代次数,如果超过,算法结束,否则继续。

5.进行选择、交叉、变异,生成新的染色体群,适用度大的子样本代替适应度小的父样本,跳转到3。

该算法没有次优解,只有完全符合条件()f c c n ==的才是问题的解 。

4 仿真实验针对表1 所列的并行测试例子,采用遗传算法,实验环境为Pentium IV 2.4GHz ,内存256M ,Debian Linux 3.1,GCC-3.3.2,其中参数设置:最大迭代次数100,初始群体数量10,交叉概率0.9,变异概率0.05。

该模型中0{1000010000111}M =,{0000100001111}f M =,关联矩阵为:123456789101231234567811000000001000110000000110001100000001100011000000010000011000010000000110011000000001101010000000011001p p p p p p p p p p m m m t t t c t t t t t ⎧⎫⎪⎪−−⎪⎪⎪⎪−−⎪⎪−−⎪⎪⎪⎪=−⎨⎬⎪⎪−−⎪⎪−−⎪⎪⎪⎪−−⎪⎪⎪⎪−⎩⎭最后仿真结果为:适应度函数满足()8f c c n === 的发射序列σ如表2。

表2 实验仿真结果序号 发射序列σ迭代次数耗时(秒)1 12345678t t t t t t t t 12 73.5 2 12354678t t t t t t t t 23 141.2 3 12356478t t t t t t t t 50 306.94 56781234t t t t t t t t 20 122.8 556718234t t t t t t t t76 472.3656712834t t t t t t t t42 262.45应用实例并行测试是指自动测试系统在同一时间内完成多项测试任务。

相关文档
最新文档