亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

Msvl線性約束系統(tǒng)及其執(zhí)行方法

文檔序號:6368461閱讀:321來源:國知局
專利名稱:Msvl線性約束系統(tǒng)及其執(zhí)行方法
技術(shù)領(lǐng)域
本發(fā)明屬于計(jì) 算機(jī)應(yīng)用領(lǐng)域,主要涉及形式化建模與約束求解CSP技術(shù)領(lǐng)域,尤其涉及用形式化方法對線性約束進(jìn)行建模與求解,具體是一種框架時序邏輯語言MSVL線性約束系統(tǒng)及其執(zhí)行方法,用于對生產(chǎn)調(diào)度,計(jì)算機(jī)視覺,圖形著色,組合優(yōu)化,嵌入式系統(tǒng)的軟硬件劃分等問題中具有線性約束的系統(tǒng)建模與求解。
背景技術(shù)
約束是指變量之間滿足的一種關(guān)系。它通常是定義于原始變量集合中一些子集的基礎(chǔ)上,并且限制了在該子集中變量的取值范圍。約束以各種形式出現(xiàn)在許多實(shí)際應(yīng)用中,例如,調(diào)度,圖形著色問題,組合優(yōu)化問題,可滿足性問題,計(jì)算機(jī)視覺和嵌入式系統(tǒng)的軟硬件劃分等等。比如說,在圖形著色問題中,假設(shè)有兩種顏色為一個圖形中的3個頂點(diǎn)著色,要求相鄰頂點(diǎn)不能著同一種顏色,這就是一個約束。隨著計(jì)算機(jī)應(yīng)用的不斷發(fā)展,人們借助計(jì)算機(jī)實(shí)現(xiàn)和控制在這些約束的限制下獲得一個可行解,甚至是最優(yōu)解。這種問題就是約束可滿足性問題(Constraint Satisfaction Problems, CSP)。在大部分情況下,求解CSP問題是NP-complete。根據(jù)不同的準(zhǔn)則,可以將約束分為不同的種類,如線性和非線性約束,或者是時間無關(guān)和時間相關(guān)約束。線性約束容易處理,并且應(yīng)用廣泛。而非線性約束很難求解,目前沒有一個統(tǒng)一的算法。求解時間無關(guān)約束的主要方法就是首先在約束邏輯編程(Constraint LogicProgramming,CLP)中將約束建模成相應(yīng)的謂詞,然后調(diào)用各種算法進(jìn)行求解。有許多語言和系統(tǒng)可用于描述這樣的約束,如MiniZinc, 0PL, Simply等等。這些語言對于線性約束的求解幾乎都是使用已有算法進(jìn)行的。一些問題,尤其是具有迭代性質(zhì),并且每次循環(huán)都會做一些小的改變的問題,不能用CLP語言簡潔清晰地進(jìn)行建模。比如一個工廠想要在一年中生產(chǎn)兩種產(chǎn)品,A和B。這兩種產(chǎn)品都需要在一種設(shè)備上進(jìn)行加工,并且所用加工時間不同。由于受到一些環(huán)境因素的影響,設(shè)備連續(xù)工作的時間每天都不同。假設(shè)該時間可以提前計(jì)算出并且儲存在數(shù)組t [365]中,其中365為年生產(chǎn)天數(shù)。生產(chǎn)A和B所獲得的利潤也各不相同。在這些約束的限制下,如何調(diào)度A和B的生產(chǎn)才能獲得最大的利潤?在CLP中求解該問題有兩種方法1.通過引入額外的變量對該問題建模,然后調(diào)用常規(guī)算法求解。用這種方法,每天都需要兩個變量表示A和B的生產(chǎn),這就導(dǎo)致總共需要2*365 = 730個變量。
2.用兩個變量建模A和B每天的生產(chǎn),但是使得同一規(guī)范必須被重復(fù)書寫365次,而每次只需要對t[k] (I SkS 365)的值進(jìn)行修改。很明顯,第一種方法需要的變量個數(shù)較多,第二種方法重復(fù),而且這兩種方法都不夠簡潔明了。對于時間相關(guān)約束,如一架飛機(jī)X在5天內(nèi)只能被調(diào)度不超過18次,并且第二天的調(diào)度安排依賴于當(dāng)天的安排,這種約束在傳統(tǒng)的CLP中很難求解,有時甚至是不能求解的。針對這種約束,人們提出了時序CLP (temporal CLP,TCLP)。其關(guān)鍵思想就是在CLP中引入時序操作符來描述時序結(jié)構(gòu)和時間。具體的實(shí)現(xiàn)是將TCLP語言首先轉(zhuǎn)換成一階語言,如Horn子句。這種轉(zhuǎn)換通過引入時序參數(shù),特殊的關(guān)系和函數(shù)來表示時序的結(jié)構(gòu)。然后用標(biāo)準(zhǔn)的CLP語言執(zhí)行轉(zhuǎn)換后的一階語言。但是現(xiàn)有的TCLP語言主要存在以下的缺陷1.只能建模較簡單的關(guān)系,對于復(fù)雜的時序關(guān)系不能表達(dá),如Tempolog, Temporal Prolog等語言都是基于線性時序邏輯的,不能表達(dá)完全正則性質(zhì),TACLP語言中時序操作符不能夠嵌套;2.有些語言不遵從時序順序,如TACLP語言;3.由于要轉(zhuǎn)換成標(biāo)準(zhǔn)的CLP語言,使得轉(zhuǎn)換后的語言很復(fù)雜,不易處理。為了解決以上這些問題,需要一些新的方法。將約束限制于線性約束以便于簡化問題,線性約束既可以是時間無關(guān)的,也可以是時間相關(guān)的。
框架時序邏輯語言MSVL是一種建模、仿真和驗(yàn)證的時序邏輯編程語言。MSVL是基于投影時序邏輯(Projection Temporal Logic, PTL)的,而命題PTL(PPTL)可以表達(dá)完全正則性質(zhì),也就是說可以表達(dá)更多的時序性質(zhì),故可方便的表達(dá)時間相關(guān)約束。同時,由于MSVL具有一些命令式編程的特點(diǎn),可以更緊湊簡潔地描述重復(fù)結(jié)構(gòu),因此也能更方便地表示時間無關(guān)約束。MSVL已應(yīng)用于工業(yè)中的軟件和硬件的建模、仿真和驗(yàn)證。它是可執(zhí)行的,并且有相應(yīng)的支持工具?,F(xiàn)有的MSVL語言還不能夠描述線性約束,工業(yè)應(yīng)用和客觀需要都急需一種擴(kuò)展的MSVL,能夠給出在MSVL中進(jìn)行線性約束建模和求解的方法,以便更好地求解自然界和工業(yè)技術(shù)領(lǐng)域中的實(shí)際問題。

發(fā)明內(nèi)容
本發(fā)明為克服上述線性約束語言表達(dá)能力不足的缺陷,提出了一種MSVL線性約束系統(tǒng)及其執(zhí)行方法,可用于對實(shí)際問題中線性約束系統(tǒng)進(jìn)行建模和求解,從而使得線性約束的建模更容易,方便,直觀和緊湊,并且能夠表達(dá)更多樣,更復(fù)雜的時序關(guān)系。同時可以更統(tǒng)一,便捷地求解這些線性約束。這些線性約束廣泛存在于調(diào)度,計(jì)算機(jī)視覺,組合優(yōu)化和嵌入系統(tǒng)的軟硬件劃分等問題中。求解線性約束是求解這些問題的關(guān)鍵。本發(fā)明是一種MSVL線性約束系統(tǒng),是針對科學(xué)研究和工業(yè)應(yīng)用中具有線性約束的問題而提出的建模和求解系統(tǒng),該系統(tǒng)包括有約束定義子系統(tǒng)和約束求解子系統(tǒng);約束定義子系統(tǒng)是定義在線性表達(dá)式基礎(chǔ)上的線性約束語句模塊,包括有等詞語句模塊(=),正瞬時賦值語句模塊(^),大于等于語句模塊( > ),小于等于語句模塊(()和其它語句模塊;約束求解子系統(tǒng)包括有用于MSVL程序等價變換的語義等價規(guī)則模塊和用于求解線性約束的狀態(tài)遷移規(guī)則模塊;語義等價規(guī)則模塊又包括有線性表達(dá)式代數(shù)規(guī)則模塊、線性等詞語義等價規(guī)則模塊和線性不等式語義等價規(guī)則模塊;狀態(tài)遷移規(guī)則模塊又包括有全等代替規(guī)則模塊、賦值語句規(guī)則模塊、線性表達(dá)式代替規(guī)則模塊、狀態(tài)框架規(guī)則模塊、線性相關(guān)規(guī)則模塊、強(qiáng)約束規(guī)則模塊、非負(fù)約束規(guī)則模塊、轉(zhuǎn)化規(guī)則模塊、初始可行解規(guī)則模塊和最優(yōu)解規(guī)則模塊;約束定義子系統(tǒng)中的各語句模塊的語法結(jié)構(gòu)都適用于約束求解子系統(tǒng)中的規(guī)則模塊。本發(fā)明也可理解為是一種擴(kuò)展的MSVL系統(tǒng),即在MSVL系統(tǒng)中加入了線性約束。其優(yōu)勢在于既保留了現(xiàn)有MSVL系統(tǒng)的所有優(yōu)點(diǎn),又可方便地求解更多實(shí)際應(yīng)用中的線性約束系統(tǒng)。同時,擴(kuò)展后的MSVL系統(tǒng)既可以用于工業(yè)中軟件和硬件的建模、仿真和驗(yàn)證中,也可以應(yīng)用于調(diào)度,生產(chǎn)規(guī)劃,計(jì)算機(jī)視覺等領(lǐng)域的建模、仿真和驗(yàn)證中。而且,MSVL線性約束系統(tǒng)中約束求解子系統(tǒng)的各個規(guī)則模塊都是根據(jù)約束定義子系統(tǒng)的各種語句模塊的語法結(jié)構(gòu)進(jìn)行應(yīng)用的,使得求解更具有針對性,而且沒有冗余的規(guī)則模塊。
本發(fā)明的實(shí)現(xiàn)還在于,所述線性表達(dá)式和線性約束語句模塊的定義是線性表達(dá)式Ie的定義為le: : = c I X max maxi | guide | On(Ie) | n(le) | Ie^le21 Ie1-Ie21 -(Ie1) | c*le | Ie/c其中,c是常量,x表 示變量,+, *, /分別表示加法、乘法和除法,-既表示二元減法,也表示表達(dá)式值的一元負(fù)操作,On(Ie) (next n)表示從當(dāng)前狀態(tài)開始,向后的第n個狀態(tài)上表達(dá)式是le, n(le) (previous n)表示從當(dāng)前狀態(tài)開始,向前的第n個狀態(tài)上表達(dá)式Ie的值;max,maxl,guide是三個特殊的變量,只能用于求解不等式和最優(yōu)化問題,max用于描述最大目標(biāo)語句(目標(biāo)語句即目標(biāo)函數(shù)),maxl用于在求解初始可行解時,保存原始目標(biāo)表達(dá)式,guide用于在求解過程中,指導(dǎo)變量進(jìn)行交換;在線性表達(dá)式的基礎(chǔ)上,定義線性約束語句模塊,線性約束語句模塊包括有基本線性約束語句模塊和復(fù)合線性約束語句模塊其中,基本線性約束語句模塊的定義為Ie1 = Ie2Iel <= Ie2Ie1S^e2其中,Ie1和Ie2是線性表達(dá)式,線性等詞模塊Ie1 = Ie2表示Ie1和Ie2兩邊相等,起到三個作用賦值,比較,和等式;正瞬時賦值語句模塊岣¢=/ 表示Ie1和Ie2相等,并且Ie1中所有變量的相關(guān)命題都被賦值為true ;小于等于語句模塊Ie1 ( Ie2表示Ie1的值小于或者等于Ie2的值。復(fù)合線性約束語句模塊的定義為
def
Iel w Ie2 = d^lex = Ie2)
rIdefIe1 > Ie2= Ie2 < Iei
def
IelO = Ie2 = OZe1 = Ie2
def
Ze1 := Ie1 = skip a Ze1O = Ie1時序等語句模塊Ie1 ^ Ie2表示在MSVL程序執(zhí)行的整個區(qū)間上Ie1和Ie2 —直相等;大于等于語句模塊Ie1 ^ Ie2表示Ie1的值大于或者等于Ie2的值;下一狀態(tài)等語句模塊leio = Ie2表示在當(dāng)前狀態(tài)上,將Ie2的值計(jì)算出來,然后在下一狀態(tài),將其賦給Ie1 ;單位下一狀態(tài)等語句模塊Ie1: = Ie2限制了下一狀態(tài)等語句在區(qū)間上執(zhí)行的長度為I。本發(fā)明還是一種MSVL線性約束系統(tǒng)執(zhí)行方法,具體步驟包括步驟A首先分析待解問題并提取待解問題中所要求的線性約束;步驟B選擇MSVL中與待解問題相對應(yīng)的線性約束語句模塊,將待解問題建模為MSVL程序M ;步驟C對MSVL程序M所使用語句模塊的語法結(jié)構(gòu)進(jìn)行判斷,在當(dāng)前狀態(tài)上,使用與語法結(jié)構(gòu)相對應(yīng)的語義等價規(guī)則轉(zhuǎn)換待解問題的MSVL程序M的形式,將M化簡為w八q的形式,其中w是不含時序操作符的狀態(tài)程序,q是含有時序操作符的時序程序,A表示“相與,,;步驟D根據(jù)狀態(tài)程序w的結(jié)構(gòu)特征,應(yīng)用狀態(tài)遷移規(guī)則執(zhí)行狀態(tài)程序W,即對狀態(tài)程序w中的線性約束進(jìn)行求解;步驟E狀態(tài)程序w執(zhí)行完畢后,應(yīng)用語義等價規(guī)則對時序程序q進(jìn)行化簡,若時序程序q化簡為終止程序e (e也記作empty),則轉(zhuǎn)入步驟G ;否則,時序程序q化簡為下一狀態(tài)程序Op,轉(zhuǎn)入步驟F ;步驟F時序程序q為下一狀態(tài)程序0p,在整個程序執(zhí)行的區(qū)間上應(yīng)用狀態(tài)間遷移規(guī)則,將下一狀態(tài)程序Op從當(dāng)前狀態(tài)化簡到下一狀態(tài),并且在下一狀態(tài)上重復(fù)步驟C-F執(zhí) 行剩余程序P ;步驟G如果經(jīng)過步驟E后,為終止程序e,則應(yīng)用狀態(tài)間遷移規(guī)則,MSVL線性約束系統(tǒng)程序M執(zhí)行完畢,并給出一個解決待解問題的技術(shù)方案。本發(fā)明中MSVL線性約束系統(tǒng)執(zhí)行方法主要包括MSVL線性約束系統(tǒng)的建模和求解兩個方面。建模過程就是對待解問題,針對性地選擇MSVL線性約束定義子系統(tǒng)中的語句模塊,如線性等詞模塊、大于等于語句模塊以及其它語句模塊,將問題表達(dá)成MSVL程序M。建模完畢后,要對程序M進(jìn)行化簡,以完成其中線性約束的求解。求解過程就是通過約束求解子系統(tǒng)中相應(yīng)的規(guī)則模塊對MSVL程序M進(jìn)行化簡,其中化簡過程包括狀態(tài)化簡和區(qū)間化簡。狀態(tài)化簡是在當(dāng)前狀態(tài)上將程序M化簡為特殊形式w A q,執(zhí)行狀態(tài)程序《,即對等式、不等式和最優(yōu)化問題求解,對時序程序q進(jìn)行化簡;狀態(tài)化簡完成后,區(qū)間化簡針對時序程序q化簡成的形式,選擇在整個區(qū)間上繼續(xù)執(zhí)行剩余程序或者終止程序。本發(fā)明的實(shí)現(xiàn)還在于,步驟B對線性約束系統(tǒng)的建模過程包括步驟BI針對待解問題中所要求的線性約束,選擇等詞語句模塊(=),正瞬時賦值語句模塊(^),大于等于語句模塊(彡),小于等于語句模塊(()和其它語句模塊;步驟B2判斷待解問題是否是最優(yōu)化問題,如果不是,則轉(zhuǎn)入步驟B4;否則,進(jìn)行下一步;步驟B3如果待解問題是最優(yōu)化問題,若想獲得目標(biāo)表達(dá)式Ie的最大值,則將待解問題的目標(biāo)函數(shù)建模為正瞬時賦值語句max若想獲得目標(biāo)表達(dá)式Ie的最小值,則將待解問題的目標(biāo)函數(shù)建模為max ¢= -Ie ;并繼續(xù)下一步;步驟B4判斷待解問題中的線性約束是時間相關(guān)的還是時間無關(guān)的,如果是時間相關(guān),則選擇相應(yīng)的時序操作符,將待解問題中的線性約束建模為時序語句;否則,將待解問題中的線性約束建模為狀態(tài)語句,并和單位長度語句skip或終止語句e相與;并繼續(xù)下
一步;步驟B5對待解問題建模,如果待解問題建模完畢,得到待解問題的MSVL程序,并停止步驟B ;否則,重復(fù)步驟B1-B4。本發(fā)明步驟BI對待解問題針對性選擇語句模塊,為進(jìn)一步組成這些語句模塊做準(zhǔn)備。步驟B3將最優(yōu)化問題的目標(biāo)函數(shù)用正瞬時賦值語句進(jìn)行表達(dá),便于利用已存在的、與正瞬時賦值語句相關(guān)的賦值標(biāo)識符af (max),觸發(fā)相應(yīng)的求解規(guī)則。步驟B4判斷待解問題中的線性約束是時間相關(guān)的還是時間無關(guān)的,以區(qū)別線性約束在區(qū)間上執(zhí)行還是在單個狀態(tài)上執(zhí)行。如果是時間相關(guān)的,則根據(jù)待求解問題的要求,將其建模為不同的形式。例如,若是順序結(jié)構(gòu),則建模為P ;q (chop),若是條件結(jié)構(gòu),則建模為if-then-else,若是循環(huán)結(jié)構(gòu),則建模為while b do,若是并發(fā)結(jié)構(gòu),則建模為p八q或者p| |q,若是投影結(jié)構(gòu),貝Ij建模為(P1,…pm)prj q。否則,將線性約束建模為狀態(tài)語句,并和單位長度語句skip或終止語句e相與。當(dāng)線性約束和單位長度語句skip相與時,表明它在整個區(qū)間上執(zhí)行一個單位長度,當(dāng)線性約束與終止語句e相與時,表明它在當(dāng)前狀態(tài)上結(jié)束。本發(fā)明的實(shí)現(xiàn)還在于,步驟D對線性約束的求解過程包括步驟Dl判斷狀態(tài)程序w的線性約束中賦值標(biāo)識符af(max)是否為真,如果不為真,直接轉(zhuǎn)入步驟D2 ;如果為真,則使用全等代替規(guī)則、賦值語句規(guī)則、線性表達(dá)式代替規(guī)貝1J、強(qiáng)約束規(guī)則、非負(fù)約束規(guī)則、初始可行解規(guī)則和最優(yōu)解規(guī)則執(zhí)行狀態(tài)程序《,得到狀態(tài)程序w的最優(yōu)解,繼續(xù)下一步;步驟D2判斷狀態(tài)程序w的線性約束中是否含有等詞語句模塊或正瞬時賦值語句模塊,如果不含有,直接轉(zhuǎn)入步驟D3 ;如果含有,則使用全等代替規(guī)則、賦值語句規(guī)則、線性表達(dá)式代替規(guī)則和線性相關(guān)規(guī)則執(zhí)行狀態(tài)程序《,獲得狀態(tài)程序w的解,繼續(xù)下一步; 步驟D3判斷狀態(tài)程序w的線性約束中是否含有大于等于語句模塊或小于等于語句模塊,如果不含有,直接轉(zhuǎn)入步驟D4 ;如果含有,則使用全等代替規(guī)則、賦值語句規(guī)則、線性表達(dá)式代替規(guī)則、非負(fù)約束規(guī)則、轉(zhuǎn)化規(guī)則、強(qiáng)約束規(guī)則和最優(yōu)解規(guī)則執(zhí)行狀態(tài)程序《,獲得狀態(tài)程序w的解,繼續(xù)下一步;步驟D4如果狀態(tài)程序w中仍然存在一些變量X不包含在任何線性約束語句模塊中,并且有狀態(tài)框架語句Ibf (x),則使用狀態(tài)框架規(guī)則將變量X在前一狀態(tài)的值賦給X ;步驟D5狀態(tài)程序w執(zhí)行完畢,對線性約束的求解過程結(jié)束,停止步驟D。本發(fā)明將求解線性約束歸結(jié)為求解線性最優(yōu)化問題,等詞或不等式。根據(jù)條件,依次判斷狀態(tài)程序w中線性約束是否是最優(yōu)化問題,等詞或不等式,然后調(diào)用不同的求解規(guī)則進(jìn)行求解。這些求解規(guī)則可以重復(fù)使用,避免了規(guī)則的冗余。本發(fā)明的實(shí)現(xiàn)還在于,步驟Dl使用各規(guī)則對最優(yōu)化問題進(jìn)行求解的過程包括步驟Dll判斷線性約束中是否含有冗余不等式,如果沒有,直接轉(zhuǎn)入下一步;如果有,使用強(qiáng)約束規(guī)則消除狀態(tài)程序w的線性約束中冗余的不等式,繼續(xù)下一步;步驟D12使用全等代替規(guī)則將不等式轉(zhuǎn)變?yōu)榈仁胶头秦?fù)約束;步驟D13判斷轉(zhuǎn)變后的等式左邊和右邊的變量集是否相交,如果不相交,直接轉(zhuǎn)入下一步;如果相交,則使用線性表達(dá)式代替規(guī)則將轉(zhuǎn)變后的等式左邊和右邊的變量集化簡成不相交,繼續(xù)下一步;步驟D14判斷等式中是否所有變量都有非負(fù)約束,如果是,直接轉(zhuǎn)入下一步;如果不是,使用非負(fù)約束規(guī)則限制無非負(fù)約束變量的非負(fù)約束,使所有變量都有非負(fù)約束,繼續(xù)下一步;步驟D15判斷等式中的最小常數(shù)是否小于0,如果不是,直接轉(zhuǎn)入下一步;如果小于0,則使用初始可行解規(guī)則找到一個初始可行解并將狀態(tài)程序w化簡成更接近最優(yōu)解的形式,繼續(xù)下一步;步驟D16等式中的最小常數(shù)不小于0,使用線性表達(dá)式代替規(guī)則將等式左右的變量集化簡成不相交的形式,使用最優(yōu)解規(guī)則和賦值語句規(guī)則獲得最優(yōu)解。本發(fā)明的實(shí)現(xiàn)還在于,步驟D2中使用各規(guī)則對等式組進(jìn)行求解的過程包括步驟D21使用語義等價規(guī)則和全等代替規(guī)則對等式組進(jìn)行化簡;
步驟D22化簡過程中,其中一個等式中有變量被求出了值,使用賦值語句規(guī)則將該值代入等式組中,求解其余等式;等式中無變量被求出了值,則反復(fù)使用線性表達(dá)式代替規(guī)則,對等式組進(jìn)行化簡,直到等式組中左右兩邊的變量集不相交或者有變量被求出了值;步驟D23判斷等式組中的各等式是否是線性相關(guān)的,如果不是,直接轉(zhuǎn)入步驟D24 ;如果是,則使用線性相關(guān)規(guī)則進(jìn)行求解,繼續(xù)下一步;步驟D24如果等式組中的變量全部都被求出值,則結(jié)束求解過程,否則,重復(fù)步驟D21-D23。本發(fā)明的實(shí)現(xiàn)還在于,步驟D3中使用各規(guī)則對不等式進(jìn)行求解的過程包括步驟D31判斷線性約束中是否含有冗余不等式,如果沒有,直接轉(zhuǎn)入下一步;如果有,則使用強(qiáng)約束規(guī)則將冗余不等式消去,繼續(xù)下一步;步驟D32使用語義等價規(guī)則和全等代替規(guī)則,將不等式轉(zhuǎn)變?yōu)榈仁胶头秦?fù)約束;步驟D33判斷轉(zhuǎn)變后的等式中左邊和右邊的變量集是否相交,如果不相交,直接轉(zhuǎn)入下一步;如果相交,使用線性表達(dá)式代替規(guī)則將轉(zhuǎn)變后的等式中左邊和右邊的變量集化簡成不相交,繼續(xù)下一步;步驟D34使用轉(zhuǎn)化規(guī)則,在狀態(tài)程序w中增加目標(biāo)函數(shù)將不相交的等式轉(zhuǎn)化為最優(yōu)化問題;步驟D35判斷轉(zhuǎn)變后的最優(yōu)化問題中是否所有變量都有非負(fù)約束,如果是,直接轉(zhuǎn)入下一步;如果不是,使用非負(fù)約束規(guī)則限制無非負(fù)約束變量的非負(fù)約束,使所有變量都有非負(fù)約束,繼續(xù)下一步;步驟D36當(dāng)所有變量都有非負(fù)約束后,使用線性表達(dá)式代替規(guī)則將等式左右的變量集化簡成不相交的,使用賦值語句規(guī)則和最優(yōu)解規(guī)則獲得最優(yōu)解,即不等式的解。與現(xiàn)有技術(shù)相比,本發(fā)明具有以下優(yōu)點(diǎn)I.本發(fā)明是在區(qū)間時序邏輯的框架下,即MSVL中提出的線性約束系統(tǒng)和系統(tǒng)執(zhí)行方法,而現(xiàn)有技術(shù)大部分都是在CLP中或者轉(zhuǎn)化到CLP中實(shí)現(xiàn),對于時間相關(guān)約束表達(dá)能力不夠強(qiáng)大。由于本發(fā)明是基于區(qū)間時序邏輯,并且線性系統(tǒng)的執(zhí)行是沿著區(qū)間向前進(jìn)行的,所以更為自然,方便,簡潔,更符合人的思維方式。2.本發(fā)明在MSVL語言中擴(kuò)展了線性約束結(jié)構(gòu),由于MSVL中定義了豐富的時序操作符,所以本發(fā)明更適合于處理時間相關(guān)約束;而且由于MSVL的基礎(chǔ)邏輯PPTL的表達(dá)能力更為強(qiáng)大,可以表達(dá)完全正則性質(zhì),所以本發(fā)明能夠描述更多樣,更復(fù)雜的時序關(guān)系。3.本發(fā)明是基于現(xiàn)有MSVL語言的,而MSVL語言具有集建模、仿真和驗(yàn)證三種功能于一體的特征,可以應(yīng)用于工業(yè)中的軟件和硬件的建模、仿真和驗(yàn)證。所以本發(fā)明不僅能夠在MSVL的統(tǒng)一框架中對軟件和硬件進(jìn)行建模,而且還能實(shí)現(xiàn)仿真和驗(yàn)證。建模、仿真和驗(yàn)證中避免了不同符號之間進(jìn)行復(fù)雜的轉(zhuǎn)換,也節(jié)約了轉(zhuǎn)換所需的時間,從而提高了效率。同時擴(kuò)展后的MSVL系統(tǒng)既可以用于工業(yè)中軟件和硬件的建模、仿真和驗(yàn)證中,也可以應(yīng)用于調(diào)度,生產(chǎn)規(guī)劃,計(jì)算機(jī)視覺等領(lǐng)域的建模、仿真和驗(yàn)證。4.本發(fā)明定義了求解線性約束的規(guī)則,并且以規(guī)則的應(yīng)用來逐步求解線性約束。這使得本發(fā)明是獨(dú)立的,不依賴于外界求解技術(shù),并且這些規(guī)則完整地展示了求解的細(xì)節(jié)。5.由于MSVL程序的解釋器是通過操作規(guī)則而實(shí)現(xiàn)的,所以本發(fā)明在約束求解子、系統(tǒng)中給出一套規(guī)則,可以在已有的MSVL解釋器的基礎(chǔ)上,容易地實(shí)現(xiàn)擴(kuò)展了線性約束結(jié)構(gòu)的MSVL程序解釋器,以便于能夠更有效地使用本發(fā)明的MSVL線性約束系統(tǒng)執(zhí)行方法。而且本發(fā)明為進(jìn)一步實(shí)施含有線性約束的MSVL的建模、仿真和驗(yàn)證打下基礎(chǔ)。


圖I為本發(fā)明MSVL線性約束系統(tǒng)的組成圖;圖2為本發(fā)明MSVL線性約束系統(tǒng)執(zhí)行方法的流程圖;圖3為本發(fā)明MSVL線性約束系統(tǒng)建模步驟的流程圖;圖4為本發(fā)明MSVL狀態(tài)程序求解步驟的流程圖;
圖5為本發(fā)明求解狀態(tài)程序中線性最優(yōu)化問題的流程圖;圖6為本發(fā)明求解狀態(tài)程序中線性等式組的流程圖;圖7為本發(fā)明求解狀態(tài)程序中線性不等式的流程圖。
具體實(shí)施例方式以下參照附圖對本發(fā)明詳細(xì)描述。實(shí)施例I :本發(fā)明是一種MSVL線性約束系統(tǒng),是針對科學(xué)研究和工業(yè)應(yīng)用中具有線性約束的問題而提出的建模和求解系統(tǒng)。MSVL已被用于軟件和硬件的建模、仿真和驗(yàn)證中,但MSVL缺少能夠描述線性約束的語法結(jié)構(gòu),而線性約束廣泛存在于實(shí)際問題中,所以需要在MSVL系統(tǒng)中擴(kuò)展線性約束結(jié)構(gòu)。參見圖1,該系統(tǒng)包括有約束定義子系統(tǒng)和約束求解子系統(tǒng);約束定義子系統(tǒng)是定義在線性表達(dá)式基礎(chǔ)上的線性約束語句模塊,包括有等詞語句模塊(=),正瞬時賦值語句模塊(^),大于等于語句模塊( > ),小于等于語句模塊( < )和其它語句模塊;約束求解子系統(tǒng)包括有用于MSVL程序等價變換的語義等價規(guī)則模塊和用于求解線性約束的狀態(tài)遷移規(guī)則模塊;語義等價規(guī)則模塊又包括有線性表達(dá)式代數(shù)規(guī)則模塊、線性等詞語義等價規(guī)則模塊和線性不等式語義等價規(guī)則模塊;狀態(tài)遷移規(guī)則模塊又包括有全等代替規(guī)則模塊、賦值語句規(guī)則模塊、線性表達(dá)式代替規(guī)則模塊、狀態(tài)框架規(guī)則模塊、線性相關(guān)規(guī)則模塊、強(qiáng)約束規(guī)則模塊、非負(fù)約束規(guī)則模塊、轉(zhuǎn)化規(guī)則模塊、初始可行解規(guī)則模塊和最優(yōu)解規(guī)則模塊;約束定義子系統(tǒng)中的各語句模塊的語法結(jié)構(gòu)都適用于約束求解子系統(tǒng)中的規(guī)則模塊。本發(fā)明是基于現(xiàn)有MSVL語言的,而MSVL語言具有集建模、仿真和驗(yàn)證三種功能于一體的特征。所以本發(fā)明不僅能夠在MSVL的統(tǒng)一框架中對軟件和硬件進(jìn)行建模,而且還能實(shí)現(xiàn)仿真和驗(yàn)證,避免了不同符號之間進(jìn)行復(fù)雜的轉(zhuǎn)換,也節(jié)約了轉(zhuǎn)換所需的時間,提高了效率。本發(fā)明在MSVL系統(tǒng)中加入了線性約束結(jié)構(gòu),保留了現(xiàn)有MSVL系統(tǒng)中的所有優(yōu)點(diǎn),表達(dá)能力強(qiáng),可以描述完全正則性質(zhì),具有命令式編程的特點(diǎn),便于使用。擴(kuò)展的MSVL系統(tǒng)既可以用于工業(yè)中軟件和硬件的建模、仿真和驗(yàn)證,也可以應(yīng)用于調(diào)度,生產(chǎn)規(guī)劃,計(jì)算機(jī)視覺等領(lǐng)域的建模、仿真和驗(yàn)證,更方便地求解實(shí)際應(yīng)用中的線性約束系統(tǒng)。在MSVL線性約束系統(tǒng)所述的MSVL線性約束定義子系統(tǒng)中,線性表達(dá)式和線性約束語句模塊的定義是線性表達(dá)式Ie的定義為
le: : = c I x max maxi | guide | On(Ie) | n(le) | Ie^le21 Ie1-Ie21 -(Ie1) | c*le | le/c其中,c是常量,x表示變量,+, *, /分別表示加法、乘法和除法,-既表示二元減法,也表示表達(dá)式值的一元負(fù)操作,On(Ie) (next n)表示從當(dāng)前狀態(tài)開始,向后的第n個狀態(tài)上表達(dá)式是le, n(le) (previous n)表示從當(dāng)前狀態(tài)開始,向前的第n個狀態(tài)上表達(dá)式Ie的值;max,maxl,guide是三個特殊的變量,只能用于求解不等式和最優(yōu)化問題,max用于描述最大目標(biāo)語句,maxi用于在求解初始可行解時,保存原始目標(biāo)表達(dá)式,guide用于在求解過程中,指導(dǎo)變量進(jìn)行交換;
在線性表達(dá)式的基礎(chǔ)上,定義線性約束語句模塊,線性約束語句模塊包括有基本線性約束語句模塊和復(fù)合線性約束語句模塊其中,基本線性約束語句模塊的定義為Ie1 = Ie2Ie1 <= Ie2Ie1 ^ Ie2其中,Ie1和Ie2是線性表達(dá)式,線性等詞模塊Ie1 = Ie2表示Ie1和Ie2兩邊相等,起到三個作用賦值,比較,和等式;正瞬時賦值語句模塊岣表示Ie1和Ie2相等,并且Ie1中所有變量的相關(guān)命題都被賦值為true ;小于等于語句模塊Ie1 ( Ie2表示Ie1的值小于或者等于Ie2的值。復(fù)合線性約束語句模塊的定義為
權(quán)利要求
1.一種MSVL線性約束系統(tǒng),是針對科學(xué)研究和工業(yè)應(yīng)用中具有線性約束的問題而提出的建模和求解系統(tǒng),其特征在于該系統(tǒng)包括有約束定義子系統(tǒng)和約束求解子系統(tǒng);約束定義子系統(tǒng)是定義在線性表達(dá)式基礎(chǔ)上的線性約束語句模塊,包括有等詞語句模塊(=),正瞬時賦值語句模塊(¢=),大于等于語句模塊( > ),小于等于語句模塊(()和其它語句模塊;約束求解子系統(tǒng)包括有用于MSVL程序等價變換的語義等價規(guī)則模塊和用于求解線性約束的狀態(tài)遷移規(guī)則模塊;語義等價規(guī)則模塊又包括有線性表達(dá)式代數(shù)規(guī)則模塊、線性等詞語義等價規(guī)則模塊和線性不等式語義等價規(guī)則模塊;狀態(tài)遷移規(guī)則模塊又包括有全等代替規(guī)則模塊、賦值語句規(guī)則模塊、線性表達(dá)式代替規(guī)則模塊、狀態(tài)框架規(guī)則模塊、線性相關(guān)規(guī)則模塊、強(qiáng)約束規(guī)則模塊、非負(fù)約束規(guī)則模塊、轉(zhuǎn)化規(guī)則模塊、初始可行解規(guī)則模塊和最優(yōu)解規(guī)則模塊;約束定義子系統(tǒng)中的各語句模塊的語法結(jié)構(gòu)都適用于約束求解子系統(tǒng)中的規(guī)則模塊。
2.根據(jù)權(quán)利要求I所述的MSVL線性約束定義子系統(tǒng),其特征在于所述線性表達(dá)式和線性約束語句模塊的定義是 線性表達(dá)式Ie的定義為 le: : = c I X max maxi | guide | On(Ie) | n(le) | Ie^le21 Ie1-Ie21 -(Ie1) | c*le | le/c其中,c是常量,x表示變量,+, *, /分別表示加法、乘法和除法,-既表示二元減法,也表示表達(dá)式值的一元負(fù)操作,On(Ie) (next n)表示從當(dāng)前狀態(tài)開始,向后的第n個狀態(tài)上表達(dá)式是le, n(le) (previous n)表示從當(dāng)前狀態(tài)開始,向前的第n個狀態(tài)上表達(dá)式Ie的值;max, maxi, guide是三個特殊的變量,只能用于求解不等式和最優(yōu)化問題,max用于描述最大目標(biāo)語句,maxi用于在求解初始可行解時,保存原始目標(biāo)表達(dá)式,guide用于在求解過程中,指導(dǎo)變量進(jìn)行交換; 在線性表達(dá)式的基礎(chǔ)上,定義線性約束語句模塊,線性約束語句模塊包括有基本線性約束語句模塊和復(fù)合線性約束語句模塊,其中,基本線性約束語句模塊的定義為
3.—種MSVL線性約束系統(tǒng)執(zhí)行方法,其特征在于具體步驟包括 步驟A首先分析待解問題并提取待解問題中所要求的線性約束;步驟B選擇MSVL中與待解問題相對應(yīng)的線性約束語句模塊,將待解問題建模為MSVL程序M ;步驟C對MSVL程序M所使用語句模塊的語法結(jié)構(gòu)進(jìn)行判斷,在當(dāng)前狀態(tài)上,使用與語法結(jié)構(gòu)相對應(yīng)的語義等價規(guī)則轉(zhuǎn)換待解問題的MSVL程序M的形式,將M化簡為w八q的形式,其中w是不含時序操作符的狀態(tài)程序,q是含有時序操作符的時序程序,A表示“相與”;步驟D根據(jù)狀態(tài)程序w的結(jié)構(gòu)特征,應(yīng)用狀態(tài)遷移規(guī)則執(zhí)行狀態(tài)程序W,即對狀態(tài)程序w中的線性約束進(jìn)行求解; 步驟E狀態(tài)程序w執(zhí)行完畢后,應(yīng)用語義等價規(guī)則對時序程序q進(jìn)行化簡,若時序程序q化簡為終止程序e,則轉(zhuǎn)入步驟G ;否則,時序程序q化簡為下一狀態(tài)程序Op,轉(zhuǎn)入步驟F; 步驟F時序程序q為下一狀態(tài)程序Op,在整個程序執(zhí)行的區(qū)間上應(yīng)用狀態(tài)間遷移規(guī)則,將下一狀態(tài)程序Op從當(dāng)前狀態(tài)化簡到下一狀態(tài),并且在下一狀態(tài)上重復(fù)步驟C-F執(zhí)行剩余程序P; 步驟G如果經(jīng)過步驟E后,為終止程序e,則應(yīng)用狀態(tài)間遷移規(guī)則,MSVL線性約束系統(tǒng)程序M執(zhí)行完畢,并給出一個解決待解問題的技術(shù)方案。
4.根據(jù)權(quán)利要求3所述的MSVL線性約束系統(tǒng)執(zhí)行方法,其特征在于步驟B對線性約束系統(tǒng)的建模過程包括 步驟BI針對待解問題中所要求的線性約束,選擇等詞語句模塊(=),正瞬時賦值語句模塊(<=),大于等于語句模塊(彡),小于等于語句模塊(()和其它語句模塊; 步驟B2判斷待解問題是否是最優(yōu)化問題,如果不是,則轉(zhuǎn)入步驟B4;否則,進(jìn)行下一I K少; 步驟B3如果待解問題是最優(yōu)化問題,若想獲得目標(biāo)表達(dá)式Ie的最大值,則將待解問題的目標(biāo)語句建模為正瞬時賦值語句max ¢= Ie ;若想獲得目標(biāo)表達(dá)式Ie的最小值,則將待解問題的目標(biāo)語句建模為max <= -Ie ;并繼續(xù)下一步;步驟B4判斷待解問題中的線性約束是時間相關(guān)的還是時間無關(guān)的,如果是時間相關(guān),則選擇相應(yīng)的時序操作符,將待解問題中的線性約束建模為時序語句;否則,將待解問題中的線性約束建模為狀態(tài)語句,并和單位長度語句skip或終止語句e相與;并繼續(xù)下一步;步驟B5對待解問題建模,如果待解問題建模完畢,得到待解問題的MSVL程序,并停止步驟B ;否則,重復(fù)步驟B1-B4。
5.根據(jù)權(quán)利要求3所述的MSVL線性約束系統(tǒng)執(zhí)行方法,其特征在于步驟D對線性約束的求解過程包括 步驟Dl判斷狀態(tài)程序w的線性約束中賦值標(biāo)識符af (max)是否為真,如果不為真,直接轉(zhuǎn)入步驟D2;如果為真,則使用全等代替規(guī)則、賦值語句規(guī)則、線性表達(dá)式代替規(guī)則、強(qiáng)約束規(guī)則、非負(fù)約束規(guī)則、初始可行解規(guī)則和最優(yōu)解規(guī)則執(zhí)行狀態(tài)程序《,得到狀態(tài)程序w的最優(yōu)解,繼續(xù)下一步; 步驟D2判斷狀態(tài)程序w的線性約束中是否含有等詞語句模塊或正瞬時賦值語句模塊,如果不含有,直接轉(zhuǎn)入步驟D3;如果含有,則使用全等代替規(guī)則、賦值語句規(guī)則、線性表達(dá)式代替規(guī)則和線性相關(guān)規(guī)則執(zhí)行狀態(tài)程序《,獲得狀態(tài)程序w的解,繼續(xù)下一步; 步驟D3判斷狀態(tài)程序w的線性約束中是否含有大于等于語句模塊或小于等于語句模塊,如果不含有,直接轉(zhuǎn)入步驟D4 ;如果含有,則使用全等代替規(guī)則、賦值語句規(guī)則、線性表達(dá)式代替規(guī)則、非負(fù)約束規(guī)則、轉(zhuǎn)化規(guī)則、強(qiáng)約束規(guī)則和最優(yōu)解規(guī)則執(zhí)行狀態(tài)程序《,獲得狀態(tài)程序w的解,繼續(xù)下一步; 步驟D4如果狀態(tài)程序w中仍然存在一些變量X不包含在任何線性約束語句模塊中,并且有狀態(tài)框架語句Ibf (x),則使用狀態(tài)框架規(guī)則將變量X在前一狀態(tài)的值賦給X ; 步驟D5狀態(tài)程序w執(zhí)行完畢,對線性約束的求解過程結(jié)束,停止步驟D。
6.根據(jù)權(quán)利要求5所述的MSVL線性約束系統(tǒng)執(zhí)行方法,其特征在于步驟Dl使用各規(guī)則對最優(yōu)化問題求解的過程包括 步驟Dll判斷線性約束中是否含有冗余不等式,如果沒有,直接轉(zhuǎn)入下一步;如果有,使用強(qiáng)約束規(guī)則消除狀態(tài)程序w的線性約束中冗余的不等式,繼續(xù)下一步; 步驟D12使用全等代替規(guī)則將不等式轉(zhuǎn)變?yōu)榈仁胶头秦?fù)約束; 步驟D13判斷轉(zhuǎn)變后的等式左邊和右邊的變量集是否相交,如果不相交,直接轉(zhuǎn)入下一步;如果相交,則使用線性表達(dá)式代替規(guī)則將轉(zhuǎn)變后的等式左邊和右邊的變量集化簡成不相交,繼續(xù)下一步; 步驟D14判斷等式中是否所有變量都有非負(fù)約束,如果是,直接轉(zhuǎn)入下一步;如果不是,使用非負(fù)約束規(guī)則限制無非負(fù)約束變量的非負(fù)約束,使所有變量都有非負(fù)約束,繼續(xù)下一步; 步驟D15判斷等式中的最小常數(shù)是否小于O,如果不是,直接轉(zhuǎn)入下一步;如果小于O,則使用初始可行解規(guī)則找到一個初始可行解并將狀態(tài)程序w化簡成更接近最優(yōu)解的形式,繼續(xù)下一步; 步驟D16等式中的最小常數(shù)不小于O,使用線性表達(dá)式代替規(guī)則將等式左右的變量集化簡成不相交的形式,使用最優(yōu)解規(guī)則和賦值語句規(guī)則獲得最優(yōu)解。
7.根據(jù)權(quán)利要求5所述的MSVL線性約束系統(tǒng)執(zhí)行方法,其特征在于步驟D2中使用各規(guī)則對等式組求解的過程包括 步驟D21使用語義等價規(guī)則和全等代替規(guī)則對等式組進(jìn)行化簡; 步驟D22化簡過程中,其中一個等式中有變量被求出了值,使用賦值語句規(guī)則將該值代入等式組中,求解其余等式;等式中無變量被求出了值,則反復(fù)使用線性表達(dá)式代替規(guī)貝U,對等式組進(jìn)行化簡,直到等式組中左右兩邊的變量集不相交或者有變量被求出了值;步驟D23判斷等式組中的各等式是否是線性相關(guān)的,如果不是,直接轉(zhuǎn)入步驟D24 ;如果是,則使用線性相關(guān)規(guī)則進(jìn)行求解,繼續(xù)下一步; 步驟D24如果等式組中的變量全部都被求出值,則結(jié)束求解過程,否則,重復(fù)步驟D21-D23。
8.根據(jù)權(quán)利要求5所述的MSVL線性約束系統(tǒng)執(zhí)行方法,其特征在于步驟D3中使用各規(guī)則對不等式求解的過程包括 步驟D31判斷線性約束中是否含有冗余不等式,如果沒有,直接轉(zhuǎn)入下一步;如果有,則使用強(qiáng)約束規(guī)則將冗余不等式消去,繼續(xù)下一步; 步驟D32使用語義等價規(guī)則和全等代替規(guī)則,將不等式轉(zhuǎn)變?yōu)榈仁胶头秦?fù)約束; 步驟D33判斷轉(zhuǎn)變后的等式中左邊和右邊的變量集是否相交,如果不相交,直接轉(zhuǎn)入下一步;如果相交,使用線性表達(dá)式代替規(guī)則將轉(zhuǎn)變后的等式中左邊和右邊的變量集化簡成不相交,繼續(xù)下一步; 步驟D34使用轉(zhuǎn)化規(guī)則,在狀態(tài)程序w中增加目標(biāo)語句將不相交的等式轉(zhuǎn)化為最優(yōu)化問題;、 步驟D35判斷轉(zhuǎn)變后的最優(yōu)化問題中是否所有變量都有非負(fù)約束,如果是,直接轉(zhuǎn)入下一步;如果不是,使用非負(fù)約束規(guī)則限制無非負(fù)約束變量的非負(fù)約束,使所有變量都有非負(fù)約束,繼續(xù)下一步; 步驟D36當(dāng)所有變量都有非負(fù)約束后,使用線性表達(dá)式代替規(guī)則將等式左右的變量集化簡成不相交的,使用賦值語句規(guī)則和最優(yōu)解規(guī)則獲得最優(yōu)解,即不等式的解。
全文摘要
本發(fā)明公開了一種MSVL線性約束系統(tǒng)及其執(zhí)行方法,屬形式化建模與約束求解技術(shù)領(lǐng)域。MSVL線性約束系統(tǒng)包括約束定義子系統(tǒng)和求解子系統(tǒng),約束定義子系統(tǒng)中的各語句模塊的語法結(jié)構(gòu)適用于約束求解子系統(tǒng)中的語義等價規(guī)則和狀態(tài)遷移規(guī)則。MSVL線性約束系統(tǒng)執(zhí)行方法是選擇相應(yīng)的語句模塊將待解問題建模為MSVL程序M;用語義等價規(guī)則將M化簡為w∧q的形式,用狀態(tài)遷移規(guī)則在當(dāng)前狀態(tài)執(zhí)行狀態(tài)程序w,之后用狀態(tài)間遷移規(guī)則將時序程序q化簡到下一狀態(tài)繼續(xù)執(zhí)行,最后給出解決方案。本發(fā)明是在區(qū)間邏輯語言中擴(kuò)展了線性約束結(jié)構(gòu),具有強(qiáng)大的表達(dá)能力,更便于解決工業(yè)應(yīng)用如調(diào)度、計(jì)算機(jī)視覺和組合優(yōu)化問題等中具有線性約束的系統(tǒng)。
文檔編號G06Q10/04GK102663521SQ201210118809
公開日2012年9月12日 申請日期2012年4月20日 優(yōu)先權(quán)日2012年4月20日
發(fā)明者段振華, 王小兵, 田聰, 馬倩 申請人:西安電子科技大學(xué)
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1