用PowerBuilder建造計算機圖形評分專家系統
王金輝、李興森、劉子英
1.引言
專家系統作為人工智能應用研究最活躍和最廣泛的課題之一,現已在各個領域取得了很大的成功,其主要組成部分包括知識庫、動態數據庫、推理機、解釋器和接口界面等。知識庫存儲關于某個領域的專門知識,推理機依據一定的策略進行推理,動態數據庫用于存放系統運行過程中所需要的和產生的各種信息,解釋器負責解釋用戶需要了解的一些問題,接口界面則用于人機對話。
當前,專家系統的建造主要有以下幾種開發環境:一種是專家系統外殼;二是專家系統開發工具;三是通用人工智能語言;四是通用程序設計語言,如C++、PowerBuilder、 Visual Basic等。
C++較適于開發推理機比較復雜的專家系統,而對推理相對簡單、動態數據量大的專家系統則顯得大材小用,開發周期偏長。對于推理機制與方式比較簡單、知識庫數據多且復雜的這一類專家系統,特別適合用數據庫開發工具來建造。專家系統與數據庫技術的結合已成為當前計算機發展的一個重要領域。近年來,國內外相繼有人研究使用數據庫方式組織知識,并已取得一些成果。基于數據庫的專家系統以成熟的數據庫技術為載體,利用專家系統的思想方法來進行推理演繹,充分利用專家系統和關系數據庫技術兩者所具有的優點,以數據庫為基礎,便于添加、修改知識庫,易于通過人機對話實現簡單的學習功能,以關聯建立知識庫,引導推理,以過濾機制和索引技術加快搜索,使推理更加簡單、高效。PowerBuilder是目前最有代表性的數據庫前端開發工具之一,已在管理信息系統和數據庫應用系統中獲得廣泛應用,取得了巨大成功。
我們用PowerBuilder 6.5設計了一個計算機圖形評分專家系統框架,該系統可對計算機作圖進行評價、打分,可用于各類考試,計算機輔助設計評價等,具有廣泛的應用前景。該方案已用于全國注冊建筑師考試作圖題評分子系統的設計。系統總體結構如圖1所示。
其中,評分標準獲取模塊用于通過圖形界面輸入評分標準,輸入的評分標準通過知識庫管理模塊進行一致性、冗余性檢查,將正確的標準存入評分標準知識庫。圖形特征提取模塊用于從二維繪圖平臺輸出的文本文件,如AUTOCAD的DXF文件中提取所需的數據,通過計算、比較,生成評分所需的屬性值,存為標準格式的文件,用來導入考卷事實庫。劃分數線模塊用于制定成績各檔次的分數線,通過一致性檢查后存入分數線檔次庫。計算機評分結合考卷事實庫、評分標準知識庫和分數線檔次庫,進行計算、比較、推理得出初步結論,通過考生成績管理模塊的一致性檢查后,存入考生成績庫。人工校核模塊用于人工復核。其中計算機評分模塊的流程圖如圖2所示。
2.知識庫、數據庫設計
(1)考卷事實庫
包括可評分事實庫和答卷庫。可評分事實庫結構為SCORE_FACT(Fact_Id,Score,Score_Type),用于存放可直接評分的事實。其中,Fact_Id是事實代碼,Score是該事實應得分數,Score_Type為給分方式。答卷庫用于存放考生答卷信息, 其結構為EXAM_FACT( Exam_Id, Cat_Code, Item_Code, Value)。其中,Exam_Id為考生準考證號,Cat_Code是試題代碼,Item_Code為答卷條目代碼, Value是該條目的值。
(2)評分標準知識庫
包括評分標準庫和規則前后件庫,評分標準庫結構為SCORE_TREE(Item_Code, Item_Name, Item_Demand, Item_Parent_Code,Score_flag),它用于存放評分標準的所有條目內容及其關系。其中,Item_Code為評分標準條目代碼, Item_Name為條目名稱, Item_Demand是對該條目的具體要求,Item_Parent_Code是上層條目代碼。Score_flag用來區別該條目評分類型(直接比較給分、規則推理、函數計算)。
規則前后件庫的結構為RULE_FACT(Fact_Id,Fact_Name,Item_Code,Used_By,Deduced_by, attribute)。它用于存放各規則對應的前提或結論。其中,Fact_Id是事實號,Fact_Name為事實名稱, Item_Code為條目代碼,Used_By以此事實為條件的規則,Deduced_by 能推出此事實的規則,attribute 說明此事實類型,是目標、可推演事實、已知事實中的哪一種。
3.推理機設計
從評分標準庫中,按考題代碼進行順序查詢,根據評分標志進行相應的操作。如評分標志為“d”,則可從事實庫中查找Item_code相同的條目值。直接比較,正確則得到相應的分數。如評分標志為“f”,則進一步查詢對應的參數代碼,從考生事實庫中提出相應的參數值,將帶入函數公式計算后的值與評分標準中的正確答案比較給分。如評分標志為“r”,則查詢可評分事實庫相應的內容,啟用規則推理,按推出的結論正確與否給分。對于適用規則進行推理的條目,有兩種推理方法,具體推理過程如下:
第一種方法是逆向推理:(1)根據評分標準庫中需要推理的條目,在規則庫中查找對應的事實f1,由deduced_by得到可能性最大的規則r1。(2)在規則庫中尋找r1,取出其對應的premise中的第一個事實f11,若其為可推演事實,則重復步驟(1)、(2),直到得到對應的已知事實,若全部事實成立則推理成功,否則記錄失敗信息,轉向下一條標準。
第二種方法為正向推理,它以深度優先策略根據已知事實中的used_by部分逐步向下推理,直到得到目標。若規則成立,則得到相應的分數,否則分數為0,記錄失敗信息,將結果存入考生成績庫。
本方案幾種方法取長補短,可以對評分標準庫進行方便的修改、補充,從而可以用于評價其他類型的設計、考試等,適應性強,從根本上解決了專家系統知識獲取難的問題。
4.結束語
用PowerBuilder開發基于數據庫的專家系統,對知識的管理方便、直觀,實現了規則的動態管理,解決了專家系統知識獲取難的問題,利用數據庫索引技術和過濾機制引導推理,使推理更加簡單、高效。雖然由于計算機圖形評分涉及的知識十分繁雜,還有不少問題需要解決,但是通過全國注冊建筑師考試作圖題評分系統的開發可以看出,用PowerBuilder開發基于數據庫的專家系統,時間短,見效快,效率高,是一種值得推廣的專家系統構造模式,它使領域專家在基本沒有知識工程師幫助的情況下就能建造自己領域內的專家系統。
王金輝、李興森、劉子英
1.引言
專家系統作為人工智能應用研究最活躍和最廣泛的課題之一,現已在各個領域取得了很大的成功,其主要組成部分包括知識庫、動態數據庫、推理機、解釋器和接口界面等。知識庫存儲關于某個領域的專門知識,推理機依據一定的策略進行推理,動態數據庫用于存放系統運行過程中所需要的和產生的各種信息,解釋器負責解釋用戶需要了解的一些問題,接口界面則用于人機對話。
當前,專家系統的建造主要有以下幾種開發環境:一種是專家系統外殼;二是專家系統開發工具;三是通用人工智能語言;四是通用程序設計語言,如C++、PowerBuilder、 Visual Basic等。
C++較適于開發推理機比較復雜的專家系統,而對推理相對簡單、動態數據量大的專家系統則顯得大材小用,開發周期偏長。對于推理機制與方式比較簡單、知識庫數據多且復雜的這一類專家系統,特別適合用數據庫開發工具來建造。專家系統與數據庫技術的結合已成為當前計算機發展的一個重要領域。近年來,國內外相繼有人研究使用數據庫方式組織知識,并已取得一些成果。基于數據庫的專家系統以成熟的數據庫技術為載體,利用專家系統的思想方法來進行推理演繹,充分利用專家系統和關系數據庫技術兩者所具有的優點,以數據庫為基礎,便于添加、修改知識庫,易于通過人機對話實現簡單的學習功能,以關聯建立知識庫,引導推理,以過濾機制和索引技術加快搜索,使推理更加簡單、高效。PowerBuilder是目前最有代表性的數據庫前端開發工具之一,已在管理信息系統和數據庫應用系統中獲得廣泛應用,取得了巨大成功。
我們用PowerBuilder 6.5設計了一個計算機圖形評分專家系統框架,該系統可對計算機作圖進行評價、打分,可用于各類考試,計算機輔助設計評價等,具有廣泛的應用前景。該方案已用于全國注冊建筑師考試作圖題評分子系統的設計。系統總體結構如圖1所示。
其中,評分標準獲取模塊用于通過圖形界面輸入評分標準,輸入的評分標準通過知識庫管理模塊進行一致性、冗余性檢查,將正確的標準存入評分標準知識庫。圖形特征提取模塊用于從二維繪圖平臺輸出的文本文件,如AUTOCAD的DXF文件中提取所需的數據,通過計算、比較,生成評分所需的屬性值,存為標準格式的文件,用來導入考卷事實庫。劃分數線模塊用于制定成績各檔次的分數線,通過一致性檢查后存入分數線檔次庫。計算機評分結合考卷事實庫、評分標準知識庫和分數線檔次庫,進行計算、比較、推理得出初步結論,通過考生成績管理模塊的一致性檢查后,存入考生成績庫。人工校核模塊用于人工復核。其中計算機評分模塊的流程圖如圖2所示。
2.知識庫、數據庫設計
(1)考卷事實庫
包括可評分事實庫和答卷庫。可評分事實庫結構為SCORE_FACT(Fact_Id,Score,Score_Type),用于存放可直接評分的事實。其中,Fact_Id是事實代碼,Score是該事實應得分數,Score_Type為給分方式。答卷庫用于存放考生答卷信息, 其結構為EXAM_FACT( Exam_Id, Cat_Code, Item_Code, Value)。其中,Exam_Id為考生準考證號,Cat_Code是試題代碼,Item_Code為答卷條目代碼, Value是該條目的值。
(2)評分標準知識庫
包括評分標準庫和規則前后件庫,評分標準庫結構為SCORE_TREE(Item_Code, Item_Name, Item_Demand, Item_Parent_Code,Score_flag),它用于存放評分標準的所有條目內容及其關系。其中,Item_Code為評分標準條目代碼, Item_Name為條目名稱, Item_Demand是對該條目的具體要求,Item_Parent_Code是上層條目代碼。Score_flag用來區別該條目評分類型(直接比較給分、規則推理、函數計算)。
規則前后件庫的結構為RULE_FACT(Fact_Id,Fact_Name,Item_Code,Used_By,Deduced_by, attribute)。它用于存放各規則對應的前提或結論。其中,Fact_Id是事實號,Fact_Name為事實名稱, Item_Code為條目代碼,Used_By以此事實為條件的規則,Deduced_by 能推出此事實的規則,attribute 說明此事實類型,是目標、可推演事實、已知事實中的哪一種。
3.推理機設計
從評分標準庫中,按考題代碼進行順序查詢,根據評分標志進行相應的操作。如評分標志為“d”,則可從事實庫中查找Item_code相同的條目值。直接比較,正確則得到相應的分數。如評分標志為“f”,則進一步查詢對應的參數代碼,從考生事實庫中提出相應的參數值,將帶入函數公式計算后的值與評分標準中的正確答案比較給分。如評分標志為“r”,則查詢可評分事實庫相應的內容,啟用規則推理,按推出的結論正確與否給分。對于適用規則進行推理的條目,有兩種推理方法,具體推理過程如下:
第一種方法是逆向推理:(1)根據評分標準庫中需要推理的條目,在規則庫中查找對應的事實f1,由deduced_by得到可能性最大的規則r1。(2)在規則庫中尋找r1,取出其對應的premise中的第一個事實f11,若其為可推演事實,則重復步驟(1)、(2),直到得到對應的已知事實,若全部事實成立則推理成功,否則記錄失敗信息,轉向下一條標準。
第二種方法為正向推理,它以深度優先策略根據已知事實中的used_by部分逐步向下推理,直到得到目標。若規則成立,則得到相應的分數,否則分數為0,記錄失敗信息,將結果存入考生成績庫。
本方案幾種方法取長補短,可以對評分標準庫進行方便的修改、補充,從而可以用于評價其他類型的設計、考試等,適應性強,從根本上解決了專家系統知識獲取難的問題。
4.結束語
用PowerBuilder開發基于數據庫的專家系統,對知識的管理方便、直觀,實現了規則的動態管理,解決了專家系統知識獲取難的問題,利用數據庫索引技術和過濾機制引導推理,使推理更加簡單、高效。雖然由于計算機圖形評分涉及的知識十分繁雜,還有不少問題需要解決,但是通過全國注冊建筑師考試作圖題評分系統的開發可以看出,用PowerBuilder開發基于數據庫的專家系統,時間短,見效快,效率高,是一種值得推廣的專家系統構造模式,它使領域專家在基本沒有知識工程師幫助的情況下就能建造自己領域內的專家系統。
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=3150
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
