專利名稱:一種基于代表模型的命題邏輯修正方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種在人工智能命題邏輯系統(tǒng)中,根據(jù)事實集合Delta對原有命題邏 輯系統(tǒng)Gamma進行形式修正,使得修正后的系統(tǒng)Lambda能夠與事實集合Delta相互協(xié)調(diào)。 該發(fā)明尤其涉及基于命題代表模型的修正演算的自動修正方法。
背景技術(shù):
隨著信息科學和人工智能的發(fā)展,人們對于知識系統(tǒng)的自動維護需求日益提升, 如何使計算機系統(tǒng)自動地對系統(tǒng)知識庫進行維護是需要解決的一個問題。人們對此提出邏 輯修正的問題——當新的觀念或需求與原有信念系統(tǒng)放生沖突或矛盾時,如何能夠修改或 刪減原有信念系統(tǒng),使得加入新觀念后的系統(tǒng)保持一致。 為了實現(xiàn)命題邏輯系統(tǒng)的自動修正,需要從命題結(jié)構(gòu)和語義的角度找出矛盾產(chǎn)生 的根本原因。到目前為止,分析邏輯命題句法結(jié)構(gòu)的方法,形式推理R-演算的方法都具有 不錯的效果。這些方法通過分析系統(tǒng)中命題的邏輯結(jié)構(gòu),通過邏輯結(jié)構(gòu)轉(zhuǎn)化或形式推導找 到命題系統(tǒng)的需要被刪除的命題,進而獲得與新集合相協(xié)調(diào)的極大縮減。但這些方法在系 統(tǒng)實現(xiàn)上都存在著一定程度上的效率問題。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題克服現(xiàn)有技術(shù)的不足,提供一種基于代表模型的命題 邏輯修正演算方法,它根據(jù)每一個命題的代表模型,逐個進行針對的檢查,以最少的模型驗 證數(shù)量實現(xiàn)對所有模型的驗證,從而找到導致不協(xié)調(diào)出現(xiàn)的命題,實現(xiàn)了命題邏輯集合的
自動修正功能。 本發(fā)明采用的技術(shù)方案一種基于代表模型的命題邏輯修正演算方法,其特征在 于步驟如下 (1)將結(jié)果集合Lambda初始化為空集,將接收集合Sigma初始為系統(tǒng)必須要接受 的事實集合Delta,將Gamma初始為所有等待驗證命題所組成的集合,將新代表模型列表 NewModelList初始化為空集; (2)將代表模型列表ModelList初始化為Sigma的所有代表模型; (3)如果系統(tǒng)集合Gamma為空集,則轉(zhuǎn)到步驟(8); (4)從Gamma中取出一個命題A,并將A從Gamma中刪除; (5)利用A, Sigma和ModelList構(gòu)造A的所有備選代表模型集合PropModel ; (6)將PropModel中的所有模型逐個對A進行驗證按照邏輯連接詞的運算規(guī)則
和原子命題在模型M下的真假賦值情況,計算A在備選代表模型M下的真假值,如果A在M
下的取值為真,則將M存入NewModelList ; (7)如果NewModelList不是空集,使ModelList等于NewModelList,并將 NewModelList重置成空集,將命題A分別存入到Lambda和Sigma中,轉(zhuǎn)步驟(3);否則,直 接轉(zhuǎn)步驟(3); (8)輸出結(jié)果Lambda。
3
根據(jù)本發(fā)明的又一個方面,其中步驟(2)進一步包括步驟
(a)找出Sigma中的所有原子命題,記為{s", sn0}; (b)根據(jù){Sl,, sn。}中nO個原子命題的賦值〈Vi(Sl),, Vi(sn。) > (i = 1,…,2,構(gòu)造Sigma的備選代表模型Mi,如果任意一個原子命題s,如果s是{Sl,…,sj 中的一個,則s在Mi下取值為Vi (s),否則,s在Mi下取值為假,并將這2n°個備選代表模型 存入集合SigmaModel ; (c)用SigmaModel中的所有模型分別對Sigma進行驗證如果某一個模型使得 Sigma可滿足,將該模型存入ModelList ; 根據(jù)本發(fā)明的又一個方面,其中步驟(5)進一步包括 (a)計算Sigma中出現(xiàn)的所有原子命題,記其為{Sl,, sn}; (b)計算出所有在A中出現(xiàn)而不在Sigma中出現(xiàn)的的原子命題,記為{&,, }; (c)構(gòu)造出這p個命題的所有賦值情況〈Vj(ai),, Vj(ap) > (j = 1,…,2"; (d)將(c)中的每一組賦值< Vj(a》,...,Vj(ap) >與ModelList中每一個代表模
型賦值〈Vi(s》,…,Vi(sn) > (i = 1,…,ModelListl)進行組合構(gòu)造成一組包含更多
原子命題的賦值情況< Vi(Sl),…,Vi(Sn), Vj(ai),…,Vj(a。) > ,建立與之對應(yīng)的模型,并
將所有這些模型存入PropModel ; 根據(jù)本發(fā)明的又一個方面,其中步驟(6)進一步包括 (a)從PropModel中取出一個模型M,并將M從PropModel中刪除; (b)如果命題A在模型M下取值為真,則將M存入NewModelList中; (c)判斷PropModel是否為空如果為空,結(jié)束步驟(6);否則轉(zhuǎn)(a); 本發(fā)明與現(xiàn)有技術(shù)相比的優(yōu)點在于本發(fā)明再根據(jù)事實集合對命題邏輯系統(tǒng)進行
正演算的過程中,能夠針對每一個命題的情況,針對考慮與它的原子命題相關(guān)的代表模型,
有效的減少了模型驗證的次數(shù)。實驗表明,該方法能夠快速、有效地獲得命題邏輯修正演算
的結(jié)果。
圖1為本發(fā)明的方法基本流程圖; 圖2為利用A, Sigma和ModelList構(gòu)造A的備選代表模型的流程圖;
具體實施例方式
首先對本發(fā)明的原理進行說明。 經(jīng)典數(shù)理邏輯的理論表明集合的協(xié)調(diào)性與集合的可滿足性是等價的。S卩,只要找 到一個模型使得給定集合可滿足,那么該集合就是協(xié)調(diào)的。為此,可以通過模型驗證的方法 來判定集合的協(xié)調(diào)性。但如果直接利用全體模型對命題集合進行驗證,計算量較大。另一 方面,集合中的每一個命題都可以對若干類模型進行篩選,不能使該命題成立的模型也不 可能使包含該命題的集合可滿足。因此,本發(fā)明利用命題在代表模型下的真假值取值情況 對模型進行等價劃分,每一類中選擇代表模型進行驗證,達到減少模型驗證的次數(shù)的效果, 從而提高了命題邏輯修正演算的效率。 下面參考附圖,對本發(fā)明的實施例進行詳細的說明。
具體而言,本發(fā)明所提出的改進方法基本流程如圖1所示。 本發(fā)明主要包括的核心思想以事實集合Delta作為出發(fā)點,根據(jù)系統(tǒng)集合Gamma 中的每一個命題A,對使得接收集合Sigma成立的模型進行等價劃分,再計算A在這些等價 類的代表模型下真假值,保留使得A取值為真的代表模型,以便后續(xù)的驗證。
在描述方法前先定義如下變量及方法 1.設(shè)Delta必須要接受命題集合,被稱為事實集合;設(shè)Gamma是需要被修整的原 有命題集合,被稱為系統(tǒng)集合,我們需要從Gamma中找到一個與事實集合Delta相協(xié)調(diào)的極 大子集; 2.設(shè)Sigma是我們已經(jīng)認定為真的命題集合; 3. ModelList存儲著使得Sigma為真代表模型,NewModelList用于臨時存儲代表 模型的更新; 4. SigmaModel和PropModel用于存儲初始或引入新命題后,對原有代表模型進行 等價劃分后,所得到新的等價類的備選代表模型; 5. Vi代表對Sigma中原子命題{Sl,, sn}的一種賦值,Vj代表對在A中出現(xiàn)而 不在Sigma中出現(xiàn)原子命題的一種賦值{ai,…,aj ;
本發(fā)明的方法描述如下 1.在命題邏輯的修正系統(tǒng)中,系統(tǒng)集合Gamma、事實集合Delta被輸入系統(tǒng); 結(jié)果集合Lambda被初始化為空集,接收集合Sigma被初始為Delta,新代表模型列表 NewModelList初始化為空集; 2.計算Sigma的所有代表模型,并將其存入代表模型列表ModelList,其具體包括 以下操作步驟 a.對Sigma中的每一個命題,逐個查找其中的原子命題,并將全部原子命題的集 合記為(s", snCJ b.根據(jù)n0個原子命題A,…,Sn。的賦值情況〈Vi(s》,…,Vi(Sno) > (i = 1,,
2n°)構(gòu)造Sigma的備選代表模型Mi,并將這2n°個備選代表模型存入集合SigmaModel ; c.依次取出SigmaModel中的所有模型,逐個對Sigma中命題進行驗證如果某個
模型使得Sigma可滿足,則將該模型存入ModelList ; 3.判斷當前的Gamma是否為空集如果是空集,則轉(zhuǎn)到步驟(8); 4.從Gamma中取出一個命題A,并將A從Gamma中刪除; 5.利用A, Sigma和ModelList構(gòu)造A的所有備選代表模型集合PropModel,其具 體操作步驟如下 a.計算Sigma中出現(xiàn)的所有原子命題,記這些命題的集合為{Sl,…,sn};
b.計算所有在A中出現(xiàn)而不在Sigma中出現(xiàn)的原子命題,記這些命題的集合為 c.構(gòu)造出這命題a"…, 的所有2。種賦值情況< Vj(ai),, Vj(ap) > (j = 1, ".,2P); d.將(c)中的每一組賦值< Vj(a》,…,Vj(ap) >與ModelList中每一個代表模 型的賦值〈Vi(s》,…,Vi(Sn) > (i = 1,…,I ModelList I)進行組合,構(gòu)造成一組包含更 多原子命題的賦值情況< Vi(Sl), , Vi(sn), Vj(ai),…,Vj(a。) >,并建立與之對應(yīng)的模型;將所有這些模型存入PropModel ; 6.依次取出PropModel中的所有模型,逐個對A進行驗證如果備選代表模型M使
得A為真,則將M存入NewModelList,其操作步驟如下 a.從PropModel中取出一個模型M,并將M從PropModel中刪除; b.如果命題A在模型M下取值為真,則將M存入NewModelList中; c.判斷PropModel是否為空如果為空,結(jié)束步驟(6);否則轉(zhuǎn)(a); 7.如果NewModelList不為空集,用NewModelList賦值ModelList,并將
NewModelList重置成空集,將命題A分別存入到Lambda和Sigma中,轉(zhuǎn)步驟(3);否則,直
接轉(zhuǎn)步驟(3); 8.輸出結(jié)果Lambda。 本發(fā)明的方法與原有方法最大的不同之處是利用本方法,修正系統(tǒng)并沒有找出 系統(tǒng)集合Gamma的所有模型,直接進行驗證;而是在處理到相應(yīng)命題A時,針對A中心出現(xiàn) 的原子命題的情況,對那些使得接收集合Sigma成立的模型進行等價劃分,通過選擇代表 模型對命題A進行驗證。如此一來,本發(fā)明就可以通過只考慮與當前相關(guān)的代表模型來檢 查命題系統(tǒng)的協(xié)調(diào)性。實驗證明,本方法與直接檢查所有模型的修正方法相比,效率具有明 顯的提高。 對于本領(lǐng)域的普通技術(shù)人員來說可顯而易見的得出其他優(yōu)點和修改。因此,具有 更廣方面的本發(fā)明并不局限于這里所示出的并且所描述的具體說明及示例性實施例。因 此,在不脫離由隨后權(quán)利要求及其等價體所定義的一般發(fā)明構(gòu)思的精神和范圍的情況下, 可對其做出各種修改。
權(quán)利要求
一種基于代表模型的命題邏輯修正演算方法,其特征在于步驟如下(1)將結(jié)果集合Lambda初始化為空集,將接收集合Sigma初始為系統(tǒng)必須要接受的事實集合Delta,將Gamma初始為所有等待驗證命題所組成的集合,將新代表模型列表NewModelList初始化為空集;(2)將代表模型列表ModelList初始化為Sigma的所有代表模型;(3)如果系統(tǒng)集合Gamma為空集,則轉(zhuǎn)到步驟(8);(4)從Gamma中取出一個命題A,并將A從Gamma中刪除;(5)利用A,Sigma和ModelList構(gòu)造A的所有備選代表模型集合PropModel;(6)將PropModel中的所有模型逐個對A進行驗證按照邏輯連接詞的運算規(guī)則和原子命題在模型M下的真假賦值情況,計算A在備選代表模型M下的真假值,如果A在M下的取值為真,則將M存入NewModelList;(7)如果NewModelList不是空集,使ModelList等于NewModelList,并將NewModelList重置成空集,將命題A分別存入到Lambda和Sigma中,轉(zhuǎn)步驟(3);否則,直接轉(zhuǎn)步驟(3);(8)輸出結(jié)果Lambda。
2. 根據(jù)權(quán)利要求1的基于代表模型的命題邏輯修正演算方法,其特征在于所述的步 驟(2)進一步包括(a)找出Sigma中的所有原子命題,記為{Sl,, sn。};(b) 根據(jù)^,…,sn。}中nO個原子命題的賦值〈Vi(s》, , Vi(sn。)>(i = 1,…,2, 構(gòu)造Sigma的備選代表模型Mi,對于任意一個原子命題s,如果s是{Sl, ,sn。}中的一個, 則s在Mi下取值為、(s),否則,s在Mi下取值為假;構(gòu)造Sigma的備選代表模型之后將這 2n°個備選代表模型存入集合SigmaModel ;(c) 用SigmaModel中的所有模型分別對Sigma進行驗證如果某一個模型使得Sigma 可滿足,將該模型存入ModelList。
3. 根據(jù)權(quán)利要求1的基于代表模型的命題邏輯修正演算方法,其特征在于所述的步 驟(5)進一步包括(a) 計算Sigma中出現(xiàn)的所有原子命題,記其為{Sl,,、};(b) 計算出所有在A中出現(xiàn)而不在Sigma中出現(xiàn)的的原子命題,記為{&1,, };(c) 構(gòu)造出這P個命題的所有賦值情況〈Vj(a》, , Vj(an)>(j = 1,…,2P);(d) 將(c)中的每一組賦值〈Vj(a》,…,Vj(a。)〉與ModelList中每一個代表模型賦值 〈Vi(s》,…,Vi(Sn)〉(i = 1,…,I ModelList I)進行組合,構(gòu)造成一組包含更多原子命題的 賦值情況〈Vi(s》, , Vi(sn), Vj(ai),…,Vj(ap)〉,建立與之對應(yīng)的模型,并將所有這些模 型存入PropModel 。
4. 根據(jù)權(quán)利要求1的基于代表模型的命題邏輯修正演算方法,其特征在于所述的步 驟(6)進一步包括(a) 判斷PropModel是否為空如果為空,結(jié)束步驟(6),否則轉(zhuǎn)(a);(b) 從PropModel中取出一個模型M,并將M從PropModel中刪除;(c) 按照邏輯連接詞的運算規(guī)則和原子命題在模型M下的真假賦值情況,計算命題A在 模型M下的取值,如果該取值為真,則將M存入NewModelList中。
全文摘要
一種基于代表模型的命題邏輯修正演算方法(1)初始化結(jié)果集合Lambda,接受集合Sigma,系統(tǒng)集合Gamma和新代表模型列表NewModelList;(2)用Sigma的所有代表模型初始化代表模型列表ModelList;(3)如果系統(tǒng)集合Gamma為空集,則轉(zhuǎn)到(8);(4)從Gamma中取出一個命題A,并將其從Gamma刪除;(5)利用A,Sigma和ModelList構(gòu)造A的備選代表模型集合PropModel;(6)將PropModel中所有備選代表模型逐個對A驗證如果備選代表模型M使得A為真,則將M存入NewModelList;(7)如果NewModelList不是空集,用NewModelList賦值ModelList,并將NewModelList重置成空集,將A分別存入Lambda和Sigma,轉(zhuǎn)(3);否則直接轉(zhuǎn)(3);(8)輸出結(jié)果Lambda。本發(fā)明根據(jù)系統(tǒng)集合中每個命題情況構(gòu)造代表模型,以只驗證相關(guān)模型的方法減少模型檢查的次數(shù),從而提高修正演算的效率。
文檔編號G06N7/00GK101706884SQ20091024192
公開日2010年5月12日 申請日期2009年12月15日 優(yōu)先權(quán)日2009年12月15日
發(fā)明者李未, 樓奕華, 蔣東辰, 金毅 申請人:北京航空航天大學