許茂增,余國印
(重慶交通大學 管理學院,重慶 400074)
?
基于C # 與MATLAB混合編程的物流需求預測系統(tǒng)的實現(xiàn)
許茂增,余國印
(重慶交通大學 管理學院,重慶 400074)
根據(jù)物流需求數(shù)據(jù)的不同特點,歸納了灰色GM(1,1)模型、移動平均值模型、指數(shù)平滑模型、季節(jié)指數(shù)模型、BP神經(jīng)網(wǎng)絡模型、線性回歸模型、多項式擬合模型和非線性回歸模型8種常見的物流需求預測模型,并據(jù)此為物流企業(yè)開發(fā)了基于C # 與MATLAB混合編程的物流需求預測系統(tǒng),降低了物流企業(yè)物流需求預測的復雜度。最后通過預測實例表明該系統(tǒng)具有較好的適用性和較高的預測精度。
管理工程;混合編程;物流需求預測系統(tǒng)
物流需求預測是物流企業(yè)進行資源合理配置過程中的重要環(huán)節(jié),同時也是制定業(yè)務計劃和企業(yè)發(fā)展規(guī)劃的基礎性工作。對物流需求進行準確預測,更有利于企業(yè)發(fā)展戰(zhàn)略等的制定,因此如何尋找最合適的預測方法,獲得更高的預測精度,是企業(yè)關注的重點問題[1]。
在物流需求預測的理論研究上,學者們根據(jù)物流需求數(shù)據(jù)的不同特征,成功地應用各種預測方法對物流需求進行了預測。如:馬凱等[2]結合交通規(guī)劃四階段法的特點,在城市物流規(guī)劃中的物流需求預測基礎上,研究了物流需求分階段的預測方法,并對物流需求預測模型進行了應用分析;周曉娟等[3]根據(jù)河北省物流需求呈線性變化的特點,應用多元線性回歸對其物流需求進行了預測;閆娟等[4]將區(qū)域物流需求與地區(qū)經(jīng)濟、產(chǎn)業(yè)結構和資源分布密切聯(lián)系起來,并針對其較強的非線性變化和歷史數(shù)據(jù)小的特征,提出了一種新的基于泊松分布的神經(jīng)網(wǎng)絡需求預測算法;而在物流需求歷史數(shù)據(jù)充足的情況下,后銳等[5]應用MLP神經(jīng)網(wǎng)絡預測法提高了物流需求預測的精度;楊蕾等[6]則采用隨機時間序列模型對與時間序列強烈相關的物流需求進行預測;司玲玲等[7]指出,物流受多種因素的影響,其需求具有趨勢性、較大波動性和隨機性等變化特點,據(jù)此首先利用灰色GM(1,1)預測模型動態(tài)預測物流需求變化趨勢,然后利用支持向量機(SVM)對預測結果進行修正,取得了較好的預測效果;施澤軍等[8]提出了在灰色模型GM(1,1)和三次指數(shù)平滑法基礎上的組合預測方法,并將其應用到港口物流中的集裝箱吞吐量預測中;劉智琦等[9]在考慮不同因子對物流需求影響的基礎上,建立了因子分析和神經(jīng)網(wǎng)絡相結合的物流需求預測模型;此外,根據(jù)物流需求數(shù)據(jù)的實際特點,李自立等[10]運用主成分分析法預測了湖北省區(qū)域物流需求;歐陽小迅等[11]建立了一個非線性的物流需求計量模型;耿立艷等[12]提出一種基于灰色關聯(lián)分析的最小二乘支持向量機物流需求預測方法,均取得了較好的預測效果。
實踐中,由于這些研究所使用的預測方法均以專業(yè)的理論為支撐,如BP神經(jīng)網(wǎng)絡預測法包含了神經(jīng)網(wǎng)絡理論和編程技術,不易為一般物流企業(yè)管理人員掌握使用,從而導致這些預測技術在物流企業(yè)中沒有得到廣泛的應用。此外,在預測系統(tǒng)的開發(fā)方面,目前尚未有專門集成物流需求預測方法的預測系統(tǒng)。而市場上主要的預測軟件SPSS、Eviews等集成的方法并非專門針對物流需求數(shù)據(jù)的特征而設計,預測效果不理想。因此,針對物流需求數(shù)據(jù)的不同特征,綜合研究各種物流需求預測方法,開發(fā)一套集成物流需求預測常用方法的預測系統(tǒng)對于物流企業(yè)的物流需求預測工作十分必要。
在開發(fā)工具上,MATLAB的計算功能很強大,但其界面開發(fā)能力較差。C # 在設計開發(fā)Windows應用程序方面界面友好,方便快捷[13]。因此筆者基于MATLAB和C # .NET,充分利用兩者各自的優(yōu)點,開發(fā)出了適合物流企業(yè)進行物流預測的專門系統(tǒng),提高了物流企業(yè)物流預測的準確性。同時,該系統(tǒng)對使用者的理論要求不高,便于物流企業(yè)管理人員掌握。
通過C #.NET與MATLAB接口技術進行混合開發(fā),該系統(tǒng)集成了C # 和MATLAB各自的優(yōu)點,把計算過程和數(shù)據(jù)圖形顯示功能留給MATLAB完成,而用C # 語言編寫Windows應用程序,對計算結果進行分析和可視化處理,極大地提高了程序的開發(fā)效率[14]。表1為C #.NET與MATLAB接口的主要方法。

表1 C#.NET與MATLAB的主要接口方法
(續(xù)表1)

序號方法介紹④MATLAB引擎技術應用程序運行時一般是先向MATLAB計算引擎組件傳送數(shù)據(jù)和命令,再由MAT?LAB計算引擎與MATLAB服務器交互,最后由MATLAB計算引擎將運算結果返回給應用程序。
表1中的4種方法中,第1種方法調(diào)用過程復雜,且實現(xiàn)的功能有限;第2種方法計算速度慢;第3種方法的優(yōu)點在于利用C # 訪問該組件時,沒有必要進行環(huán)境切換,因此可以獲得最快的運行速度。此外,通過實驗證明,在 .NET調(diào)用MATLAB神經(jīng)網(wǎng)絡工具箱時,前3種方法都是不可行的,只有MATLAB引擎技術能夠支持該調(diào)用。因此,本系統(tǒng)最終采用了第3、第4這兩種方法進行對MATLAB的調(diào)用。
1)首先,對利用.NET組件技術調(diào)用MATLAB的流程進行簡要介紹。
步驟1:新建工程。選擇New Deployment Project→MATLAB Builder NE→.NetComponent,輸入工程名稱“yuce”并選擇保存位置。
步驟2:添加M文件。選擇projectAdd file,把需要編譯的M文件全部添加到相應的文件夾中。
步驟3:編譯、打包。選擇 tools→Build編譯成.NET組件,點擊 tools→Package進行打包。
步驟4:新建C # 項目,添加引用。
2)C # .NET環(huán)境下利用MATLAB引擎技術實現(xiàn)神經(jīng)網(wǎng)絡(圖1)的步驟如下。
步驟1:編制M文件。在BP.m文件中編制了神經(jīng)網(wǎng)絡的實現(xiàn)邏輯,其函數(shù)定義為:
Function[wucha,yuce]=BP(input,cs1,cs2,hanshu1,hanshu2,hanshu3,hanshu4)
其中:input表示輸入的歷年物流需求量數(shù)據(jù);cs1,cs2表示網(wǎng)絡的訓練參數(shù),hanshu1,hanshu2,hanshu3,hanshu4表示網(wǎng)絡的傳遞函數(shù)和網(wǎng)絡訓練函數(shù);wucha表示輸出預測的標準誤差;yuce表示最終的預測值。
步驟2:在Visual Studio.NET中添加COM引用“MATLAB Application(Version 7.13) Type Libray”,實例化引擎對象。
MLApp.MLApp MATLAB= new MLApp.MLApp ()。
步驟3:使用引擎對象提供的PutFullMatrix,GetFullMatrix,Execute這三個接口進行對MATLAB神經(jīng)網(wǎng)絡工具箱的調(diào)用,參考代碼為:
MATLAB.PutFullMatrix("input", "base", x, x1);//向MATLAB Server中添加數(shù)據(jù);
MATLAB.Execute(@"[wucha,yuce]=BP(input,cs1,cs2,hanshu1,hanshu2,hanshu3,hanshu4)");
MATLAB.GetFullMatrix("yuce", "base", ref yc, ref yuce_pi); //向MATLAB Server中讀取數(shù)據(jù),yc和yuce_pi為預先定義好的System. Array對象;
yc.CopyTo(yucezhi, 0);//將預測結果保存到y(tǒng)ucezhi數(shù)組中。

圖1 C # .NET調(diào)用MATLAB工具箱過程
集成到該系統(tǒng)中的數(shù)據(jù)處理方法有:移動平均值預測法、灰色GM(1,1)預測法、指數(shù)平滑預測法、季節(jié)指數(shù)預測法、BP神經(jīng)網(wǎng)絡預測法[15]、線性回歸預測法、多項式擬合法和非線性回歸預測法,如表2。其中,移動平均值預測法集成了1次和2次平均值移動法,指數(shù)平滑法包括1次、2次、3次指數(shù)平滑法,季節(jié)指數(shù)有水平模型、趨勢模型和環(huán)比法模型,線性回歸中有一元和多元線性回歸預測法,而非線性回歸預測法集成了雙曲線、冪函數(shù)、倒冪函數(shù)、對數(shù)曲線、S曲線、指數(shù)曲線、倒指數(shù)曲線、皮爾生長曲線等模型。這些方法都是常用的物流需求預測方法,在使用該系統(tǒng)時可以根據(jù)數(shù)據(jù)的特征,選擇一種或多種方法進行預測。

表2 系統(tǒng)集成預測方法
(續(xù)表2)

預測方法方法核心思想適用條件線性回歸根據(jù)樣本觀測值對線性模型的參數(shù)進行估計,求得回歸方程,然后對回歸方程、回歸系數(shù)進行顯著性檢驗,最后利用回歸方程進行預測自變量與因變量為線性關系多項式擬合以多項式曲線擬合數(shù)據(jù),使數(shù)據(jù)點的誤差平方和最小因變量為自變量的多項式非線性回歸與線性回歸預測相比,針對非線性模型進行預測自變量與因變量為非線性關系
本系統(tǒng)是基于Visual Studio 2010和MATLAB 2011平臺開發(fā)的,Visual Studio用于系統(tǒng)用戶界面的設計與開發(fā),MATLAB負責科學計算和圖形的繪制功能。系統(tǒng)采用了C/S架構。
如圖2,系統(tǒng)主要分為基礎數(shù)據(jù)、預測方法、預測效果檢驗、幫助等模塊。其中,基礎數(shù)據(jù)模塊負責數(shù)據(jù)輸入等數(shù)據(jù)處理工作;預測方法模塊則提供了以上介紹的8種預測方法,用戶可以根據(jù)實際情況選擇其中一種或者多種方法進行預測;在預測效果檢驗模塊中用戶可以通過預測的標準誤差值來比較不同預測方法的預測效果,也可從圖形中直觀地進行判斷,從而選擇最優(yōu)的預測結果。幫助模塊對系統(tǒng)中集成的預測方法以及系統(tǒng)的使用方法進行了詳細說明。

圖2 系統(tǒng)功能結構
為測試系統(tǒng)對于物流需求預測的適用性及預測精度,筆者收集了1993—2012年相應的數(shù)據(jù)(表3),并選取GM(1,1)模型、移動平均法、指數(shù)平滑法、BP神經(jīng)網(wǎng)絡預測法、線性回歸、多項式擬合和非線性回歸法對2013年的物流需求量進行了預測。其中,對于社會物流需求的衡量,參照《中國物流年鑒》[16]統(tǒng)計數(shù)據(jù)說明,用“社會物流總額”(由工業(yè)品、農(nóng)產(chǎn)品、進口貨物、再生資源、單位與居民物品組成)來表示。該指標從其結構成分來看,既包含了產(chǎn)業(yè)結構因素,也包含了流通消費領域,研究的層面較為全面。而對于線性回歸預測法,采用GDP、物流總費用、全社會固定資產(chǎn)投資、進口總額和出口總額等指標作為模型變量。

表3 物流需求及經(jīng)濟指標統(tǒng)計數(shù)據(jù)
表3資料社會物流總額和物流總費用來源于《中國物流統(tǒng)計年鑒》[16]。
圖3、圖4為線性回歸預測法的界面和預測效果。通過線性回歸預測,社會物流總額與固定資產(chǎn)投資總額和進口總額相關,表達式為:
社會物流總額=3.677 7×全社會固定資產(chǎn)投資+3.916 1×進口總額

圖3 線性回歸預測界面

圖4 線性回歸預測效果
圖5為各種預測方法的預測效果。從圖5中可以看出各種預測方法的預測標準誤差從小到大分別為:多元線性回歸、非線性預測法(冪函數(shù))、多項式擬合(2次)、灰色預測法、指數(shù)平滑法(3次)、簡單移動平均法和BP神經(jīng)網(wǎng)絡預測法。故應該以多項式擬合預測法的預測值作為最終的預測值。通過該系統(tǒng),2013年社會物流需求量最終的預測值為2 079 644億元,而國家統(tǒng)計局、國家發(fā)改委、中國物流與采購聯(lián)合會聯(lián)合發(fā)布的數(shù)據(jù)為1 978 000億元,預測相對誤差為-5.1%,說明該系統(tǒng)對于物流需求預測具有良好的適用性且預測精度較高。

圖5 各種預測方法預測效果檢驗
筆者在研究各種物流需求預測方法的基礎上,充分利用MATLAB強大的科學計算能力和C # .NET方便快捷的界面設計功能,通過混合編程技術將兩者集成在一起,以此為物流企業(yè)開發(fā)了集成物流需求預測常用方法的物流需求預測系統(tǒng)。通過預測實例表明,該系統(tǒng)對于物流需求預測具有很好的適用性,預測精度較高。系統(tǒng)操作簡單,對使用者的專業(yè)知識要求不高,容易被物流企業(yè)管理人員掌握和使用。鑒于該系統(tǒng)操作的簡便性和預測的準確性,系統(tǒng)的使用將會提高物流企業(yè)對于物流需求預測的可操作性以及預測精度,對物流企業(yè)具有重要的實際意義。
[1] Rodrigo A G,Hani S M.Forecasting freight transportation demand with the space-time multinomial probity model [J].Transportation Research:Part B,2000(34):403-418.
[2] 馬凱,艾力·斯木吐拉.交通規(guī)劃四階段法在物流需求預測中的應用[J].重慶交通大學學報:自然科學版,2009,28(4):745-750. Ma Kai,Eili Ismutull.Application of four-step method of traffic planning to logistics demand forecast [J].Journal of Chongqing Jiaotong University:Natural Science,2009,28(4):745-750.
[3] 周曉娟,景志英.基于多元線性回歸模型的河北省物流需求預測實證分析[J].物流技術,2013,32(5):270-272. Zhou Xiaojuan,Jing Zhiying.Empirical analysis of logistics demand forecasting of Hebei based on multi-linear regression model [J].Logistics Technology,2013,32(5):270-272.
[4] 閆娟,李萍.泊松分布灰色理論在物流需求預測中的應用[J].計算機仿真,2012,29(4):229-233. Yan Juan,Li Ping.Application research of poisson distribution grey theory in logistics demand forecasting [J].Computer Simulation,2012,29(4):229-233.
[5] 后銳,張畢西.基于MLP神經(jīng)網(wǎng)絡的區(qū)域物流需求預測方法及其應用[J].系統(tǒng)工程理論與實踐,2005(12):43-47. Hou Rui,Zhang Bixi.A method for forecasting regional logistics demand based on MLP neural network and its application [J].Systems Engineering-theory & Practice,2005(12):43-47.
[6] 楊蕾,張苗苗.時間序列模型在物流需求預測中的應用[J].商業(yè)時代,2013(13):26-27. Yang Lei,Zhang Miaomiao.The application of time series model in logistics demand forecasting [J].Commercial Times,2013(13):26-27.
[7] 司玲玲,王亞楠,徐貴軍.改進灰色模型在物流需求預測中的應用[J].計算機仿真,2012,29(6):192-194. Si Lingling,Wang Ya’nan,Xu Guijun.Logistics demand forecasting based on improved grey model [J].Computer Simulation,2012,29(6):192-194.
[8] 施澤軍,李凱.基于灰色模型和指數(shù)平滑法的集裝箱吞吐量預測[J].重慶交通大學學報:自然科學版,2008,27(2):302-204. Shi Zejun,Li Kai.Container throughput forecasting based on gray method and exponential smoothing method [J].Journal of Chongqing Jiaotong University:Natural Science,2008,27(2):302-204.
[9] 劉智琦,李春貴,陳波.基于因子分析與神經(jīng)網(wǎng)絡的區(qū)域物流需求預測[J].計算機仿真,2012,29(6):359-362. Liu Zhiqi,Li Chungui,Chen Bo.Regional logistics demand forecast based on factor analysis and neural network [J].Computer Simulation,2012,29(6):359-362.
[10] 李自立,黃芬.基于主成分分析的區(qū)域物流需求預測指標研究[J].物流技術,2009,28(12):128-130. Li Zili,Huang Fen.Research on the forecasting indices of regional logistics demand based on PCA [J].Logistics Technology,2009,28(12):128-130.
[11] 歐陽小迅,戴育琴.社會物流需求的非線性模型分析[J].商業(yè)時代,2009(20):23-24. Ouyang Xiaoxun,Dai Yuqing.Non-linear model analysis of social logistics needs [J].Commercial Times,2009(20):23-24.
[12] 耿立艷,丁璐璐.基于灰關聯(lián)分析的最小二乘支持向量機物流需求預測[J].物流技術,2013,32(10):130-132. Geng Liyan,Ding Lulu.Forecasting of logistics demand based on grey correlation analysis and least square SVM [J].Logistics Technology,2013,32(10):130-132.
[13] 黃海寬,張云鋒,魏東,等.基于COM的MATLAB在中藥分析中的應用[J].自動化與儀表,2006(4):5-7. Huang Haikuan,Zhang Yunfeng,Wei Dong,et al.Application of MATLAB based on COM in Chinese medicine [J].Automation & Instrumentation,2006(4):5-7.
[14] 黃一丹,嚴洪森,馮麗娟,等.基于C#.NET與Matlab接口和BP網(wǎng)絡的汽車產(chǎn)量預測[J].計算機技術與發(fā)展,2008,18(11):36-40. Huang Yidan,Yan Hongsen,Feng Lijuan,et al.Vehicle production forecasting based on BPNN and interface between C#.NET and Matlab [J].Computer Technology and Development,2008,18(11):36-40.
[15] 譚偉,陸百川,黃美靈.神經(jīng)網(wǎng)絡結合遺傳算法用于航跡預測[J].重慶交通大學學報:自然科學版,2010,29(1):147-150. Tan Wei,Lu Baichuan,Huang Meiling.Track prediction based on neural networks and genetic algorithm [J].Journal of Chongqing Jiaotong University:Natural Science,2010,29(1):147-150.
[16] 中國物流與采購聯(lián)合會.中國物流年鑒[M].北京:中國財富出版社,2013. China Federation of Logistics & Purchasing.China Logistics Yearbook [M].Beijing:China Fortune Press,2013.
Implementation of Logistics Demand Forecasting System Based onHybrid Programming with C # and MATLAB
Xu Maozeng, Yu Guoyin
(School of Management, Chongqing Jiaotong University, Chongqing 400074, China)
According to different characteristics of logistics demand data ,8 common logistics demand forecasting models was summarized, such as, the grey GM (1,1) model, the moving average model, the exponential smoothing model, the seasonal index model,BP neural network model, linear regression model, polynomial fitting model and nonlinear regression model and so on. On the basis of it, a logistics demand forecasting system based on the hybrid programming technology with C # and Matlab was developed for the logistics enterprises, and it reduced the complexity of logistics demand forecasting in the logistics enterprises. Finally, the forecasting example shows that the system has good applicability and high forecasting accuracy.
management engineering; hybrid programming; logistics demand forecasting system
10.3969/j.issn.1674-0696.2015.04.25
2013-06-11;
2014-06-22
教育部人文社科研究項目(10XJA790009)
許茂增(1960—),男,陜西大荔人,教授,博士生導師,主要從事物流與供應鏈管理方面的研究。E-mail:xmzzrxhy@eyou.com。
F252.21;TP311
A
1674-0696(2015)04-128-05