非確定Bu¨chi自動機⇌ω正則語言⇌ω正則表達式
1 無限字上的自動機
1.1 Büchi自動機
Büchi自動機(Büchi Automata)可以用於描述無限字上的LT性質。老師PPT上還是用了Peterson’s banking system的例子,如下面這個【請求服務的最終都能獲得服務】的活性(liveness)性質:
always(reqL⇒eventually @accountL) ∧ always(reqR⇒eventually @accountR)
活性性質是【當某用戶想訪問賬戶時,最終一定能訪問到】,則其對立面就是【存在當某用戶想訪問賬戶時,永遠也訪問不到的情況】。這裏稱後者是一種unlive behavior,它能表示成若干無限長的trace的集合,對應了Büchi自動機:
則要檢查模型TS是否滿足活性性質Plive,也就是在驗證模型的所有trace和活性性質的補表達的ω正則語言是否不交:
Traces(TS) ∩ Lω(Live)=∅
1.2 ω正則表達式
正則表達式表達的是有限字的語言,ω正則表達式表達的則是無限字語言,字母表Σ上的ω正則表達式總能寫爲如下的一般形式:
G=E1.F1ω+ ... +En.Fnω for n>0
其中Ei和Fi是正則表達式。
例如,(A+B)∗.Bω、(B∗.A)ω和A∗.Bω+Aω都是ω正則表達式。
1.3 ω正則表達式的語義
首先,有限字上的語言L⊆Σ∗可以理解爲從有限狀態機上初始狀態到終止狀態的各種執行序列所識別的轉移邊上的字母來構成的語言,則有限字上的語言的無限次自連接:
Lω={w1w2w3... ∣ ∀i≥0.wi∈L}
表達的就是無限次“從初始狀態到可接受狀態的任意執行”。具體地,1.2
中給出的ω正則表達式的一般形式對應的ω正則語言是這樣的集合:
Lω(G)=L(E1).L(F1)ω ∪ ... ∪ L(En).L(Fn)ω
兩ω正則表達式等價,當且僅當它們所表達的語言是等價的,即:
G1≡G2 iff Lω(G1)≡Lω(G2)
1.4 ω正則語言
一語言L是正則的,當且僅當存在一ω正則表達式G能表示該語言,即L=Lω(G)。例如字母表Σ={A,B}上的ω正則語言,可導出爲正則表達式:
- A無限經常次出現:(B∗.A)ω
- A有限次出現:(A+B)∗.Bω
- 空語言:∅ω
ω正則語言對並、交、補都是封閉的,並且是無空的(不存在ϵ)。
2 ω正則性質
2.1 簡述
稱原子命題AP上的一個LT性質P是ω正則的,僅當P是在字母表2AP上的ω正則語言。換句話說,原子命題AP上的一個LT性質P是ω正則的,僅當存在一個能接受此性質P的NBA(非確定Büchi自動機)。
注意,ω正則語言和NBA(非確定Büchi自動機)的表達能力相同,但是NBA和DBA的表達能力不同。
2.2 例子
-
任何不變性Pinv都是ω正則性質,因爲總可以表示成形如Φω的ω正則語言。
-
任何正則的安全性Psafe都是ω正則性質,因爲其補P=BadPref(P).(2AP)ω是ω正則的,而且ω正則語言對補封閉,所以求補之前的Psafe也是ω正則的。
-
任何活性Plive都是ω正則性質,可以從這章最開始的例子直觀理解。
3 非確定性Büchi自動機(NBA)
3.1 簡述
從前面的分析可以知道,有限自動機(FA)只能識別有限字,不能識別無限字,而NBA可以識別無限字。但是NBA中的狀態也和FA中的狀態一樣,是有限個的,因此NBA識別出的無限字中一定有一些狀態會無限經常次出現。
NBA類似於NFA,但是其可接受狀態的衡量標準是不同的,對NBA而言,那些總是無限經常次出現的狀態稱爲可接受狀態。
3.2 NBA可接受的語言
用A=(Q,Σ,δ,Q0,F)表示NBA。其中σ:Q×Σ→2Q是從Q中狀態經識別Σ中字母,到達2Q中狀態集的轉移。也就是說,qAp當且僅當p∈σ(q,A)。
用σ=A1A2...∈Σω表示無限字。
無限字σ在NBA A上的一個可接受運行是一個無限執行序列q0q1q2...,其中q0∈Q0是初始狀態,qiAi+1qi+1取自識別字母后的狀態轉移,qi∈F是可接受狀態僅當qi無限經常次出現。
特別注意區分概念,無限字是由動作組成的,而可接受運行是由狀態組成的。
稱無限字σ能被NBA A接受,僅當存在σ在A上的可接受運行。
則可定義NBA A的可接受語言爲其所有可接受運行組成的集合。
兩NBA等價,當且僅當它們所表達的語言是等價的,即:
A1≡A2 iff Lω(A1)≡Lω(A2)
3.3 NBA和NFA對比
下圖中兩個自動機,視爲NFA時,A1爲A+,A2爲A+;視爲NBA時,A1爲Aω,A2爲∅。即在有限運行上等價,但在無限運行上不等價。
下圖中兩個自動機,視爲NFA時,A1爲(AA)∗,A2爲A(AA)∗;視爲NBA時,A1爲Aω,A2爲Aω。即在有限運行上不等價,但在無限運行上等價。
3.4 ω正則語言與NBA
任一被NBA接受的語言,是一個ω正則語言;對任一ω正則語言,可構造一個能識別它的NBA,所以兩者是等價的。
以下三個操作得到的是NBA:
- 對一ω正則語言L(或說一個NFA A)只要ϵ∈/L,那麼存在能識別Lω的NBA——Aω。
- 對兩NBA A1和A2存在能識別Lω(A1)∪Lω(A2)的NBA——A1+A2。
- 對一ω正則語言L(或說一個NFA A)以及一個NBA A′存在能識別L.Lω(A′)的NBA——A.(A′)ω。
接下來3.5
,3.6
,3.7
將對它們逐一敘述。
3.5 NFA上的ω操作
NFA上的ω操作用於將NFA變成“能接受無數次其自己所能接受的有限字而形成的無限字”的NBA。記A=(Q,Σ,δ,Q0,F)是一個ϵ∈/L(A)的NFA,也就是說初態和終態不交即Q0∩F=∅。
第一步,初態改造:對所有的初態q0∈Q0,如果有進入q0的邊,那麼就要引入一個新狀態qnew,使得qnew和q0具備相同的識別能力,即經過q0所能識別的字母,能到達相同的狀態。
改造後得到的Q0′將作爲最終的NBA的初始狀態。
第二步,終態改造:對所有能到達NFA的終態F中的狀態的那些轉移qAq′∈F,添加新的轉移qAq0∈Q0使其能轉移到NFA的初態Q0的每個狀態上去。
改造後,讓Q0就作爲最終的NBA的可接受狀態。在這樣的尾首相接後,只有q0∈Q0是無限經常次出現的。
得到的NBA即是A′=(Q,Σ,δ′,Q0′,F′),如下圖是將A∗B經ω操作變成(A∗B)ω的兩步過程:
3.6 兩NBA的+操作
設定兩NBA A1和A2的字母表都是Σ(如果不是,就取並得到Σ),則:
A1+A2=(Q1∪Q2,Σ,δ,Q0,1∪Q0,2,F1∪F2)
要求Q1∪Q2=∅以防止狀態命名出現衝突(如果不是,就把衝突狀態改名),則轉移關係即取自“是誰的狀態,就按誰的轉移”,即δ(q,A)=δi(q,A)。
從而Lω(A1+A2)=Lω(A1) ∪ Lω(A2)。
3.7 NFA和NBA的連接操作
對NFA A=(Q,Σ,δ,Q0,F)和NBA A′=(Q′,Σ,δ′,Q0′,F′)其連接爲:
A′′=(Q∪Q′,Σ,δ′′,Q0′′,F′′)
若NFA的終態都不是初態,那麼連接後NBA的初態就是NFA的初態。
否則,NFA可接受的語言可以包含空,當取空時,要從NBA的初態Q0′出發作爲新的NBA的初態。
即:
Q0′′={Q0 if Q0∩F=∅Q0 otherwise
可接受狀態還是NBA的可接受狀態。
即:
F′′=F
如果是NFA中原有的轉移關係,且轉移後不會到達NFA的終止狀態,則轉移後的狀態還是那些。
如果是NFA中原有的轉移關係,但轉移後會到達NFA的終止狀態,則轉移後的狀態還要包括NBA的初始狀態,因爲NBA連接在NFA後面。
如果是NBA中原有的轉移關係,因爲接下來永遠都在這個NBA中了,故轉移後的狀態還是那些。
即:
δ′′(q,A)=⎩⎪⎨⎪⎧δ(q,A) if q∈Q and δ(q,A)∩F=∅δ(q,A)∪Q0′ if q∈Q and δ(q,A)∩F=∅δ(q,A) if q∈Q′
例如,下圖是一個NFA和NBA的連接,圖中紅線表示了要把NFA的終態和NBA初態無條件連起來,但是由於轉移上必須有字母,所以要將NFA終態的所有前驅添加轉移到NBA的所有初態的轉移,其字母和轉移到NFA終態時所用的字母相同。
3.8 檢查NBA所描述的語言是否爲空
在這之前,先定義擴展的轉移關係。之前使用的轉移關係δ(q,A)都是狀態q經一個字母A所到達的狀態集合,現在擴展到經過一個有限字所到達的狀態集合。這很好理解,只給出遞歸定義:
δ∗(q,ϵ)δ∗(q,A)δ∗(q,A1A2...An)={q}=δ(q,A)=p∈δ(q,A1)⋃δ∗(p,A2...An)
一個NBA可識別的語言L(A)不爲空,當且僅當至少存在一個可接受狀態,其位置處在從初始狀態出發所能到達的環上,即:
∃q0∈Q0.∃q∈F.∃w∈Σ∗.∃v∈Σ+. q∈δ∗(q0,w)∧q∈δ∗(q,v)
畫成圖直觀表示就是:
4 泛化非確定性Büchi自動機(GNBA)
4.1 簡述
各種各樣的NBA表達能力是一樣的,使用GNBA是因爲它和temporal logic的關聯性更好,GNBA和前面學的NBA很像,僅在可接受狀態上有區別。NBA的可接受狀態是一個狀態集合F,對無限的狀態序列,若要它是一個可接受的運行,只要求序列中存在q∈F無限經常次出現即可。
GNBA的可接受狀態是一系列狀態集合的集合,即F={F1,...,Fk}⊆2Q限定k≥0,要求每個可接受的運行中,都總是存在q∈Fi(對所有的i)無限經常次出現。
顯然,當k=0時所有運行都是可接受的;當k=1時GNBA就退化爲NBA了。
這些可接受運行q0,q1,q2,...上識別的字σ=A0,A1,...,就構成了GNBA的語言。
4.2 GNBA的例子
如下圖所示的自動機中,視其爲GNBA,且可接受狀態集F={{q1},{q2}},則可以表達每個進程都能無限經常次訪問其臨界區。
4.3 從GNBA到NBA的轉換
對任意GNBA G總能找到等效的NBA A,使得:
Lω(G)=Lω(A) and ∣A∣=O(∣G∣⋅∣F∣)
其中F表示G中的可接受狀態集的集合,即F={F1,...,Fk},所以∣F∣=k。
注意這裏不能理解成∣F∣=∣⋃1≤i≤kFi∣。
可以直觀看到,得到的NBA的狀態數目是GNBA的k倍,這正是後面爲每個狀態都用1≤i≤k標註的結果。
轉換到NBA的過程是一個搜索推進的過程,設G=(Q,Σ,δ,Q0,F)是GNBA,A=(Q′,Σ′,δ′,Q0′,F′)是轉換出的NBA,則:
- Q′=Q×{1,...,k},即在記錄i標記下要找Fi(1≤i≤k)裏的終止狀態以跳轉到下個終止狀態集Fi+1。
- Q0′=Q0×{1}={⟨q0,1⟩∣q0∈Q0},即生成的NBA的初始狀態是GNBA的初始狀態被標記上1的那些,表示從搜索F中的第一項F1開始。
- F′=F1×{1}={⟨qF,1⟩∣qF∈F1},即搜索回到i=1且在F1中時可接受。下一步又會跳轉到i=2去搜索F2繼續下一輪推進。
直觀表達這個搜索推進的過程,如下:
4.4 轉換的例子
例如4.2
中的GNBA,轉換爲NBA如下:
核心就是隻要遇到狀態q∈Fj且當前第二標記i=j時,接下來的轉移就要讓第二標記變到i=(i+1)%k上去。
5 驗證ω正則性質
5.1 方法論
關於ω正則性質的介紹見2
,不再重複。
類似於筆記7中驗證正則性質的方法,只是這裏是在無限字上使用GNBA作爲中介工具。要驗證TS⊨P,即是驗證Traces(TS)⊆P,所以應和“性質P在全體無限字上的補集”不交,即:
Traces(TS)∩(2AP)ω∖P=∅
其中(2AP)ω∖P簡記爲P,記Lω(A)是P對應的ω正則語言,其中A是能識別P的一個NBA,從而:
Traces(TS)∩Lω(A)=∅
這就是在考察同步積:
TS⊗A⊨"eventually forever"¬F
其中【"eventually forever"¬F】表示【最終(從某狀態開始,其後的所有狀態)會持續滿足¬F】,這是和【F中有元素無限經常次出現】對立的,也就是在判定【同步積得到的NBA上沒有可接受的運行】。
5.2 持續性質(Persistence property)
在5.1
中提到的"eventually forever"這種陳述,表達的就是一種持續性質,即無限字中存在某個讓性質啓動的位置i,從那之後的所有字母都滿足某一命題Φ。
持續性質在這門課裏最早出現在學習公平性時,見筆記6中2.10
節給出的弱公平性的形式化描述。
Ppers={A0A1A2...∈(2AP)ω ∣ ∃i≥0. ∀j≥i. Aj⊨Φ}
其中Φ稱爲該持續性質Ppers的持續性條件。
5.3 構造同步積
構造同步積的過程和之前學的一樣,見筆記7中2.4
節,只要將其中的NFA改成這裏的NBA就可以了。
5.4 驗證ω正則性質
設TS是原子命題集AP上的TS,P是AP上的ω正則性質,A是一個non-blocking的NBA滿足Lω(A)=P。
這裏non-blocking指的是對NBA的每個狀態q,對每個輸入符號A都有向後的轉移,即δ(q,A)對所有的q∈Q和A∈Σ=2AP都不爲∅。
則以下幾個命題是等價的:
- TS⊨P
- Traces(TS)∩Lω(A)=∅
- TS⊗A⊨Ppers(A)
其中Ppers(A)即是5.1
中的"eventually forever"¬F,如此驗證ω正則性質就變成了對持續性(persistence)的驗證。
5.5 對persistence的驗證
驗證TS⊨Ppers,即驗證在某個位置後Φ條件一直滿足,其對立面TS⊭Ppers只要驗證是否存在一個可達狀態s⊭Φ無限經常次出現,即去看看這些不滿足Φ的狀態是否在環路中就可以了。因爲若TS能無限經常次訪問不滿足Φ的狀態,那麼就有TS⊭Ppers。
因此,TS⊭Ppers當且僅當∃s∈Reach(TS). s⊭Φ且s在G(TS)中的環上。
特別注意,上面只是對TS滿足persistence的分析。具體到本章所學,實際是在同步積上,ω正則性質的補被寫成一個NBA A,同步積TS⊗A要滿足的persistence其實是:
eventually forever ¬F
所以只要判斷的是同步積中狀態Label裏帶有可接受狀態F中元素的狀態是不是都不在從初態開始的可達環路中即可。
例如,要驗證的性質P是【green無限經常次出現】,則取補後形成的NBA中只有q1是可達狀態(下圖右上)。
下面這個例子中性質滿足,因爲同步積得到的TS中兩個帶q1標記的狀態不在初態可達環裏:
但在下面這個例子中性質不滿足,因爲⟨s2,q1⟩⇌⟨s0,q1⟩這個包含了可接受狀態q1的環是從初態可達的:
5.6 環路檢測
可以求圖的強連通子圖(SCC),或者用書上給出的Nested DFS的方式,後者在驗證不通過時更容易求反例。