摘 要: 為了提高可拓策略生成系統的能力,探討了可拓策略生成系統與Agent技術結合的問題。介紹了Agent在可拓策略生成中可以結合的幾個方面,重點介紹Agent控制可拓變換發散與收斂過程的作用,以克服計算中容易出現的“組合爆炸”困難,使可拓策略生成系統得到效率較高的策略輸出。
關鍵詞:可拓策略生成; Agent; 發散; 收斂
根據基元的可拓性,對其進行拓展,然后利用合適的評價方法進行篩選,從而收斂少量基元,這種思維方式稱為菱形思維方法[1]。菱形思維的特點是發散與收斂,可拓策略生成系統[2]采用了菱形思維方法解決矛盾。它將定性分析方法與定量計算方法相結合,根據基元的可拓性,在解決矛盾的過程中,當目標實現與約束條件之間發生沖突時,運用基元的發散性、共軛性、相關性、蘊含性和可擴性等,拓展出候選策略集,然后進入收斂階段,通過優度計算評價出較優的策略推薦給決策者參考。人工控制發散與收斂過程是比較靈活的,但是,普通計算機系統缺乏自主性,控制不好發散過程就容易產生計算“組合爆炸”問題,計算效率大大降低。Agent是有一定自主性的計算實體,如何運用可拓學和Agent技術這兩種不同領域的知識,發揮各自的優勢,克服“組合爆炸”問題而有效地生成策略,是本文探討的主要議題。
1 Agent與可拓策略生成系統結合的幾個方面
可以結合可拓學與Agent兩種學科領域的技術優勢,在可拓學的菱形思維方法中加入軟件Agent技術,使其具有策略生成機制,在無人的情況下自主代替人解決問題。利用Agent的自主性和預動性以確保在變化多端的客觀環境下生成解決問題的較優策略,增強策略生成的靈活性和科學性。
Agent與可拓策略生成系統結合可以有界定問題、協助分析核問題、維護知識庫(本體進化)、控制發散與收斂及其他幾個方面。
本節只介紹前三個方面。
1.1 利用Agent界定問題的方法
為了用軟件Agent解決問題,必須首先建立問題的數學模型,把問題數值化,再界定問題是否矛盾。然而,問題的表述經常是用自然語言完成的,如果直接讓軟件理解這些自然語言信息是很困難的。該方案是讓Agent處理半結構化信息,而不涉及自然語言理解。可以研究如何利用Agent的通信能力和反應性在人機交互界面設法將人們用自然語言描述的問題引導出目標和條件,從而建立可拓模型。
可以采用如下方法實現其目的:
(1)建立以復合元為基本結構的本體,作為Agent的知識庫。利用本體支持語義互操作的優勢,使Agent能夠在本體的支持下對語義模糊的問題信息進行分析處理,排除語義沖突,得到語義正確的待求解問題后再建立其可拓模型。
(2)建立人機交互界面,讓用戶與Agent進行交互,試圖發現表層問題,作為Agent解決問題的開始。利用Agent的通信能力和反應性界定問題,需要設定會話策略。
1.2 協助分析核問題
讓Agent根據可拓模型識別問題類型和核問題(關鍵問題),減輕人的勞動,讓Agent從表層問題推出深層核問題,復雜問題轉換為可計算的簡單問題。
以旅游問題為例,如果用戶告訴Agent他想在40 min內到達大學城,同時Agent問清楚用戶目前位置(如東風路)與交通工具(自行車),而Agent的知識庫里說明東風路距大學城20多公里,計算機計算之后就知道問題的核心是距離與速度矛盾,那么提高速度就可以解決問題。
計算機需要有領域知識,才能解決某個領域問題。本文利用信息-知識-策略形式化體系來提高系統分析問題的能力[3]。
1.3 維護知識庫(本體進化)
由于知識不斷更新,需要研究如何對本體進行進化,才能更有效地進行策略生成。可以用人機交互方式輸入新信息到本體中,更新之前創建的本體庫。也可利用Agent的學習能力以及自主性不斷發現新知識,并把學習到的知識及時存儲進本體中,支持本體進化,以提高問題建模能力,從而為建立正確的問題模型奠定基礎。
因為本體是樹狀的,與數據庫維護不同。這就必須告訴Agent目前哪個概念要更新,出現哪個新概念,屬于哪種類型,有什么屬性,這樣Agent才能把某個概念更新或添加。利用Agent的學習能力,特別是其主動學習[4]能力,實現知識進化; 也可以是統計學習,比如將數據挖掘發現的變化知識存儲在本體中,實現本體進化; 還可以利用Agent的通信能力進行會話,學習其他Agent的經驗。
Agent還可以協助控制菱形思維方法的發散與收斂過程。
2 Agent協助控制發散與收斂
在建立可拓策略生成系統時,經常遇到發散分析不能及時收斂而計算速度急劇下降的現象。人工控制發散與收斂是比較靈活的,根據基元的發散性(一物多征、一征多物、一值多物等),利用可拓變換拓展目的基元;根據事物的共軛性(虛實、軟硬、潛顯、負正),利用變換分析目的基元的物質性、系統性、 動態性、 對立性;根據基元的可擴性(可加性、可積性、可分性),利用可拓變換對條件基元進行重新整合;根據決策問題的需要,還可以由基元的可擴性對目標進行開拓,由基元的發散性、可擴性、 相關性、 蘊含性對條件進行開拓,以形成更多可供選擇的策略,用以解決矛盾或偽矛盾的決策問題。人的思維發散到一定程度不想再發散下去時,就能迅速轉向收斂過程。但計算機通常是在不斷窮舉發散出來的各種新組合,控制不好就產生計算組合爆炸。因此,必須研究如何充分發揮Agent的自主性、反應性、預動性、學習能力等特性,控制可拓策略生成系統的發散與收斂過程。
本文采用如下的技術方案:
首先建立關聯函數,解決問題的前期主要是進行發散計算,根據用戶的目標和條件進行拓展分析,利用可拓變換和可拓推理,根據本體提供給Agent的知識,找出可以使關聯函數從小于零到大于零可拓變換,然后進入菱形思維的收斂階段,建立評價策略的基本方法,得到較優的策略輸出。
發散階段是Agent監視計算過程的重要階段。計算關聯函數一般沒有組合爆炸問題,組合爆炸通常出現在根據拓展分析尋找能使關聯函數大于零的可拓變換(策略)中。在算法上采用深度優先遍歷,先找到一個能解決問題的策略,再找其他策略,不能窮舉。Agent通過監視策略數的多少及時停止發散,比如旅行線路問題,可以變換酒店、交通工具、景點等,Agent控制先輸出幾個能使關聯函數大于零的策略就停止,試問用戶滿意與否。如果不滿意再進行其他變換,Agent監視運算速度(如計算產生一條策略的時間),超過時間限制就停止繼續發散,轉向收斂階段。
在收斂階段Agent根據優度評價規則對策略評價擇優,評價因子可以人機交互輸入,也可以預先設定評價因子的初值,允許用戶修改。這一階段一般沒有組合爆炸問題,Agent主要判斷評價因子的合理值范圍就可以了。
筆者在自助游可拓策略生成系統中就采用了Agent監控可拓策略生成系統的發散與收斂過程的方案,使得策略生成的效率在用戶可以容忍的速度下進行。
3 Agent與可拓策略生成系統結合的其他方面
Agent還可以在其他方面與可拓策略生成系統結合,例如,根據用戶問題協助選定關聯函數,而不是像目前需要靠人預先設定好,以增加系統的靈活性。再如,可以利用Agent進行智能引導,分析用戶輸入的語義信息,提高可拓策略生成系統的語義處理能力。
本文探討了可拓策略生成系統與Agent 技術兩種不同領域的知識相結合問題,研究如何充分發揮這二門學科的優勢,提高可拓策略生成系統的能力。重點探討了Agent控制可拓策略生成中解決矛盾時可拓變換發散與收斂過程的技術方案,使系統能夠在計算效率比較高的情況下,生成解決矛盾的策略。
參考文獻
[1] 蔡文,楊春燕,林偉初.可拓工程方法[M].北京:科學出版社,1997.
[2] 李立希,楊春燕,李鏵汶.可拓策略生成系統[M]. 北京:科學出版社,2006.
[3] 李衛華.Agent協助建立矛盾問題的可拓模型研究[J].數學的實踐與認識, 2009:39(4):173-177.
[4] 周鳴爭, 楊益民. 菱形思維的可拓神經網絡實現[J].系統工程理論與實踐,2000,20(6):123-125,130.