Keywords

1 Introduction

Data envelopment analysis (DEA) [14] is a kind of common and important analysis tools and research technique in the fields of economics, management and evaluation technique [5, 6]. For example, DEA is applied to evaluate the technique progress of enterprises, urban economic situation, financial institutions’ efficiency, public management, exploitation and utilization of mineral resource, electric power industry development’s efficiency, forecasting and early warning of system [711]. The successful application of DEA in the practice, more and more attracted people’s attention, DEA method obtained the development in many fields, nearly 10,000 chapters about DEA can be searched at home and abroad, especially in recent years, the application of DEA method presented rapid growth trend, and become a hot spot of management science. But in terms of software development, it is still exist the following questions: (1) linear programming software cannot be used to solve the DEA model completely (2) software development of DEA is lagging on the domestic (3) reliable software system of DEA is the fundamental guarantee to the wide application of DEA method. So it is very necessary to develop an efficient and reliable software system of DEA based on Windows and extended.

2 The Algorithm Design of C2R Model and BC2 Model

Suppose there are n decision making units, where

$$ {\mathbf{x}}_{j} = (x_{1j} ,x_{2j} , \ldots ,x_{mj} )^{\text{T}} $$

and

$$ {\mathbf{y}}_{j} = (y_{1j} ,y_{2j} , \ldots ,y_{sj} )^{\text{T}} $$

represent the input data and output data of the jth decision making unit respectively,

$$ {\varvec{\omega}} = (\omega_{1} ,\omega_{2} , \ldots ,\omega_{m} )^{\text{T}} $$

and

$$ {\varvec{\mu}} = (\mu_{1} ,\mu_{2} , \ldots ,\mu_{s} )^{\text{T}} $$

represent the weights of input–output indicators. Let

$$ ({\mathbf{x}}_{0} ,{\mathbf{y}}_{0} ) = ({\mathbf{x}}_{{j_{0} }} ,{\mathbf{y}}_{{j_{0} }} ) $$

the basic model (P) of DEA is as follows:

$$ \begin{array}{l} ({\text{P}})_{{}} \left\{\begin{array}{ll} \max & \left( {{\varvec{\mu}}^{\rm T} {\mathbf{y}}_{0} + \delta \mu_{0} } \right) = {\text{V}}_{\text{P}} \hfill \\ {\text{s}}.{\text{t}}. & \begin{array}{*{20}c} {} \quad {{\varvec{\omega}}^{\rm T} {\mathbf{x}}_{j} - {\varvec{\mu}}^{\rm T} {\mathbf{y}}_{j} - \delta \mu_{0} \geqq 0,\begin{array}{*{20}c} \quad {_{{}} j = 1,2, \cdots ,n} \\ \end{array} } \\ \end{array} \hfill \\ & \begin{array}{*{20}c} {{\varvec{\omega}}^{\rm T} {\mathbf{x}}_{0} = 1} \\ \end{array} \hfill \\ & \begin{array}{*{20}c} {{\varvec{\omega}} \geqq 0},\quad \\ \end{array} {\varvec{\mu}}\geqq 0 \hfill \\ \end{array} \right. \hfill\\ \\ \left( {\text{D}_{\varepsilon } } \right)\left\{ \begin{array}{ll} \min & \left[ {\theta - \varepsilon \left( {{\hat{\mathbf{e}}}^{\rm T} {\mathbf{s}}^{ - } + {\mathbf{e}}^{\rm T} {\mathbf{s}}^{ + } } \right)} \right] = {\text{V}}_{\text{D}} \hfill \\ {\text{s}} . {\text{t}} . & \begin{array}{*{20}c} {} \quad {\sum\limits_{j = 1}^{n} {{\mathbf{x}}_{j} \lambda_{j} } + {\mathbf{s}}^{ - } = \theta {\mathbf{x}}_{0} } \\ \end{array} \hfill \\ & \begin{array}{*{20}c} {\sum\limits_{j = 1}^{n} {{\mathbf{y}}_{j} \lambda_{j} } - {\mathbf{s}}^{ + } = {\mathbf{y}}_{0} } \end{array} \hfill \\ & \begin{array}{*{20}c} {\begin{array}{*{20}c} {\delta \sum\limits_{j = 1}^{n} {\lambda_{j} } } \\ \end{array} } \\ \end{array} = \delta \hfill \\ & \begin{array}{*{20}c} {\begin{array}{*{20}c} {{\mathbf{s}}^{ - } \geqq 0,\,{\mathbf{s}}^{ + } \geqq 0,\,\lambda_{j} \geqq 0,\quad j = 1,2, \ldots ,n} \\ \end{array} } \\ \end{array} \hfill \\ \end{array} \right. \end{array} $$

when \( \delta = 0, \) model (P) is C2R model [1], when \( \delta = 1, \) model (P) is BC2 model [2].

Definition 1 [1]

If linear programming (P) exists an optimal solution \( {\varvec{\omega}}^{0} ,{\varvec{\mu}}^{0} ,\mu_{0}^{0} \) satisfied with \( {\text{V}}_{p} = 1, \) then \( {\text{DMU}}_{{j_{0} }} \) is called weak DEA efficient. If programming (P) exists an optimal solution \( {\varvec{\omega}}^{0} ,{\varvec{\mu}}^{0} ,\mu_{0}^{0} \) satisfied with \( {\varvec{\omega}}^{0} > 0,{\varvec{\mu}}^{0} > 0, \) \( {\text{V}}_{p} = 1 ,\) then \( {\text{DMU}}_{{j_{0} }} \) is called DEA efficient.

For programming (L1) and (L2), we can obtain the following conclusion:

$$\begin{array}{l} ({\text{L}}_{1} ) \left\{\begin{array}{ll} \max & ( - \theta ) = {\text{V}}_{{\text{D}}_{1}}\\ {\text{s}}. {\text{t}} . & \sum\limits_{j = 1}^{n} {{\mathbf{x}}_{j} \lambda_{j} } + {\mathbf{s}}^{ - } = \theta {\mathbf{x}}_{0}\\ & \sum\limits_{j = 1}^{n} {{\mathbf{y}}_{j} \lambda_{j} } - {\mathbf{s}}^{ + } = {\mathbf{y}}_{0}\\ & \delta \sum\limits_{j = 1}^{n} \lambda_{j} = \delta\\ & \mathbf{s}^{ - } \geqq 0,\,{\mathbf{s}}^{ + } \geqq 0,\,\lambda_{j} \geqq 0,\quad j = 1,2, \ldots ,n\\ \end{array}\right. \\\hfill\\ ({\text{L}}_{2} )_{{}} \left\{ \begin{array}{ll} \max & ({\hat{\mathbf{e}}}^{\rm T} {\mathbf{s}}^{-} + {\mathbf{e}}^{\rm T} {\mathbf{s}}^{ + } ) = {\text{V}}_{{{\text{D}}_{ 2} }}\\ {\text{s}} . {\text{t}} . & \sum\limits_{j = 1}^{n} {{\mathbf{x}}_{j} \lambda_{j} } + {\mathbf{s}}^{ - } = \theta^{*} {\mathbf{x}}_{0}\\ & \sum\limits_{j = 1}^{n} {{\mathbf{y}}_{j} \lambda_{j} } - {\mathbf{s}}^{ + } = {\mathbf{y}}_{0}\\ & \delta \sum\limits_{j = 1}^{n} \lambda_{j} \\ & {\mathbf{s}}^{ - } \geqq 0,\,{\mathbf{s}}^{ + } \geqq 0,\,\lambda_{j}\geqq 0,\quad j = 1,2, \ldots ,n\\ \end{array}\right. \end{array} $$

Lemma 1 [3]

Let \( \varepsilon \)is a non-Archimedean infinitesimal, and the optimal solution of linear programming\( ({\text{D}}_{\varepsilon } ) \)is \( {\varvec{\lambda}}^{0} ,{\mathbf{s}}^{ - 0} ,{\mathbf{s}}^{ + 0} ,\theta^{0} ,\) (1) If\( \theta^{0} = 1, \)then\( {\text{DMU}}_{{j_{0} }} \)is weak DEA efficient. (2) If \( \theta^{0} = 1 \)and\( {\mathbf{s}}^{ - 0} = 0,_{{}} {\mathbf{s}}^{ + 0} = 0 ,\)then\( {\text{DMU}}_{{j_{0} }} \)is DEA efficient.

Theorem 1

If \( {\text{V}}_{{{\text{D}}_{ 1} }} = - \theta^{*} \)is the optimal solution of (L1) and\( {\mathbf{s}}^{ - *} ,{\mathbf{s}}^{ + *} ,\,\lambda_{j}^{*} ,j = 1,2, \ldots ,n \)is the optimal solution of (L2), then\( \theta^{*} ,\,{\mathbf{s}}^{ - *} ,{\mathbf{s}}^{ + *} ,\,\lambda_{j}^{*} ,j = 1,2, \ldots ,n \)is the optimal solution of\( ({\text{D}}_{\varepsilon } ) .\)

Proof

Because \( \theta^{*} ,\,{\mathbf{s}}^{ - *} ,{\mathbf{s}}^{ + *} ,\,\lambda_{j}^{*} ,\ j = 1,2, \ldots ,n \) is a feasible solution of \( ({\text{D}}_{\varepsilon } ) .\) If it is not a optimal solution of \( ({\text{D}}_{\varepsilon } ) ,\) then there must exist a feasible solution \( \bar{\theta },\,{\hat{\mathbf{s}}}^{ - } ,{\hat{\mathbf{s}}}^{ + } ,\,\bar{\lambda }_{j}^{{}} ,\,j = 1,2, \ldots ,n \) of \( ({\text{D}}_{\varepsilon } ) ,\) subject to \( \theta^{*} - \varepsilon ({\hat{\mathbf{e}}}^{\rm T} {\mathbf{s}}^{ - *} + {\mathbf{e}}^{\rm T} {\mathbf{s}}^{ + *} ) > \bar{\theta } - \varepsilon ({\hat{\mathbf{e}}}^{\rm T} {\hat{\mathbf{s}}}^{ - } + {\mathbf{e}}^{\rm T} {\hat{\mathbf{s}}}^{ + } ). \)

Because \( \bar{\theta },\,{\hat{\mathbf{s}}}^{ - } ,{\hat{\mathbf{s}}}^{ + } ,\,\bar{\lambda }_{j}^{{}} ,\,j = 1,2, \ldots ,n \) is a feasible solution of \( ({\text{D}}_{\varepsilon } ) ,\) obviously it also a feasible solution of (L1).

  1. (1)

    If \( \bar{\theta } = \theta^{*}, \) then \( \bar{\theta },\,{\hat{\mathbf{s}}}^{ - } ,{\hat{\mathbf{s}}}^{ + } ,\,\bar{\lambda }_{j}^{{}} ,\ j = 1,2, \ldots ,n \) is a feasible solution of (L2), and

    $$ {\hat{\mathbf{e}}}^{\rm T} {\mathbf{s}}^{ - *} + {\mathbf{e}}^{\rm T} {\mathbf{s}}^{ + *} \geqq {\hat{\mathbf{e}}}^{\rm T} {\hat{\mathbf{s}}}^{ - } + {\mathbf{e}}^{\rm T} {\hat{\mathbf{s}}}^{ + } .$$

    Thus

    $$ \theta^{*} - \varepsilon ({\hat{\mathbf{e}}}^{\rm T} {\mathbf{s}}^{ - *} + {\mathbf{e}}^{\rm T} {\mathbf{s}}^{ + *} ) \geqq \bar{\theta } - \varepsilon ({\hat{\mathbf{e}}}^{\rm T} {\hat{\mathbf{s}}}^{ - } + {\mathbf{e}}^{\rm T} {\hat{\mathbf{s}}}^{ + } ), $$

    contradiction!

  2. (2)

    If \( \bar{\theta } \ne \theta^{*}, \) then\( \bar{\theta } > \theta^{*}. \) Supposed

    $$ ({\hat{\mathbf{e}}}^{\rm T} {\hat{\mathbf{s}}}^{ - } + {\mathbf{e}}^{\rm T} {\hat{\mathbf{s}}}^{ + } ) - ({\hat{\mathbf{e}}}^{\rm T} {\mathbf{s}}^{ - *} + {\mathbf{e}}^{\rm T} {\mathbf{s}}^{ + *} )\leqq 0 ,$$

    then

    $$ \theta^{*} - \varepsilon ({\hat{\mathbf{e}}}^{\rm T} {\mathbf{s}}^{ - *} + {\mathbf{e}}^{\rm T} {\mathbf{s}}^{ + *} ) \leqq\bar{\theta } - \varepsilon ({\hat{\mathbf{e}}}^{\rm T} {\hat{\mathbf{s}}}^{ - } + {\mathbf{e}}^{\rm T} {\hat{\mathbf{s}}}^{ + } ) ,$$

    contradiction!

If

$$ ({\hat{\mathbf{e}}}^{\rm T} {\hat{\mathbf{s}}}^{ - } + {\mathbf{e}}^{\rm T} {\hat{\mathbf{s}}}^{ + } ) - ({\hat{\mathbf{e}}}^{\rm T} {\mathbf{s}}^{ - *} + {\mathbf{e}}^{\rm T} {\mathbf{s}}^{ + *} ) > 0, $$

Let

$$ \varepsilon = (\bar{\theta } - \theta^{*} )/(2({\hat{\mathbf{e}}}^{\rm T} {\hat{\mathbf{s}}}^{ - } + {\mathbf{e}}^{\rm T} {\hat{\mathbf{s}}}^{ + } ) - 2({\hat{\mathbf{e}}}^{\rm T} {\mathbf{s}}^{ - *} + {\mathbf{e}}^{\rm T} {\mathbf{s}}^{ + *} )), $$

It is obviously that

$$ (\bar{\theta } - \theta^{*} ) - \varepsilon (({\hat{\mathbf{e}}}^{\rm T} {\hat{\mathbf{s}}}^{ - } + {\mathbf{e}}^{\rm T} {\hat{\mathbf{s}}}^{ + } ) - ({\hat{\mathbf{e}}}^{\rm T} {\mathbf{s}}^{ - *} + {\mathbf{e}}^{\rm T} {\mathbf{s}}^{ + *} )) > 0. $$

It is contradict with

$$ \theta^{*} - \varepsilon ({\hat{\mathbf{e}}}^{\rm T} {\mathbf{s}}^{ - *} + {\mathbf{e}}^{\rm T} {\mathbf{s}}^{ + *} ) > \bar{\theta } - \varepsilon ({\hat{\mathbf{e}}}^{\rm T} {\hat{\mathbf{s}}}^{ - } + {\mathbf{e}}^{\rm T} {\hat{\mathbf{s}}}^{ + } ) .$$

The basic idea of algorithm design to judge DEA efficiency is as following:

(1) Solve the optimal solution of (L1). (2) Substitute \( \theta^{*} \) of (L2) with the one in the optimal solution of (L2). So we get the optimal solution of \( ({\text{D}}_{\varepsilon } ) .\)

3 The Computer Program Design of C2R Model and BC2 Model

3.1 The Structure and Program Design of DEA Software System

The DEA program in this chapter includes four parts: enter data, show data, calculate and output result. The data can be entered by an input window or a data file. At the same time, we can display the input data by a special window too. Finally, the calculating results can be showed by a window and the corresponding data can be saved to an output file. The algorithms of DEA model are as following:

Step 1: Let the order number k of decision making unit is equal to 0.

Step 2: Let \( k = k + 1, \) the label f of degradation is equal to 0. If \( k > n, \) then stop, or else, continue next step.

Step 3: Use big M method to construct the initial base of (L1) and establish the initial simplex tableau is as follows:

Here \( {\mathbf{I}}_{s \times s}, \) \( {\mathbf{I}}_{m \times m} \) and \( {\mathbf{I}}_{s \times s} \) are unit matrixes, \( {\mathbf{C}}_{\text{B}} \) is the objective function coefficient corresponding to the base variable. For convenience, let

$$ {\mathbf{d}} = (d_{1} ,d_{2} , \ldots ,d_{m + s + \delta } ) = (0_{m}^{\text{T}} , - {\text{M}}{\mathbf{e}}_{s}^{\text{T}} , - \delta {\text{M}})^{\text{T}} , $$

and the linear programming in Table 75.1 is

$$ ({\text{P}})_{{}} \left\{ \begin{array}{ll} \max & {\mathbf{c}}^{\rm T} {\mathbf{x}} = {\text{V}}_{P} \hfill \\ {\text{s}} . {\text{t}} . & {{\mathbf{A}}{\mathbf{x}} = {\mathbf{b}}} \\ & {{\mathbf{x}}\geqq 0} \end{array} \right. $$
Table 75.1 The simplex tableau of linear programming (L1)

Step 4: If there is a test number

$$ r_{j} = c_{j} - \sum\limits_{i = 1}^{m + s + \delta } {d_{i} a_{ij} } > 0, $$

then go to step 5. Otherwise, If (\( {\mathbf{z}}_{{}}^{\text{T}}, \) \( \delta z_{\delta } \)) \( \ne \) 0, then print “no feasible solution of linear programming (L1)”, return to Step 2. If (\( {\mathbf{z}}_{{}}^{\text{T}}, \) \( \delta z_{\delta } \)) = 0, the optimal solution of \( ({\text{L}}_{1} ) \) is obtained and go to step 8.

Step 5: When \( f = 0, \) If

$$ r_{{j_{0} }} = \max \{ r_{j} |r_{j} > 0\} , $$

then take the \( j_{0}{\rm{th}} \) variable enter the base. When \( f = 1, \) if

$$ j_{0} = \min \{ j|r_{j} > 0\} , $$

then take the \( j_{0}{\rm{th}} \) variable enter the base.

Step 6: If \( a_{{ij_{0} }} \leqq 0 \) for each i, then print”linear programming (L1) has unbounded solution”, return to step 2. Otherwise choose

$$ \alpha = \min \left\{ \alpha_{i}|\alpha_{i}=\frac{{b_{i} }}{{a_{{ij_{0} }} }} ,\quad a_{{ij_{0} }} > 0\right\} .$$

If

$$ i_{0} = \min \left\{ i \left|\frac{{b_{i} }}{{a_{{ij_{0} }} }} = \alpha ,\quad a_{{ij_{0} }} > 0\right.\right\} , $$

then choose the \( i_{0}{\rm{th}} \) base variable to leave the base. If there are two or more minimum ratio is equal to \( \alpha, \) then let \( f = 1. \)

Step 7: Take \( a_{{i_{0} j_{0} }} \) as the pivot number, operate by using Gauss elimination, then get a new basic feasible solution. Let \( d_{{i_{0} }} = c_{{j_{0} }}, \) return to step 4.

Step 8: Let \( f = 0. \)

Supposed that \( - \theta^{*} \) is the optimal value of (L1), then establish the initial simplex tableau for linear programming (L2) is as follows:

For convenience, let

$$ {\mathbf{d}} = (d_{1} ,d_{2} , \ldots ,d_{m + s + \delta } ) = ({\mathbf{e}}_{m}^{\text{T}} , - {\text{M}}{\mathbf{e}}_{s}^{\text{T}} , - \delta {\text{M}})^{\text{T}} , $$

and note the linear programming in Table 75.2 as following:

$$ ({\text{P}}_{ 1} )_{{}} \left\{ \begin{gathered} \max {\bar{\mathbf{c}}}^{\rm T} {\mathbf{x}} = {\text{V}}_{{{\text{P}}_{ 1} }} \hfill \\ {\text{s}} . {\text{t}} .\begin{array}{*{20}c} {} & {{\bar{\mathbf{A}}}{\mathbf{x}} = {\bar{\mathbf{b}}}} \\ \end{array} \hfill \\ \begin{array}{*{20}c} {\begin{array}{*{20}c} {} & {} & {} \\ \end{array} } & {{\mathbf{x}} \geqq 0} \\ \end{array} \hfill \\ \end{gathered} \right. $$
Table 75.2 The simplex tableau of linear programming (L2)

Step 9: If there is a test number

$$ \bar{r}_{j} = \bar{c}_{j} - \sum\limits_{i = 1}^{m + s + \delta } {d_{i} \bar{a}_{ij} } > 0, $$

then go to step 10. Otherwise, If \( \left( {{\mathbf{z}}^{\text{T}} ,\,\delta z_{\delta } } \right) \ne 0, \)) then print “linear programming has no feasible solution”, return to step 2. If (\( \left( {{\mathbf{z}}^{\text{T}} ,\delta z_{\delta } } \right) = 0, \) the optimal solution of (L2) is obtained, go to step 13.

Step 10: When \( f = 0, \) if

$$ \bar{r}_{{j_{0} }} = \max \{ \bar{r}_{j} |\bar{r}_{j} > 0\} , $$

then choose the \( j_{0} {\rm{th}}\) variable into the base. When

$$ f = 1,\quad j_{0} = \min \{ j|\bar{r}_{j} > 0\} , $$

then choose the \( j_{0}{\rm{th}} \) variable into the base.

Step 11: If \( \bar{a}_{{ij_{0} }} \leqq 0 \) for each i, then print “linear programming (L2) has unbounded solution”, return to step 2. Otherwise, choose

$$ \bar{\alpha } = \min \left\{ \bar{\alpha }_{i} |\bar{\alpha }_{i} = \frac{{\bar{b}_{i} }}{{\bar{a}_{{ij_{0} }} }},\quad \bar{a}_{{ij_{0} }} > 0\right\} . $$

If

$$ i_{0} = \min \left\{ i \left|\frac{{\bar{b}_{i} }}{{\bar{a}_{{ij_{0} }} }} = \bar{\alpha },\quad \bar{a}_{{ij_{0} }} > 0\right.\right\} , $$

then choose the \( i_{0}{\rm{th}} \) base variable to be taken from the base. If there are two or more minimum ratio is equal to \( \bar{\alpha } ,\) then let \( f = 1. \)

Step 12: Take \( \bar{a}_{{i_{0} j_{0} }} \) as the main element, operate a Gauss elimination, then get a new basic feasible solution, let \( d_{{i_{0} }} = \bar{c}_{{j_{0} }} ,\) return to step 9.

Step 13: Print the optimal solution \( {\varvec{\lambda}}^{\text{T}} ,\) \( {\mathbf{s}}^{{ - {\text{T}}}}, \) \( {\mathbf{s}}^{{ + {\text{T}}}} \) and \( \theta^{*} \) of (L2), return to step 2.

The flow chart of algorithm to judge DEA efficiency is showed by Fig. 75.1.

Fig. 75.1
figure 1

The flow chart of DEA algorithm

3.2 The Design of the Input and Output System

Using EXCEL file as the type of input–output file can improve the accuracy of data entry and editing flexibility. We establish input.xls and output.xls file at first, and enters data through the program window (see Fig. 75.2) or open input.xls file to edit directly. The result output can be automatically completed, the results are displayed in the window in Fig. 75.3, and output to the file output.xls.

Fig. 75.2
figure 2

Input data window

Fig. 75.3
figure 3

Calculation result display window

The DEA program has the following advantages: programming (L1) and (L2) have no non-Archimedes infinitesimal, so it reduces the impact of rounding errors. By using EXCEL software, we can edit input data and output results, calculate function and draw a diagram or make a table very easy. This can greatly reduce the workload and enhance the flexibility of data processing.