摘要:探討了MATLAB的應用程序接口原理,對B/S模式的兩種應用程序接口方式進行了比較和分析。對于現有文獻尚未涉及的COM組件接口方式,結合一個區域經濟決策支持系統實例給出了具體的應用流程。
關鍵詞:決策支持系統; 智能; 應用程序接口; 區域經濟; MATLAB
中圖分類號:TP316.8文獻標志碼:A
文章編號:1001-3695(2007)12-0260-03
DSS是利用信息資源(數據、模型、知識)達到輔助決策的系統.神經網絡、模糊邏輯、遺傳算法等人工智能技術應用到決策支持系統當中形成了智能決策支持系統[1]。由于Internet的廣泛應用以及B/S模式軟件系統具有的諸多優點,目前大多決策支持系統都基于B/S模式進行構建[2]。但是在Web環境中,ASP.NET、ASP、JSP、PHP等Web開發語言實現智能決策支持系統所需要的復雜數值計算以及智能算法并不是很方便。本文探討了MATLAB與ASP.NET等Web開發語言相結合的決策支持系統開發方案,并給出了一個具體的應用實例。
1MATLAB與DSS
MATLAB是美國MathWorks公司推出的一套高性能的數值計算和可視化軟件,專門以矩陣的形式處理數據,并提供了大量的內置函數,廣泛地應用于數值分析、數值和符號計算、工程與科學繪圖、控制系統的設計與仿真、數字圖像處理、數字信號處理、通信系統設計與仿真、財務與金融工程等領域。在應用中,MATLAB具有使用方便、功能強大、界面友好和開放性強等特點,特別是所附帶的30多種面向不同領域的工具箱支持,能方便實現復雜的數值計算和智能算法。例如,其中的優化工具箱(optimization toolbox)包含一系列的優化算法函數,可以解決工程實際中的許多問題,如線性規劃、非線性規劃、二次規劃、最小二乘最優、多目標優化決策及動態規劃等問題。
復雜數值計算和智能算法的支持,以及良好的人機交互界面是DSS不可缺少的兩個重要組成部分。采用ASP.NET等Web開發語言能方便地設計出美觀實用的數據查詢界面(網頁),但并不能適應實現復雜的數值計算和智能計算。所以考慮將MATLAB與ASP.NET等Web開發語言結合起來,實現兩者優勢互補,應該是一個很好的方法。表1給出了MATLAB中與決策支持系統密切相關的部分工具箱。
2MATLAB應用程序接口原理
MATLAB軟件包括開發環境、數學函數庫、MATLAB語言、圖形接口和應用程序接口五部分。MATLAB提供的應用程序接口分為三種[3]:a)利用其他開發語言的優點,如為了利用其他計算速度快或已有的算法而制定的接口,對應MATLAB中的MEX文件;b)建立MATLAB與其他應用程序間的數據交換,對應MAT文件;c)拓廣MATLAB的應用范圍,對應MATLAB引擎應用程序。除此以外還有三種高級程序接口,分別是MATLAB COM組件方式、MATLAB runtime server方式以及MATLAB Web server方式。應用在B/S模式決策支持系統中的接口方式主要是Web server和COM組件方式。
Web server方式接口由兩部分組成,如圖1虛線部分。一部分是MATLAB Web server,實際上是一個可執行的應用程序——MATLABserver.exe,它是MATLAB應用程序運行的環境;另一部分是MATLAB服務代理,一個可執行程序——matweb.exe,它嵌入到Web服務器中將所有對MATLAB的請求重定向到MATLABserver.exe進行處理。其中:MATLAB服務代理必須與系統的Web服務器安裝在同一臺機器上,而MATLAB Web server可以在同一臺機器上,也可以在不同的機器上。具體實現時必須對配置文件Matweb.conf與MATLAB-server.conf進行一定的配置,配置過程在MATLAB幫助文件有詳細的描述。參考圖1:a)決策者通過瀏覽器登錄到DSS系統,根據需要查詢數據資料或選擇決策模型進行仿真計算。瀏覽器通過HTTP將請求發送到Web服務器。b)Web服務器讀取請求,判斷是否是MATLAB Web請求,如是則將請求轉發給MATLAB代理處理,MATLAB代理將提交的表單數據轉換成一個MATLAB對象,并將其傳遞給MATLAB Web server。c)MATLABserver.exe程序根據傳遞的參數進行相關計算,并將所得結果以數據或圖形形式動態地生成HTML頁面返回給MatWeb.exe。d)MatWeb代理將HTML頁面傳送至用戶瀏覽器顯示出來。
COM組件方式接口的原理:通過MATLAB的COM builder可以將MATLAB函數編譯為COM組件。COM組件包含一個類,被編譯的所有M文件共享的全局變量編譯為該類的類屬性,函數變為該類的方法。COM組件可以被大多數的Windows應用程序和Web應用程序調用。所以可以將決策支持系統的復雜計算部分封裝為COM組件,然后由Web界面程序進行調用。兩種接口方式的比較如表2所示。COM組件并不支持圖形輸出,計算結果只能用第三方圖形控件進行顯示(如水晶報表控件);COM組件方式比大多Windows程序和Web程序(甚至包括Web services等最新的技術)調用,而Web server接口方式只能被Web程序調用(不包括Web services)調用,所以COM接口方式的擴展性要好些;COM組件不需要作太多的部署配置,但只能與調用的程序部署在同一臺機器上,相對來說Web server部署復雜些,但能靈活部署在不同的機器上。
3MATLAB在決策支持系統的應用實例
關于MATLAB Web server方式接口的實現,文獻[4~6]中已有涉及。以下給出COM組件方式接口的應用實例。
3.1項目背景
隨著經濟的不斷發展,在復雜的經濟環境中決策過程涉及的問題、需要考慮的因素均變得比以往更為復雜。因此,地方政府很有必要借助決策支持系統制定經濟政策和經濟決策。筆者開發的區域經濟發展決策支持系統(廣東省科技廳基金項目)中核心功能主要包括對區域經濟(省或市)的短期預測、中長期預測、預警和仿真等功能。例如,區域經濟的短期預測主要是采用基于核方法[7]的預測模型群對經濟GDP指標進行預測。預測流程如圖2所示。在輸入統計數據并進行數據預處理后,通過各個模型計算出相應的GDP值,然后進行模型集成,最后得出一個省GDP或一個市的GDP短期預測值。模型群中包括約束條件下的線性回歸模型、擴展Cobb-Gouglas生產函數模型、支持向量回歸(SVR)模型、基于約束最優意義下的多元回歸模型和最小一乘法模型。
3.5系統運行結果
在基于Web的區域經濟發展預測與決策支持系統中,筆者選擇的操作系統是Windows 2003,數據庫是SQL Server 2000,應用服務器IIS,開發工具Visual Studio 2005、MATLAB7和水晶報表控件,開發語言C#。MATLAB負責實現復雜的基于核方法的預測、預警和仿真算法,然后封裝為COM組件。ASP.NET主要負責系統的界面,讀取用戶輸入的參數,調用MATLAB封裝好的COM組件能較好地實現相應的預測、預警和仿真功能。
4結束語
MATLAB具有強大的數值計算功能,包含豐富的支持神經網絡、模糊邏輯和遺傳算法等智能算法的工具箱集。在基于Web的決策支持系統中應充分利用MATLAB這些功能,并根據實際需要選擇Web server方式或者COM接口方式。最后,必須注意的一點就是由于Web服務器對網頁響應時間的限制,無論是使用哪種接口方式,算法的執行時間不能過長。如果過長的話,應考慮將算法進行分步實現,以滿足Web環境下的要求。
參考文獻:
[1]ARNOTT D, PERVAN G. A critical analysis of decision support systems research[J]. Journal of Information Technology, 2005,20(2):67-87.
[2]POWER D J, KAPARTHI S. Building Web-based decision support systems[J]. Studies in Informatics and Control, 2004,11(4):291-293.
[3]董長虹,余嘯海.MATLAB接口技術與應用[M].北京:國防工業出版社,2004:30-32.
[4]李堯坤,史忠科,高進朝,等.基于B/S模式的決策支持系統的實現[J].計算機應用研究, 2005,22(11):179-180.
[5]李群,宣慧玉.MATLAB在基于B/S模式的決策支持系統中的應用[J].計算機工程, 2006,32(5):255-256.
[6]雷秀娟,史忠科,王來軍,等.遺傳算法多目標優化及其在決策支持系統中的應用[J].計算機應用研究, 2006,23(7):176-177.
[7]MULLER K R, MIKA S, RTSCH G, et al. An introduction to kernel-based learning algorithms[J]. IEEE Trans on Neural Networks, 2001,12(2):181-201.
[8]肖健華,林健,劉晉.基于SVR的區域經濟短期預測模型[J].系統仿真學報, 2005,17(12):2849-2851.
“本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文”