写在前面:
博主本人大学期间参加数学建模竞赛十多余次,获奖等级均在二等奖以上。为了让更多学生在数学建模这条路上少走弯路,故将数学建模常用数学模型算法汇聚于此专栏,希望能够对要参加数学建模比赛的同学们有所帮助。
目录
- 1. 引言
- 2. 模型建立
- 3. 模型求解
1. 引言
前面我们已经介绍了数据包络分析的CCR模型和BCC模型,具体可参阅链接: 数据包络分析——CCR模型和链接: 数据包络分析——BCC模型,而CCR模型和BCC模型都是径向模型,在径向模型中,效率改善主要指的是投入或产出的等比例线性缩放,同时忽略了平行于坐标轴的弱有效的情形,而SBM模型纳入无效率的松弛改进,保证最终的结果是强有效的。
2. 模型建立
基本的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。
3. 模型求解
我们仍然用前面的例子:
某市教委需要对六所重点中学进行评价,其相应的指标如表所示。表中的生均投入和非低收入家庭百分比是输入指标,生均写作得分和生均科技得分是输出指标。请根据这些指标,评价哪些学校是相对有效的。
根据模型编写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是有效的。