唐仕喜
【摘要】教育圖像資源搜索引擎智能機器人的設計與開發是基于內容的教育圖像資源智能搜索引擎的核心工作之一。該文從線程池技術的角度給出了CBIR教育圖像資源搜索引擎智能機器人的總體設計與詳細設計,討論了智能機器人中線程池技術的優化及其基于Agent的通信,最后給出了基于線程池的CBIR教育圖像資源搜索引擎智能機器人的實現。
【關鍵詞】搜索引擎;CBIR;線程池;Agent;智能機器人
【中圖分類號】G40-057 【文獻標識碼】A 【論文編號】1009—8097 (2009) 02—0092—04
引言
物質資源、能源資源和信息資源是現代社會經濟與技術發展的三大支柱性資源。教育信息資源作為信息資源的重要組成部分,在提高教育教學質量,挖掘教育的發展潛力上發揮著重要的作用。為此,各個國家都成立了自己的國家級教育資源中心,如美國的國家教育資源信息中心,我國教育部基礎教育課程教材發展心和中央電化教育館主辦國家基礎教育資源網等。國之源、K12、科利華、中教育星、同方思科、騰圖、清華同方等資源庫的建設也日益成熟,教育資源已經成為網絡資源中的一個重要部分,用戶在通過教育資源庫獲取海量信息的同時,解決對信息的篩選、信息的辨識、信息的消化以及信息的質量、信息的個性化等問題已顯得日趨重要。
對文本、圖像、視頻、動畫、課件等教育資源的聚類、分類、檢索[1]-[5]是十分活躍的研究領域,是有效地利用海量教育資源、實現個性化智能尋找教育資源的必然之路。我們在傳統算法中引入一種自適應的參數選擇機制,對關鍵參數進行動態設置,以滿足互聯網上復雜多變的應用環境和資源智能搜索引擎這一網上特定主題的服務,CBIR教育圖像資源搜索引擎智能機器人的設計與開發則是基于內容的教育圖像資源智能搜索引擎的核心工作之一[6]。
一 CBIR教育圖像資源搜索引擎智能機器人設計
1總體設計方案
圖像內容搜索引擎機器人采用Spider程序進行構造。構造時采用基于多任務、多線程的線程池模式,即采用非遞歸的設計方案,Spider程序在發現每個新網頁或圖像URL時,它將使用一個不調用自身的方法,而是使用線程池。為得到Spider程序的處理,每一個新發現的網頁或圖像URL必須在線程池中等待。給定Spider程序一個要訪問的網頁或圖像URL,把這一網頁或圖像URL加入到線程池中去;當Spider程序發現新的網頁或圖像URL時,把它們加入到線程池;當Spider程序處理完當前的URL,在線程池中查找要處理的下一URL。總體設計方案如圖1。

2 系統模塊設計方案
基于內容的教育圖像資源搜索引擎智能機器人主體由多線程池循環模塊構成,系統模塊設計方案如圖2所示。

二 教育圖像資源搜索引擎機器人中的線程池技術
多線程池循環模塊是基于內容的教育圖像資源搜索引擎智能機器人的主控模塊,負責在網絡上循環搜索教育圖像資源。教育圖像資源搜索引擎智能機器人同時也就是知識庫專家系統中的推理機,與知識庫專家系統成為一體,以線程池的方式工作,多個Agent相互協作,這對提高機器人的搜索效率有著重要的作用。據此我們開發了以知識庫為后臺支持的,以中間件技術為支持的基于內容的教育圖像資源搜索引擎。
1 教育圖像資源搜索引擎機器人線程池技術優越性
教育圖像資源搜索引擎智能機器人使用圖像的獲取、圖像的下載、圖像的匹配等Agent并行地協同工作,使得搜索工作持續進行,采用多線程技術進行處理。我們發現,這樣處理存在以下問題:
其一,圖像的獲取、圖像的下載、圖像的匹配等Agent自身的線程創建和銷毀很費時間,創建一個對象要獲取內存資源或者其它更多資源。提高智能機器人效率的方式就是盡可能減少創建和銷毀對象的次數,特別是一些很耗資源的對象創建和銷毀。
其二,智能機器人采用多線程技術創建的線程花費了大量時間在睡眠狀態來等待事件的發生,還有一些線程進入睡眠狀態后定期被喚醒以輪詢工作方式來改變或者更新狀態信息。這樣降低整個搜索的吞吐量, 導致系統性能的下降而不是最初設計時期望要提高系統性能。
采用線程池技術可以更有效地使用線程,它為智能機器人提供一個由系統管理的工作者線程池。至少會有一個線程來監聽放到線程池的所有等待操作,當等待操作完成后,線程池中將會有一個工作者線程來執行相應的回調函數。在系統啟動或空閑時創建一定量的線程保存在線程池中, 在系統關閉時銷毀線程及其資源。當有任務來時不需要創建就從線程池中取一線程執行任務, 執行完任務后又放回至空閑線程池中。如果長時間沒有任務執行也可銷毀一定量的線程, 使線程池中保持一定的線程數。當有任務來時線程池中沒有空閑線程, 且此時線程數沒有達到最大線程數時, 創建新線程。如果達到最大線程數而沒有空閑線程時, 任務等待, 直到池中有空閑線程。采用線程池技術解決了的獲取、圖像的下載、圖像的匹配等多Agent地協同工作的效率問題,特別是圖像匹配與的獲取、圖像的下載不同速度的協同問題,具有相當的優越性。
2 教育圖像資源搜索引擎機器人線程池技術的優化
簡單線程池存在一些問題,如果有大量的線程要求智能機器人為其服務,但由于線程池的工作線程是有限的,智能機器人只能為部分線程服務,其它線程提交的任務,只能在任務隊列中等待處理。但智能機器人的響應時間要求不能太長,則需要調整優化線程池尺寸[7],主要有下列優化措施:
其一,動態增加工作線程。在智能機器人線程池中提供一個可以動態改變的工作線程數目的功能,以適應線程變化的需要。一旦請求變少了將逐步減少線程池中工作線程的數目。線程增加采用超前方式,即批量增加一批工作線程。同時在線程池中限制線程池中工作線程數目的上限和下限,以防止這種靈活的方式也就變成一種錯誤的方式或者災難,因為頻繁的創建線程或者短時間內產生大量的線程將會背離使用線程池原始初衷——減少創建線程的次數。
其二,優化工作線程數目。根據統計學的原理來統計線程的請求數目,比如高峰時段平均一秒鐘內有多少任務要求處理,并根據系統的承受能力及客戶的忍受能力來平衡估計一個合理的線程池尺寸。線程池的尺寸確實很難確定,智能機器人中采用實驗結果的經驗值來做為線程池的尺寸。
其三,智能機器人提供多個線程池。智能機器人根據不同任務或者任務優先級來采用不同線程池處理。圖像的獲取、圖像的下載、圖像的匹配等Agent采用不同的線程池進行處理,分而治之,體現不同任務的任務優先級。
智能機器人中替換成圖像的獲取、圖像的下載、圖像的匹配等Agent需要大量的線程來完成任務,且完成任務的時間比較短,使用線程池技術取得了較好的效果。
3 教育圖像資源搜索引擎機器人線程池的通信
消息對話通信是實現靈活和復雜的協調策略的基礎[8]。Agent使用規定的協議相互交換信息,用于建立通信和協調機制。其具體通信過程如圖3所示。

教育圖像資源搜索引擎智能機器人中替換成圖像的獲取、圖像的下載、圖像的匹配等各Agent相互通知該世界中已經探索過的部分, 使每個Agent可能少做一些探索,向其他Agent詢問世界特定部分的情況,回答問題,請求或者命令其他Agent采取行動,許諾做某事或者提供幫助,確認請求和提議,分享感受和經驗。在面向消息的智能機器人多Agent系統中,發送Agent把特定消息傳送至另一Agent(接收Agent),兩Agent之間的消息是直接交換的,執行中沒有緩沖。
教育圖像資源搜索引擎智能機器人中線程池間各Agent的通信存在以下問題:每個Agent對于所要完成的任務擁有全面的信息或能力,系統的宏觀的問題求解;Agent成員之間以及與系統的目標、意愿和行為的一致;合作對象的明確選擇;沖突的檢測和協調;通信的協商的合時合理;對分散的共享數據和資源的有效分配和管理;系統的安全機制;Agent的靈活管理方式;有效及時地對環境的變化做出反應等。為了有效地解決這些問題,我們采用集中式管理的通信機制,負責對所有或部分Agent成員的行為、協作、任務分配以及共享資源等進行統一的協調和管理,可以是管理Agent、協調Agent、監督Agent等,與各Agent成員之間具有一定程度的管理和被管理的關系,如圖4所示。

智能機器人中集中式MAS機制在一定程度上推理成員Agent的能力行為,判斷成員Agent之間行為的相互影響,幫助成員Agent更為迅速和準確地確定協作對象,組織成員Agent之間的相互合作,協調成員Agent之間的矛盾和沖突,使成員Agent通過學習產生對整體行為有益的影響 。集中式MAS機制推測協作對象的行為和通信,減少了協調和通信代價,提高了成員之間協作的有效性。
三 教育圖像資源搜索引擎智能機器人實現
根據輸入的URL建立多IP數組到獲取線程池;依據各個IP建立各自的線程;各個線程完成每個IP的教育圖像資源搜索;通過各線程池協作,反復,至規定寬度與深度頁面全部搜索完成。教育圖像資源CBIR Robot系統運行結果如圖5所示。

線程池技術對CBIR教育圖像資源搜索引擎智能機器人的性能有著顯著的改善。但因整個系統還涉及到知識庫、圖像內容的表示、圖像內容的搜索等多方面的技術,多文種技術等,如何更好地優化搜索系統,是進一步需要解決的問題。
參考文獻
[1] María Pinto, Dora Sales, Anne-Vinciane Doucet, et al.Metric analysis of the information visibility and diffusion about the European Higher Education Area on Spanish University websites[J]. Scientometrics 2007, 72: 345-370.
[2]Stefan Rank, Paolo Petta.Basing Artificial Emotion on Process and Resource Management[J].Lecture Notes in Computer Science 2007,4738: 350-361.
[3]Olivier Motelet, Benjamin Piwowarski, Georges Dupret, et al.Enhancing Educational-Material Retrieval Using Authored-Lesson Metadata[J].Lecture Notes in Computer Science 2007, 4726: 254-263 .
[4]Dongwon Jeong, Myounghoi Choi, Keunhwan Jeon. Semantic Classification Model for Educational Repositories[J].Lecture Notes in Computer Science 2007, 4489:508-515 .
[5]Xia Li, Jianlin Zhang, Tao Huang. A Standardized Learning Resources Retrieval System Based on Ontology Matching[J]. Lecture Notes in Computer Science 2007, 4469: 411-421.
[6]ShiXi Tang, WeiLan Wang, HuaMing Liu, et al.Further Study on the Design of Multi-language Web CBIR Searching Engine Based on MAS[J].IEEE The First International Symposium on Pervasive Computing and Applications, 2006, 1109:658-662.
[7]John Calcote . Thread Pools and Server Performance [J] . Dr. Dobb's Journal ,1997,7: 60-64.
[8]Zhongzhi Shi. Intelligent Agent and Application[M]. Beijing:Science Press, 2000: 7-18.