摘要:針對KBE系統在企業協同環境中應用的不足,提出一種基于多Agent的分布式協同KBE系統框架。在利用Agent技術對已有工程軟件包裝的基礎上,通過多Agent的協同和交互,在系統和知識層面上實現并協調設計過程。為了支持跨領域的知識共享和重用,通過建立廣義產品知識庫來實現不同領域知識的描述和管理。
關鍵詞:多Agent;知識工程;協同;廣義產品知識庫
中圖法分類號:TP3115文獻標識碼:A
文章編號:1001-3695(2006)09-0189-03
知識工程(KnowledgeBaseEngineering,KBE)是面向現代設計要求而產生、發展的新型智能設計方法和實現設計決策自動化的重要途徑。目的是通過運用知識工程原理將設計人員在設計過程中采用的設計思想、準則、原理等以顯性的知識表達出來,并結合到設計系統中,從而使系統能夠自動對工程任務提出最佳的解決方案。可以說KBE是CAx系統與人工智能技術的集成應用[1,2,5,6],一些公司已經推出了商業化的帶推理機制與幾何機制的知識工具,如KTI的ICAD[4]、Technosoft的AML[7]等,初步證明KBE系統具有巨大優勢。
隨著先進制造環境的逐步建立,現代企業的產品設計過程越來越強調與制造、分析等支持過程并行地、集成地進行,需要多學科小組、各有關部門協同工作。在這個前提下,傳統的面向單一應用領域的KBE系統(如ICAD)很難適應這種環境。主要表現在:①從系統的角度來看,不能有效地將不同專業的設計人員和不同區域的資源、工具組織在一起,從而很難在更廣泛的范圍內實現知識層面上的設計過程。②從知識獲取和管理角度來看,不具備一個足以描述產品設計過程所涉及的多個知識領域的知識庫系統。
針對以上問題,本文提出一種基于多Agent的分布式協同KBE系統框架。在利用Agent對將專業設計、分析工具和知識處理工具進行包裝(Wrapper)的基礎上,通過多Agent的協作工作機制,在知識層面上將不同專業的設計人員和不同區域的資源、工具組織在一起,從而實現更大范圍的知識工程過程。通過建立廣義產品知識庫,以產品模型為核心,實現對產品開發過程各領域知識的有效組織、描述和管理。
1基于多Agent的系統框架
1.1系統的組成結構
本系統采用多Agent技術將不同專業的設計人員和不同區域的資源組織在一起,將產品設計、知識獲取、知識管理及相關過程進行一體化集成,構建一個協同的產品自動化設計環境。系統分為三層,其結構如圖1所示。
(1)應用層,包括硬件資源和設計過程中所需要的應用軟件系統。應用軟件主要包括幾何模型構建類、知識管理類(知識挖掘、智能推理等)、工程演算類和信息管理類四種(詳見第2.2.2節)。
(2)Agent協作層。以建立在對象請求代理(ORB)上的消息傳輸機制為基礎,Agent通過交換語言(ACL)進行動態的數據與知識交換。資源管理Agent負責對系統內各個節點的資源(包括硬件和軟件)進行收集和分配;過程管理Agent能提供事務的支持與維護;產品數據Agent負責對廣義知識庫進行管理;工具Agent封裝了應用層內已有的工具軟件,協助用戶完成任務。其中資源管理Agent、過程管理Agent和產品數據Agent位于知識服務器端,工具Agent位于應用層的客戶端。
(3)知識服務層。以廣義產品知識庫為基礎,提供與產品設計相關的知識。所謂廣義知識庫是指以產品模型為中心,與產品模型相關聯的各類數據庫、規則庫、設計事例庫的總稱。庫內儲存領域專家的經驗、知識以及已知的事實和采用這些知識的規則。
1.2系統的運行過程
系統運行時,設計人員輸入相關的設計要求、約束,并作出重要的決定,無須關心實現具體功能的應用軟件。系統通過Agent之間的交互與協作可以自動完成大量常規的、耗時的工作,產生符合要求的設計結果。相應的工具Agent接收用戶發出的任務指令后,向知識服務器上的產品數據Agent發出查詢消息,后者在廣義產品知識庫內搜索相應的工程規則或設計實例,并將檢索結果返回工具Agent。根據得到的知識,工具Agent通過內部推理模塊計算工程參數值或相關參數對幾何參數的影響,從而驅動最終的幾何造型。當某個任務所需要的資源和能力超過單獨Agent的能力時,該Agent能夠通過資源管理Agent查找具有所需能力的其他Agent,通過過程管理Agent將任務進行轉發。Agent之間的相互協作實現了系統能力的擴張,并學習到新的知識,也可通過知識管理類工具Agent及時存入廣義產品知識庫。
2系統詳細結構設計
2.1廣義產品知識庫
傳統的設計過程往往過于依賴設計者的經驗,設計知識缺乏系統的歸納和整理,知識利用率低,重用性、共享性和繼承性差,導致了設計過程的瓶頸。由于產品設計涉及多學科領域,知識的內容和表達形式各有不同,為將多種不同領域的知識集成于一體,本文提出建立廣義產品知識庫,將多領域和多種描述形式的設計知識進行統一表達,實現跨領域不同系統間知識的共享和重用,增強了知識的利用率。如圖2所示,產品模型是用計算機語言對產品進行表達,建立統一的面向產品全生命周期的產品模型數據庫,使本系統的應用對象可以從工程設計領域延伸到分析、制造等領域。
以產品模型為核心,將與產品模型相關的各類數據庫、規則庫、設計事例庫等進行集成形成廣義產品知識庫。在參考文獻[5,6]的基礎上,廣義產品知識庫的內容主要包括:①業務知識。從設計標準、手冊、規范、專家經驗等知識源獲取與設計領域相關的專業知識,包括設計策略知識。②成熟的產品實例及學習產生的新實例。③所有與產品設計相關的數據,如各種設計的表格、視圖等。④組織和協作知識。
這些知識數據分別以XML和RDF作為標準的語法和語義語言進行描述[8],實現基于語義的知識表示和推理,以關系數據庫為載體,通過相應的API和SQL語句來添加、修改和維護數據內容,便于知識庫的維護和更新。
2.2Agent的結構和功能設計
2.2.1Agent的邏輯結構設計
Agent是指具有自主能力、社交能力、反應能力和預動能力的可以獨立自主完成某項任務的動作實體[3]。根據這個定義,本文提出一種Agent邏輯結構,如圖3所示,Agent由包裝(Wrapper)、通信(Communication)、決策(DecisionMaking)、知識庫(KnowledgeBase)等模塊組成。
包裝模塊能夠在ACL消息格式和應用軟件(位于應用層或知識服務層)能理解的命令格式之間進行翻譯,使應用軟件能以Agent的通信方式進行合作。通過包裝模塊,Agent產生對外部環境的抽象描述并存入事實庫,通信模塊通過ACL語言和Agent協作層內的其他Agent合作共同完成設計任務。根據外部環境情況、Agent自身內部狀態和其他Agent的消息請求,決策模塊運用知識庫中的知識進行推理,決定當前動作和通信。包裝模塊則將決策模塊傳入的動作命令轉換為對應用層或知識服務層內應用軟件的調用命令,使之作出相應的操作。包裝模塊為Agent與系統的應用層和知識服務層的交互提供了一致的方法,解決了不同應用系統之間進行協同工作的問題。包裝模塊具體實現請參考文獻[9]。
值得注意的是這里定義的Agent內部知識庫與上文定義的廣義產品知識庫是完全不同含義和概念的。Agent內部知識庫由事實庫和規則庫組成。事實庫是決策模塊進行推理前已知條件和當前信息集合(包括各種臨時信息);規則庫是該Agent實現具體功能所需的相關專門知識,與產品設計領域無關。如對于產品數據Agent,它負責廣義產品知識庫的管理,因此它的知識庫內容是查詢語言知識(如SQL)及數據庫事務處理知識(數據的回滾、恢復)等。
2.2.2Agent的功能設計
如圖1所示,本系統中的Agent分為四種類型:
(1)工具Agent。工具Agent能夠接收用戶的任務指令,從產品數據Agent得到有關工程知識和數據后,調用內部推理模塊和知識庫進行求解。按照所包裝的工具軟件類型的不同,工具Agent可以分為四個子類:①幾何模型構建類,如UG工具Agent。這類工具Agent主要完成生成產品的幾何模型、建立產品配置關系等功能,最終形成實際產品幾何結構。②知識管理類。能夠挖掘產品開發人員的設計經驗,采用知識工程原理將其表達出來,使之成為計算機可操作的對象,如SASEnterpriseMiner工具Agent。③工程演算類。工程演算是指按照所定義的工程知識,進行科學計算、分析和綜合評價,確定產品模型功能和有效性的決策過程,如通過ANSYS工具Agent進行應變分布計算,確定合適的模型參數,以便其他Agent構造幾何模型。④信息管理類,如PDM工具Agent,這類Agent與PDM等信息管理系統軟件相聯系,及時獲取系統內外的各種信息和狀態,并通過廣播方式通知其他Agent。
(2)資源管理Agent。它負責對系統軟硬件資源進行收集和分配,并且系統內所有Agent都需要在資源管理Agent中進行注冊,記錄相關位置、能力等信息,提供網頁服務。
(3)過程管理Agent。它能夠對系統運行過程各階段提供事務支持和維護,進行任務分解和調度,消解Agent間的沖突。
(4)產品數據Agent。它負責對廣義知識庫進行管理和操作,其包裝模塊提供了訪問廣義產品知識庫的映射,建立了與知識庫的連接,把工具Agent的查詢請求轉換為對知識庫的查詢操作,并將查詢結果返回給工具Agent。
3結論
本文提出一種基于多Agent的分布式協同KBE系統框架,通過Agent技術對各種工具軟件進行包裝,將不同專業的設計人員和不同區域的資源、工具有效地組織在同一個協同KBE環境中,充分保障產品設計的綜合最優結果,也使在更廣的工程領域內實現知識工程成為可能。廣義產品知識庫的建立為涉及多個領域的知識工程過程的實現提供了良好的知識描述和管理基礎。
Agent內的包裝模塊增加了應用軟件接口和ACL之間翻譯引起的額外開銷,當應用軟件變動時包裝模塊實現的接口也要進行改變,因此如何利用Agent更好地解決遺留軟件問題,是下一步需要深入研究的問題。
參考文獻:
[1]趙震,彭穎紅.基于KEB的工程設計——理論方法與實踐[J].機械科學與技術,2003,22(1):151153.
[2]PenoyerJA,BurnettG,etal.KnowledgeBasedProductLifeCycleSystems:PrinciplesofIntegrationofKBEandC3P[J].ComputerAidedDesign,2000,32:311320.
[3]史忠植.智能主體及其應用[M].北京:科學出版社,2000.
[4]http://www.ktiworld.com/home.shtml[EB/OL].
[5]唐文獻,方明倫,等.基于知識的產品協同設計系統體系結構研究[J].系統仿真學報,2004,16(3):601607.
[6]田鋒,李人厚.基于知識的協同設計工作過程建模[J].計算機應用研究,2003,20(7):1012.
[7]http://www.technosoft.com/[EB/OL].
[8]JHendler.AgentsandtheSemanticWeb[J].IEEEIntelligentSystems,2001,16(2):3037.
[9]郭中,王惠芳,等.外部軟件與多Agent系統的集成技術[J].信息工程大學學報,2003,4(3):13.
作者簡介:
王明微(1978),女,遼寧本溪人,助教,博士研究生,主要研究方向為Agent技術、協同設計等。