[摘要] 本文利用MATLAB數(shù)學(xué)建模軟件對(duì)同時(shí)面向投入產(chǎn)出型DEA問題提出了一種基于多目標(biāo)規(guī)劃模型的求解方法,并列出程序清單。
[關(guān)鍵詞] 數(shù)據(jù)包絡(luò)分析(DEA) 多目標(biāo)規(guī)劃 規(guī)模效率
一、同時(shí)面向投入產(chǎn)出型DEA模型
數(shù)據(jù)包絡(luò)分析(data envelopment analysis, DEA)是運(yùn)籌學(xué)研究的一個(gè)新領(lǐng)域,由著名運(yùn)籌學(xué)家A.Charnes等人于1978年提出, 其基本思路是把每一個(gè)被評(píng)價(jià)單位作為一個(gè)決策單元(DMU,decision making units),再由眾多DMU構(gòu)成被評(píng)價(jià)群體,通過對(duì)投入和產(chǎn)出比率的綜合分析,以DMU的各個(gè)投入和產(chǎn)出指標(biāo)的權(quán)重為變量進(jìn)行評(píng)價(jià)運(yùn)算,確定有效生產(chǎn)前沿面,并根據(jù)各DMU與有效生產(chǎn)前沿面的距離狀況,確定各DMU是否DEA有效,同時(shí)還可用投影方法指出非DEA有效或弱DEA有效DMU的原因及應(yīng)改進(jìn)的方向和程度。
DEA中最為基礎(chǔ)同時(shí)也十分重要的投入型C2R和產(chǎn)出型C2R模型,其對(duì)偶規(guī)劃結(jié)構(gòu)如下:
同時(shí)面向投入產(chǎn)出型C2R模型可歸結(jié)為多目標(biāo)規(guī)劃問題。其對(duì)偶模型結(jié)構(gòu)一般為:
一般性優(yōu)化方法的特點(diǎn)是以一種確定性的關(guān)系將多目標(biāo)優(yōu)化問題轉(zhuǎn)化為單目標(biāo)優(yōu)化問題,運(yùn)用該方法給出求解多目標(biāo)DEA模型(3)的線性規(guī)劃模型(4)。多目標(biāo)問題中的目標(biāo)往往是相互沖突的,需要采用合適的附加信息才能描述人們對(duì)這些目標(biāo)的不同要求。單純地將多目標(biāo)問題(3)歸結(jié)為線性規(guī)劃模型(4)顯得過于粗糙,而且這種模型往往含有無窮多最優(yōu)解,從中選取符合人們要求的解有一定困難。本文在前人研究的基礎(chǔ)上利用MATALB數(shù)學(xué)建模軟件給出了一種同時(shí)面向投入產(chǎn)出DEA模型的算法,比較好的解決了模型(3)的問題。同時(shí)面向投入產(chǎn)出BCC模型(5)與同時(shí)面向投入產(chǎn)出型C2R模型的區(qū)別在于對(duì)的要求不同,前者要求而后者則沒有要求。
二、MATLAB求解程序清單
DEA模型涉及大量的線性規(guī)劃問題,要得到n個(gè)決策單元的相對(duì)效率,至少需要解n個(gè)線性規(guī)劃,計(jì)算量很大,而使用MATLAB編寫出相關(guān)的計(jì)算程序,可以方便、快速地進(jìn)行DEA評(píng)價(jià)分析。
MATLAB求解多目標(biāo)規(guī)劃問題的標(biāo)準(zhǔn)形式是極小化問題:
MATLAB求解多目標(biāo)規(guī)劃問題的語句為:
[x,fval]=FGOALATTAIN('myfun1_1',x0,goal,weight,A,b,Aeq,beq,lb,ub)
其中初值為x0,goal為目標(biāo)函數(shù)的目標(biāo),weight參數(shù)為指定權(quán)重,約束條件為線性不等式A*x≥b及線性等式Aeq*x=beq。若沒有不等式存在時(shí),設(shè)A=[],b=[],定義變量x的下界lb和上界ub,同時(shí)返回解x的值及解x處的目標(biāo)函數(shù)值。
以下是同時(shí)面向投入產(chǎn)出型C2R模型的求解程序:
clear
goal=[1 … 1]
weight=[1 … 1]
x0=[1 …… 1]
Aeq=[0 …… 0]
beq=0
A=[…]
b=[ 0 …… 0 ]'
lb=[0 …… 0 1]'
ub=[1 …… 1 M]'
[x,fval]=fgoalattain('myfun1_1',x0,goal,weight,A,b,Aeq,beq,lb,ub)
以下是同時(shí)面向投入產(chǎn)出BCC模型的求解程序:
clear
goal=[1 … 1]
weight=[1 … 1]
x0=[1 …… 1]
Aeq=[1 …… 1 0 …… 0]
beq=1
A=[…]
b=[ 0 …… 0 ]'
lb=[0 …… 0 1]'
ub=[1 …… 1 M]'
[x,fval]=fgoalattain('myfun1_1',x0,goal,weight,A,b,Aeq,beq,lb,ub)
參考文獻(xiàn):
[1]張洪濤:保險(xiǎn)經(jīng)濟(jì)學(xué)[M]北京:中國人民大學(xué)出版社,2006
[2]魏權(quán)齡:數(shù)據(jù)包絡(luò)分析(DEA)[J]科學(xué)通報(bào),2000(9)