第四章 系統(tǒng)上下文的數(shù)據(jù)結(jié)構(gòu)與智能數(shù)據(jù)庫
系統(tǒng)上下文是組織系統(tǒng)信息的基本部分,是當(dāng)前求解狀態(tài)的符號、事實和各種設(shè)計結(jié)果的集合,是專家系統(tǒng)運行的基礎(chǔ)。
4.1系統(tǒng)上下文的組成
1.系統(tǒng)的上下文:專家系統(tǒng)在運行過程中,通過訪問上下文(動態(tài)數(shù)據(jù)庫)獲得數(shù)據(jù),決策完成后再將決策結(jié)果儲存在上下文中。上下文的組織形式、布局、數(shù)據(jù)的交換過程對專家系統(tǒng)的組織影響很大。如果系統(tǒng)上下文的組織符合數(shù)據(jù)的內(nèi)在聯(lián)系,很容易存取各項數(shù)據(jù),不僅能夠使系統(tǒng)的數(shù)據(jù)組織順理成章,而且便于使用系統(tǒng)的數(shù)據(jù)庫以及快速查詢,從而提高系統(tǒng)的使用性能和實用價值。
圓柱齒輪減速器設(shè)計專家系統(tǒng)是由LlSP語言編寫。LISP 語言是一種表處理語言(listpr cessing language ),數(shù)據(jù)及程序均由S一表達式構(gòu)成,其基本結(jié)構(gòu)形式是表(程序和數(shù)據(jù)沒有本質(zhì)區(qū)別)。使用這種表結(jié)構(gòu),具有:
·全局性能好。通過表之間的連接,系統(tǒng)能夠進行統(tǒng)籌管理;
·透明度高。按一定的格式,程序很容易讀;
·結(jié)構(gòu)性好;
·以表形式表達的數(shù)據(jù)非常容易擴充。
利用人工智能語言LISP 在構(gòu)造程序上的極大便利性,可方便地實現(xiàn)動態(tài)的智能數(shù)據(jù)庫(上下文)。
2.上下文的組成:圓柱齒輪減速器設(shè)計專家系統(tǒng)的上下文由三部分組成,它們分別是斷言表(ASSAERTIONS)、設(shè)計參數(shù)表(PARA METERAS)和進程表(HlSTORY)。
斷言表是構(gòu)成產(chǎn)生式系統(tǒng)的基本組成部分,它實際上是一堆棧表,即后進入斷言表的斷言在規(guī)則調(diào)用中首先被匹配,這種組織方式能夠節(jié)省時間上的開銷,因為本階段設(shè)計任務(wù)與當(dāng)前設(shè)計環(huán)境有更直接的聯(lián)系。
設(shè)計參數(shù)表是用于存放圓柱齒輪減速器專家系統(tǒng)設(shè)計中的各種零件參數(shù)及其它設(shè)計結(jié)果果的表的集合,它由一系列的框架組成。其中包括了圈柱齒輪減速羚的所有零件,例如箱體、軸、齒輪、……。用框架形式表達設(shè)計參數(shù)比用斷言形式更加自然。
斷言表和設(shè)計參數(shù)表根據(jù)實際需要可以互相轉(zhuǎn)化,通過作者研制的一套轉(zhuǎn)換函數(shù),能夠?qū)崿F(xiàn)從斷言表中匹配出所需的斷言,并從斷言中取得所要求的公式、數(shù)表或數(shù)值以及所需的操作;同時,參數(shù)設(shè)計表中的內(nèi)容也可通過相應(yīng)的函數(shù)實現(xiàn)相反的轉(zhuǎn)變。
進程表是專家系統(tǒng)運行過程的記錄,主要用于解釋、查詢及控制等功能。
4.2智能數(shù)據(jù)庫
1.智能數(shù)據(jù)庫的組織
圓柱齒輪減速器作為一個機器整體,各零件間是密切關(guān)聯(lián)的,其相互間的聯(lián)系如圖4-1所示。
從圖4-1中衍生的圓往齒輪減速器設(shè)計專家系統(tǒng)的數(shù)據(jù)間的邏輯組織形式如圖4-2。
圖4-2為一樹狀結(jié)構(gòu),其中樹的葉結(jié)點均為相應(yīng)零、部件所定義的框架結(jié)構(gòu)。根據(jù)數(shù)據(jù)組織的層次關(guān)系,建立起專家系統(tǒng)的動態(tài)數(shù)據(jù)庫的層次關(guān)系庫。
2.智能數(shù)據(jù)庫的實現(xiàn)
LlSP語言是表處理語言,讓我們簡單看一下表的內(nèi)存表示法。
從概念上看,一般計算機內(nèi)存是由許多編了號碼的內(nèi)存單元組成。一個特定的內(nèi)存單元的編號稱內(nèi)存地址。如
單元的地址 |
單元的內(nèi)容 |
2001 |
9100 |
2003 |
9025 |
2003 |
9001 |
內(nèi)存單元的內(nèi)容是數(shù)字,像地址一樣。因此,一個內(nèi)存單元的內(nèi)容可以說包含了另一個單元的地址。如果對內(nèi)存單元的內(nèi)容作這種解釋,那么第一內(nèi)存單元被說成包含另一個單元的指針。如內(nèi)存單元2001含有指向9100內(nèi)存單元的指針。一般在LISP語言中,內(nèi)存單元大的可以包含兩個指針,左半指針和右半指針。其中,右半指針把表串在一起,而左半指針指出表的各元素?梢杂孟旅娴某橄蠓绞奖硎荆捶胶幸患^表示。每一個指針用一個箭頭表示,表可以用帶有左、右指針的許多方盒來表示,用右指針把方盒連在一起,用帶斜杠的方盒表示表的結(jié)尾,原子則簡單地寫下名字。
通過以上的描述方法,原子context的值(assertions parameters history)可表達為:
通過層次結(jié)構(gòu)(或稱樹結(jié)構(gòu))的遍歷,通過LISP語言的再求值(EVAL)函數(shù),便可實現(xiàn)數(shù)據(jù)庫的一系列操作。以圖4-2為例,說明數(shù)據(jù)庫的查詢過程。
在當(dāng)前數(shù)據(jù)庫中查找到box-data,通過對原于box-data再求值,便可得到box-data框架,通過對box-data框架運行,可得到箱體的各項數(shù)據(jù)。
數(shù)據(jù)庫的智能查詢:數(shù)據(jù)庫的智能查詢是指可對當(dāng)前數(shù)據(jù)庫進行如下所示的操作:
·所設(shè)計的圓柱齒輪減速器的傳動級數(shù);
·各傳動軸的功能;
·某軸上安裝的齒輪號;
·與該齒輪嚙合的齒輪號;
·齒輪傳遞關(guān)系;
……
以上操作可以通過斷言表及設(shè)計參數(shù)框架的組合進行實現(xiàn)。
3.智能數(shù)據(jù)庫的存取
(1)樹的遍歷:這種方法中,數(shù)據(jù)以前序遍歷、即首先搜索樹的根結(jié)點,然后搜索樹的子結(jié)點的方法實現(xiàn)。
(2)通用選擇法:通用選擇法不依賴于選擇內(nèi)容在樹結(jié)構(gòu)中的位置和順序,而是根據(jù)所確定的選擇條件,直接對原子求值,選擇所需內(nèi)容。
上一頁
下一頁