支持博主有三宝,点赞、留言、关注公众号 |
写这篇文章的目的是分享一下我在学习CCR模型时遇到的一些疑惑以及查阅资料后得到的相应解答。
数据包络分析可以用来解决多指标问题。CCR模型是最早被提出来的数据包络分析方法。该模型的本质是线性规划。模型名称中的三个字母分别代表三个作者的名字的首字母。
什么是多指标问题?《数学建模算法与应用》中给出了这样一个例子:某市教委需要对6所中学进行评价,其相应的指标如表格所示。表1中的生均投入和非低收入家庭百分比是输入指标,生均写作得分和生均科技得分是输出指标。请根据这些指标来评价学校。
该问题的实质是,根据输入、输出指标,给出一个最终的综合评价指标来给学校排序。看到这个例子,小编联想到了2020年华数杯C题(脱贫帮扶绩效评价)。这个题是可以用CCR模型来做的,但是小编当时不知道这个模型。正是因为这个原因,小编才决定深入学习CCR模型。
现有 n n n个决策单元DMU,每个DMU都有 m m m种输入和 r r r种输出。 X j = ( x j 1 , … , x j i , … , x j m ) T X_{j}=\left(x_{j 1}, \ldots, x_{j i}, \ldots, x_{j m}\right)^{T} Xj=(xj1,…,xji,…,xjm)T为第 j j j个DMU的输入向量,其中, x j i x_{ji} xji表示第 j j j个DMU的第 i i i种输入。 Y j = ( y j 1 , … , y j s , … , y j r ) T Y_{j}=\left(y_{j 1}, \ldots, y_{js}, \ldots, y_{j r}\right)^{T} Yj=(yj1,…,yjs,…,yjr)T为第j个DMU的输出向量,其中, x j s x_{js} xjs表示第 j j j个DMU的第 s s s种输出。为输入向量的权重,为输出向量的权重。CCR模型的数学模型可以表示为:
max u T Y j 0 v T X j 0 s.t. { u T Y j v T X j ≤ 1 , j ∈ [ 1 , n ] u > 0 , v > 0 (1) \begin{array}{l} \max \quad \frac{u^{T} Y_{j_{0}}}{v^{T} X_{j_{0}}} \\ \text { s.t. }\left\{\begin{array}{c} \frac{u^{T} Y_{j}}{v^{T} X_{j}} \leq 1, j \in[1, n] \\ u>0, v>0 \end{array}\right. \end{array}\tag{1} maxvTXj0uTYj0 s.t. {vTXjuTYj≤1,j∈[1,n]u>0,v>0(1)
CCR模型是对每一个DMU进行评价,而每一个DMU的评分就是目标函数的值。这里的 j 0 j_0 j0表示 n n n个决策单元DMU中的任意一个。以比率式作为评价指标,更符合实际意义。我们常说“投入和产出不成比例”就是这个意思。由于现实中的任何一项技术都不能使得输入全部转化为输出,所以 u T Y j v T X j ≤ 1 \frac{u^{T} Y_{j}}{v^{T} X_{j}} \leq 1 vTXjuTYj≤1。
从第一个约束条件可以看出,在计算任意一个DMU的评分时,每一个DMU的评分都要求小于等于1。换句话说,第一个约束条件的个数实际上是 n n n个。分式规划(分式作为目标函数)的缺点是它的解释不唯一。这是因为如果 v v v、 u u u是解,那么 k v kv kv、 k u ku ku也是解。这给求解增加了难度。为了求解方便,通常令目标函数的分母 v T X j 0 = 1 v^TX_{j0}=1 vTXj0=1或者通过Charnes-Cooper变化,将分式规划变为线性规划。我们采用后者。
令 ω = t v , μ = t u , t = 1 v T X j 0 \omega=t v, \quad \mu=t u, \quad t=\frac{1}{v^{T} X_{j_{0}}} ω=tv,μ=tu,t=vTXj01,公式(1)可以变为:
max μ T Y j 0 s.t. { ω T X j − μ T Y j ≥ 0 , j ∈ [ 1 , n ] ω T X j 0 = 1 ω > 0 , μ > 0 (2) \begin{aligned} &\max \quad \mu^{T} Y_{j_0}\\ &\text {s.t.}\left\{\begin{array}{c} \omega^{T} X_{j}-\mu^{T} Y_{j} \geq 0, j \in[1, n] \\ \omega^{T} X_{j_{0}}=1 \\ \omega>0, \mu>0 \end{array}\right. \end{aligned}\tag{2} maxμTYj0s.t.⎩⎨⎧ωTXj−μTYj≥0,j∈[1,n]ωTXj0=1ω>0,μ>0(2)
对于公式(2),很多资料只给出了这个结果,本文将详细地说明其转化过程。首先是目标函数的转化过程。针对 μ = t u \mu=tu μ=tu,我们先将等式两边同时做转置运算,再将等式两边同时除以 u T u^T uT,得到 t = μ T u T t=\frac{\mu^T}{u^T} t=uTμT。将 t = μ T u T t=\frac{\mu^T}{u^T} t=uTμT、 t = 1 v T X j 0 t=\frac{1}{v^{T} X_{j_{0}}} t=vTXj01代入目标函数,化解后就可以把分数规划转为线性规划。具体过程如下:
μ = t u ⇒ μ T = t u T ⇒ t = μ T u T max u T Y j 0 v T X j 0 ⇒ max t u T Y j 0 ⇒ max u T μ T u T Y j 0 ⇒ max μ T Y j 0 \begin{array}{l} \mu=t u \Rightarrow \mu^{T}=t u^{T} \Rightarrow t=\frac{\mu^{T}}{u^{T}} \\ \max \quad \frac{u^{T} Y_{j_{0}}}{v^{T} X_{j_{0}}} \Rightarrow \max \quad t u^{T} Y_{j_{0}} \Rightarrow \max \quad u^{T} \frac{\mu^{T}}{u^{T}} Y_{j_{0}} \Rightarrow \max \quad \mu^{T} Y_{j_{0}} \end{array} μ=tu⇒μT=tuT⇒t=uTμTmaxvTXj0uTYj0⇒maxtuTYj0⇒maxuTuTμTYj0⇒maxμTYj0
接着是约束条件的转化过程。对于公式(2)中的第一个约束条件 ω T X j 0 − μ T Y j 0 > 0 \omega^TX_{j_0}-\mu^TY_{j_0}>0 ωTXj0−μTYj0>0的转化过程如下:
ω = t v , μ = t u ⇒ ω T = t v T , μ T = t u T u T Y j v T X j ≤ 1 ⇒ v T X j − u T Y j ≥ 0 ⇒ ω T t X j − μ T t Y j ≥ 0 ⇒ ω T X j − μ T Y j ≥ 0 \begin{array}{l} \omega=t v, \mu=t u \Rightarrow \omega^{T}=t v^{T}, \mu^{T}=t u^{T} \\ \frac{u^{T} Y_{j}}{v^{T} X_{j}} \leq 1 \\ \Rightarrow v^{T} X_{j}-u^{T} Y_{j} \geq 0 \\ \Rightarrow \frac{\omega^{T}}{t} X_{j}-\frac{\mu^{T}}{t} Y_{j} \geq 0 \\ \Rightarrow \omega^{T} X_{j}-\mu^{T} Y_{j} \geq 0 \end{array} ω=tv,μ=tu⇒ωT=tvT,μT=tuTvTXjuTYj≤1⇒vTXj−uTYj≥0⇒tωTXj−tμTYj≥0⇒ωTXj−μTYj≥0
对于公式(2)中的第二个约束条件 ω T X j 0 = 1 \omega^TX_{j_0}=1 ωTXj0=1的转化过程如下:
t = 1 v T X j 0 ⇒ t v T X j 0 = 1 ⇒ ω T X j 0 = 1 \begin{array}{l} t=\frac{1}{v^{T} X_{j_{0}}} \\ \Rightarrow t v^{T} X_{j_{0}}=1 \\ \Rightarrow \omega^{T} X_{j_{0}}=1 \end{array} t=vTXj01⇒tvTXj0=1⇒ωTXj0=1
对于任何一个线性规划模型,它都存在一个等价的对偶模型。因此,我们可以把公式(2)写成它的对偶形式,如公式(3)所示。
max θ s.t. { ∑ j = 1 n λ j X j ≤ θ X j 0 ∑ j = 1 n λ j Y j ≤ Y j 0 λ j ≥ 0 , j ∈ [ 1 , n ] (3) \begin{aligned} &\max \quad \theta\\ &\text { s.t. }\left\{\begin{array}{l} \sum_{j=1}^{n} \lambda_{j} X_{j} \leq \theta X_{j_{0}} \\ \sum_{j=1}^{n} \lambda_{j} Y_{j} \leq Y_{j_{0}} \\ \lambda_{j} \geq 0, j \in[1, n] \end{array}\right. \end{aligned}\tag{3} maxθ s.t. ⎩⎨⎧∑j=1nλjXj≤θXj0∑j=1nλjYj≤Yj0λj≥0,j∈[1,n](3)
我们对公式(3)做一下说明。首先 θ \theta θ是一个数值,从别人的代码中我了解到,它就是我们对第个DMU的评分。如何从公式中得出这一结论,目前还没有想到。 λ j \lambda_j λj是未知的权重,它需要通过线性规划来求得。换句话说,我们需要找到一组 λ j \lambda_j λj,使得 θ \theta θ最小。由于许多资料只给出了公式(3),没有给出其推导过程,使得大家很困惑,所以本文在这里给出推导过程,希望可以解除大家的困惑。关于线性规划的原始模型和对偶模型的一般式,如公式(4)所示,左侧为原始模型,右侧为对偶模型。
max c T x ′ min b T y ′ s.t. { A x ′ ≥ b x ′ ≥ 0 s.t. { A T y ′ ≤ c y ′ ≥ 0 (4) \begin{array}{ll} \max\quad {c^{T}} x^{\prime} & \min\quad {b^{T}} y^{\prime} \\ \text {s.t.}\left\{\begin{array}{c} A x^{\prime} \geq b \\ x^{\prime} \geq 0 \end{array}\right. & \text { s.t. }\left\{\begin{array}{c} A^{T} y^{\prime} \leq c \\ y^{\prime} \geq 0 \end{array}\right. \end{array}\tag{4} maxcTx′s.t.{Ax′≥bx′≥0minbTy′ s.t. {ATy′≤cy′≥0(4)
对应公式(3)的目标函数 μ T Y j 0 \mu^T Y_{j_0} μTYj0,未知量是 μ T \mu^T μT,而 Y j 0 Y_{j_0} Yj0是已知量。我们对它做如下变化:
max μ T Y j 0 ⇒ min − μ T Y j 0 (5) \max \quad \mu^{T} Y_{j_{0}} \Rightarrow \min \quad-\mu^{T} Y_{j_{0}}\tag{5} maxμTYj0⇒min−μTYj0(5)
为了把公式(3)写成公式(4)的形式,我们认为:
c = [ 0 , … , 0 ⏟ m , − y j 0 1 , … , − y j 0 ] T x ′ = [ ω 1 , … , ω m , μ 1 , … μ r ] T A = [ x 11 ⋯ x 1 m − y 11 ⋯ − y 1 r ⋮ ⋱ ⋮ ⋮ ⋱ ⋮ x n 1 ⋯ x n m − y n 1 ⋯ − y m r − x j 0 1 ⋯ − x j 0 m 0 ⋯ 0 ] b = [ 0 , … , 0 ⏟ n , − 1 ] T (6) \begin{array}{l} c=[\underbrace{0, \ldots, 0}_{m},-y_{j_{0} 1}, \ldots,-y_{j_{0}}]^{T} \\ x^{\prime}=\left[\omega_{1}, \ldots, \omega_{m}, \mu_{1}, \ldots \mu_{r}\right]^{T} \\ A=\left[\begin{array}{cccccc} x_{11} & \cdots & x_{1 m} & -y_{11} & \cdots & -y_{1 r} \\ \vdots & \ddots & \vdots & \vdots & \ddots & \vdots \\ x_{n 1} & \cdots & x_{n m} & -y_{n 1} & \cdots & -y_{m r} \\ -x_{j_{0} 1} & \cdots & -x_{j_{0} m} & 0 & \cdots & 0 \end{array}\right] \\ b =[\underbrace{0, \ldots, 0}_{n},-1]^{T} \end{array}\tag{6} c=[m 0,…,0,−yj01,…,−yj0]Tx′=[ω1,…,ωm,μ1,…μr]TA=⎣⎢⎢⎢⎡x11⋮xn1−xj01⋯⋱⋯⋯x1m⋮xnm−xj0m−y11⋮−yn10⋯⋱⋯⋯−y1r⋮−ymr0⎦⎥⎥⎥⎤b=[n 0,…,0,−1]T(6)
这里需要注意的是,公式(3)中的第一个约束条件实际上表示 n n n个约束条件,把它写成矩阵的形式,就可以得到 A A A、 b b b;第二个约束条件需要在等式两边同时乘以-1。现在我们就可以得到公式(3)的对偶模型了。
目标函数推导:
max b T y ′ ⇒ max [ 0 , … , 0 ⏟ n , − 1 ] [ λ 1 , … λ n , θ ] T ⇒ max − θ ⇒ min θ \max \quad b^{T} y^{\prime} \Rightarrow \max \quad[\underbrace{0, \ldots, 0}_{n},-1]\left[\lambda_{1}, \ldots \lambda_{n}, \theta\right]^{T} \Rightarrow \max \quad-\theta \Rightarrow \min \quad \theta maxbTy′⇒max[n 0,…,0,−1][λ1,…λn,θ]T⇒max−θ⇒minθ
约束条件推导:
A T y ′ ≤ c ⇒ [ x 11 ⋯ x n 1 − x j 0 1 ⋮ ⋱ ⋮ ⋮ x 1 m ⋯ x n m − x j 0 m − y 11 ⋯ − y n 1 0 ⋮ ⋱ ⋮ ⋮ − y 1 r ⋯ − y n r 0 ] [ λ 1 , … λ n , θ ] T ≤ [ 0 , … , 0 ⏟ m , − y j 0 1 , … , − y j 0 ] T ⇒ { λ 1 x 11 + λ 2 x 21 + … + λ n x n 1 − θ x j 0 1 ≤ 0 ⋮ λ 1 x 1 m + λ 2 x 2 m + … + λ n x n m − θ x j 0 m ≤ 0 λ 1 y 11 + λ 2 y 21 + … + λ n y n 1 ≥ y j 0 1 λ 1 y 1 r + λ 2 y 2 r + … + λ n y m ≥ y j 0 \begin{aligned} &A^{T} y^{\prime} \leq c\\ &\Rightarrow\left[\begin{array}{cccc} x_{11} & \cdots & x_{n 1} & -x_{j_{0} 1} \\ \vdots & \ddots & \vdots & \vdots \\ x_{1 m} & \cdots & x_{n m} & -x_{j_{0} m} \\ -y_{11} & \cdots & -y_{n 1} & 0 \\ \vdots & \ddots & \vdots & \vdots \\ -y_{1 r} & \cdots & -y_{n r} & 0 \end{array}\right]\left[\lambda_{1}, \ldots \lambda_{n}, \theta\right]^{T} \leq\left[\begin{array}{c} \left.\underbrace{0, \ldots, 0}_{m},-y_{j_{0} 1}, \ldots,-y_{j_{0}}\right]^{T} \\ \end{array}\right.\\ &\Rightarrow\left\{\begin{array}{c} \lambda_{1} x_{11}+\lambda_{2} x_{21}+\ldots+\lambda_{n} x_{n 1}-\theta x_{j_{0} 1} \leq 0 \\ \vdots \\ \lambda_{1} x_{1 m}+\lambda_{2} x_{2 m}+\ldots+\lambda_{n} x_{n m}-\theta x_{j_{0} m} \leq 0 \\ \lambda_{1} y_{11}+\lambda_{2} y_{21}+\ldots+\lambda_{n} y_{n 1} \geq y_{j_{0} 1} \\ \lambda_{1} y_{1 r}+\lambda_{2} y_{2 r}+\ldots+\lambda_{n} y_{m} \geq y_{j_{0}} \end{array}\right. \end{aligned} ATy′≤c⇒⎣⎢⎢⎢⎢⎢⎢⎢⎢⎡x11⋮x1m−y11⋮−y1r⋯⋱⋯⋯⋱⋯xn1⋮xnm−yn1⋮−ynr−xj01⋮−xj0m0⋮0⎦⎥⎥⎥⎥⎥⎥⎥⎥⎤[λ1,…λn,θ]T≤[m 0,…,0,−yj01,…,−yj0]T⇒⎩⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎧λ1x11+λ2x21+…+λnxn1−θxj01≤0⋮λ1x1m+λ2x2m+…+λnxnm−θxj0m≤0λ1y11+λ2y21+…+λnyn1≥yj01λ1y1r+λ2y2r+…+λnym≥yj0