陳鶴峰,伍乃騏
(廣東工業(yè)大學 機電工程學院,廣東 廣州 510006)
死鎖是自動化制造系統(tǒng)(AMS)資源分配問題中的一個嚴重問題. 它的出現(xiàn)逼使系統(tǒng)出現(xiàn)停頓甚至引發(fā)災(zāi)難性的后果[1]. 目前,主要有兩種死鎖問題的解決方法: 死鎖避免(deadlock avoidance)[2-4]和死鎖預(yù)防(deadlock prevention)[5-9]. 二者的主要區(qū)別是前者是在線(on-line)策略,后者是離線(off-line)策略. 死鎖預(yù)防策略的目標是,合成的監(jiān)督控制器阻止系統(tǒng)陷入不期望的狀態(tài),即,防止系統(tǒng)從合法狀態(tài)(可達的安全狀態(tài))向非法狀態(tài)(可達的不安全狀態(tài))演化[10-11]. 考慮到合成的監(jiān)控器的性能, 三個問題有待解決: (1)受控系統(tǒng)的行為許可性[12-13];(2) 合成監(jiān)控器的計算復雜性[14];(3) 合成監(jiān)控器的結(jié)構(gòu)復雜性[10]. 本文主要關(guān)注前兩個問題.
一個行為約束(或策略)強加到系統(tǒng)后,得到的系統(tǒng)稱為受控系統(tǒng). 一個約束使得某個標識不可達,或者說該標識不滿足添加的約束,稱為該標識被約束禁止(forbid). 一個行為約束/策略被稱為是最大許可的(maximally permissive)或者最優(yōu)的(optimal),如果它至少禁止掉一個不期望的標識,同時沒有一個期望的標識被它禁止. (下文中,期望的與不期望的標識,采用Petri網(wǎng)術(shù)語,分別定義為合法的與非法的標識.)
考慮到計算復雜性,結(jié)構(gòu)分析技術(shù)[5,15]可以獲得計算上易處理(tractable)且被證明是正確的策略[2],例如,資源上游策略(resource upstream neighborhood-RUN)、資源排序策略(resource ordering policy-RO)、狀態(tài)排序策略、銀行家算法以及基于信標(siphon)的控制策略[5,16]. 然而,結(jié)構(gòu)分析策略在通常情況下不能獲得最大許可( maximal permissiveness)或者最優(yōu)(optimality)控制,往往會導致系統(tǒng)過分受到限制,行為許可性低.
最大許可行為的監(jiān)控器可以使得受控系統(tǒng)擁有較高的資源利用率[2]. 一個非最大許可的策略可能還存在二級死鎖問題[2],意味著某些合法的狀態(tài)在受控系統(tǒng)也變得不可達. 通常,合成自動化系統(tǒng)的最大許可控制器是NP-問題[11]. 通過計算系統(tǒng)的可達圖,可以得到最大許可監(jiān)控器. 然而,兩個挑戰(zhàn)性的問題有待解決:(1) 枚舉系統(tǒng)的可圖狀態(tài)是困難的,因為系統(tǒng)的可達狀態(tài)數(shù)域系統(tǒng)規(guī)模呈指數(shù)關(guān)系;(2) 為了獲取最優(yōu)控制器,不可避免地要設(shè)計和求解混合整數(shù)規(guī)劃(mixed integer linear programming-ILP)問題,目前還沒有有效的算法求解該問題.
基于文獻[10-11]的工作, 提出了標識覆蓋技術(shù)去搜尋縮減的首遇壞標識(first-met bad markings-FBM), 在文獻[10-11]中稱為安全可達的邊界標識(“boundary” reachable unsafe states)與縮減的合法標識. 這兩個縮減的標識集合分別表示為and. 計算出一個線性約束來最大許可地禁止等價于將標識從集合線性分離開來. 該線性分離器的存在性在文獻[17]已經(jīng)給出. 另外, 在不能線性分離的情況下, 生成最大許可非線性控制的策略在文獻[18]已經(jīng)做過研究. 采用整數(shù)規(guī)劃方法, 假設(shè)其最優(yōu)解存在, 從而合成具有最小結(jié)構(gòu)的最優(yōu)控制器[10], 它禁止了所有的而保留所有的. 該方法的計算開銷巨大, 特別是對于大規(guī)模的AMS, 計算耗時非常可觀. 在眾多后續(xù)的研究中, 都在專注如何加速合成最優(yōu)的控制器,想方設(shè)法減少混合整數(shù)的的變量個數(shù)與約束條件的個數(shù). 遺憾的是, 這些方法均需求解整數(shù)規(guī)劃.智能制造中的資源分配屬于離散事件系統(tǒng)[19-20].Petri網(wǎng)(PNs)[21-23]準確而形象地描述AMS的動態(tài)演化過程. Petri網(wǎng)可達圖計算與可達狀態(tài)的分類提取是本文的工作基礎(chǔ),但不屬于本文研究范圍. 假設(shè)與均已由可達性分析計算得出. 具體過程可參閱文獻[13].
下一節(jié)簡單地回顧了與Petri網(wǎng)、帶資源簡單順序加工系統(tǒng)(system of simple sequential processes with resources (S3PR[5]))相關(guān)的概念和性質(zhì). 概括了標識覆蓋技術(shù). 該節(jié)最后還給出了最大許可控制的線性規(guī)劃(LP)方法. 在第2節(jié), 通過結(jié)構(gòu)分析, 具有特定結(jié)構(gòu)的部分非法標識被識別出, 非常簡便地構(gòu)建了這些標識的最大許可約束. 第3節(jié)通過兩個常見的例子,展示了本策略的有效性, 比較了本方法與現(xiàn)有方法的優(yōu)劣. 最后, 第4節(jié)對本文的工作進行了總結(jié).
一個Petri網(wǎng)[21]被定義為四元組,其中和分別是有限的非空的庫所集和變遷集, 并且滿足.是有向弧的集合, 每條弧方向要么從一個庫所指向一個變遷, 或者反過來, 從變遷指向庫所.是一個權(quán)值分配函數(shù), 為中的每條弧指定一個整數(shù)權(quán)值.表示一個帶有標識的Petri網(wǎng)系統(tǒng). 標識也稱為狀態(tài). 標識通常被寫為多集的形式.是一個非負整數(shù), 給定了在標識下庫所中令牌(token)的數(shù)量.通常用來標識系統(tǒng)的初 始 標 識 . 例 如 ,, 有. 假設(shè)是庫所子集上的標識表示為中所有庫所令牌數(shù)總和, 即用來代表t ()的前集(preset).()為t ()的后集(postset), 即,
本文研究帶有資源的簡單順序加工系統(tǒng)(a system of simple sequential processes with resources-S3PR). 這類系統(tǒng)通常用來為具有柔性路徑的單資源分配系統(tǒng)(Disjunctive-Single-Unit AMS)建模. 它是普通(ordinary)守恒(conservative)Petri網(wǎng)的一個子類[21]. 文獻[5]給出了S3PR的詳細定義. S3PR類型的網(wǎng)包含三種庫所集: 閑置(idle)庫所, 行為(activity)庫所和資源(resource)庫所,分別表示為和. 或者寫成.表明在系統(tǒng)中可以同時被處理的最大作業(yè)的數(shù)量. 行為庫所中的令牌表示工件正在被某個資源加工處理. 在初始狀態(tài)下,所有的行為庫所均是沒有令牌的. 資源庫所通常為AMS中機器、機械手、緩沖器建模, 代表系統(tǒng)中的資源. 其中的令牌數(shù)代表目前狀態(tài)下可用資源的數(shù)目.初始狀態(tài)下,資源庫所中的令牌數(shù)表示可利用該資源的最大數(shù)目. 假設(shè)是一個資源庫所是S3PR上的標識. 由于不同種類庫所上的標識是相互依賴的,為了簡單起見通常僅用行為庫所集上的多集表示. 資源的持有者定義為一些行為庫所的集合,記為.在標識下的當前持有者記為. 行為庫所的指標集寫為. 在下, 非空的行為庫所的指標集記為. 除了之外, 在下使能的的變遷集合表示為. 全部行為庫所中所有的令牌總數(shù)寫成給定一個庫所,所需要的支撐資源庫所集為. 對于一個變遷t , 定義為t的資源前集.
定義1 在S3PR中, 假定為一個資源庫所,是一個可達標識. 資源在下被唯一占用,如果;在下被飽和占用,如果;在下被壟斷占用,如果既被唯一占用又被飽和占用. 假設(shè).是唯一占用/壟斷占用的標識, 如果而且在標識下是被單獨占用/壟斷占用的.
定義2 S3PR的一個標識稱為向前一步死鎖的(one-step-ahead deadlock),如果對于所有,, 并且存在一個信標滿足.
定理1[5]假設(shè)是S3PR的一個可達標識.稱為非法死鎖的,當且僅當存在一個信標滿足, 即清空.
定理2[2]在S3PR中, 如果對于任意, 則可達狀態(tài)不含有非法非死鎖的標識.
例1 本例選自文獻[5]的一個AMS,其S3PR模型見圖1,其中圓圈表示庫所,矩形表示變遷.,與. 工件A有可選擇的柔性加工順序序列:或者. 工件B具有確定的加工序列:. 由此可見與.是一個最小嚴格信標.假設(shè)在 M 下, M (a)=M(e)=M(c′)=M(d)=M(c)=0,M(b)=M(a′)=2, M (b′)=1, H (r2,M)=, S 在 M下是被清空的.
圖1 例1的S3PR模型
可達圖分析的詳細過程,讀者可以參閱文獻[10-12]. 為了下文闡述之方便,本節(jié)僅列出與死鎖問題有關(guān)的概念與結(jié)論. 此外,還將合成最優(yōu)控制的整數(shù)線性規(guī)劃(ILP)方案改造成線性規(guī)劃(linear programming-LP)的解決方案. 在規(guī)模相近的情況下,求解線性規(guī)劃復雜度遠小于求解整數(shù)規(guī)劃的復雜度.
首遇壞標識(first-met bad marking-FBM)是可達圖中位于的邊界標識, 它可以從中的某個標識,通過一步變遷發(fā)射到達. 集合FBMs在數(shù)學上表示為:
死鎖預(yù)防就是禁止集合 MB, 系統(tǒng)受控后,這些標識不可達. 顯然, 只需要禁止 MFBM就達到預(yù)防死鎖的目的, 因為 MB中的任何一個標識必定來自于MFBM中的某個標識. 遺憾的是, 雖然| MFBM|?|MB|,MFBM也可能仍然是一個規(guī)模巨大的集合. 標識覆蓋技術(shù)可以進一步降低需要處理的對象的規(guī)模, 從而明顯減輕計算工作負擔.
定義3[10-12]假定 M 與 M′是S3PR的兩個標識. 如果M(p)≥ M′(p), p ∈PA, 則MA-覆蓋(activity-cover)M′(或 者 M′被MA-覆 蓋), 記 為 M≥AM′(或 者M′≤AM ); 如果 M≥AM′, ? p∈PA滿足 M(p)> M′(p),則 M 真地A-覆蓋 M′(或者 M′被 M真地 A-覆蓋), 記為M?AM′(or M′?AM).
定義4[10-12]標識集 M?FBM ? MFBM稱為首遇壞標識集 MFBM的最小被覆蓋集,如果滿足下列條件:
(1) ? M ∈ MFBM,?M′∈ M?FBM,M ≥AM′;
(2) ? M ∈ M?FBM,?M′∈ M?FBM,M ≥AM′且 M≠M′.
類似地, ML的一個子集M?L可以由標識覆蓋計算得到, 定義如下:定義5[10-12]假設(shè) M?L? ML為合法標識集的子集.被稱為是集合ML的最小覆蓋集, 如果滿足下列條件:
(1) ? M ∈ ML,?M′∈ M?L,M′≥AM;
(2) ? M ∈ M?L,?M′∈ M?L,M′≥AM 而且.
如果一個線性的代數(shù)約束的系數(shù)均為非負整數(shù),且該約束最大許可地禁止了標識 M ∈ M?FBM. 那么, 對于任意的滿足 M′≥AM 的 M′, 均可被該約束最大許可地禁止[11].
根據(jù)上述可達圖分析與標識覆蓋的概念, 容易導出以下兩個結(jié)論.
引理1 假設(shè) M and M′為S3PR N的兩個標識. 滿足M∈R(N,M0)與 M≥AM′. 那么, M′∈R(N,M0).
證明 由于 M∈R(N,M0),則存在一個變遷發(fā)射序列, ti1ti2···tik, 使得系統(tǒng)狀態(tài)從 M0演化到 M. 又M≥AM′,在狀態(tài) M′下, p∈PA中的每個令牌都對應(yīng)位于狀態(tài) M 下同一個庫所 p 中. 狀態(tài) M′一定可以由M0開始,通過發(fā)射ti1ti2···tik的某個子序列而到達. 故M′∈R(N,M0).
定理3 在S3PR中,如果任意的標識M∈M?FBM均被某策略最大許可地禁止,則受控后的網(wǎng)系統(tǒng)是活的.
以下設(shè)計的線性規(guī)劃算法,可以作為求最大許可線性約束的通用方法. 目標是求出一個超平面,分離開 Mj∈M?FBM與M?L. 如果分離超平面存在,最大許可地禁止 Mj的非負整系數(shù)線性約束可由超平面方程導出.
顯而易見, LP1必定至少含有一個可行解,即可行域非空. 如果目標函數(shù)的最優(yōu)解, 構(gòu)造線性約束它最大許可地禁止掉標識Mj∈ M?FBM,其中是與行為庫所 pi相關(guān)的一個標識變量. 另一方面, 如果LP1得出的最優(yōu)解 ε?≤0, 則不存在線性約束最大許可地禁止標識 Mj∈M?FBM, 因為, 在幾何上, 非法標識位于離散點集M?L的閉包(convex hull)內(nèi)部, 從而無法線性分離合法標識與非法標識.
眾所周知線性規(guī)劃問題可以被有效地求解. 然而, LP1存在一個問題: 求解出的最優(yōu)解與系數(shù)一定不是整數(shù),甚至可能是無理數(shù). 對于任何一個實數(shù),都存在一個有理數(shù)序列收斂于該實數(shù). 可以通過在線性約束不等式兩邊乘以某個整數(shù)因子使之變?yōu)檎禂?shù)約束. 該約束為最大許可約束. 第3節(jié)的例子將說明這一點.
線性規(guī)劃LP1方法是一類純數(shù)學的方法來計算最大許可的約束, 文獻[11]稱之為最優(yōu)分類器. 這種方法沒有考慮到Petri網(wǎng)的結(jié)構(gòu)特性. 如果能夠分析非法標識與Petri網(wǎng)結(jié)構(gòu)的關(guān)系, 建立最大許可約束,將進一步減少計算量. 與求解線性規(guī)劃LP1比較, 基于結(jié)構(gòu)分析的方法更有效. 因此, 本文首先需要識別標識的結(jié)構(gòu)特征, 為滿足特定結(jié)構(gòu)特征的標識綜合出最優(yōu)控制器.
死鎖的產(chǎn)生是由于在系統(tǒng)中待處理的工作大量涌入, 它們競爭有限的資源和資源分配不當造成的.對于一個S3PR的非法標識, 我們迫使所有的合法標識的令牌總數(shù)嚴格少于該標識中的令牌數(shù), 顯然,被禁止了. 另外,線性約束不等式中的系數(shù)必須是整數(shù),這樣才能用Petri網(wǎng)的形式合成死鎖控制器. 然后驗證得出約束的最大許可性. 因此, 構(gòu)造下列線性約束:
為了驗證標識 M是否滿足構(gòu)造出的約束(1), 將不等式左側(cè)的 upi用 M(pi)來 代 替. 毫 無疑問, 約束(1)禁止了特定的標識 Mj∈M?FBM使得它變得不可達.然而,將約束(1)加到系統(tǒng)中, 不一定能保證其最大許可性. 一種方法是, 將中的每個標識代入約束不等式, 驗證其最大許可性. 然而, 在理論上是一個巨大的數(shù)字, 是網(wǎng)系統(tǒng)規(guī)模的指數(shù)型函數(shù). 因此,在計算復雜性角度,該枚舉算法不是一個好方法.
壟斷占用標識的結(jié)構(gòu)特征明顯,識別驗證較容易. 由定理4歸納的策略,高效,簡便,易于執(zhí)行.
證明 (反證法). 假設(shè)存在一個標識M(≠ Mj)∈并且 M 被約束(1)禁止. 則公式|Mj|A必定成立. 由已知條件? i∈ ?A(Mj),Mj(pi)=M0(Req(pi)), 蘊含著, 在標識 Mj下, pi容納了最大數(shù)量的令牌數(shù). 因此, 在任意的標識 M∈R(N,M0),成立; 否則, 與上述結(jié)論矛盾. 另也成立; 否則,, 與M∈ML相矛盾. 從而, 沒有一個合法標識被約束(1)禁止掉.
為了驗證一個標識 Mj∈M?FBM是否屬于壟斷占用的, 對于每一個 pi∈PA滿足 Mj(pi)≠0, 需要驗證等式Mj(pi)=M0(Req(pi))是否成立. 根據(jù) pi∈PA去搜尋Req(pi)的計算復雜度為 |P|+|T|. 從而, 驗證定理4的條件具有的計算復雜度為O (|P|+|T|).
例1中, M3=2b+2a′是一個FBM,R eq(b)={r2},Req(a′)={r4}, M3(b)=M0(r2)=2,M3(a′)=M0(r4)=2, 也就是說, 定理4的條件獲得滿足. 從而,ub+u′a≤2+2-1=3是一個最大許可約束. 同理可得, FBMs M1與 M2均為壟斷占用的標識. 根據(jù)定理4, 它們的最大許可策略能夠容易地構(gòu)造. 換句話說, 對于這個系統(tǒng), 由構(gòu)造出的具有(1)形式的約束都是
基于上述兩種情形, 約束(1)禁止非法標識的同時沒有禁止掉合法標識, 從而是最大許可的. 證畢.
運用定理6識別標識,需要驗證給定的3個條件.前兩個條件比較容易驗證. 在驗證第3個條件的時候,需要基于構(gòu) 造標識集合, 基本操作為向某個庫所添加令牌或者移走令牌. 這樣的操作復雜度為. 盡管, 在一般情況下, 驗證一個標識是否是非法屬于NP-困難的. 然而, 如果只包含死鎖非法標識與向前一步死鎖標識, 可以獲得具有多項式復雜度的死鎖預(yù)防策略. 在下文第3節(jié)的例子中將會討論這類標識.
針對具有不同的結(jié)構(gòu)特性的非法標識,提出了構(gòu)建最大許可約束的方法. 需要注意的是, 定理4~6給出的結(jié)構(gòu)分析方法比采用LP1給出的線性規(guī)劃方法更有效. 因此, 首先采用結(jié)構(gòu)分析方法, 識別出具有定理中給定的結(jié)構(gòu)的標識, 相應(yīng)地設(shè)計出對應(yīng)的控制方法. 至于目前還未能識別出具有特殊結(jié)構(gòu)的非法標識, 姑且采用線性規(guī)劃的算法尋求最大許可約束. 算法1給出了設(shè)計最大許可控制器的工作流程. 注意到驗證上述定理中給定的條件的可滿足性具有不同的復雜性,具有較低復雜性的策略總是優(yōu)先考慮. 算法1按照從易到難的順序去識別非法標識的結(jié)構(gòu)特性. 綜上所述, 對于任意, 如果是線性可控的, 本文都可以有效地得到最大許可控制策略, 避免目前文獻中求解混合整數(shù)規(guī)劃.
算法1 計算禁止 Mj∈ M?FBM最優(yōu)約束流程
輸入: S3PR N =(P0∪PA∪PR,T,F),Mj∈ M?FBM
輸出: c (Mj)//c (Mj)是禁止 Mj的最優(yōu)約束.
1: if Mj滿足定理4 then goto 7;
2: else if Mj是 非法死鎖的(by DDA) then goto 7;
3: else if Mj滿 足定理5 then goto 7;
4: else if Mj滿足定理6 then goto 7;
5: else LP1最優(yōu)解 ε?>0時,得到約束c (Mj),goto 8;
6: endif
7: c (Mj)← 約束 (1);
8: return c (Mj);
例2 本系統(tǒng)選取自文獻[24], 其S3PR顯示于圖2,其中為閑置庫所; p14-p19為資源庫所; 其余的庫所為行為庫所. 工件 A的 加工工序:p11t12p12t13p13t14p8. 工件 B的具有可選的加工工序:p1t1p2t2p3t5p5t6p6t7p7t8p1或者p1t1p2t3p4t4p5t6p6t7p7t8p1.
圖2 例2的S3PR模型
例3 本例子選取自文獻[5], 圖3顯示了其S3PR模型,其中閑置庫所 P0={p1,p5,p14}, 資源庫所PR={p20,···,p26}, 行為庫所PA={p2,···,p4,p6,···,p13,p15,···,p19}. 工件 A的 加工工序: p1t11p2t12p3t13p4t14p1. 工件 B 的具有可選的加工工序:p5t1p6t2p7t3p8t4p9t5p10t6p5或者 p 5t1p6t7p11t8p12t9p13t10p10t6p5. 工件C 的加工序列: p 14t15p15t16p16t17p17t18p18t19p19t20p14.
圖3 例3的S3PR模型
本系統(tǒng)有 26750個可達狀態(tài), 其中| ML|=21581,|MFBM|=4211. 采用標識覆蓋技術(shù)后, |M?L|=393,|M?FBM|=34. 由于數(shù)目的過大, 本文無法給出這些標識的詳細信息和 M?FBM中每個標識的許可約束. 就該系統(tǒng)而言, M?FBM中的每個標識都可以最大許可地被禁止. M?FBM中有1 8個屬于非死鎖非法的標識. 據(jù)作者所知, 目前的研究中還沒有有效的方法處理這類非死鎖非法的標識. 這個標識中個可以由定理4~6提出的方法實現(xiàn)最大許可控制, 也就是說, 對于這1 0個標識, 其對應(yīng)的約束(1)是最優(yōu)的. 例如, 在M?FBM中, 下列三個標識2 p11+2p16,2p11+p13+p15+p16,2p11+p12+p15+p16分別滿足據(jù)定理4~6的條件,易獲得其最優(yōu)控制策略. 對于另外剩下的 8個標識,目前還沒有更好的結(jié)構(gòu)控制策略. 如果采用(LP1),能夠獲得它們的最優(yōu)控制策略. 例如, 對于標識p6+2p7+p8+p9+p11+p13+p15+p16+p18, 無法用文中的定理識別出它的結(jié)構(gòu)特征,采用線性規(guī)劃的方法, 計算出約束
為了合成控制器, 將其等價變形整系數(shù)約束
它是一個最優(yōu)約束. 盡管很多學者基于不同的方法也給出本例的最大許可控制策略, 這些策略不可避免地需要求解混合整數(shù)規(guī)劃. 本文提出的方案不需要求解整數(shù)規(guī)劃, 從計算復雜性的角度, 具有一定的優(yōu)勢.
合成自動化制造系統(tǒng)最大許可死鎖控制器, 不但保證系統(tǒng)的正常運行, 還確保系統(tǒng)的優(yōu)化運行. 本工作的目的是, 在合成最優(yōu)控制器時, 盡可能減少計算開銷. 基于S3PR模型, 首先, 通過標記覆蓋技術(shù), 縮小待處理問題的規(guī)模. 其次, 分析利用網(wǎng)結(jié)構(gòu)的特點,結(jié)合標識本身的特性, 揭示二者之間的聯(lián)系. 識別出標識的特定結(jié)構(gòu), 避免了求解混合整數(shù)規(guī)劃這一高復雜性的算法. 實驗結(jié)果表明, 對于絕大數(shù)標識, 僅僅利用結(jié)構(gòu)分析就可以獲得最大許可控制. 特別是對于那些非死鎖非法標識, 本策略也是有效的. 該問題是目前本領(lǐng)域的研究難點.
探索更多結(jié)構(gòu)分析技術(shù), 處理更多的非法標識具有現(xiàn)實意義. 比如, 對文中只能采用線性規(guī)劃方法處理的非法標識, 轉(zhuǎn)而采用結(jié)構(gòu)分析來處理, 計算量會進一步降低. 此外,當將線性約束轉(zhuǎn)換為具有整數(shù)系數(shù)的約束時,可能產(chǎn)生監(jiān)督控制器難以實現(xiàn)的大乘數(shù). 此外,決定如何最小化監(jiān)督控制器結(jié)構(gòu)仍然是一個重要問題. 本研究中關(guān)注S3PR, 并在未來的工作中將結(jié)果擴展到更一般的Petri網(wǎng)模型.