一种针对S3PR的三阶段死锁预防策略

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

一种针对S3PR的三阶段死锁预防策略
摘要:本文针对一类特殊的Petri网(S3PR),提出了一种基于MIP法的三阶段死锁预防策略。

相比于其他的方法,该方法的优点在于它能够得到较高的行为许可性和较低的计算复杂度和结构复杂度。

此外,该方法成功避免了完全信标枚举和可达分析。

此外,本文在最后使用多个例子说明了该方法的有效性。

关键词:死锁预防,死锁分析,Petri网,信标
A Three-Stage Deadlock Prevention Strategy for S3PR nets
Abstract: In this paper we focus on a particular class of Petri nets, called Systems of Simple Sequential Processes with Resources (S3PR). We propose a deadlock prevention strategy consisting of three stages, and based on Mixed Integer Programming (MIP). The advantage of the proposed approach is a usually higher permissiveness and a lower structural and computational complexity with respect to other approaches. Indeed exhaustive siphon enumeration is not required, as well as reachability analysis. Several numerical examples are illustrated to highlight the effectiveness of the approach.
Keywords: Deadlock analysis, deadlock prevention, Petri nets, siphons.
一、绪论
(一)研究背景与意义
众所周知,先进的制造产业的核心竞争力来自于先进的制造系统。

因此,制造系统,特别是以半导体制造系统为代表的现代制造系统在目前乃至可以预见的20至30年内,为我国国民经济的可持续发展提供有力的支撑和保障,同时也是我国综合国力的一个重要表现。

以计算机为核心的信息技术在制造系统中的广泛应用,正使得越来越多的机械化制造系统演变为自动化制造系统,刚性制造系统演变为柔性制造系统[1-30]。

因此,现代制造系统越来越明显地表现为一种复杂的大系统,具有多目标、多约束、动态和强离散性。

自20世纪90年代以来的20年时间里,如何实现对这些系统的行之有效的分析和控制成为控制理论领域具有挑战性的科学问题,同时也是工业界亟待解决的关键技术问题。

值得注意的是,北美洲的美国和加拿大,欧洲的德国、法国、意大利和西班牙,亚洲的日本、韩国和台湾等许多工业化发达国家和地区的科学
家都对该领域表现了极大的研究热情。

有资料表明,一条普通规模的半导体生产线的自动化水平每提高一个百分点,其在一年内所增加的利润将以千万美元为单位进行计算。

自动制造系统是一种典型的资源分配系统,其中的资源包括加工中心、机器人、传送带等等。

这类系统根据预先设定的工艺路线并行地处理原料及半成品。

这些并行加工过程对有限资源的竞争会导致死锁。

所谓死锁,就是多个进程循环等待它方占有的资源而无限期的僵持下去的局面。

显然,如果没有外力的作用,那么死锁涉及到的各个进程都将永远处于封锁状态。

自动制造系统中的无死锁性可以类比于连续系统中的稳定性,无论一个制造系统多么优秀,死锁都是不可以接受的,因为这意味着系统随时可能出现生产停滞现象,从而造成严重的甚至灾难性的后果。

因此,对死锁问题的有效处理非常重要。

而死锁问题的解决方案一般可分为三类:死锁避免方法[26-31];死锁检测与校正方法[24, 25];死锁预防方法[3-19]。

而通过死锁预防来处理死锁问题是目前研究比较深入的一种策略,因为死锁预防能够在系统设计和建模的初始阶段消除死锁,从而使得基于死锁预防的柔性制造系统不需要运行成本。

Petri网由于具有简约和规范的表达形式,在制造系统建模、分析和控制中得到了很大应用和发展。

自动制造系统的Petri网模型主要有AMG(augmented marked graphs)、RCN(resource control nets)-merged 网、ERCN(extended resource control nets)-merged 网、S3PR(system of simple sequential processes with resources)、S4PR(system of sequential systems with shared resources)、S3PMR (system of simple sequential processes with multiple resources)、PNR(process nets with resources)、G-system等[40], 它们都是一般Petri网的子类。

目前基于Petri 网来设计死锁预防策略的方法有可达分析法和信标法。

基于可达分析法设计得到的死锁预防策略往往具有较高的行为许可性,但是这种方法通常不能避免状态爆炸问题和信标完全问题,从而使得它的计算复杂度呈现指数型。

而基于信标法的死锁预防策略则能很好的避免这两个问题。

因此基于信标法来设计死锁预防策略是一个更有潜力的研究领域。

(二)国内外研究进展
国内外对柔性制造系统的死锁问题从几十年前就展开了广泛而深入的研究。

柔性制造系统(FMS)[1,2]通常呈现出很高的资源共享性,而这种很高的资源共享性会导致死锁的出现。

死锁的出现通常会降低系统的性能,并且在安全性攸关的系统中会导致灾难性的后果。

因此,消除死锁的出现对于确保Petri网的活性是至关重要的。

几十年来,图论、自动机和Petri网,作为主要的三大数学建模工具,已经被深入用于研究柔性制造系统中的死锁问题。

特别地,Petri网已经成为一种越来越重要的用来研究柔性制造系统的建模和控制的工具了。

对于一个安全性攸关的系统来说,任何死锁的出现都会导致灾难性的后果并造成重大的经济损失,这也意味着死锁预防策略比其他两种策略更适用于这种系统。

因此,死锁预防被大量的研究并且在过去几十年来基于不同方法的柔性制造系统的死锁预防策略被提出[3-19]:初始标识配置法,结构分析法,部分或完全可达树法,基本信标法,和不同方法的结合。

基于初始标识配置的概念,Zhou和DiCesare等人提出了平行顺序互斥概念来获取一个可逆的活性Petri网[32-34]。

Ezpeleta 等通过利用结构分析法来确保Petri网中的信标不被清空[8],提出了一种新的基于控制器的柔性制造系统的活性Petri网监控器设计方法。

这通常被认为是死锁领域中一项经典而且重要的工作。

项工作. 然而,该方法存在三个问题,高计算复杂度,高结构复杂度,低行为许可性。

之后,学者们提出了大量的死锁预防策略来缓解[8]中的策略存在的问题。

Chu和Xie[16]基于混合整数规划法(MIP)提出了一个死锁预防策略来控制死锁并且降低计算复杂度和提高行为许可性。

为了进一步降低Petri网活性监控器的的结构复杂度,Li和Zhou[36,37]提出了基本信标和从属信标的概念。

已被证实,在某些情况下,仅仅通过控制基本信标并且移除冗余控制器,就能够获得一个活性监控器。

上文已经提到,死锁预防策略不仅可以通过信标控制来设计,而且可以通过可达分析法来设计。

通过只计算一次Petri网模型的可达图,Chen等[20]提出了一种具有最大行为许可性的活性Petri网死锁预防策略。

然而,该策略的计算复杂度是指数爆炸型的。

由Uzam[5,6]等提出的两个基于域论的死锁预防策略都存在与[20]中的方法相同的缺陷。

另外,学者们也提出了很多基于不同方法相结合的死锁预防策略。

基于MIP法,Huang等[11]提出了一个两阶段的迭代死锁预防策略来控制非活S3PR网模型的活性。

事实上,该方法是首个不需要完全信标枚举的死锁预防策略。

为了能够得到比[11]中结构更为简单的监控
器,Huang等[9]提出了一个更好的死锁预防策略来改善[11]中方法的第一阶段。

然而该方法又一次引入了完全信标枚举,从而增加了它的计算复杂度。

通过结合MIP法和基本信标法,Li等[12,13]等提出了两个死锁预防策略来改进以前[36,37]中提出的方法。

此外,基于补库所,Wang等[38]提出了一个死锁预防策略来设计Petri网活性监控器。

该策略的设计方法相对较为简单,而且设计得到的补库所监控器的行为许可性更大。

(三)本文的主要工作
基于以上工作的贡献,我们可以知道很难设计得到一个能同时保证最大行为许可性和最低结构和计算复杂度的活性监控器。

为了解决这个问题,本文针对一类Petri网子网S3PR网,基于MIP法提出了一个基于三阶段的死锁预防策略。

并使用几个例子显示了本文策略的优越性。

该策略的三个阶段都是以迭代的方式实现,控制器的添加也是一种逐渐增加的方法:每一个阶段的每次迭代,计算得到一个清空信标,或者坏的信标并控制它。

这种方法的优点是它能成功避免可达分析图和状态爆炸问题。

第一阶段从原始网系统中寻找被清空信标(该清空信标不包含控制器),然后再从中导出极小信标对其添加控制器进行M控制。

迭代第一阶段直到找不到不包含控制器的被清空信标。

第二阶段再从扩大网中寻找包含控制器的被清空信标,然后再从中导出极小信标并对其添加控制器进行M控制。

迭代第二阶段直到找不到被清空信标。

第三阶段从扩大网中继续寻找坏的信标并对其添加控制器控制它的活性。

同理,迭代第三阶段直到找不到坏的信标。

本文提出的策略的内在思想就是首先找到能够M控制的清空信标,从而可以避免禁止好的标识。

并且不能被清空的坏的信标[14]只在第三阶段被计算。

此外,当我们寻找可以被M控制的被清空信标时,我们首先寻找那些只在原始网络中的存在的库所的被清空信标(而且不是在先前步骤中迭代添加的控制库所),并且尽量使得网系统满足普通网的性质。

注意,根据以上的讨论,这种方法并不能保证监控器的最优性。

然而,基于一系列的例子,我们得出结论,该方法至少在某些情况下是十分高效的。

特别地,其中一个例子也使用了参考文献中的其他方法进行了计算,从而从行为许可性,计算复杂度,和结构复杂度三个方面为文献中的策略和本文的策略提供了清晰的比较。

结果显示本文的策略较好地综合其他策略的优势。

本文的方法具有相对较
低的计算复杂度,较低的结构复杂度,和较高的行为许可性。

二、Petri网的基础知识
在这一部分里,我们先给出一些关于Petri网的基本知识,并且回顾了两类特殊的Petri网子网的定义,即S3PR 网和S4PR网。

(一)Petri网
一个Petri网N 是一个三元组N= (P, T, F), 其中P 和T 是有限的,非空的, 不相交的集合。

P 代表库所的集合,T代表变迁的集合,并且P T ,P T =。

F (P × T) (T × P)称为网的有向弧集合。

x(P T)是网系统N=(P, T, F)的一个节点。

x 的前置集合可以被定义为x ={yP T |(y, x) F}。

同理,x 的后置集合被定义为x={yP T |(x, y) F}。

这种定义可以被拓展到对节点集合的定义: X (P T), X= 并且X =。

此外, x(PT), 等式x =(x) 和x=(x) 成立。

如果N= (P, T, F, W)是普通网,且tT, |t|=|t|=1.则称N是状态机(State Machine)。

接下来我们将网系统N 的伴随矩阵表示为[N]。

网系统N的一个标识M 是从P到N的图,N= {0, 1, 2, ...}。

M (p) 标识在标识M下,库所p中的托肯数。

我们说一个库所p 被一个标识M 标记当且仅当M (p)>0。

(N, M0) 被称为一个网系统或者被标记的网,并且被标记的网系统和M0 是N的初始标识。

一个在标识M下被使能的变迁t 可以被表示成M [t>, 如果p t, 那么M (p) > 0。

一个在标识M下使能的变迁可以发生,并且能产生得到一个新的标识M', 可以被表示成M [t >M', 其中M'(p) = M (p)+ [N](p, t)。

一个变迁序列α=ti1 ti2 . . . tik ( tij T, j = 1, 2,..., k ) 是从M可达的如果Mj-1 [tij >Mj ,其中j = 1, 2, . . . , k,并且M0=M。

我们用M [α>Mk 来表示实施序列α之后,Mk 是从M 可达的。

我们用R (N, M0) 来标识所有从网系统N的初始标识M0可达的可达集合。

P是一个列矢量I: PZ 可以由P索引得到,其中Z 是整数集。

如果I0 且I T [N] =0T 成立,那么I是一个P-不变量。

如果I 中的每一个元素都是非负的,那么P-不变量I 是一个半流。

||I ||= {pP |I (p) 0} 被称为I 的支撑。

(二)S3PR网
定义1 [8]: 一个S3PR网N == (PA P0 PR, T, F)被定义为共享库所的Ni = ({}, Ti, Fi)的网集合,并且以下命题成立:
(1)代表Ni 的进程闲置库所。

和中的元素被称为操作库所和资源库所;
(2);;; ({}) =;
(3)p, tp , t' p , rp, t = t' ={rp};
(4)r, r = r , r r=;
(5)() = () =;
(6)Ni' 是一个强联通的状态机。

当把中的库所及其相关的弧从Ni 中移除后,得到的结果网表示为Ni'= ( {}, Ti, Fi) ;
(7)每一个Ni' 中的环路都包含库所;
(8)() 和() 中的变迁分别被称为网系统N的源变迁和尾变迁。

定义 2 [8]: 假设网系统N = (PA P0 PR, T, F) 是一个S3PR 网。

当以下条件成立时我们说初始标识M0 是合适的:
(1)
(2)
(3) .
(三)S4PR网
定义3: 假设IN 是一个有限的,非空的指数集合。

S4PR 是一个强联通的一般自环Petri网N= (P, T, F),其中:
(1) P=PAP0PR 是一个库所的区分使得:
a. PA=, 其中对每一个i IN, 都有, 并且对每一个i, j IN, i j, 都有=;
b. P0=;
c. PR={r1, r2,…, rn}, 其中n>0.
(2)T=, 其中对每一个iIN, 都有, 并且对每一个i, jIN, ij,都有=.
(3)对于每一个iIN, 子集是一个强联通的状态机使得每一个环路都包含。

(4)对于每一个rPR ,都存在一个独一无二的最小P-半流:YrIN|P| 使得{r}=||Yr||PR, P0 ||Yr||=, PA||Yr||, 并且Yr[r]=1.
(5)PA=(||Yr||\{r}).
注意:任何的一个S3PR 网都是S4PR 网。

不同库所中的托肯有不同的意义。

只有合适的初始标识才有物理意义,有关初始标识的定义如下:
定义4:假设N = (PA P0 PR, T, F) 是一个S4PR 网。

然后,当已下条件成立时,这个S4PR网具有合适的初始标识M0:
(1) pP0, M0(p)≥0;
(2) p PA, M0(p)=0;
(3) pPA, pPR, M0(r)≥Yr[p]
资源r的持有者就是使用资源r的库所集合,这里我们简单地定义如下:定义5:假设N = (PA P0 PR, T, F) 是一个S4PR 网。

使得rPR. 资源r的持有者是不含资源r的最小P-半流:Yr的支撑: H(r)= ||Yr||\{r}。

三、信标和控制器的相关知识
这一节我们给出一些关于本文所提出的三阶段死锁预防策略的背景知识。

我们首先给出前两个阶段所需要的基础知识,再给出一些对第三阶段有用的研究结果。

(一)严格极小信标
如果S S 成立,那么非空集合S P 是一个信标。

如果一个信标中不包含其他信标作为它的真子集,那么这个信标是极小的。

一个不包含任何P-半流支撑的极小信标称之为严格极小信标(SMS)。

如果一个信标不能被任何信标包含,那么称这个信标是极大的。

如果S中存在至少一个库所在标识M 下被标记,那么子集S P也在标识M 下被标记。

信标S中所有库所中的托肯数之和表示为M(S),其中M(S)=。

对于一个在网系统信标(N, M0)中的信标S ,若MR(N, M0), 都有M(S)>0,那么就说这个信标被控制住了。

(二)MIP法
Chu 和Xie [16] 提出了一种基于MIP的方法来计算最大被清空信标。

这种方法主要基于两个指标。

=1{} and=1{S}. (1)
此外, Chu 和Xie [16] 证明了在有界的网系统(N, M0) 中存在最大被清空信标当且仅当GMIP<|P| 满足下式:
(2)
s.t.
(3)
(4)
(5)
(6)
M = M0+ [N] Y, M ≥0, Y ≥0 (7)
其中,B(p)=max{M (p)| M = M0+[N]Y, M ≥0, Y ≥0.
(三)M-Control
下面我们引入被M-控制的信标(M-Controlled Siphon)。

定义6: 假设S 是网系统(N, M0) 中的一个清空信标。

基于Moody和Antsaklis [39]提出的控制器理论为信标S添加控制器VS 来保证M(S)>0成立,那么我们说这个信标就是被M-控制的(M-Controlled)。

根据定义6计算得到的控制器只会禁止那些S不被标记的标识,也就是说,它可以保证网系统的最大行为许可性[39]。

(四)MIP法的改进
这里我们给出改进后的MIP法,该方法的的证明已在[14]中给出。

定理 1 [14]: 假设(Nc, Mc0) 是根据定义6添加控制器后的结果网。

让Pc 表示控制器的集合, 并且是网系统N的库所集合。

结果网(Nc, Mc0) 中存在只包含集合P的库所的清空信标当且仅当GMIP<|PPc|,其中还需对定义在式(2)中的GMIP 添加以下:
(8)
被添加到式(3) -(7) 后,用于约束网系统(Nc, Mc0)。

(五)坏的信标
现在,针对我们提出的死锁预防策略的第三阶段,我们给出一些基本定义和结果。

特别地,我们要介绍什么是坏的信标,以及怎样计算控制器来控制它们。

定理 2 [14]: 一个S4PR 网系统是非活的当且仅当存在一个标识MR (N, M0) 和一个信标S 满足以下条件: M (PA)>0,并且每个M进程使能的变迁(即每个被PA中的库所使能的变迁)被属于信标S的资源库所集禁止。

另外,信标S 还满足以下约束:
SR=SPR={rPR |tr : M(r)<Pre(r,t) & M (tPS) >0} ≠,并且SS=SPS={pH(SR) | M(p)=0}≠.
若存在一个信标S 满足以上的性质,那么这个信标就可以称为坏的信标(Bad Siphon)。

文献[14]给出了这样一个MIP问题的解法来计算坏的信标。

为了表达简洁,这种计算坏的信标的方法这里不再详述。

文献[14]中,Tricas等同样给出了计算控制器来控制坏信标的方法,从而确保网系统的活性。

四、基于MIP法的三阶段死锁预防策略
(一)三阶段策略的算法及分析
在本节中,我们给出了本文的主要贡献,即三阶段的死锁预防策略。

该策略的第一阶段算法基于定理1迭代寻找只包含原始网系统库所的被清空信标。

然后计从中导出极小信标并根据定义6对其添加控制器防止它们被清空。

第二阶段算法基于[16]中的MIP法寻找最大被清空信标。

不考虑第一阶段,现在考虑包含第一阶段添加的控制器的信标和第二阶段迭代添加的信标。

然后,从这个最大被清空信标中导出极小信标并基于定义6控制它们。

第三阶段根据Tricas等[14]中的定义来寻找坏的信标。

并且通过基于[14]中的MIP法来迭代计算控制器并防止它们变坏。

算法1:三阶段死锁预防策略
输入: 一个S³PR 网系统(N, M0)
输出: 一个活的S4PR 网系统(Nc, M0c)
1) 令(Nc, M0c) =(N, M0)
2) while (若(Nc, M0c)存在能由定理1计算得到的被清空信标S' ) do
3) 从信标S' 中计算得到被清空极小信标S
4) 根据定义6给网系统(Nc, M0c) 添加控制器Vs 使得信标S被M控制
5) 结果网系统用(N', M0') 表示
6) 令(Nc, M0c): = (N', M0')
7) end while
8) while (若(Nc, M0c)存在能由[16]的方法计算得到的最大被清空信标S' ) do
9) 从信标S' 中计算得到被清空极小信标S
10) 根据定义6给网系统(Nc, M0c) 添加控制器Vs 使得信标S 被M控制
11) 结果网系统用(N', M0') 表示
12) 令(Nc, M0c): = (N', M0')
13) end while
14) while (若(Nc, M0c)中存在坏的信标S ) do
15) 计算这个坏的信标S 并基于[14]中的方法给它添加控制器Vs
16) 结果网系统用(N', M0') 表示
17) 令(Nc, M0c): = (N', M0')
18) end while
19)结束
本算法的内在思想存在于三阶段的死锁控制中。

由于我们旨在确保Petri网监控器的最大行为许可性,因此我们尽量避免禁止好的标识。

这一点可以由基于M-Control(前两个阶段)来实现,因为M-Control可以保证最大行为许可性[39]. 特别地,第一阶段首先实施的原因是它能设计权值为1的控制器,从而使得结果网普通网[18]。

并且这可以让我们仅仅通过控制清空信标就能确保网的活性。

对于一些S3PR 网的子类网,仅仅通过执行第一阶段就能确保它们的活性[18,22]。

然而,对于更普遍的一些子网,在第一阶段迭代结束之后就会产生包含第一阶段添加的控制器的被清空信标。

在这种情况下,我们依然使用M-Control来防止这些信标被清空,但是得到的结果网不是普通网。

因此,控制清空信标已经不足以保证网的活性了,而且我们需要根据Tricas等[14]的定义来寻找坏的信标(注意坏的信标不一定会被清空)。

文献[14] 中的方法给出了使用MIP法的好处,但同时也会禁止掉好的状态。

所以我们把这种方法作为最后的选择。

下面推论的证明可以从Trica等[14]中的理论导出。

推论1: 令(N, M0) 是一个标记的S³PR 网。

经过算法1的实施后,结果网是一个活的S4PR 网。

(二)例证算法的有效性
在本节中,我们将会用两个例子来证实我们提出的策略的有效性。

1.例一
我们首先考虑文献[11]中图1的S3PR 网系统(N, M0),其中P0={p1, p5}, PA={p2-p4, p6-p8},,并且PR={p9-p11}。

通过算法1可以计算得到一个死锁预防策略。

特别地,第一阶段我们找到两个极小信标:S1={p3, p8-p10} 和S2={p4, p7, p10, p11}。

根据定义6,给它们添加控制器Vs1 和Vs2 使得它们受M控制:Mc0(Vs1)=2, Vs1={t3, t6}, Vs1={t2, t5}, 并且Mc0(Vs2)=2, Vs2={t2, t7}, Vs2={t1, t6}。

然后,在第二阶段中只能找到一个包含第一阶段中添加的控制器的清空极小信标:S3={ p3, p7, Vs1, Vs2}。

同样对其添加控制器进行M控制: Mc0(S3)=3, Vs3={t2, t6}, Vs3={t1, t5}, 而且所有添加的控制器的弧权值都是1。

在第三阶段中找不到合适的坏的信标,因此,我们可以得出结论:给该网系统添加以上三个控制器就能确保它的活性,而且是最大行为许可的。

图1.例一中的S3PR 网系统
2.例二
现在我们考虑图2中文献[21]的S3PR 网系统, 其中P0= {p1, p11, p14}, PR= {p20- p26}, 并且PA= {p2- p10, p12, p13, p15- p19}.
图2.例二中的S3PR 网系统
第一阶段找到七个极小清空信标,并对他们添加控制器(表1中Vs1 - Vs7)使得它们被M控制。

显然如表1中所示,第一阶段添加的控制器的弧权值都为1。

第二阶段找到六个极小清空信标,同样对它们添加控制器(表1中Vs8 - Vs13)使得它们被M控制。

在这种情况下,不是所有控制器的弧权值都是1。

第三阶段找到了两个坏的信标,并对它们添加控制器(表1中Vs14 - Vs15)进行控制。

在这个阶段中添加的控制器的权值都为1。

表1. 例2中添加的控制器
控制器控制器的输入输出变迁和初始表示
Pre Post Mc0
Vs1 t8, t18 t7, t17 2
Vs2 t9, t17 t8, t16 2
Vs3 t4, t13 t3, t11 2
Vs4 t10, t16 t9, t15 2
Vs5 t10, t17 t8, t15 3
Vs6 t5, t10, t13, t17 t3, t8, t11, t15 5
Vs7 t3, t8, t19 t1, t17 5
Vs8 t8, t17 t7, t16 3
Vs9 t5, t8, t13,t17 t3, t7, t11, t15 6
Vs10 t8, t10, 2t17 t7, 2t15 8
Vs11 t3, t5, t8, t10, t17, t19 2t1 , 2t15 16
Vs12 t3, t8, t13, t17, 2t5, 2t10, 2t19 t4, t9, t11, t18, 2t1, 2t15 19
Vs13 t3, t8, t19, 2t13, 2t18, 3t5, 3t10 t2, t4, t7, t9, 2t1, 2t11, 3t15 28
Vs14 t3, t5, t9, t17, t19 t1, t4, t15, t18 9
Vs15 t5, t8, t10,t17, t19 t1, t9, t15, t18 9
该网系统可以由以上十五个控制器控制住,并且可达状态为21562。

因此,仅仅只有19个好的状态被禁止掉。

(三)与其他策略的性能比较
在本节中,我们将对本文的策略和其他的死锁预防策略进行比较,并给出本文中策略的优势。

本节中我们将要对本策略的有效性进行分析,并且将之与其他表2中我们熟悉的策略应用于例二中的网系统,并对结果进行比较和分析。

表2中,第一列给出了我们需要进行比较的死锁预防策略。

第二、三、四列分别代表可达状态数、控制器、添加的弧。

第五列表示按是否需要完全信标枚举(―√‖ 表示需要完全信标枚举and ―×‖ 表示不需要). 第六列表示是否需要计算可达树。

第七列给出了对应的死锁预防策略的计算复杂度是指数爆炸的,多项式的,还是NP-hard复杂度的。

如表2中所示,strategy-C 是最大行为许可的,但是它需要可达分析,因此它的计算复杂度是指数爆炸的。

Strategy-U和本文的策略具有相同的可达状态数,但是它需要进行可达分析。

另外,在这三个策略中,基于本文策略设计的监控器具有最少的控制器数量。

然后,我们来分析计算复杂度是NP-hard的死锁预防策略strategies-L2, H2, T, L3, 以及文本的策略。

这些策略和本文的策略都是NP-hard 复杂度的,而且都不需要进行完全信标枚举。

特别地,strategy-T 和本文所提出的策略的第三阶段是相同的。

然而,strategy-T的行为许可性远远低于本文的死锁预防策略。

这里我们给出一个很重要的评论来总结上文的比较分析。

由于本文策略涉及到解MIP问题,隐私本文的策略的计算复杂度是NP-hard的。

虽然大量的研究证实了复杂度是NP-hard的死锁预防策略一定比复杂度是指数爆炸的死锁预防策略更好,但是我们还是不能武断地得出这样的结论。

然而,我们可以说基于MIP法的策略比基于可达分析的策略具有更小的计算复杂度。

表2. 监控器的性能比较和分析
死锁预防策略可达状态控制器数量弧的数量完全信标枚举可达图计算复杂度
Strategy-B [7] 166 0 0 √ × Exponential
Strategy-P [15] 2480 7 38 × × Polynomial
Strategy-E [8] 6287 18 106 √ × Exponential
Strategy-L1 [10] 6287 6 32 √ × Exponential
Strategy-L2 [12] 6331 5 27 × × NP-hard
Strategy-H2 [11] 12656 16 88 × × NP-hard
Strategy-T [14] 14850 8 40 × × NP-hard
Strategy-L3 [13] 15999 6 29 × × NP-hard
Strategy-H1 [9] 16425 7 34 √ × Exponential
Strategy-U [6] 21562 19 112 × √ Exponential
Strategy-C [20] 21581 17 100 × √ Exponential
Proposed one 21562 15 103 × × NP-hard
五、总结与展望
本文的主要贡献就是通过一个三阶段的算法计算得到一个S3PR网死锁预防策略。

本文策略的目的在于在行为许可性、计算复杂度和结构复杂度之间找到一个良好的权衡。

主要的思想就是通过MIP法计算而不是通过可达分析法。

我们首先找到仅仅包含原始网络库所的清空信标,从而使得对它们进行M-控制得到的控制器的权值都为1。

如果结果网系统仍然存在清空信标,我们还是通过M-控制它们。

在这种情况下,权值不为1的控制器将会不可避免得出现。

因此,我们需要寻找坏的信标(不一定会被清空)并且基于Tricas的MIP法来计算控制器。

从而保证结果网系统的活性。

我们通过一些例子例证了这个算法的有效性。

相关文档
最新文档