写在前面:
博主本人大学期间参加数学建模竞赛十多余次,获奖等级均在二等奖以上。为了让更多学生在数学建模这条路上少走弯路,故将数学建模常用数学模型算法汇聚于此专栏,希望能够对要参加数学建模比赛的同学们有所帮助。
前面我们已经介绍了数据包络分析的CCR模型和BCC模型,具体可参阅链接: 数据包络分析——CCR模型和链接: 数据包络分析——BCC模型,而CCR模型和BCC模型都是径向模型,在径向模型中,效率改善主要指的是投入或产出的等比例线性缩放,同时忽略了平行于坐标轴的弱有效的情形,而SBM模型纳入无效率的松弛改进,保证最终的结果是强有效的。
基本的SBM模型形式为
min ρ = 1 − 1 m ∑ j = 1 m s j − / x k j 1 + 1 q ∑ r = 1 q s r − / y k r s.t. { X λ + s − = x k Y λ − s + = y k λ , s − , s + ⩾ 0 , j = 1 , ⋯ , m ; r = 1 , ⋯ , q \begin{array}{l}\min \rho=\frac{1-\frac{1}{m} \sum_{j=1}^{m} s_{j}^{-} / x_{k j}}{1+\frac{1}{q} \sum_{r=1}^{q} s_{r}^{-} / y_{k r}} \\ \text { s.t. }\left\{\begin{array}{l}X \lambda+s^{-}=x_{k} \\ Y \lambda-s^{+}=y_{k} \\ \lambda, s^{-}, s^{+} \geqslant 0, \quad j=1, \cdots, m ; r=1, \cdots, q\end{array}\right.\end{array} minρ=1+q1∑r=1qsr−/ykr1−m1∑j=1msj−/xkj s.t. ⎩ ⎨ ⎧Xλ+s−=xkYλ−s+=ykλ,s−,s+⩾0,j=1,⋯,m;r=1,⋯,q其中,对每个决策单元 k = 1 , ⋯ , n k=1, \cdots, n k=1,⋯,n。
目标函数 ρ ∗ \rho^{*} ρ∗表示效率值,该模型同时从投入和产出两个方面考察无效率的表现,故称为非径向模型。由于该模型为非线性模型,将该模型转化为线性模型,同时向模型中加入非期望产出得:
τ ∗ = min ( t − 1 m ∑ j = 1 m s j − x k j ) s.t. { t + 1 s 1 + s 2 ( ∑ r = 1 s 1 s r g y k r g + ∑ r = 1 s 2 s r b y k r g ) = 1 x k t = X Λ + S − y k g t = X Λ − S g y k b t = X Λ + S b Λ , S − , S g , S b ⩾ 0 t > 0 \begin{array}{l}\tau^{*}=\min \left(t-\frac{1}{m} \sum_{j=1}^{m} \frac{s_{j}^{-}}{x_{k j}}\right) \\ \text { s.t. }\left\{\begin{array}{l}t+\frac{1}{s_{1}+s_{2}}\left(\sum_{r=1}^{s_{1}} \frac{s_{r}^{g}}{y_{k r}^{g}}+\sum_{r=1}^{s_{2}} \frac{s_{r}^{b}}{y_{k r}^{g}}\right)=1 \\ x_{k} t=X \Lambda+S^{-} \\ y_{k}^{g} t=X \Lambda-S^{g} \\ y_{k}^{b} t=X \Lambda+S^{b} \\ \Lambda, S^{-}, S^{g}, S^{b} \geqslant 0 \\ t>0\end{array}\right.\end{array} τ∗=min(t−m1∑j=1mxkjsj−) s.t. ⎩ ⎨ ⎧t+s1+s21(∑r=1s1ykrgsrg+∑r=1s2ykrgsrb)=1xkt=XΛ+S−ykgt=XΛ−Sgykbt=XΛ+SbΛ,S−,Sg,Sb⩾0t>0 其中,对每个决策单元 k = 1 , ⋯ , n k=1, \cdots, n k=1,⋯,n。该模型中包含投入矩阵 X n × m X_{n \times m} Xn×m的转置,期望产出矩阵 Y n × s 1 g Y_{n \times s_{1}}^{g} Yn×s1g的转置,非期望产出 Y n × s 2 b Y_{n \times s_{2}}^{b} Yn×s2b的转置,模型参数主要包括投影变量 Λ \Lambda Λ,松弛变量 S − 、 S g 、 S b S^{-}、S^{g}、S^{b} S−、Sg、Sb和 t t t。
我们仍然用前面的例子:
某市教委需要对六所重点中学进行评价,其相应的指标如表所示。表中的生均投入和非低收入家庭百分比是输入指标,生均写作得分和生均科技得分是输出指标。请根据这些指标,评价哪些学校是相对有效的。
根据模型编写MATLAB代码如下:
%非期望产出SBM模型
clc,clear
X=[89.39 86.25 108.13 106.38 62.4 47.19;
64.3 99 99.6 96 96.2 79.9];
Y=[25.2 28.2 29.4 26.4 27.2 25.2;
223 287 317 291 295 222];
Z=[72 85 95 63 81 70]; %非期望产出:生均艺术得分
[m,n]=size(X);
s1=size(Y,1);
s2=size(Z,1);
c=1/(s1+s2);
rho=[];
w=[];
for i=1:n
f=[-1./(m*X(:,i)') zeros(1,s1) zeros(1,s2) zeros(1,n) 1];
A=[];
b=[];
UB=[];
LB=zeros(m+s1+s2+n+1,1);
Aeq=[zeros(1,m) c*1./Y(:,i)' c*1./Z(:,i)' zeros(1,n) 1;
eye(m) zeros(m,s1) zeros(m,s2) X -X(:,i);
zeros(s1,m) -eye(s1) zeros(s1,s2) Y -Y(:,i);
zeros(s2,m) zeros(s2,s1) eye(s2) Z -Z(:,i)];
beq=[1 zeros(m,1)' zeros(s1,1)' zeros(s2,1)'];
[w(:,i),rho(i)]=linprog(f,A,b,Aeq,beq,LB,UB);
end
rho'
得到每个学校的效率值为
可见在带非期望产出的情况下,学校A、D、E、F是有效的。