董文陽+李全艷+于海洋+李脈
摘 要:不確定推理是指建立在不確定性知識(shí)和論據(jù)基礎(chǔ)上的推理。本文設(shè)計(jì)了基于主觀Bayes方法的不確定性推理算法,通過實(shí)驗(yàn)結(jié)果比較了結(jié)論不確定的合成算法與更新算法的一致性,實(shí)現(xiàn)了不確定推理問題求解的自動(dòng)化。
關(guān)鍵詞:不確定推理 主觀Bayes方法 合成與更新算法 求解自動(dòng)化
中圖分類號(hào):TP181 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1672-3791(2014)04(c)-0196-02
不確定性推理是指建立在不確定性知識(shí)和論據(jù)基礎(chǔ)上的推理,其實(shí)質(zhì)是一種從不確定的初始證據(jù)出發(fā),通過運(yùn)用不確定性知識(shí),得出具有一定程度的不確定性但卻又是合理的結(jié)論的過程[1]。在現(xiàn)在社會(huì)中,采用不確定性推理是客觀問題的需求。在很多情況下,解決問題所需要的知識(shí)往往是不完備、不精確的,知識(shí)的描述也是很模糊的,而且在現(xiàn)實(shí)世界中,導(dǎo)致統(tǒng)一結(jié)果的原因可能是多種多樣的,解決問題的方案也可能是多種多樣的,這些條件都表示了我們現(xiàn)實(shí)生活中存在太多的不確定性問題。關(guān)于不確定性推理方法有很多種,但較為著名的方法主要有可信度方法、主觀Bayes方法和證據(jù)理論方法[4,5]等。本文將主觀Bayes方法設(shè)計(jì)了詳細(xì)的算法,實(shí)現(xiàn)了結(jié)論不確定的合成算法與更新算法,并通過實(shí)驗(yàn)結(jié)果比較了其一致性,探索自動(dòng)化求解這類不確定性推理問題的實(shí)現(xiàn)方法。
1 主觀Bayes方法
主觀Bayes方法又稱主觀概率論,是杜達(dá)(R.O.Duda)等人在1976年提出的,是一種不確定性推理模型,又稱為主觀概率論。成功的應(yīng)用在了地礦勘探專家系統(tǒng)PROSPECTOR中。這一方法在文獻(xiàn)[2,3]有詳細(xì)的描述。
(1)結(jié)論不確定性的合成算法思想。
(2)假設(shè)有n條知識(shí)都支持同一個(gè)結(jié)論H,而且這些知識(shí)都分別是相互獨(dú)立的證據(jù)Ei(i=1,2,…,n),且每個(gè)證據(jù)對(duì)應(yīng)的觀察分別是Si(i=1,2,…,n)。在此情況下求P(H/S1,S2,…,Sn)的后驗(yàn)概率的方法如下。
先分別對(duì)每條知識(shí)求出H的后驗(yàn)幾率,然后在用如下公式求出所有觀察下的后驗(yàn)幾率:
(1)
(2)
(2)結(jié)論不確定性的更新算法思想:如果n條知識(shí)都支持同一個(gè)結(jié)論,先用第一條規(guī)則對(duì)結(jié)論的先驗(yàn)概率進(jìn)行更新,再將得到的更新概率作為第二條規(guī)則的先驗(yàn)概率再對(duì)結(jié)論進(jìn)行更新,依次類推,直到所有的規(guī)則都更新使用完。設(shè)LSi(i=1,2,…,n)表示第i條規(guī)則成立的充分性,用于指出證據(jù)Ei對(duì)結(jié)論H為真的支持程度,而LNi(i=1,2,…,n)表示第i條規(guī)則成立的必要性,用于指出證據(jù)Ei對(duì)結(jié)論H為真的必要性程度。P(H)表示結(jié)論H的先驗(yàn)概率。那么,用如下公式求出結(jié)論H的后驗(yàn)概率P(H/S1,S2,…,Sn):
……
(3)
2 結(jié)論不確定性的算法設(shè)計(jì)
在主觀Bayes方法中涉及到了知識(shí)的充分性量度LS和必要性量度LN,因此,在設(shè)計(jì)算法中,我將知識(shí)作為一個(gè)對(duì)象處理,且知識(shí)包含兩個(gè)屬性(LS,LN),即充分性量度LS和必要性量度LN。對(duì)于推理過程,如圖1所示。
求后驗(yàn)幾率的算法設(shè)計(jì):
public static double O(double p, ClassE e) {
if (e.getLs() > 1) { //證據(jù)肯定出現(xiàn)的情況下
return e.getLs() * O(p);
} else if (e.getLs() == 1) {
return O(p);
} else if (e.getLs() < 1) { // 證據(jù)肯定不出現(xiàn)的情況下
return e.getLn() * O(p);
} else { // 此種情況不存在
return -1;
}
}
算法中,ClassE類包含LS和LN屬性,度量產(chǎn)生式規(guī)則的不確定性。參數(shù) p表示結(jié)論H的先驗(yàn)概率P(H),參數(shù)e表示單條知識(shí)ClassE類的對(duì)象,算法結(jié)果返回證據(jù)E出現(xiàn)時(shí)將結(jié)論H的先驗(yàn)概率,P(H)更新為后驗(yàn)幾率O(H/E),在算法中還應(yīng)用到了將概率轉(zhuǎn)化為幾率的算法,此算法有概率與幾率的關(guān)系可設(shè)計(jì)一重載方法為:
public static double O(double p) {
return p/(1 - p);
}
算法中參數(shù) p表示概率,算法結(jié)果返回幾率函數(shù)值。
2.1 結(jié)論不確定性的合成算法
關(guān)于結(jié)論不確定性的合成算法,可先對(duì)每條知識(shí)分別求出后驗(yàn)幾率,再由公式(1)、(2)進(jìn)行算法設(shè)計(jì):
public static double nP(List
double p1=O(p);
if (n.size()>1){
double on = 1.0;//表示綜合每條知識(shí)的后驗(yàn)幾率初始值
for (int i = 0; i < n.size(); i++) {
on *= O(p1, n.get(i)) / O(p1);
}
on = on * O(p1);
return on / (1 + on);
} else if (n.size() == 1) {
return P(p1, n.get(0));
} else {
return -1;
}
}
算法中參數(shù)n表示n條知識(shí)都支持相同的結(jié)論的集合,參數(shù)p表示知識(shí)對(duì)結(jié)論H的先驗(yàn)概率P(H),參數(shù)e表示一條知識(shí)對(duì)象,算法結(jié)果綜合每條知識(shí)的合成算法的后驗(yàn)概率值。
2.2 結(jié)論不確定性的更新算法
結(jié)論不確定性的更新算法思想,設(shè)計(jì)流程圖如圖2所示。
詳細(xì)算法代碼設(shè)計(jì)如下:
public static double rP(List
//結(jié)論不確定性的更新算法
if (n.size() > 1) {
double rp = 0.0;
for (int i = 1; i < n.size(); i++) {
rp = P(P(p, n.get(0)), n.get(i));
}
return rp;
} else if (n.size() == 1) {
return P(p, n.get(0));
} else {
return -1;
}
}
算法中參數(shù)n表示n條知識(shí)都支持相同的結(jié)論的集合,參數(shù)p表示知識(shí)對(duì)結(jié)論H的先驗(yàn)概率P(H),參數(shù)e表示一條知識(shí)對(duì)象,算法結(jié)果返回更新后的后驗(yàn)概率值。
3 主觀Bayes方法算法求解結(jié)果
應(yīng)用上述Java算法,首先讀取文本文件“Reliability_knowledge_data.txt”的數(shù)據(jù),文本文件如圖3所示。
結(jié)果如圖4所示。
在誤差允許的范圍內(nèi),兩種方法得到的結(jié)果是一致的。
4 結(jié)論
本文根據(jù)知識(shí)不確定性推理的主觀Bayes方法的求解思想,設(shè)計(jì)了基于主觀Bayes方法的不確定性推理的合成與更新算法,并在Java平臺(tái)上實(shí)現(xiàn)了這一算法。從實(shí)驗(yàn)結(jié)果來看,我們的算法結(jié)果正確,兩種算法的結(jié)果一致,實(shí)現(xiàn)了不確定推理問題求解的自動(dòng)化。
參考文獻(xiàn)
[1] 石純一,黃昌寧,王家廞.人工智能原理[M].北京:清華大學(xué)出版社,1993.
[2] 張仰森,黃改娟.人工智能實(shí)用教程[M].北京:北京希望電子出版社,2002.
[3] 王萬森.人工智能原理及其應(yīng)用[M].2版.北京:電子工業(yè)出版社,2007.
[4] 劉玉鳳.Bayes概率在不確定性方法中的應(yīng)用[J].遼寧教育學(xué)院學(xué)報(bào),2002(9):1-2.
[5] 張文修.包含度理論—— 不確定性研究的方法學(xué)[J].中國科學(xué)基金,1996(4):254-260.
2.2 結(jié)論不確定性的更新算法
結(jié)論不確定性的更新算法思想,設(shè)計(jì)流程圖如圖2所示。
詳細(xì)算法代碼設(shè)計(jì)如下:
public static double rP(List
//結(jié)論不確定性的更新算法
if (n.size() > 1) {
double rp = 0.0;
for (int i = 1; i < n.size(); i++) {
rp = P(P(p, n.get(0)), n.get(i));
}
return rp;
} else if (n.size() == 1) {
return P(p, n.get(0));
} else {
return -1;
}
}
算法中參數(shù)n表示n條知識(shí)都支持相同的結(jié)論的集合,參數(shù)p表示知識(shí)對(duì)結(jié)論H的先驗(yàn)概率P(H),參數(shù)e表示一條知識(shí)對(duì)象,算法結(jié)果返回更新后的后驗(yàn)概率值。
3 主觀Bayes方法算法求解結(jié)果
應(yīng)用上述Java算法,首先讀取文本文件“Reliability_knowledge_data.txt”的數(shù)據(jù),文本文件如圖3所示。
結(jié)果如圖4所示。
在誤差允許的范圍內(nèi),兩種方法得到的結(jié)果是一致的。
4 結(jié)論
本文根據(jù)知識(shí)不確定性推理的主觀Bayes方法的求解思想,設(shè)計(jì)了基于主觀Bayes方法的不確定性推理的合成與更新算法,并在Java平臺(tái)上實(shí)現(xiàn)了這一算法。從實(shí)驗(yàn)結(jié)果來看,我們的算法結(jié)果正確,兩種算法的結(jié)果一致,實(shí)現(xiàn)了不確定推理問題求解的自動(dòng)化。
參考文獻(xiàn)
[1] 石純一,黃昌寧,王家廞.人工智能原理[M].北京:清華大學(xué)出版社,1993.
[2] 張仰森,黃改娟.人工智能實(shí)用教程[M].北京:北京希望電子出版社,2002.
[3] 王萬森.人工智能原理及其應(yīng)用[M].2版.北京:電子工業(yè)出版社,2007.
[4] 劉玉鳳.Bayes概率在不確定性方法中的應(yīng)用[J].遼寧教育學(xué)院學(xué)報(bào),2002(9):1-2.
[5] 張文修.包含度理論—— 不確定性研究的方法學(xué)[J].中國科學(xué)基金,1996(4):254-260.
2.2 結(jié)論不確定性的更新算法
結(jié)論不確定性的更新算法思想,設(shè)計(jì)流程圖如圖2所示。
詳細(xì)算法代碼設(shè)計(jì)如下:
public static double rP(List
//結(jié)論不確定性的更新算法
if (n.size() > 1) {
double rp = 0.0;
for (int i = 1; i < n.size(); i++) {
rp = P(P(p, n.get(0)), n.get(i));
}
return rp;
} else if (n.size() == 1) {
return P(p, n.get(0));
} else {
return -1;
}
}
算法中參數(shù)n表示n條知識(shí)都支持相同的結(jié)論的集合,參數(shù)p表示知識(shí)對(duì)結(jié)論H的先驗(yàn)概率P(H),參數(shù)e表示一條知識(shí)對(duì)象,算法結(jié)果返回更新后的后驗(yàn)概率值。
3 主觀Bayes方法算法求解結(jié)果
應(yīng)用上述Java算法,首先讀取文本文件“Reliability_knowledge_data.txt”的數(shù)據(jù),文本文件如圖3所示。
結(jié)果如圖4所示。
在誤差允許的范圍內(nèi),兩種方法得到的結(jié)果是一致的。
4 結(jié)論
本文根據(jù)知識(shí)不確定性推理的主觀Bayes方法的求解思想,設(shè)計(jì)了基于主觀Bayes方法的不確定性推理的合成與更新算法,并在Java平臺(tái)上實(shí)現(xiàn)了這一算法。從實(shí)驗(yàn)結(jié)果來看,我們的算法結(jié)果正確,兩種算法的結(jié)果一致,實(shí)現(xiàn)了不確定推理問題求解的自動(dòng)化。
參考文獻(xiàn)
[1] 石純一,黃昌寧,王家廞.人工智能原理[M].北京:清華大學(xué)出版社,1993.
[2] 張仰森,黃改娟.人工智能實(shí)用教程[M].北京:北京希望電子出版社,2002.
[3] 王萬森.人工智能原理及其應(yīng)用[M].2版.北京:電子工業(yè)出版社,2007.
[4] 劉玉鳳.Bayes概率在不確定性方法中的應(yīng)用[J].遼寧教育學(xué)院學(xué)報(bào),2002(9):1-2.
[5] 張文修.包含度理論—— 不確定性研究的方法學(xué)[J].中國科學(xué)基金,1996(4):254-260.