專利名稱:分析基于狀態(tài)的系統(tǒng)模型的方法和設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及分析基于狀態(tài)的系統(tǒng)模型的方法,該系統(tǒng)模型包括獨(dú)立的權(quán)利要求1、11和29中陳述的一組自動(dòng)機(jī)。
考慮到市場(chǎng)的許多產(chǎn)品部分包含的軟件量不斷增長,并且所述部分中產(chǎn)品越來越多地傾向于僅由包含的軟件,而不是所用硬件的性能差別來區(qū)分,一般的軟件設(shè)計(jì)在錯(cuò)誤識(shí)別和消除以及短期開發(fā)期限方面將會(huì)提出更高的要求。
相關(guān)的許多例子之一可以體現(xiàn)在汽車工業(yè)。即使批量生產(chǎn)的汽車包括的專用微處理器的數(shù)量也不斷增長。這些微處理器可以例如專用于控制ABS、燃料噴射、燈光控制、不同類型的監(jiān)控、熱控制、安全系統(tǒng)等等,許多不同的子系統(tǒng)經(jīng)常必須通過常用協(xié)議來控制。
顯然,軟件控制單元的大規(guī)模出現(xiàn)導(dǎo)致了系統(tǒng)設(shè)計(jì)者的困境,因?yàn)榭倲埫總€(gè)單元可能狀態(tài)的每一方面相當(dāng)困難,當(dāng)然,跟蹤所有使用的子系統(tǒng)間的協(xié)同作用更為復(fù)雜。應(yīng)當(dāng)提到的另一困難在于,大多數(shù)子系統(tǒng)由不同開發(fā)者或者開發(fā)小組設(shè)計(jì),這些子系統(tǒng)之間的接口難以控制,因?yàn)闆]有為開發(fā)者提供有效的工具來對(duì)這種大型系統(tǒng)進(jìn)行必要的分析,甚至沒有對(duì)單個(gè)單元進(jìn)行分析。
這會(huì)導(dǎo)致代價(jià)高昂并且非常重要的產(chǎn)品開發(fā)和發(fā)布時(shí)間的延遲。更為重要的是,一些產(chǎn)品甚至在包含固有的隱藏錯(cuò)誤時(shí)就投入市場(chǎng),這些錯(cuò)誤在特定的未知條件下會(huì)被觸發(fā)。
在安全性極為重要的系統(tǒng)中,這個(gè)問題當(dāng)然非常嚴(yán)重,在這種系統(tǒng)中,一個(gè)故障甚至可能會(huì)對(duì)涉及該故障的人員造成傷害。
測(cè)試這類故障的一種方法是在生產(chǎn)設(shè)備之前,通過符號(hào)模型檢查來檢查其邏輯。該技術(shù)在分析和驗(yàn)證硬件系統(tǒng)中非常有效。但是,模型檢查對(duì)其它類型的并發(fā)系統(tǒng),例如軟件系統(tǒng)而言是否是一個(gè)有效的工具尚未確定。
符號(hào)模型檢查的效果可能并不突出的一個(gè)理由是,軟件系統(tǒng)比硬件大,并且結(jié)構(gòu)更不規(guī)則。例如,驗(yàn)證大型軟件系統(tǒng)所報(bào)告的許多結(jié)果是用于線性結(jié)構(gòu),例如棧或管道,在表示成所謂的ROBDD,減序二進(jìn)制判決圖時(shí),已知其轉(zhuǎn)移關(guān)系的大小隨著系統(tǒng)的大小線性增長。
另一方案在美國專利第5,465,216中描述,其中描述了一種自動(dòng)設(shè)計(jì)驗(yàn)證方法。所描述的方法基本上承認(rèn)了形式驗(yàn)證存在“狀態(tài)爆炸問題”的缺陷,進(jìn)一步得出各大系統(tǒng)的形式驗(yàn)證超出了目前形式驗(yàn)證技術(shù)的能力的結(jié)論。因此,上述專利描述了一種分解和減少系統(tǒng)模型的方式,而不是處理驗(yàn)證方法的方式。因此,描述的方法的缺陷在于,可能可得到的結(jié)果僅是部分性的,而不是詳盡的。
基于上述ROBDD的一種更有希望的系統(tǒng)也利用了系統(tǒng)的結(jié)構(gòu),它由W.Lee等人在Tearing based automatic abstraction for CTL modelchecking給出,發(fā)表在1996年IEEE/ACM International Conferenceon Computer-Aided Design上,第76-81頁,San Jose,CA,1996IEEE Comput.Soc.Press。這種技術(shù)使用了分區(qū)轉(zhuǎn)移關(guān)系,利用貪婪啟發(fā)方法選擇轉(zhuǎn)移關(guān)系的子集。對(duì)選擇的每一子集而言,進(jìn)行完整的定點(diǎn)遞歸。如果在這種遞歸之后無法證明公式,則選擇更大的子集。如果公式非法,則只有在構(gòu)造了完整的轉(zhuǎn)移關(guān)系時(shí)(或者內(nèi)存或時(shí)間用盡時(shí)),算法才終止。這種技術(shù)的缺陷在于,如果系統(tǒng)僅具有單個(gè)初始狀態(tài),就象嵌入軟件系統(tǒng)的一般情況那樣,那么它對(duì)剩余的每個(gè)自動(dòng)機(jī)都實(shí)施涉及定點(diǎn)遞歸貪婪策略。貪婪策略減少到選擇任意自動(dòng)機(jī),從而涉及外部的定點(diǎn)遞歸。
本發(fā)明滿足形式驗(yàn)證和利用未減系統(tǒng)模型的需求,提供了一種在基于各大型狀態(tài)的系統(tǒng)模型中執(zhí)行理論模型“破損測(cè)試”的可能性。此外,所述模型的分析和驗(yàn)證可以在非減模型中實(shí)現(xiàn)的比率比現(xiàn)有技術(shù)分析和驗(yàn)證工具高得多。
如果分析基于狀態(tài)的系統(tǒng)模型的方法,前述系統(tǒng)模型包括一組自動(dòng)機(jī)(M1,…Mn),每個(gè)所述自動(dòng)機(jī)包括至少一個(gè)可能的狀態(tài)(pS1Mi,…,pSkMi),在任一時(shí)刻,每個(gè)自動(dòng)機(jī)都處于其組成狀態(tài)之一,
所述自動(dòng)機(jī)(M1,…Mn)的動(dòng)態(tài)行為由各自動(dòng)機(jī)(M1,…Mn)的所述狀態(tài)之間的預(yù)定轉(zhuǎn)移,以及所述自動(dòng)機(jī)(M1,…Mn)之間的相關(guān)性(D)來定義,啟動(dòng)所述自動(dòng)機(jī)(M1,…Mn)的至少一個(gè)自動(dòng)機(jī)狀態(tài)的初始集合(F),啟動(dòng)表示自動(dòng)機(jī)(MI)子集狀態(tài)條件的自動(dòng)機(jī)狀態(tài)目標(biāo)集合(A),重復(fù)以下步驟,直至分析得到肯定終止和/或如果自動(dòng)機(jī)(MI)的子集包括所有所述自動(dòng)機(jī)(M1,…Mn),為目標(biāo)集(A)擴(kuò)展一組狀態(tài),這些狀態(tài)通過轉(zhuǎn)移可以到達(dá)前一目標(biāo)集(A),而與沒有包含在(MI)中的自動(dòng)機(jī)無關(guān),如果(A)包括初始狀態(tài)集(F)中至少一個(gè)自動(dòng)機(jī)狀態(tài),則肯定終止,否則為自動(dòng)機(jī)(MI)的子集擴(kuò)展自動(dòng)機(jī)(M1,…Mn)的至少一個(gè)子集。
可以得到基于狀態(tài)的系統(tǒng)模型的非常快速的分析。
因此,按照上述步驟,本發(fā)明處理基于狀態(tài)的系統(tǒng)模型中可能狀態(tài)A的給定調(diào)查集的動(dòng)態(tài)擴(kuò)展,使其擴(kuò)展目前調(diào)查自動(dòng)機(jī)或者自動(dòng)機(jī)組中的狀態(tài)。如果無法再擴(kuò)展可能的狀態(tài)A,即調(diào)查自動(dòng)機(jī)中的所有狀態(tài)都是可能的,或者如果剩余狀態(tài)僅在滿足其它自動(dòng)機(jī)的特定條件時(shí)才可能,則調(diào)查自動(dòng)機(jī)的數(shù)量增加,可能狀態(tài)集得以擴(kuò)展。這種循環(huán)過程可以繼續(xù),直至得到特定結(jié)果。所需結(jié)果可以例如是一種驗(yàn)證,驗(yàn)證給定自動(dòng)機(jī)可以到達(dá)可能初始狀態(tài)A的集合。
具體而言,本發(fā)明在完成所謂的可達(dá)性檢查時(shí),即驗(yàn)證初始自動(dòng)機(jī)狀態(tài)集可以到達(dá)特定所需或者未期情況時(shí),提供了一種精確的結(jié)果。
實(shí)驗(yàn)結(jié)果表明,按照本發(fā)明的典型的所謂可達(dá)性檢查的執(zhí)行比現(xiàn)有技術(shù)方法要快得多。
此外,按照本發(fā)明,現(xiàn)在可以分析和驗(yàn)證包括的自動(dòng)機(jī)數(shù)量極大的系統(tǒng)模型,因?yàn)椴恍枰_定所有可能的全局狀態(tài)矢量的計(jì)算。這一重要方面增加了生成非常大的基于狀態(tài)的系統(tǒng)的可能性,因?yàn)楝F(xiàn)在可以建立系統(tǒng)的真實(shí)模型并進(jìn)行完整的分析,然后才將產(chǎn)品投入市場(chǎng),從而消除了將具有固有隱含錯(cuò)誤的產(chǎn)品投入市場(chǎng)的風(fēng)險(xiǎn)。
因?yàn)槭袌?chǎng)的許多產(chǎn)品部分包含的軟件量不斷增加,并且所述部分中產(chǎn)品越來越多地傾向于僅由包含的軟件,而不是所用硬件的性能差別來區(qū)分,一般的軟件設(shè)計(jì)在錯(cuò)誤識(shí)別和消除以及短期開發(fā)期限方面將會(huì)提出更高的要求。
本發(fā)明滿足這種趨勢(shì)的需求,因?yàn)楸景l(fā)明提供了一種在基于各大型狀態(tài)的系統(tǒng)模型中執(zhí)行理論模型“破損測(cè)試”的可能性。此外,所述模型的分析和驗(yàn)證可以在非減模型中實(shí)現(xiàn)的比率比現(xiàn)有技術(shù)分析和驗(yàn)證工具高得多。
應(yīng)當(dāng)注意,確定的測(cè)試條件類型在本發(fā)明范圍內(nèi)可以有許多變化。其例子可以是驗(yàn)證、可能的死鎖指示,或者在需要時(shí),可以是這種死鎖的特定和精確檢測(cè)。
本發(fā)明的另一優(yōu)點(diǎn)是,逐步擴(kuò)展前一搜索結(jié)果的基本組成結(jié)構(gòu)使得以前得到的分析結(jié)果的重用是可能的。因此,即使系統(tǒng)模型中所有自動(dòng)機(jī)的完整調(diào)查是必需的,也會(huì)得到許多優(yōu)點(diǎn),因?yàn)樵谶M(jìn)行分析時(shí)不需要進(jìn)行不必要的計(jì)算。
基于中央單調(diào)性結(jié)果的證實(shí),可以重用狀態(tài)空間的以前計(jì)算的部分,而不需要象已知技術(shù)那樣,在每次增加一個(gè)新自動(dòng)機(jī)時(shí),都必需重頭開始。
即使需要所有的自動(dòng)機(jī),實(shí)驗(yàn)表明一次包括一個(gè)自動(dòng)機(jī)的創(chuàng)新方法,即利用單調(diào)性特性,也比利用分區(qū)轉(zhuǎn)移關(guān)系和早期變量量化執(zhí)行所謂的常規(guī)定點(diǎn)遞歸快。
在分析系統(tǒng)模型的大量目標(biāo)集合序列,(A1),…,(An)的可達(dá)性時(shí),較后面的可達(dá)性問題最好重用較早問題的已經(jīng)計(jì)算的結(jié)果。尤其是在目標(biāo)集(Ai)的后向擴(kuò)展中,可以在目標(biāo)集(Ai)的當(dāng)前擴(kuò)展完全包含已經(jīng)得到肯定結(jié)果的前一目標(biāo)集(Aj)(j<i)的任何階段給出早期的肯定判定。
應(yīng)當(dāng)強(qiáng)調(diào),本發(fā)明并不限制系統(tǒng)“部件”的定義方式。本發(fā)明例如并不局限于簡(jiǎn)單的所謂平面狀態(tài)系統(tǒng)模型。按照本發(fā)明,系統(tǒng)可以例如定義成層次狀態(tài)事件系統(tǒng),后者包括層次結(jié)構(gòu)自動(dòng)機(jī)和/或?qū)哟谓Y(jié)構(gòu)狀態(tài)。記住這一點(diǎn)之后,本發(fā)明最好在平面系統(tǒng)模型中實(shí)現(xiàn),這意味著層次系統(tǒng)最好應(yīng)變換成平面模型,然后才進(jìn)行按照本發(fā)明的分析。
按照本發(fā)明,系統(tǒng)模型中的狀態(tài)可以例如包括離散的觀察,程序變量或寄存器的值,或者時(shí)序電路的鎖存器,連續(xù)和與時(shí)間相關(guān)的函數(shù)觀察,例如溫度、時(shí)間、速度、高度、位置。此外,前面提過,狀態(tài)本身可以是提供所謂的層次系統(tǒng)模型的系統(tǒng)模型。
相關(guān)性來自轉(zhuǎn)移到系統(tǒng)模型中其它自動(dòng)機(jī)的條件。
轉(zhuǎn)移條件或者是系統(tǒng)模型中其它自動(dòng)機(jī)的當(dāng)前狀態(tài)條件,或者是系統(tǒng)模型中環(huán)境的當(dāng)前狀態(tài)條件。
此外,應(yīng)當(dāng)注意,可以在本發(fā)明范圍內(nèi)應(yīng)用擴(kuò)展條件或者判定條件的變化。
如果擴(kuò)展至少狀態(tài)機(jī)(M1,…,Mn)的一個(gè)子集的步驟包括將(MI)擴(kuò)展?fàn)顟B(tài)機(jī)的至少一個(gè)子集,前一(MI)與該自動(dòng)機(jī)子集相關(guān),得到MI的非常有利的擴(kuò)展。
本發(fā)明通過僅并入當(dāng)前目的必需的自動(dòng)機(jī),即當(dāng)前計(jì)算的轉(zhuǎn)移與之相關(guān)的自動(dòng)機(jī),對(duì)給定系統(tǒng)模型進(jìn)行分析。
因此,按照本發(fā)明的非常優(yōu)選的一種實(shí)施例,為當(dāng)前調(diào)查的MI擴(kuò)展MI外的自動(dòng)機(jī)將如下進(jìn)行考慮對(duì)自動(dòng)機(jī)MI的未擴(kuò)展集合沒有任何相關(guān)性的自動(dòng)機(jī)目前不會(huì)提供進(jìn)一步信息。因此,基于以上描述的本發(fā)明的優(yōu)選實(shí)施例,自動(dòng)機(jī)MI的調(diào)查集合的擴(kuò)展優(yōu)化為只有馬上需要的自動(dòng)機(jī)。因?yàn)榭梢詧?zhí)行許多現(xiàn)實(shí)應(yīng)用的分析,而不需要評(píng)估系統(tǒng)模型中大量自動(dòng)機(jī),所以可以得到非常有價(jià)值的分析。
應(yīng)當(dāng)理解,大型系統(tǒng)模型的分析將從這種重要特性中獲利更多,因?yàn)橄到y(tǒng)模型的必要計(jì)算空間將大大減小,避免了大量評(píng)估。
上述動(dòng)態(tài)進(jìn)行的擴(kuò)展的一個(gè)重要方面是,在分析規(guī)模非常大的系統(tǒng)模型時(shí),如果上述,只有在考慮相關(guān)性時(shí),才會(huì)得到可用結(jié)果。引導(dǎo)測(cè)試實(shí)際上表明了利用標(biāo)準(zhǔn)PC上的適當(dāng)資源如何實(shí)現(xiàn)現(xiàn)有技術(shù)下幾乎不可能的驗(yàn)證。
本發(fā)明的另一重要方面是,可以消除或大大減少分析基于減少的狀態(tài)的系統(tǒng)模型的困難,因?yàn)楸景l(fā)明可以處理未減系統(tǒng)模型。應(yīng)當(dāng)注意,本發(fā)明可以視為動(dòng)態(tài)減少系統(tǒng)模型,其中僅動(dòng)態(tài)確定和調(diào)查絕對(duì)必要的系統(tǒng)模型自動(dòng)機(jī)。因此,本發(fā)明得益于通過經(jīng)驗(yàn)表明的基于狀態(tài)的系統(tǒng)模型的一般行為,即可能的實(shí)際分析或者驗(yàn)證只影響所有系統(tǒng)模型自動(dòng)機(jī)的一部分。
應(yīng)當(dāng)注意,給定自動(dòng)機(jī)中自動(dòng)機(jī)狀態(tài)的轉(zhuǎn)移基本上僅受限于與特定轉(zhuǎn)移相關(guān)聯(lián)的相關(guān)性。因此,按照本發(fā)明的方法要求在任何時(shí)候都可以通過某個(gè)事件觸發(fā)沒有相關(guān)性的轉(zhuǎn)移。
顯然,如果在上述事件中確實(shí)存在條件,那么它們?cè)谛枰獣r(shí)應(yīng)當(dāng)并入系統(tǒng)模型。
本發(fā)明的上述優(yōu)選實(shí)施例得益于基于狀態(tài)機(jī)的系統(tǒng)模型的結(jié)構(gòu),因?yàn)樗幚砹宿D(zhuǎn)移的特性基本上分為兩種的情況。一些轉(zhuǎn)移可以無條件激活,因?yàn)樗麄兛赡軆H取決于特定的已知和總是可能的事件,而其它轉(zhuǎn)移受特定條件限制,或者與其它自動(dòng)機(jī)相關(guān)。
因此,按照上述實(shí)施例,本發(fā)明處理基于狀態(tài)的系統(tǒng)模型中可能狀態(tài)A的給定調(diào)查集的動(dòng)態(tài)擴(kuò)展,使其擴(kuò)展目前調(diào)查自動(dòng)機(jī)或者自動(dòng)機(jī)組中的狀態(tài)。如果無法再擴(kuò)展可能的狀態(tài)A,即調(diào)查自動(dòng)機(jī)中的所有狀態(tài)都是可能的,或者如果剩余狀態(tài)僅在滿足其它自動(dòng)機(jī)的特定條件時(shí)才可能,則調(diào)查自動(dòng)機(jī)的數(shù)量增加,可能狀態(tài)集得以擴(kuò)展。按照本實(shí)施例,應(yīng)當(dāng)注意,擴(kuò)展僅涉及與當(dāng)前調(diào)查的自動(dòng)機(jī)有某種關(guān)聯(lián)的自動(dòng)機(jī)或一些自動(dòng)機(jī),即,如果它們與當(dāng)前調(diào)查中的轉(zhuǎn)移相關(guān)。這種循環(huán)過程可以繼續(xù),直至得到特定結(jié)果。所需結(jié)果可以例如是一種驗(yàn)證,驗(yàn)證給定自動(dòng)機(jī)可以到達(dá)可能初始狀態(tài)A的集合。
顯然,上述優(yōu)選實(shí)施例可以大大減少循環(huán)持續(xù)時(shí)間,因?yàn)樵摲椒梢哉f是動(dòng)態(tài)忽視了以下系統(tǒng)模型部分它包括與當(dāng)前調(diào)查的轉(zhuǎn)移和/或自動(dòng)機(jī)無關(guān)的信息。
本發(fā)明提供的技術(shù)大大改進(jìn)了例如對(duì)嵌入式反應(yīng)系統(tǒng)進(jìn)行符號(hào)模型檢查的性能,前述系統(tǒng)利用狀態(tài)/事件模型或者其它基于狀態(tài)的模型,例如狀態(tài)圖建模。
因此,本發(fā)明改進(jìn)了利用基于狀態(tài)的模型的方便性,例如嵌入式反應(yīng)系統(tǒng)的控制部分,包括較小的系統(tǒng),例如蜂窩電話、高保真設(shè)備,汽車的車速控制,以及大型系統(tǒng),例如火車模擬器,飛行控制系統(tǒng),電話和通信協(xié)議。按照本發(fā)明的方法可以例如用于商業(yè)工具,通過以下方式輔助開發(fā)嵌入式反應(yīng)軟件允許設(shè)計(jì)者構(gòu)造基于狀態(tài)的模型,并且模擬或者運(yùn)行一致性檢查。該工具自動(dòng)生成嵌入式系統(tǒng)的硬件的代碼。一致性檢查實(shí)際上是一種驗(yàn)證工具,它檢查任何基于狀態(tài)的模型應(yīng)當(dāng)具有的特性范圍。生成的代碼必須通過一些檢查以例如確保正確,重要的是該模型是確定的。其它檢查以告警形式發(fā)布,這些告警可以是設(shè)計(jì)錯(cuò)誤,例如從來不曾走到的轉(zhuǎn)移。
基于狀態(tài)的模型可以極大。不同于傳統(tǒng)模型檢查,檢查的數(shù)目最少與模型的大小成線性。本發(fā)明報(bào)告多達(dá)1421并發(fā)狀態(tài)自動(dòng)機(jī)的模型結(jié)果,即使更大的系統(tǒng)也可以容易地處理。對(duì)這樣大小的系統(tǒng)而言,即使采用分區(qū)轉(zhuǎn)移關(guān)系和后向遞歸,傳統(tǒng)的符號(hào)模型檢查技術(shù)仍然無效。
本發(fā)明使用組合技術(shù),在確定驗(yàn)證任務(wù)滿意程度時(shí)最初僅考慮少數(shù)幾個(gè)自動(dòng)機(jī),如果需要,逐漸增加考慮的自動(dòng)機(jī)數(shù)量??紤]的自動(dòng)機(jī)最好利用系統(tǒng)結(jié)構(gòu)的相關(guān)性分析來確定。
工業(yè)應(yīng)用中許多基于大量狀態(tài)的模型已經(jīng)得到驗(yàn)證,甚至上述具有1421個(gè)并發(fā)自動(dòng)機(jī)的模型也能通過適當(dāng)?shù)馁Y源來驗(yàn)證。與已知分析工具相比,檢查較小實(shí)例的效率得到改進(jìn),并且大幅度增加了可以驗(yàn)證的系統(tǒng)規(guī)模。
如果在為目標(biāo)集(A)擴(kuò)展一組狀態(tài)的所述步驟中分析的結(jié)果是否定的,并且如果(MI)中的自動(dòng)機(jī)都與(MI)之外的自動(dòng)機(jī)沒有關(guān)系,前述狀態(tài)可以達(dá)到前一目標(biāo)集(A),而與沒有包含在(MI)中的自動(dòng)機(jī)無關(guān),則因?yàn)樘峁┝税凑毡景l(fā)明的方法,可以得到系統(tǒng)行為的合法估計(jì),因?yàn)?,如果因MI中沒有自動(dòng)機(jī)與MI之外的自動(dòng)機(jī)相關(guān)而終止時(shí),顯然可以證實(shí)無法滿足測(cè)試條件。因此,基于甚大規(guī)模狀態(tài)的系統(tǒng)的設(shè)計(jì)者可以預(yù)測(cè)運(yùn)行時(shí)可能出現(xiàn)的問題。
應(yīng)當(dāng)注意,否定終止在許多應(yīng)用中當(dāng)然是絕對(duì)必要的,因?yàn)榇_切的否定指示經(jīng)常是極有價(jià)值的。在許多類型的分析中,這種否定指示實(shí)際上是用戶所希望得到的。因此,否定自動(dòng)終止本身極為重要,在進(jìn)一步循環(huán)毫無意義時(shí),如果某種自動(dòng)終止集成在本發(fā)明的方法中,則該方法將更為有效和用戶友好。然而,必須強(qiáng)調(diào),也可以采用除此之外的其它優(yōu)選終止條件。
另一方面,在涉及代表不希望的狀態(tài)或者狀態(tài)組合的測(cè)試條件的正控制時(shí),本發(fā)明能夠提供確切的信息。因此,如果按照本發(fā)明的方法證明在特定條件下無法得到特定狀態(tài)或者狀態(tài)組合,則顯然可以假定這種情況不會(huì)在實(shí)際情況下出現(xiàn),盡管在動(dòng)態(tài)測(cè)試情況下,本發(fā)明實(shí)際上僅使用了系統(tǒng)模型的一部分。這種特性就處理應(yīng)用的寬頻譜而言相當(dāng)重要,在前述應(yīng)用中,差錯(cuò),即不希望出現(xiàn)的狀態(tài),可能會(huì)引起嚴(yán)重的損傷或者混亂。
因此,應(yīng)當(dāng)強(qiáng)調(diào),按照本發(fā)明的分析的否定和肯定終止都具有一定可信性,這在對(duì)系統(tǒng)模型進(jìn)行測(cè)試時(shí)是一種極為有用和有價(jià)值的特性。本發(fā)明既提供了速度非常高的應(yīng)用,又給出了精確和可靠的結(jié)果。
肯定或否定終止之后的信息可以調(diào)整,以表示任何所需的測(cè)試條件。本發(fā)明的本實(shí)施例的另一方面是在大量應(yīng)用中,優(yōu)化終止條件非常重要,因?yàn)樵诳赡艿那闆r下,應(yīng)當(dāng)避免不必要的循環(huán)。上述肯定和否定終止條件確保了可達(dá)性分析中計(jì)算了所有,但都是必要的循環(huán)。本領(lǐng)域中的技術(shù)人員能夠?qū)⒈景l(fā)明的方法調(diào)整到其它所需分析目的。
如果在為目標(biāo)集(A)擴(kuò)展一組狀態(tài)的所述步驟之后,如果向用戶提供可視或者可聞指示,并且前述狀態(tài)可以達(dá)到前一目標(biāo)集(A),而與沒有包含在(MI)中的自動(dòng)機(jī)無關(guān),(MI)中的自動(dòng)機(jī)都與(MI)之外的自動(dòng)機(jī)沒有關(guān)系,則得到提供給用戶的信息的便利環(huán)境。
應(yīng)當(dāng)注意,在希望有分析的快速交互處理時(shí),用戶友好的接口更為重要。不僅僅可以加快分析給定系統(tǒng)模型的處理,而且基于狀態(tài)的系統(tǒng)模型的整個(gè)設(shè)計(jì)過程可以大大縮短。
如果在用戶發(fā)出請(qǐng)求之后,分析終止,則可以得到更好的用戶接口。這類接口例如在處理大規(guī)模系統(tǒng)中更為有利。同樣,前面提過,應(yīng)當(dāng)強(qiáng)調(diào),對(duì)戶友好的接口的需求隨著分析方法的能力增長。
如果將相關(guān)性(D)表示成定向圖,則可以實(shí)現(xiàn)更為有利的實(shí)施例。
以定向圖形式給出的表示,它是分析應(yīng)用的寬頻譜的非常方便和有利的方法,定向圖本身是眾所周知的用于表示任意對(duì)象間相關(guān)性的數(shù)據(jù)結(jié)構(gòu)。
如果通過表示相關(guān)性的定向圖的寬度優(yōu)先遍歷來確定自動(dòng)機(jī)(MI)的增加集合,則可以實(shí)現(xiàn)更為有利的實(shí)施例,因?yàn)樗鼘?dǎo)致了最小相關(guān)性閉合MI,從而能夠?qū)崿F(xiàn)快速終止。
這是因?yàn)樗鼉H包括MI直接相關(guān)的自動(dòng)機(jī)。
此外,該方法非常有利于計(jì)算。
如果將自動(dòng)機(jī)狀態(tài)集表示成減序二進(jìn)制判決圖(ROBDD),對(duì)這些狀態(tài)的操作實(shí)現(xiàn)成對(duì)減序二進(jìn)制判決圖(ROBDD)的有效操作,則可以得到按照本發(fā)明的更為有利的實(shí)施例。
因此,可以得到計(jì)算一組狀態(tài)的轉(zhuǎn)移關(guān)系圖的有效操作。應(yīng)當(dāng)注意,轉(zhuǎn)移關(guān)系圖的計(jì)算需要將轉(zhuǎn)移關(guān)系表示成單個(gè)ROBDD,這有時(shí)會(huì)因?yàn)榇笠?guī)模的表示而出現(xiàn)問題。
在這些情況下,轉(zhuǎn)移關(guān)系可以更為有效地表示成稱為分區(qū)轉(zhuǎn)移關(guān)系的較少關(guān)系的分離或者聯(lián)合。
如果將轉(zhuǎn)移關(guān)系表示成減序二進(jìn)制判決圖(ROBDD)的分區(qū)轉(zhuǎn)移,則狀態(tài)(A)集合由重復(fù)的定點(diǎn)遞歸來動(dòng)態(tài)計(jì)算,可以得到本發(fā)明的簡(jiǎn)單和有效的操作,它通過本領(lǐng)域中眾所周知的技術(shù)實(shí)現(xiàn)。
如果所述自動(dòng)機(jī)(M1,…Mn)的動(dòng)態(tài)行為由每一自動(dòng)機(jī)(M1,…Mn)的所述狀態(tài)之間的預(yù)定轉(zhuǎn)移和所述自動(dòng)機(jī)(M1,…Mn)之問的關(guān)系(D)定義,
對(duì)每一自動(dòng)機(jī)(M1,…,Mi,…,Mn)而言,初始化自動(dòng)機(jī)(MI)的一個(gè)子集,包括目前分析的自動(dòng)機(jī)(Mi)初始化一組(Ai)活躍狀態(tài)(Ai),所述活躍狀態(tài)是當(dāng)前分析的自動(dòng)機(jī)(Mi)的自動(dòng)機(jī)狀態(tài),這些狀態(tài)獨(dú)立于其它自動(dòng)機(jī),可以改變到所述自動(dòng)機(jī)的其它可能狀態(tài)(pS1Mi,…,pSkMi)重復(fù)以下步驟,直至分析終止,或者(MI)包括所有自動(dòng)機(jī)(M1,…,Mn)為該組活躍狀態(tài)(Ai)擴(kuò)展一組狀態(tài),這組狀態(tài)通過轉(zhuǎn)移可以到達(dá)活躍狀態(tài)(Ai)的前一集合,而與沒有包含在(MI)中的自動(dòng)機(jī)無關(guān),和/或一組狀態(tài),它們通過轉(zhuǎn)移可以改變(Mi)的狀態(tài),而與沒有包含在(MI)中的自動(dòng)機(jī)無關(guān)。如果(Ai)包括所述自動(dòng)機(jī)(Mi)中的所有可能自動(dòng)機(jī)狀態(tài),則分析肯定終止,否則將(MI)至少擴(kuò)展自動(dòng)機(jī)的某個(gè)子集,實(shí)現(xiàn)更為有利的實(shí)施例。
需要理解,本發(fā)明的本實(shí)施例為每個(gè)自動(dòng)機(jī)提供了檢測(cè)所有全局狀態(tài)的可能性,即一組自動(dòng)機(jī)狀態(tài),前述自動(dòng)機(jī)可以在特定可能狀態(tài)下改變狀態(tài)。這些狀態(tài)將被認(rèn)為是按照當(dāng)前術(shù)語的活躍狀態(tài)。
此外,顯然每個(gè)自動(dòng)機(jī)的所有活躍狀態(tài)的確定可以給出可能的固有陷門的指示,因?yàn)橐韵碌淖詣?dòng)機(jī)狀態(tài)可能是危險(xiǎn)狀態(tài),或者所謂的潛在死狀態(tài)在該自動(dòng)機(jī)狀態(tài)下,給定自動(dòng)機(jī)無法轉(zhuǎn)移到其它狀態(tài)。
但是,應(yīng)當(dāng)強(qiáng)調(diào),可能的死狀態(tài)并不一定表示不希望或者非法的狀態(tài)。確定的狀態(tài)實(shí)際上必然是重要的,如果它們能夠從已知或者給定的初始系統(tǒng)條件到達(dá)。
如果本發(fā)明還包括以下步驟具有潛在死自動(dòng)機(jī)狀態(tài)(Adi)的每個(gè)自動(dòng)機(jī)(MI)初始化所述自動(dòng)機(jī)(M1,…,Mn)的自動(dòng)機(jī)狀態(tài)的初始集合(F),初始化表示自動(dòng)機(jī)(MI)的潛在死自動(dòng)機(jī)狀態(tài)的自動(dòng)機(jī)狀態(tài)(Adi)的目標(biāo)集,以及重復(fù)以下步驟,直至分析終止和/或如果自動(dòng)機(jī)(MI)的子集包括所有所述自動(dòng)機(jī)(M1,…,Mn)
將目標(biāo)集(Adi)擴(kuò)展一組狀態(tài),這些狀態(tài)通過遷移可以到達(dá)前一目標(biāo)集(Adi),而與沒有包含在(MI)中的自動(dòng)機(jī)無關(guān),如果(Adi)至少包括初始狀態(tài)集(F)中的至少一個(gè)狀態(tài),則肯定終止,否則將自動(dòng)機(jī)(MI)的該子集擴(kuò)展至少自動(dòng)機(jī)(M1,…,Mn)的某個(gè)子集,得到所調(diào)查的系統(tǒng)模型的進(jìn)一步的重要信息。
在本發(fā)明的上述實(shí)施例中,肯定終止的意義不是特別正確,因?yàn)楝F(xiàn)在確定了所調(diào)查的狀態(tài)或者可能的死狀態(tài)的組合可以實(shí)際到達(dá)。因此,可以判定死鎖,并且包括確定的狀態(tài)的自動(dòng)機(jī)Mi無法改變狀態(tài),不管周圍系統(tǒng)中發(fā)生了什么。
如果本發(fā)明的方法包括判定至少一個(gè)自動(dòng)機(jī)(Mi),至少一個(gè),最好是全部,可能的死自動(dòng)機(jī)狀態(tài)(Adi),在所述自動(dòng)機(jī)(Mi)處于所述自動(dòng)機(jī)狀態(tài)(Adi)中任意一個(gè)時(shí),這些狀態(tài)將保持在同一死自動(dòng)機(jī)狀態(tài)(Adi)中,與可能的外部事件無關(guān),具有潛在死自動(dòng)機(jī)狀態(tài)(Adi)的每個(gè)自動(dòng)機(jī)(MI)初始化所述自動(dòng)機(jī)(M1,…,Mn)的自動(dòng)機(jī)狀態(tài)的初始集合(F),初始化表示自動(dòng)機(jī)(MI)的潛在死自動(dòng)機(jī)狀態(tài)的自動(dòng)機(jī)狀態(tài)(Adi)的目標(biāo)集,以及重復(fù)以下步驟,直至分析終止和/或如果自動(dòng)機(jī)(MI)的子集包括所有所述自動(dòng)機(jī)(M1,…,Mn)將目標(biāo)集(Adi)擴(kuò)展一組狀態(tài),這些狀態(tài)通過遷移可以到達(dá)前一目標(biāo)集(Adi),而與沒有包含在(MI)中的自動(dòng)機(jī)無關(guān),如果(Adi)至少包括初始狀態(tài)集(F)中的至少一個(gè)狀態(tài),則肯定終止,否則將自動(dòng)機(jī)(MI)的該子集擴(kuò)展至少自動(dòng)機(jī)(M1,…,Mn)的某個(gè)子集,因?yàn)闄z測(cè)出實(shí)際死鎖,得到本發(fā)明的一種非常優(yōu)選的實(shí)施例。
本發(fā)明提供了一種檢測(cè)令人非常不快的錯(cuò)誤類型的有力方法,因?yàn)樗梨i會(huì)引起系統(tǒng),例如基于狀態(tài)的系統(tǒng),進(jìn)入無盡的循環(huán),至少也會(huì)導(dǎo)致用戶過多的不合理的工作情況。
顯然,系統(tǒng)模型中可達(dá)死鎖的檢測(cè)為系統(tǒng)設(shè)計(jì)者提供了極有價(jià)值的信息,因?yàn)槲礄z測(cè)出的死鎖錯(cuò)誤如果由發(fā)行的產(chǎn)品的用戶檢測(cè)或經(jīng)受,則會(huì)引起嚴(yán)重的損失。此外,應(yīng)當(dāng)強(qiáng)調(diào),快速死鎖檢測(cè),以及其他測(cè)試條件,例如上述驗(yàn)證分析,為市場(chǎng)提供了有效的工作工具,而市場(chǎng)對(duì)產(chǎn)品發(fā)行延遲和短設(shè)計(jì)階段極其敏感。
下面結(jié)合
本發(fā)明的不同例子,但本發(fā)明并不局限于此,在附圖中圖1-4說明了本發(fā)明的一種實(shí)施例的基本自動(dòng)機(jī);圖5說明了圖2-4的自動(dòng)機(jī)之間具有相互相關(guān)性的自動(dòng)機(jī)組合;圖6-8說明了本發(fā)明實(shí)施例的第一例子;圖9-10說明了本發(fā)明實(shí)施例的第二例子;圖11和12說明了本發(fā)明實(shí)施例的第三例子;圖13說明了按照本發(fā)明的一種實(shí)施例的系統(tǒng)模型中死鎖的檢測(cè)方法;圖14-20說明了如何通過層次系統(tǒng)模型的變換得到擴(kuò)展?fàn)顟B(tài)系統(tǒng)模型;圖21-24說明了本發(fā)明的基本算術(shù)特性;圖25說明了在消除前信號(hào)的消除,以及圖26說明了在消除后信號(hào)的消除。
以下第一部分描述通過簡(jiǎn)單術(shù)語和
了本發(fā)明的基本特性?;驹砗吞匦詫⑼ㄟ^玩具火車的系統(tǒng)模型來說明。
第二部分將詳細(xì)處理本發(fā)明的理論背景。詳細(xì)的第二部分面向本發(fā)明的一個(gè)例子,該例子被描述為一個(gè)狀態(tài)事件系統(tǒng)。但是,應(yīng)當(dāng)強(qiáng)調(diào),本發(fā)明可以用于任何基于狀態(tài)的系統(tǒng)。
現(xiàn)在參看圖1,描述一個(gè)小例子以說明本技術(shù)的關(guān)鍵方面。該例子包括一個(gè)玩具火車,門和信號(hào)?;疖嚨目刂票幻枋鰹榫哂?個(gè)并行狀態(tài)系統(tǒng)的控制系統(tǒng)。在圖1中,或者示出了火車1,具有3個(gè)按鍵2、3、4,它們可以以4種方式從外部作用。一個(gè)按鍵2安置于火車頂部。如果按下,系統(tǒng)將此命令理解為“開足馬力”。另兩個(gè)按鍵3、4安置于火車下。它們可以單獨(dú)或者作為單個(gè)單元激活(火車的靈感來自LEGOA/S的電池驅(qū)動(dòng)的DUPLO玩具火車)。在與火車同一方向上按下左側(cè)的按鍵3,系統(tǒng)將視該命令為“左轉(zhuǎn)”。在與火車同一方向上按下右側(cè)的按鍵4,系統(tǒng)將視該命令為“右轉(zhuǎn)”。如果同時(shí)按下按鍵3、4,該命令將被視為“”。
如圖2所示,火車1具有3個(gè)工作狀態(tài)停止,縮寫為ST;前進(jìn),F(xiàn)W;和后退,BW。這些狀態(tài)是可以改變的,就象標(biāo)記成to,le,ri,ri,le,to bo和to bo的箭頭所示。這些箭頭可以認(rèn)為表示轉(zhuǎn)移,to,le,…,等表示觸發(fā)相關(guān)轉(zhuǎn)移,使得火車1改變狀態(tài)的事件。
圖3所示的門具有兩種可能位置或者狀態(tài)上,標(biāo)記有UP或者下,標(biāo)記為DO。這兩個(gè)狀態(tài)可以通過命令或者所謂的事件“up”和“do”來改變。
圖4所示信號(hào)具有兩種狀態(tài)停止,標(biāo)記為R,或者開動(dòng),標(biāo)記為G。這兩種狀態(tài)可以通過事件“開”和“關(guān)”來改變。
總之,整個(gè)系統(tǒng)包括關(guān)聯(lián)在一起的圖2所示的火車,圖3所示的門,和圖4所示的信號(hào)。系統(tǒng)的3個(gè)狀態(tài)11、12和13在圖5中相互關(guān)聯(lián),如果門12是下,DO,火車可以僅從“停止,ST”到“前進(jìn),F(xiàn)W”或者“后退,BW”。因此,相應(yīng)轉(zhuǎn)移表示為DO,le(DO)和riDO,其中to DO表示在門12位于狀態(tài)DO,下時(shí),如果事件to發(fā)生,即頂部按鍵2被激活,則發(fā)生轉(zhuǎn)移?;疖囅到y(tǒng)11轉(zhuǎn)移到狀態(tài)DO的符號(hào)可以看成是一種條件或者保護(hù)。同樣,信號(hào)13只有在門處于可接受狀態(tài),分別為“UP”或者“DO”時(shí)才會(huì)改變。
圖5中示出了上述例子。
本發(fā)明分析的目的是找出由許多狀態(tài)系統(tǒng)組成的系統(tǒng)是否可以從其初始狀態(tài)到達(dá)給定(希望或者不希望)的目標(biāo)狀態(tài)。
在DUPLO系統(tǒng)情況下,例如找出火車是否能夠前進(jìn)相當(dāng)有趣。這種問題可以通過詳細(xì)查看整個(gè)系統(tǒng)的全局狀態(tài)來回答。對(duì)DUPLO系統(tǒng)而言,總共有12個(gè)全局狀態(tài),這些狀態(tài)由火車的3個(gè)本地狀態(tài),門的兩個(gè)本地狀態(tài),以及信號(hào)的兩個(gè)狀態(tài)的可用組合組成?!伴_始”狀態(tài)設(shè)置為(停止,ST;上,UP;紅,R),問題是,我們是否能將系統(tǒng)改變成狀態(tài),例如(FW,?,?)(“?”表明門和信號(hào)的狀態(tài)無關(guān)緊要。)
對(duì)全局狀態(tài)的分析表明該問題的答案是肯定的,由以下全局狀態(tài)序列證明(ST,UP,R)-do→(門向下)(ST,DO,R)-to→(火車開動(dòng))(FW,DO,R)這是所需的目標(biāo)狀態(tài)。
但是,以上所用的傳統(tǒng)方法并不理解,因?yàn)樗话阈枰獦?gòu)造和搜索全局狀態(tài),后者隨著狀態(tài)系統(tǒng)的數(shù)量指數(shù)增長如果有100個(gè)具有兩個(gè)狀態(tài)的系統(tǒng),則全局狀態(tài)空間為2100個(gè)狀態(tài)。
按照本發(fā)明的方法基于組合和漸進(jìn)技術(shù)。該技術(shù)是組合的,因?yàn)殚_始時(shí)分析基于有限數(shù)量的狀態(tài),并且包括只在絕對(duì)需要時(shí)才使用附加的自動(dòng)機(jī)。在狀態(tài)機(jī)之間預(yù)先計(jì)算的相關(guān)性分析之后,將這些包括在內(nèi)。
在DUPLO火車?yán)又?,調(diào)查整個(gè)系統(tǒng)是否可以到達(dá)某個(gè)允許火車前進(jìn)的狀態(tài)。顯然,這種能力取決于火車,這正是為何我們的分析從火車開始的原因。
現(xiàn)在參看圖6,最初調(diào)查的狀態(tài)可以認(rèn)為是目標(biāo)集80,它由圖6表示成(FW;?;?)。
此外,可以看出,狀態(tài)從“BW”改變到“FW”是有條件的,只以狀態(tài)“BW”為條件,而不是門的狀態(tài)或者信號(hào)的狀態(tài)。因此,目標(biāo)集80可以擴(kuò)展到81,同時(shí)包括圖7所示的BW和FW。
但是,仍然無法得出火車是否可以從“ST”到達(dá)“FW”或“BW”。觀察到火車的轉(zhuǎn)移僅取決于門12,條件“DO”,因此分析在包括門12之后繼續(xù),如圖8所示。
火車+門根據(jù)已進(jìn)行的分析,足以將系統(tǒng)帶到目標(biāo)狀態(tài)(FW,?,?)或者(BW,?,?)中的一個(gè),因?yàn)榛疖囎陨韺⒛軌虻竭_(dá)所需目標(biāo)狀態(tài),而與圖5的門12和信號(hào)13無關(guān)。這當(dāng)然基于基本條件所有事件在任何時(shí)刻都是可能的。顯然,系統(tǒng)的全局狀態(tài)(ST,DO,?)獨(dú)立于圖5的信號(hào)13,可以到達(dá)狀態(tài)(FW,DO,?)和(RW,DO,?),從而到達(dá)新的目標(biāo)狀態(tài)。這還意味著系統(tǒng)(ST,UP,?)中可用的所有狀態(tài)都可以安置于所需的目標(biāo)狀態(tài),如同(ST,UP,?)-do→(ST,DO,?),而與圖5的信號(hào)13無關(guān),如同圖8通過擴(kuò)展的目標(biāo)集82所示。
現(xiàn)在初始狀態(tài)包括在目標(biāo)集82中,F(xiàn)W可以認(rèn)為是可達(dá)的,因?yàn)槿譅顟B(tài)系統(tǒng)的初始狀態(tài)(ST,UP,R)位于目標(biāo)集合中,我們可以得出火車可以前進(jìn),而不需包括信號(hào)的狀態(tài)系統(tǒng)。
利用上述本發(fā)明的簡(jiǎn)單實(shí)施例,表明了基于特定問題的完整分析是自動(dòng)機(jī)11中給定狀態(tài)是否可達(dá),而不包括所有自動(dòng)機(jī)11、12和13,不需要計(jì)算所有可能的全局狀態(tài)。
同樣需要注意,信號(hào)13沒有調(diào)查,盡管它與門12有關(guān)聯(lián),即on(DO)和off(UP)。
顯然,如果系統(tǒng)模型包括數(shù)量非常大的自動(dòng)機(jī)和自動(dòng)機(jī)狀態(tài),這種組合方法有明顯的好處。
現(xiàn)在參看圖9,描述了本發(fā)明實(shí)施例的另一例子。該系統(tǒng)模型基本上與圖5的系統(tǒng)相同,但是現(xiàn)在火車14和信號(hào)16具有改進(jìn)的相關(guān)性或者保護(hù)條件。
前一DUPLO例子的變型提供了火車的一種改進(jìn)型,因?yàn)榛疖?4現(xiàn)在具有從ST到BW的轉(zhuǎn)移ri(UP)?,F(xiàn)在可以假定從“ST”到“BW”的狀態(tài)改變因某種原因取決于門15位于“UP”狀態(tài)(由新條件“UP”給出)。同樣,本發(fā)明的方法檢查系統(tǒng)模型是否能讓火車從全局狀態(tài)系統(tǒng)的初始狀態(tài)(ST,UP,R)前進(jìn),F(xiàn)W。
類似于前述例子,分析開始于火車自身,因?yàn)槟繕?biāo)狀態(tài)顯然僅取決于該組成部分。
火車與前面相同,我們看到系統(tǒng)的所有狀態(tài)(BW,?,?)-獨(dú)立于門15和信號(hào)16-可以到達(dá)全局目標(biāo)狀態(tài)(FW,?,?),即圖10的目標(biāo)集83。從ST到FW的改變和從ST到BW的改變顯然與門15有關(guān),因?yàn)閺腟T到FW的改變?nèi)Q于門15向下,DO,而從ST到BW的改變?nèi)Q于門15向上,UP。這導(dǎo)致語義相關(guān),因?yàn)殚T必須在狀態(tài)UP或者DO,所以不管門15的狀態(tài)如何,總能滿足這種語義相關(guān)。因此,分析結(jié)果導(dǎo)致目標(biāo)集83的擴(kuò)展成目標(biāo)集84。這意味著在該情況下,火車可以前進(jìn),而不包括系統(tǒng)的門或信號(hào),因?yàn)槟繕?biāo)集84現(xiàn)在包括全局狀態(tài)系統(tǒng)的所需初始狀態(tài)(ST,UP,R)。
在上例中,目標(biāo)集的擴(kuò)展受到了將轉(zhuǎn)移限制到狀態(tài)FW和BW的“相關(guān)性和”調(diào)查的影響,從而不再需要并入自動(dòng)機(jī)15和16。
現(xiàn)在參看圖11的原DUPLO系統(tǒng)的第三變型,其中火車17和信號(hào)19的模型完全對(duì)應(yīng)于圖5中火車11的所述模型。該改進(jìn)現(xiàn)在面向門從“UP”到“DO”的變化,這出于某種原因由處于“FW”狀態(tài)的火車決定,即轉(zhuǎn)移do(FW)。目標(biāo)狀態(tài)仍然相同可以讓火車前進(jìn),即可以從開始狀態(tài)(ST,UP,R)到達(dá)全局狀態(tài)(FW,?;?)嗎?如同第一分析的情況一樣,從火車自身和包括FW的目標(biāo)集85開始。同樣,如果門18和信號(hào)19的狀態(tài)都沒有檢查,只能直接導(dǎo)出火車可以從狀態(tài)(BW,?,?)到達(dá)目標(biāo)狀態(tài)。為了能夠?qū)С龌疖?7可以從狀態(tài)“ST”到達(dá)“FW”,或者到“BW”,我們將再次在分析中包括門18,因?yàn)閺腟T到FW或BW的所有轉(zhuǎn)移都取決于狀態(tài)DO的門。
火車+門現(xiàn)在參看圖12,在包括門18并將目標(biāo)集擴(kuò)展到目標(biāo)集86之后,顯然組合(ST,DO,?)的所有狀態(tài)都可以到達(dá)所需狀態(tài),而與圖11的信號(hào)19無關(guān)。同時(shí),狀態(tài)(ST,UP,?)代表了開始或者初始條件,無法改變到擴(kuò)展目標(biāo)集86中的(ST,DO,?),因?yàn)橛绊懟疖嚒癋W”,即do(FW)的轉(zhuǎn)移的門18的條件顯然沒有滿足。并且顯然將圖11的信號(hào)19考慮在內(nèi)并不直接或間接解決這個(gè)問題,因?yàn)榛疖?7或者門18的狀態(tài)都不取決于該信號(hào)。因此,可以得出不包括該信號(hào),目標(biāo)狀態(tài)就無法到達(dá)。
上述方法可以簡(jiǎn)潔地表示如下給定具有開始狀態(tài)s1,…,sk的多個(gè)自動(dòng)機(jī)系統(tǒng)M1,…,Mk。
問題系統(tǒng)能夠到達(dá)給定目標(biāo)狀態(tài)?方法1.假定A表示顯然能夠到達(dá)目標(biāo)狀態(tài)的全局狀態(tài)系統(tǒng)。
2.包括目標(biāo)集中直接涉及的系統(tǒng)(將這些稱為I)。
3.獨(dú)立于仍未包括的系統(tǒng),說明能夠到達(dá)A中狀態(tài)的所有全局狀態(tài)。這些狀態(tài)被稱為BI*(A)。
4.如果BI*(A)包括全局開始狀態(tài),本發(fā)明在這里終止,結(jié)論是肯定的。
5.如果I中的系統(tǒng)沒有涉及外部系統(tǒng),本發(fā)明在這里終止,結(jié)論是否定的。
6.在所有其它情況下,在涉及的情況下將這些系統(tǒng)加入I,目標(biāo)狀態(tài)A被替換成BI*(A),該方法從步驟3重復(fù)。
死鎖組合方法可以用于訪問調(diào)查之外的其它目的??梢员砻?,進(jìn)一步檢查系統(tǒng)模型以確定是否存在死鎖。系統(tǒng)中的全局死鎖是不管什么命令或行為,系統(tǒng)都無法改變自動(dòng)機(jī)狀態(tài)的全局狀態(tài)。死鎖可能發(fā)生在系統(tǒng)到達(dá)某個(gè)狀態(tài),其中不再有自動(dòng)機(jī)狀態(tài)的任何轉(zhuǎn)移。它還可以發(fā)生在實(shí)際轉(zhuǎn)移出本地自動(dòng)機(jī)狀態(tài)之外的情況,因?yàn)檫@些狀態(tài)與沒有滿足的需求/條件相關(guān)。
更精確的術(shù)語是本地鎖,其中一個(gè)或多個(gè)自動(dòng)機(jī)無法獨(dú)立于其它自動(dòng)機(jī)狀態(tài)的改變方式改變其狀態(tài)。更精確地說,全局狀態(tài)s是自動(dòng)機(jī)I的本地死鎖,不管系統(tǒng)遇到什么事件,它仍留在同一狀態(tài)。該概念在圖13中解釋。
圖13示出了火車的另一變型?;疖?1連接到門22?;疖?1到狀態(tài)“ST”的轉(zhuǎn)移分階段,取決于門22是否下,DO。門22的階段可以較少,只是在火車停止時(shí),從“UP”到“DO”,即轉(zhuǎn)移到do(ST)。
火車,門全局狀態(tài)(FW,UP)是門22的本地死鎖。不管什么事件,門22都無法將其狀態(tài)改變到“DO”。這是因?yàn)閺臓顟B(tài)“UP”到狀態(tài)“DO”的轉(zhuǎn)移要求火車21處于狀態(tài)“ST”。同時(shí),所有到狀態(tài)“ST”的轉(zhuǎn)移都取決于門位于“DO”狀態(tài)。自然,這只有當(dāng)火車處于“ST”等狀態(tài)時(shí)才會(huì)發(fā)生。換句話說門22有死鎖。火車21在該狀態(tài)沒有死鎖,因?yàn)榛疖嚳梢酝ㄟ^命令“ri”和“l(fā)e”在狀態(tài)“FW”和“BW”之間切換。因此,狀態(tài)(BW,UP)也是該門的本地死鎖。
為了利用測(cè)試方法來定位任何本地死鎖。因?yàn)榉椒ㄩ_始時(shí)計(jì)算自動(dòng)機(jī)I中活躍的狀態(tài),這些狀態(tài)沒有死鎖。更確切地說,如果全局狀態(tài)序列s1,s2,…,sk中s=s1,意味著特定事件使得全局狀態(tài)sj能夠通過轉(zhuǎn)移改變到sj+1,而s1和sk具有不同的本地狀態(tài),則全局狀態(tài)s對(duì)自動(dòng)機(jī)i而言是活躍的。換句話說,存在這樣一種狀態(tài)轉(zhuǎn)移序列,使得自動(dòng)機(jī)i在某一點(diǎn)改變狀態(tài)。
以下解釋的方法描述了如何確定對(duì)自動(dòng)機(jī)MI而言活躍的全局狀態(tài)。這些自動(dòng)機(jī)狀態(tài)稱為Ai。未在Ai中的狀態(tài)機(jī)集合構(gòu)成了Mi的可能死鎖。它們僅僅是可能的死鎖,因?yàn)樗鼈兛梢詿o法從“開始”狀態(tài)到達(dá)。這是否可能可以利用基于相關(guān)性分析的狀態(tài)系統(tǒng)的上述組合和漸進(jìn)分析來判定。
按照本發(fā)明計(jì)算自動(dòng)機(jī)Mi的活躍狀態(tài)的一種測(cè)試方法。
給定一組狀態(tài)自動(dòng)機(jī)M1,…,Mk,以及其中選定的一個(gè)自動(dòng)機(jī)Mi。
問題為自動(dòng)機(jī)Mi計(jì)算活躍的全局狀態(tài)。
方法
1.以A表示全局狀態(tài)的未知集合。
2.包括第一自動(dòng)機(jī)I。然后,以I為調(diào)查的該組自動(dòng)機(jī)的符號(hào),開始為I={i}3.在一個(gè)或多個(gè)狀態(tài)中,獨(dú)立于該時(shí)刻未包括的自動(dòng)機(jī),計(jì)算所有這樣的全局狀態(tài),它們能夠促成自動(dòng)機(jī)I的狀態(tài)改變,或者改變到A中的某個(gè)狀態(tài)。結(jié)果是A1i*(A)。
4.如果A1i*(A)包括所有全局狀態(tài),則調(diào)查到此終止。(這意味著對(duì)自動(dòng)機(jī)Mi而言,所有狀態(tài)都是活躍的,因此不會(huì)有死鎖)。
5.如果情況并非如此,并且如果I中的自動(dòng)機(jī)不涉及I之外的自動(dòng)機(jī),結(jié)果是A1i*(A)。
6.如果不是,I有許多新的自動(dòng)機(jī)加入,這些自動(dòng)機(jī)涉及I中轉(zhuǎn)移自動(dòng)機(jī)的條件/要求,則將A賦值等于A1i*(A),方法從3之后重復(fù)。
為了確定自動(dòng)機(jī)是否具有“實(shí)際”死鎖,意味著有一個(gè)死鎖并且可以到達(dá)的狀態(tài),則第一步是使用上面提到的測(cè)試方法以發(fā)現(xiàn)自動(dòng)機(jī)i的活躍狀態(tài)Li。下一步驟是發(fā)現(xiàn)該集合中未包含的狀態(tài)之一是否可達(dá)。如果將其組合,則會(huì)有以下方法。
按照本發(fā)明確定可達(dá)本地死鎖的一種方法。
給定一組狀態(tài)自動(dòng)機(jī)M1,…,Mk問題自動(dòng)機(jī)M1,…,Mk之一是否有本地死鎖?方法1.利用該方法計(jì)算活躍狀態(tài)集,可以確定每個(gè)自動(dòng)機(jī)的集合;Ai。必須對(duì)所有自動(dòng)機(jī)重復(fù)步驟2、3和4。
2.以A表示未在A1中的全局狀態(tài)集合。這些是自動(dòng)機(jī)Mi的可能死鎖。
3.利用確定給定目標(biāo)狀態(tài)可達(dá)性的方法,確定從“開始”狀態(tài)是否可以到達(dá)A。如果答案是肯定的,則狀態(tài)機(jī)具有可達(dá)本地死鎖,給出的結(jié)果是肯定的。
4.如果不是,則結(jié)果是否定的。
在上面的例子中,該方法具有以下序列。首先,檢查門的本地死鎖。至此僅包含了編號(hào)為2的自動(dòng)機(jī),即門,這就是原因,利用第二方法,可以發(fā)現(xiàn)L{2},2*(φ) = {(?, DO)}.
現(xiàn)在包括自動(dòng)機(jī)1,發(fā)現(xiàn)L{1,2},2*({?,DO)} = {(?,DO),(ST,UP)}.
這是門活躍狀態(tài)的最終結(jié)果。這意味著門的不活躍的全局狀態(tài)數(shù)量是{(FW,UP),(BW,UP)}。
現(xiàn)在需要發(fā)現(xiàn)這些狀態(tài)中的一些是否可達(dá)。它們都可以從給定情況到達(dá);因此,門22在這兩種狀態(tài)下都有本地死鎖。
火車21的計(jì)算有所不同。第一步是僅包括火車,發(fā)現(xiàn)活躍狀態(tài)是、L{2},2*(φ)={(ST,?),(FW,?),(BW,?)}.
這包括了所有狀態(tài),計(jì)算的結(jié)果表明火車沒有死鎖。
利用本領(lǐng)域眾所周知的定點(diǎn)遞歸,計(jì)算集合L{i},1*(A),和BI*(A)的情況一樣。
上述系統(tǒng)模型可以認(rèn)為是米利機(jī)的并發(fā)版本的狀態(tài)/事件模型,即,它包括固定數(shù)量的并發(fā)有限狀態(tài)機(jī),這些狀態(tài)機(jī)具有成對(duì)的輸入事件和輸出行為,它們與自動(dòng)機(jī)的轉(zhuǎn)移相關(guān)聯(lián)。該模型是同步的每個(gè)輸入事件在鎖定步驟中由所有自動(dòng)機(jī)予以響應(yīng);總輸出是單個(gè)自動(dòng)機(jī)的輸出行為的多集合并集。自動(dòng)機(jī)之間的進(jìn)一步同步可以通過關(guān)聯(lián)保護(hù)條件和轉(zhuǎn)移來實(shí)現(xiàn)。保護(hù)條件是其它自動(dòng)機(jī)的本地狀態(tài)情況的布爾組合。通過這種方式,一個(gè)自動(dòng)機(jī)中進(jìn)行的轉(zhuǎn)移可以作為其它自動(dòng)機(jī)本地狀態(tài)的條件。如果自動(dòng)機(jī)沒有針對(duì)特定輸入事件的轉(zhuǎn)移,它就不進(jìn)行任何狀態(tài)改變。
參看圖1到圖12,很明白狀態(tài)空間的某個(gè)子集可以利用減序二進(jìn)制判決圖(ROBDD)來表示。這在R.E.Bryant,“Graph-basedalgorithm for Boolean function manipulation”中描述,該文發(fā)表在1986年IEEE Transactions on Computers,第8卷,編號(hào)C-35,頁677-691。
測(cè)試ROBDD的這種子集是否為空及其相等性,以及執(zhí)行該組操作的并集和交集的有效操作是眾所周知的,在上述Bryant的文章中有相關(guān)描述。此外,Bryant還描述了計(jì)算一組狀態(tài)的轉(zhuǎn)移關(guān)系圖的有效操作。轉(zhuǎn)移關(guān)系圖的計(jì)算需要將轉(zhuǎn)移關(guān)系表示成單個(gè)ROBDD。因?yàn)榇罅康谋硎荆袝r(shí)這會(huì)引起一些問題。這種情況下,轉(zhuǎn)移關(guān)系可以更有效地表示成分離或者聯(lián)合的較小關(guān)系,稱為分區(qū)轉(zhuǎn)移關(guān)系,這在J.RBurch,E.M.Clarke和D.E.Long的文章“Symbolic ModelChecking With Partitioned Transition Relations”中解釋。該文出現(xiàn)在1991年8月的Proceedings of 1991 Int.Conf.On VLSI,A.Halas andP.B.Denyer。
許多基于狀態(tài)的系統(tǒng)模型最好可以設(shè)計(jì)和描述成所謂的層次系統(tǒng)模型。
下面將描述這種類型的系統(tǒng)模型的優(yōu)選變換,因?yàn)楸景l(fā)明最好針對(duì)所謂的基于狀態(tài)的平面系統(tǒng)模型。
現(xiàn)在參看圖14,給出了層次系統(tǒng)模型的基本特性。
火車,門,信號(hào)在圖14中,前兩個(gè)狀態(tài)“FW”和“BW”被替換成單個(gè)新的更為抽象的狀態(tài)“GO”。圖14所示的控制系統(tǒng)提供了火車行為的更為抽象的描述,這種情況下,將會(huì)遇到一個(gè)近視的,無法區(qū)分火車前后的人。
同時(shí),通過將狀態(tài)“GO”改進(jìn)為狀態(tài)系統(tǒng)的形式,可以維護(hù)火車31的原描述,前述狀態(tài)系統(tǒng)包含狀態(tài)“FW”和“BW”。這導(dǎo)致了DUPLO火車的層次描述,如圖15所示。
火車,門,信號(hào)。
除了狀態(tài)系統(tǒng)改進(jìn)為兩個(gè)新狀態(tài)“FW”和“BW”,三個(gè)原狀態(tài)轉(zhuǎn)移“GO”也需要分別由特性“FW”和“BW”作為結(jié)果狀態(tài)來改進(jìn)。最后,門32從“UP”轉(zhuǎn)移到“DO”將其狀態(tài)改進(jìn)為“FW”。
狀態(tài)系統(tǒng)和自動(dòng)機(jī)狀態(tài)系統(tǒng)包括一組自動(dòng)機(jī)M1,…,Mn。
狀態(tài)機(jī)M包括一組狀態(tài)S1,…,Sk以及許多轉(zhuǎn)移Si→Sj。
DUPLO火車的抽象版本是具有單個(gè)狀態(tài)機(jī)的狀態(tài)系統(tǒng),火車31,其中有兩個(gè)狀態(tài)“ST”和“GO”,之間總共有5種轉(zhuǎn)移,如圖14和15所示。
為了不引起任何混淆,選擇沒有層次平面狀態(tài)系統(tǒng)作為呼叫狀態(tài)系統(tǒng)。
層次狀態(tài)系統(tǒng)和自動(dòng)機(jī)層次狀態(tài)系統(tǒng),HSys,包括一組層次自動(dòng)機(jī)HM1…HMn。
層次狀態(tài)機(jī)HM包括許多層次狀態(tài)HS1,…,HSk,以及其間的許多轉(zhuǎn)移Hsi→Hsj。
層次狀態(tài)HS本身是層次或者簡(jiǎn)單狀態(tài)系統(tǒng)。
DUPLO火車的層次版本是具有一個(gè)單狀態(tài)自動(dòng)機(jī)的層次狀態(tài)系統(tǒng)31,它具有兩個(gè)層次狀態(tài)“ST”和“GO”,其間有5個(gè)轉(zhuǎn)移。狀態(tài)“ST”是簡(jiǎn)單的,而“GO”本身是一個(gè)層次狀態(tài)系統(tǒng),具有兩個(gè)狀態(tài)“FW”和“BW”,其間有兩種轉(zhuǎn)移。“FW”和“BW”都是簡(jiǎn)單狀態(tài)。
層次狀態(tài)和狀態(tài)自動(dòng)機(jī)根據(jù)它們所到達(dá)的層次深度指派了特定層次。在層次版本的DUPLO火車中,狀態(tài)“ST”和“GO”在兩個(gè)層次上都出現(xiàn),而狀態(tài)“FW”和“BW”位于第二層。
應(yīng)當(dāng)注意,平面狀態(tài)系統(tǒng)構(gòu)成了層次狀態(tài)系統(tǒng)的特殊情況,其中所有狀態(tài)都是簡(jiǎn)單的,或者說,其中所有狀態(tài)都位于第一層。
層次狀態(tài)系統(tǒng)的擴(kuò)展層次狀態(tài)系統(tǒng)與平面狀態(tài)系統(tǒng)相比,給出了更加緊湊和結(jié)構(gòu)化的描述。但是,任何層次狀態(tài)系統(tǒng)也能夠擴(kuò)展到平面狀態(tài)系統(tǒng),在平面狀態(tài)系統(tǒng)中可以應(yīng)用組合和漸進(jìn)分析的創(chuàng)新方法。
擴(kuò)展包括下面提到的擴(kuò)展處理的連續(xù)執(zhí)行,直至生成了平面狀態(tài)系統(tǒng)。
擴(kuò)展處理-狀態(tài)現(xiàn)在參看圖16,在n(Ln)層初始化Hsys為實(shí)際的層次狀態(tài)系統(tǒng)。擴(kuò)展處理的開始點(diǎn)位于n之外的另一層的層次狀態(tài)S,它本身是由許多層次自動(dòng)機(jī)M1,…,Mn組成的另一層次狀態(tài)系統(tǒng),位于n+1層。
現(xiàn)在參看圖17,擴(kuò)展處理包括將S層自動(dòng)機(jī)M1…Mn的狀態(tài)S的狀態(tài)改變?yōu)楹?jiǎn)單狀態(tài)。在執(zhí)行擴(kuò)展處理之后,完成圖17所示控制系統(tǒng)。
因此,擴(kuò)展處理減少了層次狀態(tài)的數(shù)量(減1),通過重復(fù)減少步驟,最終結(jié)果將是這樣一種層次狀態(tài)系統(tǒng),其中所有狀態(tài)都是簡(jiǎn)單的,也稱作平面狀態(tài)系統(tǒng)。
擴(kuò)展處理-轉(zhuǎn)移此時(shí),轉(zhuǎn)移包括在擴(kuò)展處理中。轉(zhuǎn)移一般與特定條件,或者保護(hù)條件相關(guān),在進(jìn)行該轉(zhuǎn)移之前,這些條件必須得到滿足。這些條件可以是部分影響整個(gè)系統(tǒng)所在環(huán)境中行為發(fā)生,部分影響其它狀態(tài)系統(tǒng)中其它正常自動(dòng)機(jī)的命令/要求。在擴(kuò)展處理期間,可以通過不同方式修改這些命令/要求,以確保在擴(kuò)展處理之前,存在層次狀態(tài)系統(tǒng)之間正確的關(guān)系/連接。這種改進(jìn)的例子在圖18中給出。
參看圖19,考慮給出的情況,在其中加入所示的轉(zhuǎn)移和條件/需求。這種情況下,需求/條件是a、b、c和d。
顯然,迄今只能發(fā)生S中自動(dòng)機(jī)(M1,…,Mn)的轉(zhuǎn)移,例如從A到B的轉(zhuǎn)移,控制系統(tǒng)M實(shí)際上位于狀態(tài)S(不是S1或者S2)。為了確保同一原理應(yīng)用于從A到B的轉(zhuǎn)移,將條件/需求擴(kuò)展到bS。
M中從S1到S的轉(zhuǎn)移可以通過不同方式選出S中需要激活的子狀態(tài);例如,應(yīng)當(dāng)選出子自動(dòng)機(jī)M1的狀態(tài)X。為了確保在S1擴(kuò)展到S時(shí)也執(zhí)行狀態(tài)X,可以在X中加入從M1中所有其它狀態(tài)的轉(zhuǎn)移,限制S1a,它正是進(jìn)行從S1→S的轉(zhuǎn)移所需的。
M中從S到S2的轉(zhuǎn)移給出了與S中子狀態(tài)相關(guān)的條件/需求,如果需要進(jìn)行轉(zhuǎn)移,則這些子狀態(tài)必須活躍。例如,一種條件/需求可以是自動(dòng)機(jī)M1位于狀態(tài)Y。為了確保擴(kuò)展后應(yīng)用相同原則,從S到S2的轉(zhuǎn)移的相關(guān)條件/需求可以擴(kuò)展為cY。
在層次M的自動(dòng)機(jī)中,存在其條件/需求包括狀態(tài)A的轉(zhuǎn)移。在擴(kuò)展之后,必須確保不僅僅M1位于狀態(tài)A,而且自動(dòng)機(jī)M位于狀態(tài)S。
在轉(zhuǎn)移條件/需求的給定修改下,變換處理的結(jié)果可以如圖20所示。
層次DUPLO火車的擴(kuò)展下面將通過圖20的DUPLO火車說明擴(kuò)展的效果。應(yīng)當(dāng)注意,從狀態(tài)“ST”到“GO”的轉(zhuǎn)移非常明確地指出了“GO”的哪些子狀態(tài)必須激活。擴(kuò)展的唯一明顯的對(duì)象是狀態(tài)“GO”,它是唯一的非簡(jiǎn)單狀態(tài)。擴(kuò)展處理的結(jié)果如下火車,門,“GO”,信號(hào)給定層次控制系統(tǒng),Hsys。
結(jié)果等價(jià)/類似的平面狀態(tài)系統(tǒng),Sys。
方法1.假定S是n層上的狀態(tài),它本身是由許多層次自動(dòng)機(jī)M1,…,Mk組成的層次狀態(tài)系統(tǒng)。
2.實(shí)現(xiàn)S的擴(kuò)展,這意味著對(duì)S層上的自動(dòng)機(jī)M1,…,Mk進(jìn)行必要的轉(zhuǎn)移改進(jìn)和需求。
3.如果所有狀態(tài)都是簡(jiǎn)單的,停止。
4.如果不是,從1開始重復(fù)處理。
在許多應(yīng)用中,考慮這樣的系統(tǒng)模型較為有利,這些系統(tǒng)模型包含許多范圍在有限域內(nèi)的變量。這些變量的值可以通過賦值,作為轉(zhuǎn)移行為的一部分在轉(zhuǎn)移條件中測(cè)試和處理。利用本領(lǐng)域眾所周知的變量編碼技術(shù)以及對(duì)它們的操作(例如參見Allan John Hu的博士論文,Techniques for Efficient Formal Verification Using Binary DecisionDiagrams,Department of Computer Science,Stanford University,1995年12月,編號(hào)CS-TR-95-1561)可以容易地改進(jìn)本發(fā)明,使其應(yīng)用于這類系統(tǒng)。這種改進(jìn)可以包括查看每個(gè)變量,因?yàn)樽詣?dòng)機(jī)針對(duì)變量的每個(gè)可能值都有一個(gè)狀態(tài)。為變量賦值可以通過該自動(dòng)機(jī)的轉(zhuǎn)移實(shí)現(xiàn),其它自動(dòng)機(jī)中涉及該變量的條件可以實(shí)現(xiàn)為該自動(dòng)機(jī)上的同步條件。這樣,本發(fā)明提到的所有方法都可以直接應(yīng)用于改進(jìn)的模型。
在其它應(yīng)用中,考慮涉及定時(shí)器集合的系統(tǒng)模型相當(dāng)有用。定時(shí)器的值隨時(shí)間減小,或者在時(shí)鐘頻率所確定的離散步驟中減小,或者通過全局時(shí)間連續(xù)減小。在這種時(shí)間擴(kuò)展系統(tǒng)模型中,轉(zhuǎn)移可以由超時(shí)事件to-t激活,該事件在定時(shí)器t值到達(dá)0時(shí)發(fā)生。同時(shí),作為轉(zhuǎn)移行為的一部分,可以設(shè)置定時(shí)器值??梢匀菀椎馗倪M(jìn)本發(fā)明,通過引入各定時(shí)器作為具有狀態(tài)T0,T1,…,Tmax的自動(dòng)機(jī)T,其中max是指派給定時(shí)器t的最大值,使其應(yīng)用于定時(shí)系統(tǒng)。自動(dòng)機(jī)T具有以下基本轉(zhuǎn)移Ti+1-tick[]/→Ti
對(duì)i=1..max-1,其中’tick’是表示經(jīng)過一個(gè)時(shí)間單位的新事件。超時(shí)轉(zhuǎn)移A1-to-t[g]/a→A2被替換成以下轉(zhuǎn)移A1-to-t[gT1]/a→A2對(duì)to-t事件的響應(yīng)被替換成對(duì)定時(shí)器自動(dòng)機(jī)T位于狀態(tài)T1所提供的tick的響應(yīng)(因此,在狀態(tài)TO中,只有在tick事件之后)。定時(shí)器設(shè)置轉(zhuǎn)移A1-E[g]/a,t=n→A2被替換成A1-E[g]/a→A2此外生成了以下形式的轉(zhuǎn)移Tj-E[gA1]/→Tn對(duì)所有j=0..max。本發(fā)明所提供的所有方法可以直接應(yīng)用于改進(jìn)的模型,對(duì)離散和連續(xù)的定時(shí)器都能給出正確的分析,這在本領(lǐng)域眾所周知(例如參見E.Asarin,O.Maler,A.Pnueli,On Discretization ofDelays in Timed Automata and Digital Circuits,Proc.CONCUR’98,Lecture Notes in Computer 1466,1998)。
在其它應(yīng)用中,允許內(nèi)部事件(有時(shí)稱為信號(hào))非常有用,這些事件由一些自動(dòng)機(jī)產(chǎn)生,由其它自動(dòng)機(jī)作出響應(yīng)。具有內(nèi)部事件/信號(hào)的系統(tǒng)模型可以理解成具有不同的解釋。在一種解釋中,需要理解信號(hào)的發(fā)送和響應(yīng)是瞬時(shí)的。在這種解釋下,信號(hào)存在的效果可以通過改進(jìn)的模型得到,在該模型中已經(jīng)消除了信號(hào)。通過信號(hào)改進(jìn)轉(zhuǎn)移可以得到這種改進(jìn),或者增加轉(zhuǎn)移使得它們通過外部事件和狀態(tài)同步的條件得到類似效果。作為消除信號(hào)的一個(gè)例子,考慮具有外部事件E和信號(hào)S的系統(tǒng),如圖26所示。通過將B1到B2的轉(zhuǎn)移中S的出現(xiàn)替換成EA1,從A1到A2的轉(zhuǎn)移中消除S的生成,可以得到一種行為相同但沒有信號(hào)的系統(tǒng)模型。
這種方法在系統(tǒng)模型中出現(xiàn)若干信號(hào)的情況下容易出現(xiàn)。其推廣可以描述如下。為以下轉(zhuǎn)移中組合的每次出現(xiàn)增加一個(gè)轉(zhuǎn)移A1-E[g]/Sa→A2B1-S[h]/b→B2,其中E是某個(gè)外部事件,S是信號(hào),g和h是條件,a和b是在進(jìn)行轉(zhuǎn)移時(shí)需要完成的行為序列。增加的行為如下生成將從B1的轉(zhuǎn)移中S條件替換成E條件,g和A1B1-E[gA1h]/b→B2。
重復(fù)增加轉(zhuǎn)移,在生成對(duì)時(shí),將新轉(zhuǎn)移考慮在內(nèi),直至不再有新轉(zhuǎn)移生成。增加了所有可能的轉(zhuǎn)移之后,取消信號(hào)所保護(hù)的所有轉(zhuǎn)移,在生成一個(gè)或多個(gè)信號(hào)的所有轉(zhuǎn)移中,消除這些信號(hào)。最終的系統(tǒng)模型并不包含任何信號(hào),本發(fā)明的方法可以應(yīng)用于分析該系統(tǒng)模型。
在另一種解釋中,信號(hào)可以在多個(gè)自動(dòng)機(jī)之間通過信號(hào)內(nèi)部隊(duì)列通信。這種內(nèi)部隊(duì)列中的信號(hào)需要在系統(tǒng)模型對(duì)任何外部事件作為反應(yīng)之前予以響應(yīng)。然后,將信號(hào)視為任一其它外部事件如果內(nèi)部隊(duì)列不空,在隊(duì)列前端的信號(hào)是唯一允許的事件。所有外部事件都被抑制。如果內(nèi)部隊(duì)列為空,則抑制信號(hào),選通所有外部事件。
信號(hào)的內(nèi)部隊(duì)列可以限制為具有給定的最大長度??梢匀缦碌玫皆搶?duì)列的效果首先在系統(tǒng)模型中加入許多實(shí)現(xiàn)該隊(duì)列的模型,然后消除所有的信號(hào)生成,改進(jìn)轉(zhuǎn)移。信號(hào)S在A1到A2的轉(zhuǎn)移中發(fā)送的條件是外部事件E,它可以通過隊(duì)列的變化來建模,這種變化在隊(duì)列的尾部增加表示S的元素。如果隊(duì)列非空,只選通對(duì)應(yīng)于隊(duì)列中第一元素的事件。如果隊(duì)列為空,則選通所有外部事件。事件的選通和抑制可以如下得到結(jié)合事件預(yù)測(cè)和自動(dòng)機(jī)系統(tǒng)模型上的隊(duì)列第一元素。完成這些步驟之后,本發(fā)明的所有方法可以應(yīng)用于最終的系統(tǒng)模型。
現(xiàn)在考察本發(fā)明實(shí)施例的基本特性的更為具體的解釋,下面將更為徹底地討論本發(fā)明的某些方面。
狀態(tài)/事件系統(tǒng)由輸入事件字母E和輸出字母表O上的n個(gè)自動(dòng)機(jī)M1,…,Mn組成。每個(gè)自動(dòng)機(jī)Mi是本地狀態(tài)、初始狀態(tài)和一組轉(zhuǎn)移的三元組(SnSOnTi)。轉(zhuǎn)移組是關(guān)系Ti⊆Si×E×Gi×M(O)×Si]]>其中M(O)是輸出的多個(gè)集合,Gi是沒有包含到自動(dòng)機(jī)I的引用的果護(hù)條件的集合。這些保護(hù)條件根據(jù)以下布爾表達(dá)式的簡(jiǎn)單語法生成 原子謂詞lj=p讀作“自動(dòng)機(jī)j位于本地狀態(tài)p”,tt代表了真保護(hù)條件。該狀態(tài)/事件系統(tǒng)的全局本地狀態(tài)集是本地狀態(tài)集的乘積S=S1xS2x…xSn。保護(hù)條件在S上直接解釋對(duì)任何s∈S,如果s的第j個(gè)分量是p,則s︱=lj=p正確,即sj=p。標(biāo)記g[sj,lj]表示sj是lj的替換,根據(jù)sj是否等于p,sj=p形式的原子命題的出現(xiàn)被替換成tt或 考慮全局狀態(tài)s,轉(zhuǎn)移關(guān)系中的所有保護(hù)條件都可以評(píng)估。我們定義轉(zhuǎn)移關(guān)系的一種版本,其中已評(píng)估了保護(hù)條件。這種關(guān)系表示成 表明自動(dòng)機(jī)i在接收輸入事件e時(shí),從si轉(zhuǎn)移到s’i,生成輸出o。
比較正式的表示是 兩個(gè)自動(dòng)機(jī)可以組合成一個(gè)自動(dòng)機(jī)。更一般地說,如果MI和MJ是自動(dòng)機(jī)I和J的兩個(gè)不相交集合,I,J⊆{I...,n}]]>,我們可以將其組合成一個(gè)MIJ=MIxMJ=(SIJ,(S0IJ),TIJ),其中SIJ=SIxSJ并且S0IJ=(S0I,s0J)。轉(zhuǎn)移關(guān)系TIJ是SIJxExGIJxM(O)xSIJ的一個(gè)子集,其中GIJ是組合自動(dòng)機(jī)的保護(hù)條件。通過TIJ的構(gòu)造,保護(hù)條件GIJ將不包含到I∪J中自動(dòng)機(jī)的任何引用。為了定義TIJ,我們引入謂詞idle 它對(duì)這樣的狀態(tài)成立在接收輸入事件e時(shí),狀態(tài)sJ中不選通MI中的轉(zhuǎn)移。轉(zhuǎn)移關(guān)系TIJ是由以下推理規(guī)則定義(符號(hào)+表示多集合并集)。 這些規(guī)則表明狀態(tài)/事件系統(tǒng)的同步行為。第一規(guī)則表示了TI和TJ中存在具有輸入事件e的選通轉(zhuǎn)移,TIJ的最終轉(zhuǎn)移表示了e的同步。如果TI或TJ中都沒有選通的轉(zhuǎn)移,則出現(xiàn)其它兩種情況。
圖21示出了兩種狀態(tài)/事件自動(dòng)機(jī)和相應(yīng)的并行組合。保護(hù)條件應(yīng)當(dāng)采用以下形式Ij=p,簡(jiǎn)單地寫成狀態(tài)[p],因?yàn)槲恢肐j得自狀態(tài)的名字。小箭頭表明了初始狀態(tài)。r的引用是對(duì)未示出的第三自動(dòng)機(jī)的狀態(tài)的要求。
所有n個(gè)自動(dòng)機(jī)的完全組合產(chǎn)生了米利機(jī),其中轉(zhuǎn)移 定義為 一致性檢查按照本發(fā)明的一致性檢查可以是一種可達(dá)性特性。例如,可以執(zhí)行“沖突轉(zhuǎn)移”的檢查,即檢查同一本地狀態(tài)中是否選通兩個(gè)或多個(gè)轉(zhuǎn)移,導(dǎo)致了不確定性。這可以如下簡(jiǎn)化為可達(dá)性的問題考慮具有相同本地狀態(tài)si和輸入事件e的轉(zhuǎn)移的所有保護(hù)條件個(gè)g1和g2對(duì)。如果全局狀態(tài)可達(dá),并且滿足(IJ=si)^g1^g2,則會(huì)發(fā)生沖突。
這種檢查可以簡(jiǎn)化為可達(dá)性檢查。其它檢查,例如從未選通的轉(zhuǎn)移的檢查和從未到達(dá)的狀態(tài)的檢查,生成了許多可達(dá)性檢查,這在轉(zhuǎn)移數(shù)量t上呈線性。在最壞情況下,沖突轉(zhuǎn)移的檢查導(dǎo)致大量的可達(dá)性檢查,這在轉(zhuǎn)移數(shù)量上呈平方上升。但是,實(shí)際上很少有轉(zhuǎn)移具有相同的初始本地狀態(tài)和輸入事件,從而實(shí)際上生成的檢查數(shù)量遠(yuǎn)比t小。
其它類型的一致性檢查簡(jiǎn)化為缺少本地死鎖的檢查。如果系統(tǒng)能夠到達(dá)某個(gè)狀態(tài),其中一個(gè)自動(dòng)機(jī)對(duì)所有輸入事件都永遠(yuǎn)處于空閑狀態(tài),則發(fā)生本地死鎖。對(duì)n個(gè)自動(dòng)機(jī)的每一個(gè)作這種檢查??偣仓辽儆衪-n個(gè)檢查需要執(zhí)行以驗(yàn)證狀態(tài)/事件系統(tǒng),這與常規(guī)的模型檢查相差很大,后者一般僅驗(yàn)證若干關(guān)鍵特性。
按照本發(fā)明的方法嘗試通過在檢查保護(hù)條件之間進(jìn)行隱式檢查來減少可達(dá)性檢查的數(shù)量。如果保護(hù)條件g1隱含另一保護(hù)條件g2,那么顯然如果g1可達(dá),則g2也可達(dá)。為了使用這種信息,所有保護(hù)條件必須以其滿足狀態(tài)空間的規(guī)模來降序存儲(chǔ)。通過這種方式,首先檢查最特別的保護(hù)條件,對(duì)需要檢查的每個(gè)新保護(hù)條件而言,它與所有已經(jīng)檢查(并可達(dá)1的保護(hù)條件相比較。如果新條件包括其中之一,則判定它是可滿足的。實(shí)驗(yàn)表明,這種方式可以消除按照現(xiàn)有技術(shù)工具的可達(dá)性檢查的40%到94%。
ROBDD表示本節(jié)描述如何利用減序二進(jìn)制判決圖來表示狀態(tài)集和轉(zhuǎn)移關(guān)系。
為了構(gòu)造轉(zhuǎn)移關(guān)系T的ROBDD ,我們首先構(gòu)造每個(gè)自動(dòng)機(jī)Mi的本地轉(zhuǎn)移關(guān)系 。ROBDD變量表示輸入事件、當(dāng)前狀態(tài)、下面的狀態(tài)的編碼。這些變量如下排序第一‖E‖變量編碼輸入事件E(‖E‖表示[log2︱x︱]),表示成VE。然后,2‖Si‖變量Vi,l,V’i,l,....,Vi,‖si‖,V’i,‖si‖編碼自動(dòng)機(jī)i的當(dāng)前(未處理變量)和后面的狀態(tài)(處理過的變量)。自動(dòng)機(jī)i的轉(zhuǎn)移關(guān)系 構(gòu)造成3個(gè)變量上的ROBDD謂詞。轉(zhuǎn)移 (si,e,g,oI,s’i)∈Ti的ROBDD構(gòu)造為si,e,g和s’i的ROBDD編碼的與。(輸出沒有編碼,因?yàn)樗鼈儗?duì)系統(tǒng)的可達(dá)狀態(tài)沒有影響。)si,e和s’i的編碼很簡(jiǎn)單,保護(hù)條件g的編碼通過將自動(dòng)機(jī)Mj的所有原子謂詞lJ=p轉(zhuǎn)換為當(dāng)前狀態(tài)變量上的ROBDD謂詞,然后執(zhí)行保護(hù)條件的布爾操作來實(shí)現(xiàn)。自動(dòng)機(jī)i的所有轉(zhuǎn)移的編碼可以從單個(gè)轉(zhuǎn)移的編碼的析取得到。 其中 是輸入事件e的ROBDD編碼, 是輸入事件e的ROBDD編碼, 和 分別是當(dāng)前狀態(tài)si和下一狀態(tài)S’i的ROBDD編碼。
為了正確編碼全局轉(zhuǎn)移關(guān)系T,我們需要處理沒有選通Ti轉(zhuǎn)移的情況。在這些情況下,我們希望自動(dòng)機(jī)i停留在它的當(dāng)前狀態(tài)。我們通過否定自動(dòng)機(jī)i的所有保護(hù)條件(包括輸入事件),構(gòu)造ROBDD negi,表示沒有選通轉(zhuǎn)移 ROBDD equi編碼自動(dòng)機(jī)i沒有改變狀態(tài),要求下一狀態(tài)與當(dāng)前狀態(tài)相同 自動(dòng)機(jī)i的本地轉(zhuǎn)移關(guān)系是 完全轉(zhuǎn)移關(guān)系的ROBDD 是本地轉(zhuǎn)移關(guān)系的與 組合后向可達(dá)性現(xiàn)有技術(shù)遞歸的問題一般可以通過后向可達(dá)性分析來解決。驗(yàn)證任務(wù)是確定是否能滿足保護(hù)條件g。我們不再計(jì)算可達(dá)狀態(tài)空間,檢查g在該集合中某處是否合法,而是開始處理其中g(shù)是合法的狀態(tài)集,并且在后向遞歸中計(jì)算可以到達(dá)滿足g的某個(gè)狀態(tài)的狀態(tài)。目的是確定初始狀態(tài)是否在這些狀態(tài)之中。我們的新穎點(diǎn)在于,以組合方式執(zhí)行后向遞歸,僅考慮最少數(shù)量的自動(dòng)機(jī)。最初,只考慮g中提到的自動(dòng)機(jī)。后來將包括這些相關(guān)的自動(dòng)機(jī)。
注意到與前向遞歸相比,在執(zhí)行大量的可達(dá)性檢查時(shí),這種方案具有明顯的缺陷不是僅一個(gè)定點(diǎn)遞歸就能構(gòu)造可達(dá)性狀態(tài)空間R(然后很一般地驗(yàn)證特性),而是檢查的每個(gè)特性都需要一個(gè)新的定點(diǎn)遞歸。但是,實(shí)驗(yàn)表明,如果采用組合后向遞歸,即使非常大的模型也能完成每個(gè)定點(diǎn)遞歸,而前向遞歸甚至對(duì)中等規(guī)模的模型都無法完成R的構(gòu)造。
為了形式化后向組合技術(shù),需要一種相關(guān)性概念的語義版本。對(duì)自動(dòng)機(jī)I⊆{I,...,n}]]>的一個(gè)子集而言,兩個(gè)狀態(tài)s,s’∈S是I等價(jià)的,寫作s=Is’,如果對(duì)所有的i∈I,sj=si’(這里的數(shù)用于表示另一狀態(tài),與后面的狀態(tài)無關(guān))。如果全局狀態(tài)S的子集P僅受某一索引集I中分量的限制,則P可以視為以I為序。這導(dǎo)致以下定義S的子集P是I排序的,如果對(duì)所有s,s’∈S, 在圖22中,該圖是表示BI(g)的效果的一個(gè)例子。如果X是保護(hù)條件IJ=p,Y是保護(hù)條件IK=q,j,k∉I]]>,則從si的轉(zhuǎn)移看來取決于I外部的自動(dòng)機(jī)Mj和Mk。但是,保護(hù)條件X, X,Y和 Y一起覆蓋了所有的可能性,因此,通過選擇e1、e2或e3,狀態(tài)si可以到達(dá)g,而與自動(dòng)機(jī)Mi和Mk的狀態(tài)無關(guān)。
圖23說明了從實(shí)際例子中取來的9狀態(tài)機(jī)之間的相關(guān)性。從一個(gè)自動(dòng)機(jī)Mi到另一自動(dòng)機(jī)Mi的箭頭表明Mi中存在轉(zhuǎn)移,其保護(hù)條件取決于自動(dòng)機(jī)Mj中的狀態(tài)。
作為例子,考慮僅涉及自動(dòng)機(jī)1和3的保護(hù)條件g。對(duì)任何包含1和3的I而言,g所定義的狀態(tài)集是I排序的。該定義的另一理解是集合P是I排序的,如果它在補(bǔ)中獨(dú)立于自動(dòng)機(jī) 從I排序集合g中,我們?nèi)缦峦瓿珊笙蚩蛇_(dá)性計(jì)算包括不論I^]]>中自動(dòng)機(jī)的狀態(tài)如何都能到達(dá)g的狀態(tài)。一種由函數(shù)BI(g)給出的后向步驟如下定義 通過將BI(g)定義為I排序,集合BI(g)是這樣一組狀態(tài),這些狀態(tài)不論I^]]>中的自動(dòng)機(jī)如何,都能夠在某個(gè)輸入事件e激勵(lì)下到達(dá)g中的狀態(tài)。注意到BI(g)在g和I中都是單調(diào)的。圖22表明了自動(dòng)機(jī)狀態(tài)si如何被包含在BI(g)中,盡管它在句法上似乎與I之外的自動(dòng)機(jī)相關(guān)。
通過遞歸BI的應(yīng)用,現(xiàn)在可以計(jì)算BI應(yīng)用下包含g且關(guān)閉的狀態(tài)的最小集。這是最小的定點(diǎn)μX.g∪BI(x),我們將其稱為BI*(g)。注意到P56L14變成可以到達(dá)g的狀態(tài)的所需集合。
如果I中沒有自動(dòng)機(jī)與I之外的自動(dòng)機(jī)相關(guān),則索引I的集合稱為相關(guān)性閉合。嚴(yán)格地說,如果對(duì)所有i∈I,狀態(tài)s’,s,si,輸入事件e和輸出o, ,并且s'=ls隱含 則I是相關(guān)性閉合的。
集合BI*(g)的基本特性通過以下引理捕獲
引理1(組合可達(dá)性引理)。假定g是S的I排序子集。對(duì)自動(dòng)機(jī)I,J,I⊆J]]>的所有子集而言,以下成立 引理的結(jié)果以以下方式應(yīng)用。為了檢查保護(hù)條件g是否可達(dá),首先考慮g中句法上提到的自動(dòng)機(jī),I1的集合。顯然,g是I1排序的。然后計(jì)算B*I1(g)。如果初始狀態(tài)S0屬于B*I1(g),則通過(ⅰ)S0∈B*(1…n)(g),因而g可從S0到達(dá),我們終止。如果不是,我們?cè)黾覫1中自動(dòng)機(jī)轉(zhuǎn)移中保護(hù)條件在句法上提到的自動(dòng)機(jī),將I1擴(kuò)展到較大的自動(dòng)機(jī)集I2。然后,重用B*I1(g),以(ⅱ)糾正的B*I2(B*J1(g))來計(jì)算B*I1(g)。如此繼續(xù),直至在一個(gè)集合中發(fā)現(xiàn)S0,或者索引集Ik相關(guān)性閉合。在后一種情況下,(ⅲ)B*IK(g)=B*(1,…,n)(g)和g是不可達(dá)的,除非s∈B*IK(g)。
作為例子,假定在圖22的例子中應(yīng)當(dāng)確定保護(hù)條件P57L13是否可達(dá)。初始索引集是I1={1,3}。如果這不足以表示g是可達(dá)的,則使用第二索引集I2={1,3,7,2}。因?yàn)樵摷鲜窍嚓P(guān)性閉合的,g當(dāng)且僅當(dāng)初始狀態(tài)屬于B*J2(B*J1(g))時(shí)才可達(dá)。
上述構(gòu)造基于后向遞歸。也可以定義前向遞歸的BI對(duì)稱版本。但是,這種定義無法利用相關(guān)性信息,因?yàn)閟0只對(duì)I={1,...,n)是I排序的。因此,所有自動(dòng)機(jī)都在第一定點(diǎn)遞歸中考慮,將其簡(jiǎn)化到現(xiàn)有技術(shù)方法中提到的完整的前向遞歸。
看上去,BI(g)的定義需要全局轉(zhuǎn)移關(guān)系的知識(shí),因此不象能產(chǎn)生任何可計(jì)算的優(yōu)點(diǎn)。但是,下面將會(huì)解釋,這可以利用ROBDD避免,孚致了有效的BI(g)計(jì)算。ROBDD 表示了一個(gè)從ROBDD 表示的狀態(tài)的后向遞歸,它可以根據(jù)定義(1)立即構(gòu)造 (2)
其中 等于 ,V中的所有變量替換為它們的最初版本。這對(duì)避免構(gòu)造全局轉(zhuǎn)移關(guān)系 而言是必要的。這通過將 寫成 ,并且 ,其中 來完成。這使得我們能夠?qū)’I的已有量化推進(jìn)到 ,因?yàn)間是I排序的,從而獨(dú)立于V’I中的變量。因?yàn)?是重言式, 公式(2)簡(jiǎn)化為 它僅使用I中自動(dòng)機(jī)的本地轉(zhuǎn)移關(guān)系。每個(gè)Ti僅指向V’i中未處理的變量,允許單獨(dú)為每個(gè)自動(dòng)機(jī)進(jìn)行早期的變量量化 該等式有效地計(jì)算了定點(diǎn)遞歸中的一步,構(gòu)造 注意,已有的量化可以以任意次序執(zhí)行。我們選擇了自動(dòng)機(jī)出現(xiàn)在輸入中的次序,但改進(jìn)性能的其它次序也可以存在。
本地死鎖檢測(cè)在檢查本地死鎖的過程中,采用了類似于后向可達(dá)性的構(gòu)造。為了使組合后向引理可以應(yīng)用,采用的活躍自動(dòng)機(jī)的表示是具有本地死鎖的精確對(duì)稱。換句話說,如果總有這樣的情況存在,則自動(dòng)機(jī)是活躍的存在一種方式,使得自動(dòng)機(jī)移動(dòng)到新的本地狀態(tài)。嚴(yán)格地說,如果存在這樣一種狀態(tài)序列,s1,s2,…sk,s=si,并且 (對(duì)某些e和o成立),使得ski≠slk,則狀態(tài)機(jī)i的全局狀態(tài)s是活躍的。如果所有可達(dá)狀態(tài)都是活躍的,則自動(dòng)機(jī)i是活躍的。圖24中給出了具有本地死鎖的狀態(tài)/事件系統(tǒng)的簡(jiǎn)單例子。
圖24示出的狀態(tài)/事件系統(tǒng)具有本地死鎖。全局狀態(tài)s=(P2,q1)對(duì)右邊的自動(dòng)機(jī)不是活躍的,因?yàn)閷?duì)所有輸入事件,保護(hù)條件P1保持為假。狀態(tài)s是可達(dá)的(例如通過最初接收e1),從而右側(cè)的自動(dòng)機(jī)具有本地死鎖。
將檢查劃分成兩部分。首先,計(jì)算自動(dòng)機(jī)i的所有活躍狀態(tài)L*i的集合。其次,我們檢查所有可達(dá)狀態(tài)位于L*i。直接但是不很有效的方法是計(jì)算兩個(gè)集合,檢查其包含性。但是,按照本發(fā)明的組合構(gòu)造的優(yōu)點(diǎn)用于這兩部分檢查的后向可達(dá)性。
類似于BI(g)的定義,L1,I(X)定義為這樣的狀態(tài)集合,這些狀態(tài)對(duì)i∈I的自動(dòng)機(jī)而言直接活躍,而與I之外的自動(dòng)機(jī)無關(guān),或者它們導(dǎo)致X中的狀態(tài)(這些是假定的自動(dòng)機(jī)i的活躍狀態(tài)) 注意到比較定義(1),唯一的區(qū)別是附加的狀態(tài)立即活躍的可能性,即si≠s″i。自動(dòng)機(jī)i的活躍的狀態(tài)機(jī)集合獨(dú)立于i之外的自動(dòng)機(jī),它是集合L*I,1(φ),其中L*I,1(Y)是由L*I,1(Y)=μX.Y∪LI,1(X)定義的最小定點(diǎn)。
當(dāng)Y是I排列時(shí),引理1的3個(gè)特性還對(duì)L*I,l(Y)成立。如果I是相關(guān)性閉合的,則它符合引理的特性(ⅲ)的,L*I,1(φ)等于L*(1,…,n),i(φ),它正是自動(dòng)機(jī)i的活躍狀態(tài)集。這給出了一種有效的方式來計(jì)算I的不同選擇的集合L*I,1(φ)。開始時(shí)I1等于{i},接著以較大的Ik’s進(jìn)行后向可達(dá)性。唯一的區(qū)別在于終止條件。一種可能的終止情況是對(duì)某些k來講L*IK,1(φ)是否等于S。在這種情況下,根據(jù)引理的單調(diào)性特性(ⅰ),可達(dá)性狀態(tài)集合包含在L*IK,1(φ)中并不重要。之后,自動(dòng)機(jī)i活躍,從而不會(huì)有本地死鎖。其它終止情況是在Ik相關(guān)性閉合時(shí)。我們必須檢查是否存在不在L*IK,1(φ)中的可達(dá)性狀態(tài)。這通過組合g=S\L*IK,1(φ)的后向可達(dá)性檢查來完成。
引理1的證明首先直接從定義觀察到BI(g)在I和g上都是單調(diào)的,即,對(duì)任何 采用最小定點(diǎn)的操作也是單調(diào)的,因此,對(duì)任何I和J,I⊆J]]>,我們從(1)中B*J(g)=μX.g∪Br(X) μX.g∪BJ(X)=B*J(g)只要在自動(dòng)機(jī)I的索引集合中B*I(g)是單調(diào)的,這是引理的(i)。
為了證明引理的(ⅱ),首先從B*I(g)的定義觀察到g B*I(g),因此利用單調(diào)性B*I(_)和B*(g)得出B*J(g) B*J(B*J(g)) B*J(B*J(g))=B*J(g)最后等式得出B*I(g)是定點(diǎn)的。我們證明了引理的(ⅱ)。
為了證明(ⅲ),首先注意到包含 由(ⅰ)成立。因此,集中到另一包含 ,采用以下定點(diǎn)歸納原理(歸于David Park) 回憶F(X) X的集合X稱為X的預(yù)固定點(diǎn),我們可以將這表示成“pY.F(Y)是F的最小預(yù)定點(diǎn),因此,如果X是F的另一預(yù)定點(diǎn),則它必須包括最小值”。我們必須證明g∪BJ(B*J(g)) B*J(g)
以證明(ⅲ)。注意到通過定義g B*I(g),得到進(jìn)一步簡(jiǎn)化,我們僅需要證明 (如果集合x和y包含在第三集合z中,那么z中還包含最小上界x∪y。)現(xiàn)在假定s是BJ(B*I(g))\g中的某個(gè)狀態(tài)。然后通過BJ(_)的定義,以下成立s′∈S.s=ls′ ,且 s’’∈B”(g) (3)為了檢查s是否在B*I(g)中,必須證明以下成立s’∈S.s=ls’ ,且s’’’∈B*l(g) (4)我們證明了對(duì)所有滿足s=Is’,e,o的s’,存在s’’’,使得 且s’’’∈B*I(g)?,F(xiàn)在,如果s’使得s=Is’,我們可以使得s’’’=s’’,(4)然后從(3)開始,至此結(jié)束。如果s’不滿足s=Is’,但是s≠Is’,我們?nèi)缦吕^續(xù)。定義 如下 從該定義中可以得出, 和 ,即通過(3),存在e,o和 ,使得 和s”∈B*l(g)。因?yàn)镮是相關(guān)性閉合的,并且 ,得出對(duì)所有的i∈I, 因此,對(duì)所有i∈I,存在s’’’使得 。因?yàn)锽*I(g)是I排序的,得出s’’’∈B*I(g),證明(4)。
應(yīng)當(dāng)注意,本發(fā)明可以實(shí)現(xiàn)為計(jì)算機(jī)程序或者計(jì)算機(jī)程序的一部分,該程序可以載入計(jì)算機(jī)的內(nèi)存并執(zhí)行。計(jì)算機(jī)程序可以利用任何數(shù)據(jù)存儲(chǔ)或者數(shù)據(jù)傳輸介質(zhì)分發(fā)。存儲(chǔ)介質(zhì)可以是磁帶、光盤、激光唱盤(CD或CD-ROM)、小盤、硬盤、軟盤、鐵電存儲(chǔ)器、電可擦除可編程只讀存儲(chǔ)器(EEPROM)、閃存、EPROM、只讀存儲(chǔ)器(ROM)、靜態(tài)隨機(jī)存儲(chǔ)存儲(chǔ)器(SRAM)、動(dòng)態(tài)隨機(jī)存儲(chǔ)存儲(chǔ)器(DRAM)、鐵電存儲(chǔ)器、光存儲(chǔ)器、電耦合設(shè)備、智能卡等等。傳輸媒介可以是網(wǎng)絡(luò),例如局域網(wǎng)(LAN)、廣域網(wǎng)(WAN)或其任意組合,例如Internet。網(wǎng)絡(luò)可以包括有線或無線通信鏈路。通過網(wǎng)絡(luò),本發(fā)明的軟件實(shí)施例(即程序)或其一部分可以借助網(wǎng)絡(luò)傳送程序來分布。
權(quán)利要求
1.一種分析基于狀態(tài)的系統(tǒng)模型的方法,前述系統(tǒng)模型包括一組自動(dòng)機(jī)(M1,…Mn),每個(gè)所述自動(dòng)機(jī)包括至少一個(gè)可能的狀態(tài)(pS1Mi,…,pSkMi),在任一時(shí)刻,每個(gè)自動(dòng)機(jī)都處于其組成狀態(tài)之一,所述自動(dòng)機(jī)(M1,…Mn)的動(dòng)態(tài)行為由各自動(dòng)機(jī)(M1,…Mn)的所述狀態(tài)之間的預(yù)定轉(zhuǎn)移,以及所述自動(dòng)機(jī)(M1,…Mn)之間的相關(guān)性(D)來定義,啟動(dòng)所述自動(dòng)機(jī)(M1,…Mn)的至少一個(gè)自動(dòng)機(jī)狀態(tài)的初始集合(F),啟動(dòng)表示自動(dòng)機(jī)(MI)子集狀態(tài)條件的自動(dòng)機(jī)狀態(tài)目標(biāo)集合(A),重復(fù)以下步驟,直至分析得到肯定終止和/或如果自動(dòng)機(jī)(MI)的子集包括所有所述自動(dòng)機(jī)(M1,…Mn),為目標(biāo)集(A)擴(kuò)展一組狀態(tài),這些狀態(tài)通過轉(zhuǎn)移可以到達(dá)前一目標(biāo)集(A),而與沒有包含在(MI)中的自動(dòng)機(jī)無關(guān),如果(A)包括初始狀態(tài)集(F)中至少一個(gè)自動(dòng)機(jī)狀態(tài),則肯定終止,否則為自動(dòng)機(jī)(MI)的子集擴(kuò)展自動(dòng)機(jī)(M1,…Mn)的至少一個(gè)子集。
2.根據(jù)權(quán)利要求1的基于狀態(tài)的系統(tǒng)模型的分析方法,其中為自動(dòng)機(jī)(MI)的擴(kuò)展自動(dòng)機(jī)(M1,…Mn)的至少一個(gè)子集的步驟包括為自動(dòng)機(jī)(MI)的擴(kuò)展自動(dòng)機(jī)的至少一個(gè)子集,前一(MI)與該子集相關(guān)。
3.根據(jù)權(quán)利要求2的基于狀態(tài)的系統(tǒng)模型的分析方法,其中如果在為目標(biāo)集(A)擴(kuò)展一組狀態(tài)的所述步驟之后,(MI)中的自動(dòng)機(jī)都與(MI)之外的自動(dòng)機(jī)沒有關(guān)系,則分析否定終止,前述狀態(tài)組可以達(dá)到前一目標(biāo)集(A),而與沒有包含在(MI)中的自動(dòng)機(jī)無關(guān)。
4.根據(jù)權(quán)利要求2-3的基于狀態(tài)的系統(tǒng)模型的分析方法,其中如果在為目標(biāo)集(A)擴(kuò)展一組狀態(tài)的所述步驟之后,目標(biāo)集(A)完全包含以前考慮的已經(jīng)得到肯定終止的目標(biāo)集(B),則分析肯定終止,前述狀態(tài)組可以達(dá)到前一目標(biāo)集(A),而與沒有包含在(MI)中的自動(dòng)機(jī)無關(guān)。
5.根據(jù)權(quán)利要求1-4的基于狀態(tài)的系統(tǒng)模型的分析方法,其中如果在為目標(biāo)集(A)擴(kuò)展一組狀態(tài)的所述步驟之后,(MI)中的自動(dòng)機(jī)都與(MI)之外的自動(dòng)機(jī)沒有關(guān)系,則向用戶提供一種可視或者可聞指示,前述狀態(tài)組可以達(dá)到前一目標(biāo)集(A),而與沒有包含在(MI)中的自動(dòng)機(jī)無關(guān)。
6.根據(jù)權(quán)利要求1-5的基于狀態(tài)的系統(tǒng)模型的分析方法,其中分析應(yīng)用戶請(qǐng)求而終止。
7.根據(jù)權(quán)利要求1-6的基于狀態(tài)的系統(tǒng)模型的分析方法,其中相關(guān)性(D)表示為定向圖。
8.根據(jù)權(quán)利要求1-7的基于狀態(tài)的系統(tǒng)模型的分析方法,其中通過表示相關(guān)性的定向圖的寬度優(yōu)先遍歷來確定自動(dòng)機(jī)(MI)的增加集合。
9.根據(jù)權(quán)利要求1-8的基于狀態(tài)的系統(tǒng)模型的分析方法,其中將自動(dòng)機(jī)狀態(tài)集表示成減序二進(jìn)制判決圖(ROBDD),對(duì)這些狀態(tài)的操作實(shí)現(xiàn)成對(duì)減序二進(jìn)制判決圖(ROBDD)的有效操作。
10.根據(jù)權(quán)利要求1-9的基于狀態(tài)的系統(tǒng)模型的分析方法,其中轉(zhuǎn)移表示成減序二進(jìn)制判決圖(ROBDD)的分區(qū)轉(zhuǎn)移關(guān)系。
11.根據(jù)權(quán)利要求1-10的基于狀態(tài)的系統(tǒng)模型的分析方法,其中狀態(tài)(A)集合由重復(fù)的定點(diǎn)遞歸來動(dòng)態(tài)計(jì)算。
12.一種分析基于狀態(tài)的系統(tǒng)模型的方法,前述系統(tǒng)模型包括一組自動(dòng)機(jī)(M1,…Mn),每個(gè)所述自動(dòng)機(jī)包括至少一個(gè)可能的狀態(tài)(pS1Mi,…,pSkMi),在任一時(shí)刻,每個(gè)自動(dòng)機(jī)都處于其組成狀態(tài)之一,所述自動(dòng)機(jī)(M1,…Mn)的動(dòng)態(tài)行為由每一自動(dòng)機(jī)(M1,…Mn)的所述狀態(tài)之間的預(yù)定轉(zhuǎn)移和所述自動(dòng)機(jī)(M1,…Mn)之間的相關(guān)性(D)定義,對(duì)每一自動(dòng)機(jī)(M1,…,Mi,…,Mn)而言,初始化自動(dòng)機(jī)(MI)的一個(gè)子集,包括目前分析的自動(dòng)機(jī)(Mi),初始化一組(Ai)活躍狀態(tài)(Ai),所述活躍狀態(tài)是當(dāng)前分析的自動(dòng)機(jī)(Mi)的自動(dòng)機(jī)狀態(tài),這些狀態(tài)獨(dú)立于其它自動(dòng)機(jī),可以改變到所述自動(dòng)機(jī)的其它可能狀態(tài)(pS1Mi,…,pSkMi),重復(fù)以下步驟,直至分析終止,或者(MI)包括所有自動(dòng)機(jī)(M1,…,Mn),為該組活躍狀態(tài)(Ai)擴(kuò)展一組狀態(tài),這組狀態(tài)通過轉(zhuǎn)移可以到達(dá)活躍狀態(tài)(Ai)的前一集合,而與沒有包含在(MI)中的自動(dòng)機(jī)無關(guān),和/或一組狀態(tài),它們通過轉(zhuǎn)移可以改變(Mi)的狀態(tài),而與沒有包含在(MI)中的自動(dòng)機(jī)無關(guān),如果(Ai)包括所述自動(dòng)機(jī)(Mi)中的所有可能自動(dòng)機(jī)狀態(tài),則分析肯定終止,否則將(MI)至少擴(kuò)展自動(dòng)機(jī)的某個(gè)子集。
13.根據(jù)權(quán)利要求11的基于狀態(tài)的系統(tǒng)模型的分析方法,其中為(MI)擴(kuò)展自動(dòng)機(jī)的至少一個(gè)子集的步驟包括為(MI)擴(kuò)展自動(dòng)機(jī)的至少一個(gè)子集,前一(MI)與該子集相關(guān)。
14.根據(jù)權(quán)利要求12-13的基于狀態(tài)的系統(tǒng)模型的分析方法,其中如果在為活躍狀態(tài)集(Ai)擴(kuò)展一組狀態(tài)的所述步驟之后,(MI)中的自動(dòng)機(jī)都與(MI)之外的自動(dòng)機(jī)沒有關(guān)系,則分析否定終止,前述狀態(tài)組可以通過轉(zhuǎn)移達(dá)到活躍狀態(tài)(Ai)的前一集合,和/或一組狀態(tài),它們通過轉(zhuǎn)移可以改變(Mi)的狀態(tài),而與沒有包含在(MI)中的自動(dòng)機(jī)無關(guān)。
15.根據(jù)權(quán)利要求13的基于狀態(tài)的系統(tǒng)模型的分析方法,其中如果在為活躍狀態(tài)集(Ai)擴(kuò)展一組狀態(tài)的所述步驟之后,活躍狀態(tài)集(Ai)完全包含以前考慮的已經(jīng)得到肯定終止的活躍狀態(tài)集(Aj),則分析肯定終止,前述狀態(tài)組可以通過轉(zhuǎn)移達(dá)到活躍狀態(tài)(Ai)的前一集合,和/或一組狀態(tài),它們通過轉(zhuǎn)移可以改變(Mi)的狀態(tài),而與沒有包含在(MI)中的自動(dòng)機(jī)無關(guān)。
16.根據(jù)權(quán)利要求12-15的基于狀態(tài)的系統(tǒng)模型的分析方法,其中相關(guān)性(D)表示為定向圖。
17.根據(jù)權(quán)利要求12-16的基于狀態(tài)的系統(tǒng)模型的分析方法,其中通過表示相關(guān)性的定向圖的寬度優(yōu)先遍歷來確定自動(dòng)機(jī)(MI)的增加集合。
18.根據(jù)權(quán)利要求12-17的基于狀態(tài)的系統(tǒng)模型的分析方法,其中將自動(dòng)機(jī)狀態(tài)集表示成減序二進(jìn)制判決圖(ROBDD),對(duì)這些狀態(tài)的操作實(shí)現(xiàn)成對(duì)減序二進(jìn)制判決圖(ROBDD)的有效操作。
19.根據(jù)權(quán)利要求12-18的基于狀態(tài)的系統(tǒng)模型的分析方法,其中轉(zhuǎn)移表示成減序二進(jìn)制判決圖(ROBDD)的分區(qū)轉(zhuǎn)移關(guān)系。
20.根據(jù)權(quán)利要求12-19的基于狀態(tài)的系統(tǒng)模型的分析方法,其中狀態(tài)(A)集合由重復(fù)的定點(diǎn)遞歸來動(dòng)態(tài)計(jì)算。
21.根據(jù)權(quán)利要求12-20的基于狀態(tài)的系統(tǒng)模型的分析方法,其中為每個(gè)自動(dòng)機(jī)(Mi)確定一組潛在的死自動(dòng)機(jī)狀態(tài)(Adi)作為可能的自動(dòng)機(jī)狀態(tài),這些狀態(tài)不在活躍自動(dòng)機(jī)狀態(tài)(Ai)的確定集合中。
22.根據(jù)權(quán)利要求21的基于狀態(tài)的系統(tǒng)模型的分析方法,其中該方法還包括以下步驟具有潛在死自動(dòng)機(jī)狀態(tài)(Adi)的每個(gè)自動(dòng)機(jī)(MI)初始化所述自動(dòng)機(jī)(M1,…,Mn)的自動(dòng)機(jī)狀態(tài)的初始集合(F),初始化表示自動(dòng)機(jī)(M2)的潛在死自動(dòng)機(jī)狀態(tài)的自動(dòng)機(jī)狀態(tài)(Adi)的目標(biāo)集,以及重復(fù)以下步驟,直至分析終止和/或如果自動(dòng)機(jī)(MI)的子集包括所有所述自動(dòng)機(jī)(M1,…,Mn),將目標(biāo)集(Adi)擴(kuò)展一組狀態(tài),這些狀態(tài)通過遷移可以到達(dá)前一目標(biāo)集(Adi),而與沒有包含在(MI)中的自動(dòng)機(jī)無關(guān),如果(Adi)至少包括初始狀態(tài)集(F)中的至少一個(gè)狀態(tài),則肯定終止,否則將自動(dòng)機(jī)(MI)的該子集擴(kuò)展至少自動(dòng)機(jī)(M1,…,Mn)的某個(gè)子集。
23.根據(jù)權(quán)利要求22的基于狀態(tài)的系統(tǒng)模型的分析方法,其中為(MI)擴(kuò)展自動(dòng)機(jī)(M1,…Mn)的至少一個(gè)子集的步驟包括為(MI)擴(kuò)展自動(dòng)機(jī)的至少一個(gè)子集,前一(MI)與該子集相關(guān)。
24.根據(jù)權(quán)利要求22或23的基于狀態(tài)的系統(tǒng)模型的分析方法,其中如果在為目標(biāo)集(Adi)擴(kuò)展一組狀態(tài)的所述步驟之后,(MI)中的自動(dòng)機(jī)都與(MI)之外的自動(dòng)機(jī)沒有關(guān)系,則分析否定終止,前述狀態(tài)組可以達(dá)到前一目標(biāo)集(Adi),而與沒有包含在(MI)中的自動(dòng)機(jī)無關(guān)。
25.根據(jù)權(quán)利要求22或23的基于狀態(tài)的系統(tǒng)模型的分析方法,其中如果在為目標(biāo)集(Adi)擴(kuò)展一組狀態(tài)的所述步驟之后,目標(biāo)集(Adi)完全包含以前考慮的已經(jīng)得到肯定終止的目標(biāo)集(Adj),則分析肯定終止,前述狀態(tài)組可以達(dá)到前一目標(biāo)集(Adi),而與沒有包含在(MI)中的自動(dòng)機(jī)無關(guān)。
26.根據(jù)權(quán)利要求22-24的基于狀態(tài)的系統(tǒng)模型的分析方法,其中如果在為目標(biāo)集(Adi)擴(kuò)展一組狀態(tài)的所述步驟之后,(MI)中的自動(dòng)機(jī)都與(MI)之外的自動(dòng)機(jī)沒有關(guān)系,則向用戶提供一種可視或者可聞指示,前述狀態(tài)組可以達(dá)到前一目標(biāo)集(Adi),而與沒有包含在(MI)中的自動(dòng)機(jī)無關(guān)。
27.根據(jù)權(quán)利要求22-26的基于狀態(tài)的系統(tǒng)模型的分析方法,其中相關(guān)性(D)表示為定向圖。
28.根據(jù)權(quán)利要求22-27的基于狀態(tài)的系統(tǒng)模型的分析方法,其中通過表示相關(guān)性的定向圖的寬度優(yōu)先遍歷來確定自動(dòng)機(jī)(MI)的增加集合。
29.根據(jù)權(quán)利要求22-28的基于狀態(tài)的系統(tǒng)模型的分析方法,其中將自動(dòng)機(jī)狀態(tài)集表示成減序二進(jìn)制判決圖(ROBDD),對(duì)這些狀態(tài)的操作實(shí)現(xiàn)成對(duì)減序二進(jìn)制判決圖(ROBDD)的有效操作。
30.根據(jù)權(quán)利要求22-29的基于狀態(tài)的系統(tǒng)模型的分析方法,其中轉(zhuǎn)移表示成減序二進(jìn)制判決圖(ROBDD)的分區(qū)轉(zhuǎn)移關(guān)系。
31.根據(jù)權(quán)利要求22-30的基于狀態(tài)的系統(tǒng)模型的分析方法,其中狀態(tài)(Adi)集合由重復(fù)的定點(diǎn)遞歸來動(dòng)態(tài)計(jì)算。
32.一種分析基于狀態(tài)的系統(tǒng)模型的方法,前述系統(tǒng)模型包括一組自動(dòng)機(jī)(M1,…Mn),每個(gè)所述自動(dòng)機(jī)包括至少一個(gè)可能的狀態(tài)(pS1Mi,…,pSkMi),在任一時(shí)刻,每個(gè)自動(dòng)機(jī)都處于其組成狀態(tài)之一,所述自動(dòng)機(jī)(M1,…Mn)的動(dòng)態(tài)行為由各自動(dòng)機(jī)(M1,…Mn)的所述狀態(tài)之間的預(yù)定轉(zhuǎn)移,以及所述自動(dòng)機(jī)(M1,…Mn)之間的相關(guān)性(D)來定義,為至少一個(gè)自動(dòng)機(jī)(Mi)判定至少一個(gè),最好是全部,潛在的死自動(dòng)機(jī)狀態(tài)(Adi),在所述自動(dòng)機(jī)(Mi)處于所述自動(dòng)機(jī)狀態(tài)(Adi)中任意一個(gè)時(shí),這些狀態(tài)將保持在同一死自動(dòng)機(jī)狀態(tài)(Adi)中,與可能的外部事件無關(guān),具有潛在死自動(dòng)機(jī)狀態(tài)(Adi)的每個(gè)自動(dòng)機(jī)(MI)初始化所述自動(dòng)機(jī)(M1,…,Mn)的自動(dòng)機(jī)狀態(tài)的初始集合(F),初始化表示自動(dòng)機(jī)(MI)的潛在死自動(dòng)機(jī)狀態(tài)的自動(dòng)機(jī)狀態(tài)(Adi)的目標(biāo)集,以及重復(fù)以下步驟,直至分析終止和/或如果自動(dòng)機(jī)(MI)的子集包括所有所述自動(dòng)機(jī)(M1,…,Mn),將目標(biāo)集(Adi)擴(kuò)展一組狀態(tài),這些狀態(tài)通過遷移可以到達(dá)前一目標(biāo)集(Adi),而與沒有包含在(MI)中的自動(dòng)機(jī)無關(guān),如果(Adi)至少包括初始狀態(tài)集(F)中的至少一個(gè)狀態(tài),則肯定終止,否則將自動(dòng)機(jī)(MI)的該子集擴(kuò)展至少自動(dòng)機(jī)(M1,…,Mn)的某個(gè)子集。
33.根據(jù)權(quán)利要求32的基于狀態(tài)的系統(tǒng)模型的分析方法,其中為(MI)擴(kuò)展自動(dòng)機(jī)(M1,…Mn)的至少一個(gè)子集的步驟包括為(MI)擴(kuò)展自動(dòng)機(jī)的至少一個(gè)子集,前一(MI)與該子集相關(guān)。
34.根據(jù)權(quán)利要求33的基于狀態(tài)的系統(tǒng)模型的分析方法,其中如果在為目標(biāo)集(Adi)擴(kuò)展一組狀態(tài)的所述步驟之后,(MI)中的自動(dòng)機(jī)都與(MI)之外的自動(dòng)機(jī)沒有關(guān)系,則分析否定終止,前述狀態(tài)組可以達(dá)到前一目標(biāo)集(Adi),而與沒有包含在(MI)中的自動(dòng)機(jī)無關(guān)。
35.根據(jù)權(quán)利要求33的基于狀態(tài)的系統(tǒng)模型的分析方法,其中如果在為目標(biāo)集(Adi)擴(kuò)展一組狀態(tài)的所述步驟之后,目標(biāo)集(Adi)完全包含以前考慮的已經(jīng)得到肯定終止的目標(biāo)集(Adj),則分析肯定終止,前述狀態(tài)組可以達(dá)到前一目標(biāo)集(Adi),而與沒有包含在(MI)中的自動(dòng)機(jī)無關(guān)。
36.根據(jù)權(quán)利要求32-35的基于狀態(tài)的系統(tǒng)模型的分析方法,其中相關(guān)性(D)表示為定向圖。
37.根據(jù)權(quán)利要求32-36的基于狀態(tài)的系統(tǒng)模型的分析方法,其中通過表示相關(guān)性的定向圖的寬度優(yōu)先遍歷來確定自動(dòng)機(jī)(MI)的增加集合。
38.根據(jù)權(quán)利要求32-37的基于狀態(tài)的系統(tǒng)模型的分析方法,其中將自動(dòng)機(jī)狀態(tài)集表示成減序二進(jìn)制判決圖(ROBDD),對(duì)這些狀態(tài)的操作實(shí)現(xiàn)成對(duì)減序二進(jìn)制判決圖(ROBDD)的有效操作。
39.根據(jù)權(quán)利要求32-38的基于狀態(tài)的系統(tǒng)模型的分析方法,其中轉(zhuǎn)移表示成減序二進(jìn)制判決圖(ROBDD)的分區(qū)轉(zhuǎn)移關(guān)系。
40.根據(jù)權(quán)利要求34-39的基于狀態(tài)的系統(tǒng)模型的分析方法,其中狀態(tài)(Adi)集合由重復(fù)的定點(diǎn)遞歸來動(dòng)態(tài)計(jì)算。
41.一種分析基于狀態(tài)的系統(tǒng)模型的方法,前述系統(tǒng)模型包括一組自動(dòng)機(jī)(M1,…Mn),每個(gè)所述自動(dòng)機(jī)包括至少一個(gè)可能的狀態(tài)(pS1Mi,…,pSkMi),在任一時(shí)刻,每個(gè)自動(dòng)機(jī)都處于其組成狀態(tài)之一,所述自動(dòng)機(jī)(M1,…Mn)的動(dòng)態(tài)行為由各自動(dòng)機(jī)(M1,…Mn)的所述狀態(tài)之間的預(yù)定轉(zhuǎn)移,以及所述自動(dòng)機(jī)(M1,…Mn)之間的相關(guān)性(D)來定義,考慮定義良好的方法B,針對(duì)給定自動(dòng)機(jī)集合(MI)的轉(zhuǎn)移來擴(kuò)展自動(dòng)機(jī)集合,其中這種方法B是定義良好的,只要一旦B應(yīng)用于自動(dòng)機(jī)集合(MI)以擴(kuò)展包含另一自動(dòng)機(jī)狀態(tài)集合Y的自動(dòng)機(jī)狀態(tài)集合X,所述集合X的擴(kuò)展包含了將B針對(duì)(MI)應(yīng)用于所述集合Y上得到的擴(kuò)展,以及一旦(MI)和(MJ)是自動(dòng)機(jī)集合,(MJ)至少包含(MI)的自動(dòng)機(jī),則將B針對(duì)(MJ)應(yīng)用于自動(dòng)機(jī)狀態(tài)集合X上得到的擴(kuò)展至少包含將B針對(duì)(MI)應(yīng)用于所述集合X上得到的擴(kuò)展,初始化所述自動(dòng)機(jī)(M1,…,Mn)的自動(dòng)機(jī)狀態(tài)的初始集合(F),初始化表示自動(dòng)機(jī)(MI)的子集狀態(tài)情況的自動(dòng)機(jī)狀態(tài)(A)的目標(biāo)集,以及重復(fù)以下步驟,直至分析終止或(MI)包括所有自動(dòng)機(jī)(M1,…,Mn),(a)至少一次在(MI)上利用所述方法B擴(kuò)展目標(biāo)集(A),最好一直到目標(biāo)集(A)與前一(A)相同,(b)將(MI)擴(kuò)展自動(dòng)機(jī)的某個(gè)子集。
42.根據(jù)權(quán)利要求41的基于狀態(tài)的系統(tǒng)模型的分析方法,其中在至少一次在(MI)上利用所述方法B擴(kuò)展目標(biāo)集(A),最好一直到目標(biāo)集(A)與前一(A)相同的所述步驟之后,如果目標(biāo)集(A)至少包含(F)中的一個(gè)狀態(tài),則分析終止。
43.根據(jù)權(quán)利要求41或42的基于狀態(tài)的系統(tǒng)模型的分析方法,其中在至少一次在(MI)上利用所述方法B擴(kuò)展目標(biāo)集(A),最好一直到目標(biāo)集(A)與前一(A)相同的所述步驟之后,如果目標(biāo)集(A)包含所有自動(dòng)機(jī)狀態(tài),則分析終止。
44.根據(jù)權(quán)利要求42-43的基于狀態(tài)的系統(tǒng)模型的分析方法,其中在至少一次在(MI)上利用所述方法B擴(kuò)展目標(biāo)集(A),最好一直到目標(biāo)集(A)與前一(A)相同的所述步驟之后,如果(MI)中的自動(dòng)機(jī)都與(MI)之外的自動(dòng)機(jī)沒有關(guān)系,則分析終止。
45.根據(jù)權(quán)利要求41-44的基于狀態(tài)的系統(tǒng)模型的分析方法,其中在(MI)上利用所述方法B擴(kuò)展目標(biāo)集(A)的所述步驟之后,如果目標(biāo)集(A)完全包含以前考慮的已經(jīng)得到肯定終止的目標(biāo)集(B),則分析肯定終止。
46.根據(jù)權(quán)利要求42-45的基于狀態(tài)的系統(tǒng)模型的分析方法,其中在至少一次在(MI)上利用所述方法B擴(kuò)展目標(biāo)集(A),最好一直到目標(biāo)集(A)與前一(A)相同的所述步驟中的擴(kuò)展受限于一組自動(dòng)機(jī),前一(MI)與該自動(dòng)機(jī)相關(guān)。
47.執(zhí)行按照權(quán)利要求1-46的方法的計(jì)算機(jī)。
48.其內(nèi)容導(dǎo)致計(jì)算機(jī)執(zhí)行按照權(quán)利要求1-47的方法的計(jì)算機(jī)可讀介質(zhì)。
全文摘要
本發(fā)明涉及一種分析基于狀態(tài)的系統(tǒng)模型的方法,前述系統(tǒng)模型包括一組自動(dòng)機(jī)(M1,…Mn),每個(gè)所述自動(dòng)機(jī)包括至少一個(gè)可能的狀態(tài)(pS1Mi,…,pSkMi),在任一時(shí)刻,每個(gè)自動(dòng)機(jī)都處于其組成狀態(tài)之一,所述自動(dòng)機(jī)(M1,…Mn)的動(dòng)態(tài)行為由各自動(dòng)機(jī)(M1,…Mn)的所述狀態(tài)之間的預(yù)定轉(zhuǎn)移,以及所述自動(dòng)機(jī)(M1,…Mn)之間的相關(guān)性(D)來定義。本發(fā)明的許多重要優(yōu)點(diǎn)之一是,許多實(shí)際的基于狀態(tài)的系統(tǒng)模型的分析可以不需要評(píng)估系統(tǒng)模型中的數(shù)量巨大的自動(dòng)機(jī)。
文檔編號(hào)G06F11/36GK1295686SQ9980455
公開日2001年5月16日 申請(qǐng)日期1999年3月26日 優(yōu)先權(quán)日1998年3月27日
發(fā)明者亨里克·里爾伯格, 亨里克·豪爾加德, 約恩·伯·林德-尼爾森, 亨里克·雷夫·安德森, 金·古德斯特蘭德·拉爾森, 卡爾·杰林·克里斯托福森, 格爾德·伯爾曼 申請(qǐng)人:Iar系統(tǒng)有限公司