專利名稱:基于增量線性規(guī)劃的動態(tài)系統(tǒng)在線增量式快速驗證系統(tǒng)及方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種動態(tài)系統(tǒng)的快速驗證方法,且特別是有關(guān)于一種基于增量線性規(guī)劃的動態(tài)系統(tǒng)在線增量式快速驗證系統(tǒng)及方法。
背景技術(shù):
動態(tài)系統(tǒng)在現(xiàn)代社會中有著越來越廣泛的應(yīng)用,廣泛應(yīng)用于軌道交通、航空航天等領(lǐng)域,并且這些系統(tǒng)對安全性有著極高的要求?;斐勺詣訖C(jī)是一種形式化的動態(tài)系統(tǒng)描述模型。動態(tài)系統(tǒng)的大多數(shù)性質(zhì)包括安全性、活性等都可以歸結(jié)為相應(yīng)混成自動機(jī)的可達(dá)性問題?;斐勺詣訖C(jī)的可達(dá)性分析非常困難,即使是它的子集線性混成自動機(jī)的可達(dá)性都是不可判定的?,F(xiàn)有的混成自動機(jī)可達(dá)性分析方法主要有兩種:一是符號模型檢驗(SymbolicModel Checking), 它的主要思想是采用諸如多面體計算的方法來處理整個狀態(tài)空間;另一個是有界模型檢驗,它的主要思想是將有界可達(dá)性問題轉(zhuǎn)化為由線性約束和命題變元的布爾組合構(gòu)成的可滿足性問題,然后用相應(yīng)的SMT求解器求解。上述兩種方法要對整個或者有限步數(shù)內(nèi)的全部狀態(tài)空間,所以他們都面對著狀態(tài)空間爆炸的問題,這嚴(yán)重限制了他們能夠求解的問題規(guī)模,使得他們無法應(yīng)用于工業(yè)級的需求。此前,業(yè)界又提出了一種基于線性規(guī)劃的線性混成自動機(jī)可達(dá)性分析方法,該方法通過遍歷一定長度內(nèi)到達(dá)目標(biāo)節(jié)點的所有路徑,驗證每一條路徑的可達(dá)性從而得到目標(biāo)節(jié)點是否可達(dá)。該方法顯著降低了每次求解的問題規(guī)模,大大提高了求解效率和問題規(guī)模。但是這種方法并不能滿足動態(tài)系統(tǒng)的實時驗證需求。
發(fā)明內(nèi)容
本發(fā)明目的在于提供一種更加高效的持續(xù)驗證系統(tǒng)方法、以滿足動態(tài)系統(tǒng)的實時快速驗證。為達(dá)成上述目的,本發(fā)明首先提出一種基于增量線性規(guī)劃的動態(tài)系統(tǒng)在線增量式快速驗證系統(tǒng),包括:問題模型加載模塊、求解模型修改模塊和模型復(fù)用求解模塊;其中,問題模型加載模塊輸入問題模型文件,并得到新的問題模型,求解模型修改模塊根據(jù)新的問題模型、原線性規(guī)劃求解模型和編碼規(guī)則修改線性規(guī)劃求解模型,模型復(fù)用求解模塊調(diào)用修改后的線性規(guī)劃求解新的問題模型,并給出求解結(jié)果。其中,動態(tài)系統(tǒng)的問題模型文件包括單個自動機(jī)文件和動態(tài)系統(tǒng)模型文件。其中,問題模型加載模塊得到新的問題模型的步驟具體如下:先判斷是否為初次求解,若為初次求解,則首先創(chuàng)建Vector容器存儲模型內(nèi)容,其中元素為單個自動機(jī)文件信息,包括文件地址、路徑和參數(shù)集;若不是初次求解,則在加載問題模型的同時,查看Vector容器中是否已存在相應(yīng)的自動機(jī),從而得到問題模型的修改策略,根據(jù)標(biāo)記結(jié)果加載新加入的自動機(jī),并修改Vector容器的問題模型,得新的問題模型。
其中,求解模型修改模塊修改線性規(guī)劃求解模型的具體步驟如下:先判斷是否為初次求解,若為初次求解,需要創(chuàng)建線性規(guī)劃求解模型并將問題模型編碼為線性規(guī)劃約束集;若不是初次求解,則根據(jù)已經(jīng)得到的問題模型修改策略修改求解模型,從而得到與新的問題模型對應(yīng)的求解模型。
其中,模型復(fù)用求解模塊求解新的問題模型的具體步驟如下:設(shè)置模型復(fù)用求解參數(shù),使底層線性規(guī)劃求解器可以復(fù)用上次求解結(jié)果,調(diào)用復(fù)用求解器,返回求解結(jié)果。
為達(dá)上述目的,本發(fā)明另提出一種動態(tài)系統(tǒng)在線增量式快速驗證方法,包括下列步驟:
步驟1:加載動態(tài)系統(tǒng)的問題模型;
步驟2:修改原問題模型,得新的問題模型;
步驟3:使用新的問題模型、原線性規(guī)劃求解模型并根據(jù)編碼規(guī)則修改原線性規(guī)劃求解模型,從而得到修改后的線性規(guī)劃求解模型;
步驟4:利用修改后的線性規(guī)劃求解模型求解修改后的問題模型,并給出求解結(jié)果O
進(jìn)一步,步驟I的內(nèi)容具體如下:若為初次求解,則建立Vector容器以存儲模型內(nèi)容;否則,對比中Vector容器的內(nèi)容,標(biāo)記應(yīng)該刪除的自動機(jī)、應(yīng)該添加的自動機(jī)和保持不變的自動機(jī)。
進(jìn)一步,步驟2的內(nèi)容具體如下:具體為根據(jù)標(biāo)記結(jié)果移除應(yīng)該刪除的自動機(jī),力口載新添加的自動機(jī)并加入到Vector容器中。
進(jìn)一步,步驟3的內(nèi)容具體如下:
I)對于已被移除的自動機(jī),則移除其相對應(yīng)的求解模型編碼;同時移除與它相關(guān)的自動機(jī)編碼;
2)對于保持的自動機(jī)模型,則根據(jù)新的路徑和參數(shù)集對其編碼;保留相同路徑段的編碼,刪除原路徑不同部分的編碼,加入新路徑不同部分的編碼;根據(jù)參數(shù)集修改相應(yīng)的編碼;
3)對于新添加的自動機(jī)模型,根據(jù)編碼規(guī)則對其進(jìn)行編碼并加入到求解模型,同時編碼其相關(guān)約束并加入到求解 模型;
進(jìn)一步,步驟4的內(nèi)容具體如下:設(shè)置復(fù)用求解參數(shù),使修改后的求解模型可以使用上次求解結(jié)果;調(diào)用復(fù)用求解器進(jìn)行求解,并給出求解結(jié)果。
本發(fā)明大大提高了動態(tài)系統(tǒng)在線增量式驗證的效率,使該技術(shù)可以應(yīng)用于實際動態(tài)系統(tǒng)的在線驗證。具體來說,本發(fā)明所述具有如下的有益效果:
(I)有效消除了狀態(tài)空間爆炸的影響,求解效率已經(jīng)可求解問題規(guī)模顯著提高。
(2)有效利用了動態(tài)系統(tǒng)實時驗證模型變化有限的特點,利用線性規(guī)劃的求解復(fù)用技術(shù),大大提高了求解效率,很好的滿足了動態(tài)系統(tǒng)的增量式快速驗證。
圖1為本發(fā)明實施例的動態(tài)系統(tǒng)在線增量式快速驗證系統(tǒng)的示意圖。
圖2為本發(fā)明實施例的動態(tài)系統(tǒng)在線增量式快速驗證方法的流程圖。
具體實施例方式為了更了解本發(fā)明的技術(shù)內(nèi)容,特通過具體實施實例并配合所附圖式說明如下。圖1為本發(fā)明實施例的動態(tài)系統(tǒng)在線增量式快速驗證系統(tǒng)的示意圖。如圖1所示,動態(tài)系統(tǒng)在線增量式快速驗證系統(tǒng)包括:問題模型加載模塊、求解模型修改模塊和模型復(fù)用求解 模塊。整個求解過程的開始,進(jìn)入問題模型加載模塊,接收問題模型文件,加載動態(tài)系統(tǒng)的問題模型并得到問題模型的修改策略,從而得到新的問題模型。該模塊輸入為問題模型文件。若為初次求解,則首先創(chuàng)建容器存儲模型內(nèi)容,其中元素為單個自動機(jī)文件信息,包括文件地址、路徑和參數(shù)集;若不是初次求解,則在加載問題模型的同時,查看容器中是否已存在相應(yīng)的自動機(jī),從而得到模型修改策略。根據(jù)標(biāo)記結(jié)果加載新加入的自動機(jī),并修改容器模型。以上得到的模型修改策略指相對于原問題模型,新的問題模型應(yīng)該添加、刪除和保留的自動機(jī)信息。對于每一個保留的自動機(jī),還要求解其路徑的變化,從而確定相應(yīng)編碼約束的添加、刪除和保留。具體規(guī)則是對于新舊路徑的相同部分保留,舊路徑的不同部分標(biāo)記刪除,新路徑的不同部分標(biāo)記添加。求解模型修改模塊使用新的問題模型、原線性規(guī)劃求解模型并根據(jù)編碼規(guī)則修改原線性規(guī)劃求解模型,從而得到新的線性規(guī)劃求解模型。若為初次求解,需要創(chuàng)建線性規(guī)劃求解模型并將問題模型編碼為線性規(guī)劃約束集;若不是初次求解,則根據(jù)已經(jīng)得到的模型修改策略修改求解模型,從而得到與新的問題模型對應(yīng)的求解模型。具體規(guī)則是對于新加入的自動機(jī),對其進(jìn)行編碼并加入約束集;對于保留的自動機(jī)修改其路徑的相應(yīng)約束,并根據(jù)新的參數(shù)集合修改相應(yīng)的約束。模型復(fù)用求解模塊利用線性規(guī)劃的增量求解技術(shù),調(diào)用修改后的線性規(guī)劃求解模型求解新的問題模型,并給出求解結(jié)果。具體為:設(shè)置模型復(fù)用求解參數(shù),使底層線性規(guī)劃求解器可以復(fù)用上次求解結(jié)果。調(diào)用復(fù)用求解器,返回求解結(jié)果。其中,問題模型文件包括單個自動機(jī)文件和動態(tài)系統(tǒng)模型文件。單個自動機(jī)文件采用XML格式定義,描述了完整的線性混成自動機(jī)信息。這些信息有助于重構(gòu)相應(yīng)的自動機(jī)對象;動態(tài)系統(tǒng)模型文件描述了待驗證的動態(tài)系統(tǒng)特性,該文件包括一組該動態(tài)系統(tǒng)所包含的單個自動機(jī)文件地址已經(jīng)相應(yīng)自動機(jī)的待驗證路徑信息。其中,單個自動機(jī)文件地址是指該自動機(jī)文件的存儲路徑,待驗證路徑信息指相應(yīng)自動機(jī)上的一條路徑,對應(yīng)于一個待驗證的狀態(tài)轉(zhuǎn)移軌跡。本發(fā)明另提出一種動態(tài)系統(tǒng)在線增量式快速驗證方法,包括下列步驟,請參考圖2:步驟1:加載動態(tài)系統(tǒng)的問題模型,若為初次求解,則建立Vector容器以存儲模型內(nèi)容;否則,對比中Vector容器的內(nèi)容,標(biāo)記應(yīng)該刪除的自動機(jī)、應(yīng)該添加的自動機(jī)和保持不變的自動機(jī)。步驟2:修改原問題模型,得新的問題模型,根據(jù)標(biāo)記結(jié)果移除應(yīng)該刪除的自動機(jī),加載新添加的自動機(jī)并加入到Vector容器中;步驟3:使用新的問題模型、原線性規(guī)劃求解模型并根據(jù)編碼規(guī)則修改原線性規(guī)劃求解模型,從而得到修改后的線性規(guī)劃求解模型,具體如下:
1)對于已被移除的自動機(jī),則移除其相對應(yīng)的求解模型編碼;同時移除與它相關(guān)的自動機(jī)編碼;
2)對于保持的自動機(jī)模型,則根據(jù)新的路徑和參數(shù)集對其編碼;保留相同路徑段的編碼,刪除原路徑不同部分的編碼,加入新路徑不同部分的編碼;根據(jù)參數(shù)集修改相應(yīng)的編碼;
3)對于新加入的自動機(jī)模型,根據(jù)編碼規(guī)則對其進(jìn)行編碼并加入到求解模型,同時編碼其相關(guān)約束并加入到求解模型。
步驟4:設(shè)置復(fù)用求解參數(shù),使修改后的線性規(guī)劃求解模型可以使用上次求解結(jié)果;調(diào)用復(fù)用求解器進(jìn)行求解,并給出求解結(jié)果。
綜上所述,本發(fā)明所提出的方法和系統(tǒng)首先加載動態(tài)系統(tǒng)的問題模型,然后將其與原問題模型進(jìn)行對比,根據(jù)對比結(jié)果修改原問題模型;然后使用新的問題模型、原線性規(guī)劃求解模型根據(jù)編碼規(guī)則修改原線性規(guī)劃求解模型,從而得到新的線性規(guī)劃求解模型;最后使用線性規(guī)劃的增量求解技術(shù),利用修改后的線性規(guī)劃求解模型求解新的問題模型,并給出求解結(jié)果。該方法在基于線性規(guī)劃的線性混成自動機(jī)可達(dá)性分析方法的基礎(chǔ)上,提出了動態(tài)的問題模型修改策略,并復(fù)用原問題的求解結(jié)果來加速新問題的求解,以達(dá)到動態(tài)系統(tǒng)的在線增量式快速驗證。該方法的主要特點是增量式的模型創(chuàng)建和驗證,顯著提高了問題的求解速度,可以滿足動態(tài)系統(tǒng)的實時性要求。
雖然本發(fā)明已以較佳實施例揭露如上,然其并非用以限定本發(fā)明。本發(fā)明所屬技術(shù)領(lǐng)域中具有通常知識者,在不脫離本發(fā)明的精神和范圍內(nèi),當(dāng)可作各種的更動與潤飾。因此,本發(fā)明的保護(hù)范圍當(dāng)視權(quán)利要求書所界定者為準(zhǔn)。
權(quán)利要求
1.一種基于增量線性規(guī)劃的動態(tài)系統(tǒng)在線增量式快速驗證系統(tǒng),其特征在于,包括:問題模型加載模塊、求解模型修改模塊和模型復(fù)用求解模塊;其中,問題模型加載模塊輸入問題模型文件,并得到新的問題模型,求解模型修改模塊根據(jù)新的問題模型、原線性規(guī)劃求解模型和編碼規(guī)則修改線性規(guī)劃求解模型,模型復(fù)用求解模塊調(diào)用修改后的線性規(guī)劃求解新的問題模型,并給出求解結(jié)果;動態(tài)系統(tǒng)的問題模型文件包括單個自動機(jī)文件和動態(tài)系統(tǒng)模型文件; 其中問題模型加載模塊得到新的問題模型的步驟具體如下: 先判斷是否為初次求解,若為初次求解,則首先創(chuàng)建Vector容器存儲模型內(nèi)容,其中元素為單個自動機(jī)文件信息,包括文件地址、路徑和參數(shù)集;若不是初次求解,則在加載問題模型的同時,查看Vector容器中是否已存在相應(yīng)的自動機(jī),從而得到問題模型的修改策略,根據(jù)標(biāo)記結(jié)果加載新加入的自動機(jī),并修改Vector容器的問題模型,得新的問題模型; 其中求解模型修改模塊修改線性規(guī)劃求解模型的具體步驟如下: 先判斷是否為初次求解,若為初次求解,需要創(chuàng)建線性規(guī)劃求解模型并將問題模型編碼為求解模型;若不是初次求解,則根據(jù)已經(jīng)得到的問題模型修改策略修改求解模型,從而得到與新的問題模型對應(yīng)的求解模型。
2.根據(jù)權(quán)利要求1所述的動態(tài)系統(tǒng)在線增量式快速驗證系統(tǒng),其特征在于,其中模型復(fù)用求解模塊求解新的問題模型的具體步驟如下: 設(shè)置模型復(fù)用求解參數(shù),使底層線性規(guī)劃求解器可以復(fù)用上次求解結(jié)果,調(diào)用復(fù)用求解器,返回求解結(jié)果。
3.一種基于增量線性規(guī)劃的動態(tài)系統(tǒng)在線增量式快速驗證方法,其特征在于,包括下列步驟: 步驟1:加載動態(tài)系統(tǒng)的問題模型; 步驟2:修改原問題模型,得新的問題模型; 步驟3:使用新的問題模型、原線性規(guī)劃求解模型并根據(jù)編碼規(guī)則修改原線性規(guī)劃求解模型,從而得到修改后的線性規(guī)劃求解模型; 步驟4:利用修改后的線性規(guī)劃求解模型求解新的問題模型,并給出求解結(jié)果。
4.根據(jù)權(quán)利要求3所述的動態(tài)系統(tǒng)在線增量式快速驗證方法,其特征在于,步驟I的內(nèi)容具體如下:若為初次求解,則建立Vector容器以存儲模型內(nèi)容;否則,對比中Vector容器的內(nèi)容,標(biāo)記應(yīng)該刪除的自動機(jī)、應(yīng)該添加的自動機(jī)和保持不變的自動機(jī)。
5.根據(jù)權(quán)利要求3所述的基于增量線性規(guī)劃的動態(tài)系統(tǒng)在線增量式快速驗證方法,其特征在于,步驟2的內(nèi)容具體如下:具體為根據(jù)標(biāo)記結(jié)果移除應(yīng)該刪除的自動機(jī),加載新添加的自動機(jī)并加入到Vector容器中。
6.根據(jù)權(quán)利要求3所述的動態(tài)系統(tǒng)在線增量式快速驗證方法,其特征在于,步驟3的內(nèi)容具體如下: 1)對于已被移除的自動機(jī),則移除其相對應(yīng)的求解模型編碼;同時移除與它相關(guān)的自動機(jī)編碼; 2)對于保持的自動機(jī)模型,則根據(jù)新的路徑和參數(shù)集對其編碼;保留相同路徑段的編碼,刪除原路徑不同部分的編碼,加入新路徑不同部分的編碼;根據(jù)參數(shù)集修改相應(yīng)的編碼;3)對于新添加的自動機(jī)模型,根據(jù)編碼規(guī)則對其進(jìn)行編碼并加入到新的求解模型,同時編碼其相關(guān)的同步事件并加入到新的求解模型。
7.根據(jù)權(quán)利要求3所述的基于增量線性規(guī)劃的動態(tài)系統(tǒng)在線增量式快速驗證方法,其特征在于,步驟4的內(nèi)容具體如下: 設(shè)置復(fù)用求解參數(shù) ,使修改后的求解模型可以使用上次求解結(jié)果;調(diào)用復(fù)用求解器進(jìn)行求解,并給出求解結(jié)果。
全文摘要
本發(fā)明提供一種基于增量線性規(guī)劃的動態(tài)系統(tǒng)在線增量式快速驗證系統(tǒng)及方法。所述方法是首先加載動態(tài)系統(tǒng)的問題模型,然后將其與原問題模型進(jìn)行對比,根據(jù)對比結(jié)果修改原問題模型;然后使用新的問題模型、原線性規(guī)劃求解模型根據(jù)編碼規(guī)則修改原線性規(guī)劃求解模型,從而得到修改后的線性規(guī)劃求解模型;最后使用線性規(guī)劃的增量求解技術(shù),利用修改后的線性規(guī)劃求解模型求解新的問題模型,并給出求解結(jié)果。該方法在基于線性規(guī)劃的線性混成自動機(jī)可達(dá)性分析方法的基礎(chǔ)上,提出了動態(tài)的問題模型修改策略,并復(fù)用原問題的求解結(jié)果來加速新問題的求解,以達(dá)到動態(tài)系統(tǒng)的在線增量式快速驗證,顯著提高了問題的求解速度,可以滿足動態(tài)系統(tǒng)驗證的實時性要求。
文檔編號G06F17/50GK103218497SQ201310146928
公開日2013年7月24日 申請日期2013年4月24日 優(yōu)先權(quán)日2013年4月24日
發(fā)明者卜磊, 楊陽, 李宣東 申請人:南京大學(xué)