Satisfying consistency requirements of pairwise comparison matrix (PCM) is a critical step in decision making methodologies. An algorithm has been proposed to find a new modified consistent PCM in which it can replace the original inconsistent PCM in analytic hierarchy process (AHP) or in fuzzy AHP. This paper defines the modified consistent PCM by the original inconsistent PCM and an adjustable consistent PCM combined. The algorithm adopts a segment tree to gradually approach the greatest lower bound of the distance with the original PCM to obtain the middle value of an adjustable PCM. It also proposes a theorem to obtain the lower value and the upper value of an adjustable PCM based on two constraints. The experiments for crisp elements show that the proposed approach can preserve more of the original information than previous works of the same consistent value. The convergence rate of our algorithm is significantly faster than previous works with respect to different parameters. The experiments for fuzzy elements show that our method could obtain suitable modified fuzzy PCMs.
1. Introduction
Analytic Hierarchy Process (AHP) is developed by Saaty [1], which is a multicriterion decision-making methodology widely used in many real problems [2, 3]. The AHP methodology expresses the relative importance of criteria by pairwise comparisons and converts the values of pairwise comparisons to priorities. Fuzzy AHP methodology [4] is an advanced AHP methodology, which is used to tackle the uncertainty and inaccurate problems in multicriteria decision-making process. Fuzzy AHP derives the fuzzy priorities of criteria from pairwise comparisons matrix with triangular (or trapezoidal) fuzzy elements. To make sure the priorities of each criterion are accurate and sensible, consistency of pairwise comparison matrix (PCM) with crisp or fuzzy elements must be achieved.
Several works [5–8] focus on reducing inconsistent PCMs with crisp numbers. Karapetrovic and Rosenbloom [5] revised the single entry of a ratio’s value till the consistency of relative matrix was at an acceptable level. Xu and Wei [6] preserved the initial ratios’ value in the pairwise comparison matrix while obtaining satisfactory consistency requirements. Cao et al. [7] developed a heuristic approach, which can preserve more of the original information compared to Xu and Wei [6]. However, for these three works, when the consistency requirement is increased, the computing times will be largely increased and the information on the original matrix cannot be well preserved. Anholcer’s [8] work is used to minimize the distance between inconsistent PCMs and their corresponding consistent PCM. The aim of this work is to find out a new modified PCM which is consistent and has the closest resemblance to the optimal one. But the modified new matrix has a long distance with the original matrix according to the analysis of the parameters given in [6, 7].
Some works used to solve the inconsistency of PCMs with fuzzy elements are given in [9–12]. Xu and Wang [9] repaired incomplete and inconsistent fuzzy preference relations by finding out the unusual and false element until the consistency ratio was at a satisfactory level. Leung and Cao [10] proposed a new definition of fuzzy positive reciprocal matrix by setting deviation tolerances based on an idea of allowing inconsistent information. Morteza and Bafandeh [11] further discussed Leung and Cao’s work and proposed a new method of fuzzy consistency tests by direct fuzzification of a QR (quick response) algorithm, which is one of the methods for the eigenvalues calculation of an arbitrary matrix. Wang and Chen [12] applied fuzzy linguistic preference relations to construct consistent PCMs by considering reducing the number of pairwise comparisons. However, these works do not have standard parameters to verify the reliability of their theory so far. Therefore, it is very important to prove the feasibility of a methodology that can reduce the inconsistency of the original matrix and preserve the original matrix’s information as much as possible.
In this research work, we propose a modified consistent PCM as a combination of original inconsistent PCM and an adjustable consistent PCM. In order to achieve the modified PCM, this paper is structured in the following way: Section 2 and Section 3 give the basic concepts of the PCM with fuzzy and crisp elements, consistency indices for crisp and fuzzy elements, and parameters to judge the effectiveness of the modified matrix. Section 4 and Section 5 propose an algorithm to obtain the middle value, upper value, and lower value of the adjustable matrix. The main idea of our algorithm is to find the optimum priority vector by solving a linear programming problem and use the eigenvector method to obtain the adjustable matrix based on the optimum priority vector. In Section 6, the algorithm was applied to obtain the adjustable PCM by adopting the same illustrating PCM in [6, 7]; the comparison results show that our algorithm can preserve more original information than Cao et al. [7] and Xu and Wei [6]. In Section 7, the algorithm was used to find the sensible and the closest consistent modified PCM with fuzzy elements. The experiments show that the new modified matrix can satisfy consistent indices’ requirements of NI [13] and CCI [14, 15] and also can preserve more original information under parameters of σfuzzy and δfuzzy. Section 8 concludes with effective and efficient analysis to show that our algorithm can be performed easily.
2. State of the Art2.1. Notations and Definitions
The m×n pairwise comparison matrix A~ with triangular fuzzy elements can be described in the following:
(1)A~=((a11L,a11M,a11U)⋯(a1nL,a1nM,a1nU)⋮⋱⋮(am1L,am1M,am1U)⋯(amnL,amnM,amnU)),
where for each element a~ij=(aijL,aijM,aijU), aijL is the lower value, aijM is the middle value, and aijU is the upper value. In the particular situation, if m=n, when the following condition is satisfied, then A~ is a reciprocal matrix:
(2)a~ij=(aijL,aijM,aijU)hhimpliesa~ji=(1aijU,1aijM,1aijL)hhhhhhhhhhhhhhhhhhhhhhhh∀i,j=1,2,…,n,
where 1/σ<aijL<aijM<aijU<σ and S=[1/σ,σ], σ>1. S is an interval of real numbers called fuzzy scale. Crisp numbers (nonfuzzy numbers) are special cases of A~ when aijL=aijM=aijU.
Definition 1.
Asit was proposed by Buckley [16], a fuzzy positive reciprocal matrix A~=[a~ij]n×n is consistent if and only if a~ik⊙a~kj≈a~ij, {∀i,j,k∣1≤i,j,k≤n}.
Where the operator ⊙ is one of the operation rules of triangular fuzzy elements, this operation can be calculated by the following equation:
(3)a~ik⊙a~kj=(aikL,aikM,aikU)⊙(akjL,akjM,akjU)=(aikL·akjL,aikM·akjM,aikU·akjU)≈a~ij=(aijL,aijM,aijU).
When positive reciprocal matrix A~ is crisp numbers A, then the consistent condition is aik·akj=aij, {∀i,j,k∣1≤i,j,k≤n}.
However, this definition is too strict, because it is unrealistic to reach perfect consistency of a PCM (crisp or fuzzy elements). Some works [10, 13, 17–23] have developed consistency indices to accept a certain level of deviations. We will adopt consistency indices in Section 2.2 to determine whether the current PCM matrix is at an acceptable consistency level.
2.2. Consistency Indices
Several consistency indices have been proposed for crisp numbers: for instance, geometric consistency index [17], singular value decomposition method [18], and harmonic consistency index [19]. However, it was proven that all these consistency indices are linear or nonlinear transformations of Satty’s CR [20]. Therefore, we use Satty’s CR in this paper for measuring consistency of crisp numbers.
The consistency index of CR [20] is defined as follows:
(4)CR=λmax-nn-1·1RI,
where λmax is the principle eigenvalue of A. RI is random index, which can be gotten by searching a defined table. When the value of 0<CR<0.1, the consistency can be accepted.
Several important works focus on the consistency of pairwise comparison matrix with fuzzy elements. The first one is Leung and Cao [10], who proposed a notion with consideration of a tolerance deviation. However, the notion is strongly related to Satty’s CR and it has shortcomings to calculate consistency of pairwise comparison matrix with fuzzy elements [11]. The second one is Ramík and Korviny’s [13] work, which proposes a new consistency index NI to examine fuzzy elements based on the distance of the matrix to a special ratio matrix and compare the properties with CR. This work has been further studied and has been used by several important works [21–23]. We have tested this work’s performance. The results indicated that it can satisfy reasonable results with fuzzy elements, although it has some shortcomings [23].
The consistency index of NI [13] is defined as follows:
(5)NInσ=γnσ·maxi,j{max{|ωiLωjU-aijL|,|ωiMωjM-aijM|,{|ωiLωjUaijL|,,|ωiMωjM||ωiUωjL-aijU|}}(1≤i,j≤n),
where γnσ is a normalization factor and the values of ωiL, ωiM, and ωiU can be obtained from aijL, aijM, and aijU.
Another successful index that can be extracted from [14, 15] is that they extend GCI (geometric consistency index) [24] to CCI (centric consistency index) to deal with PCM with triangle fuzzy elements. The consistency index CCI is defined as follows:
(6)CCI(A~)=2(n-1)(n-2)×∑i<j((ωiL+ωiM+ωiUωjL+ωjM+ωjU)log(aijL+aijM+aijU3)-log(ωiL+ωiM+ωiUωjL+ωjM+ωjU))2,
where A~=(aijL,aijM,aijU) are the elements for fuzzy PCM; ω~=(ω~i) is a priority vector derived by logarithmic least squares. When CCI(A~)=0, A~ is considered fully consistent. Thresholds remain identical with index GCI as CCI being a fuzzy extension of GCI. The thresholds are provided as follows: CCI=0.3147 for n=3, CCI=0.3526 for n=4, and CCI=0.370 for n>4 based on Aguarón and Moreno-Jiménez [24].
In conclusion, we will adopt CR to examine the consistency of crisp elements and use NI and CCI to examine the consistency of fuzzy elements.
2.3. Parameters to Judge the Effectiveness of Modified Matrix
Next, we are going to describe the necessary parameters which can be used to measure the effectiveness of modified PCM B. Xu and Wei [6] have given two parameters in the following:
(7)δ=maxi,j{|bij-aij|},i,j=1,2,…,n,(8)σ=∑i=1n∑j=1n(bij-aij)2n.σ and δ are used as the parameters of modificatory effectiveness. The authors of [6, 7] argue that a modified matrix that preserves the most information of the original one must satisfy the following condition: 0<δ<2 and 0<σ<1. Extending these two parameters to be suitable to judge modificatory effectiveness of fuzzy elements so the range is identical with σ and δ, σfuzzy and δfuzzy are
(9)δfuzzy=maxi,j{|bij~-aij~|}=maxi,j{|bijL-aijL|,|bijM-aijM|,hhhhh|bijU-aijU|},hhi,j=1,2,…,n,σfuzzy=(max{(∑i=1n∑j=1n(bijL-aijL)2),hhhhhhh(∑i=1n∑j=1n(bijM-aijM)2),hhhhhhh∑i=1n∑j=1n(bijU-aijU)2})1/2n-1.
Besides σ and δ, two parameters proposed by Xu and Wei [6], we propose a third parameter should be added, which is Condition of Order Preservation (COP) (Table 3) [25]. For example, suppose the original matrix A has alternatives (a1, a2, a3, and a4); it has that the relationship a1 dominates a2 and a3 dominates a4, and the judgments indicate that the extent to which a1 dominates a2 is greater than the extent to which a3 dominates a4; then the priority vector ω should satisfy ω(a1)>ω(a2) and ω(a3)>ω(a4) (preservation of order of preference) and ω(a1)/ω(a2)>ω(a3)/ω(a4) (preservation of order of intensity of preference).
3. Main Theories to Obtain Modified PCM3.1. Distance Analysis between Original Matrix and Modified Matrix
To measure the distance from original PCM A (or A~), several methods can be used [26–30]. The PCM A~ can be considered as the combination of three matrixes of PCM A. If the measuring distance methodologies for crisp A have been properly handled, then they can be suitable for fuzzy A~ as well. We will first discuss the distance methods for crisp numbers. The measurement has logarithmic least square method (LSM) [26, 31], eigenvector method [27, 28], and least squares method [29, 30]. The optimum eigenvector should be as close as possible to the original eigenvector (derived from the original matrix). The adjustable matrix could strongly resemble the original matrix once the optimum eigenvector has been determined. Therefore, eigenvector can be used to calculate adjustable PCM B′(B~′).
According to [27, 28, 32], if matrix A is consistent, then we could find positive weights ω={ω1,ω2,…,ωn}T which can satisfy such condition aij=ωi/ωj, ∀i,j∈(1,2,…,n). Therefore, if matrix A is close to consistent, then it must have (ωi/ωj)-aij≈0. On the basis of this idea, we want to obtain the minimum value of the fastest distance between ωi/ωj and aij. The fastest distance between ωi/ωj and aij is defined as follows:
(10)f=max(|aij-ωiωj|).
The issue of finding the optimal modified matrix can be portrayed as resolving the minimum value of function f, which can be expressed in the following equation:
(11)G(A,ω)=min(f)=min(max(|aij-ωiωj|)).
This equation can reach the absolute minimum value (lowest point) when even the worst situation of proportion of ωi/ωj is closest to aij. The method to obtain the optimum positive eigenvector ω is to find out all possible constraints and obtain feasible solutions by selecting a suitable linear programming pattern.
3.2. Constraints Analysis for Achieving Modified Matrix
The new modified PCM B (or B~) should satisfy three conditions: (1) the consistent value should be at an acceptable level; (2) the farthest distance between new PCM B (or B~) and orginal PCM A (or A~) should be as small as possible; (3) the obtained new matrix should have a strong similarity with the original matrix. These three conditions can guarantee a new consistent PCM B (or B~) which has the closest and maximal similarity with the orginal inconsistent PCM A (or A~). To suit these conditions, we provide an adjustable PCM which can reduce the inconsistency of original PCM as much as possible. On the basis of the adjustable matrix, we propose the definition of the modified matrix.
Definition 2.
The new modified PCM B is defined as a combination of the original PCM A and an adjustable matrix called B′, which is derived from A; the modified PCM B is defined in
(12)B=aijβ(bij′)1-β.
For fuzzy elements, the new modified PCM B~ is defined as follows:
(13)B~={((aijL)β·(bijL′)1-β),((aijM)β·(bijM′)1-β),((aijU)β·(bijU′)1-β)}.
The properties of the adjustable PCM B (or B~) and the way to obtain them will be studied in Section 4.
4. Calculation Processes of Obtaining Adjustable Matrix4.1. Problem Statement
The aim of this paper is to find out a consistent matrix B~=[b~ij]n×n which can preserve the most information of the original matrix A~=[a~ij]n×n and be the closest to A~. One method to achieve this aim is that setting one element of B~ is b~ij=(bijL,bijM,bijU) and one element of A~ is a~ij=(aijL,aijM,aijU), by making every element of B~ closely resemble the elements of A~, which is bijL≐aijL, bijM≐aijM, and bijU≐aijU. Therefore, we go to find bijL,bijM,bijU separately. After finding out bijL,bijM,bijU, combine them together to get the new matrix B~.
On the basis of this idea, we build an adjustable matrix B~′=[b~ij′]n×n which can reduce the inconsistency of the original matrix. The new modified matrix is constructed by two parts. (1) One is the original matrix. The function of this matrix is to keep the original information and make sure the two matrixes are in an acceptable distance. (2) One is the adjustable matrix. The function of this matrix is to modify the inconsistency level to make sure the new modified matrix’s consistency is based on consistency indexes. The mathematical expression objective is as follows:
(14)B~=A~⊙B~′.
The mathematical expression objective can be developed as
(15)B~={((aijL)β·(bijL′)1-β),((aijM)β·(bijM′)1-β),((aijU)β·(bijU′)1-β)}.
This equation is also suitable when aijL=aijM=aijU, which is for crisp elements.
4.2. Stage 1: Specify Formulas to Obtain the Middle Value bijM′ of the Adjustable Matrix B~′
First, we go to calculate bijM′ of adjustable matrix B~′. bijM′ should have a strong relationship with aijM. ω~M is the eigenvector matrix of aijM. bijM′ can be gotten in the following equation:
(16)bijM′≈ωiMωjM.
The value can be gotten when the proportion is closest to aijM. Equation (17) has feasible solutions which means the following equation reaches the minimum based value on (11):
(17)G(aijM,ω~M)=min(max(|aijM-ωiMωjM|)).
We can simply write the variable by introducing an additional variable Z=G(aijM,ω~M). Then, the problem is as follows:
(The calculation steps of (19) are given in the appendix.)
Assume the value of Z is given, and then the constraint (18) can be rewritten as follows:
(20)-Z≤(aijM-ωiMωjM)≤Z,(21)(aijM-Z)·ωjM-ωiM≤0,(22)ωiM≤(aijM+Z)·ωjM.
Take the reciprocal of constraint (22); then the new constraints (23), (24), and (25) can be gotten:
(23)ωjMωiM≥1(aijM+Z),(24)1(aijM+Z)·ωiM-ωjM≤0,(25)1(ajiM+Z)·ωjM-ωiM≤0.
Combine constraint (21) and constraint (25) and remove one of the inequalities, and then the new inequality can be gotten:
(26)-ωiM+(max{(aijM-Z),1(ajiM+Z)})ωjM≤0.
Analogously, a similar inequality can be gotten:
(27)-ωjM+(max{(ajiM-Z),1(aijM+Z)})ωiM≤0.
Next, we add slack variable S, T, and objective function H=S+T, to change the constraints (26)-(27) to equality constraints
(28)-ωiM+(max{(aijM-Z),1(ajiM+Z)})ωjM+S=0,-ωjM+(max{(ajiM-Z),1(aijM+Z)})ωiM+T=0,H=S+T,0≤S,T,H.
Now we specify constraints, propose formulas to calculate ωiM, ωjM, and add additional stopping parameter X. Then constraints (28) correspond to the following linear programming problem:
(1) In constraint (29), we define ω1M=1 to normalize vector ω~M. If the stopping parameter X=0, then it means constraint (29) has a solution, and the problem (29)–(34) has a feasible solution; the value of ωiM is the optimal solution. If the stopping parameter is X=1 which contradicts with constraint (32), then the problem (29)–(34) is inconsistent; then the value of ωiM is not the optimal solution.
(2) The equalities (29)–(34) can be solved by simplex algorithm [33]. The main idea of this algorithm is to walk along edges of the polytope to find out extreme points with lower and lower objective values till the minimum value is reached or an unbounded edge is visited. If the extreme point is reached, then the problem (29)–(34) has feasible solutions.
(3) If Z=Z′ can make problem (29)–(34) have a feasible solution, then it must have Z≥Z′ that can also make the problem (29)–(34) have a feasible solution. In order to find the greatest lower bound of Z, we investigate it in Section 4.3.
(4) If i=j, then aiiM=1; then constraint (29) can be rewritten as follows: -ωiM+(max{(aiiM-Z),1/(aiiM+Z)})+S=0. This equality must always be satisfied. Analogously, constraint (30) is always satisfied. Then the equalities (29)–(34) can be used to find adjustable PCM B′ for original PCM A.
(5) In this section, we aim to find out the least absolute worst distance by setting a more precise priority weights range and adding slack variables, and an iterative way to obtain feasible solutions will be proposed in Section 4.3.
4.3. Stage 2: Find Feasible Solutions to Obtain the Middle Value bijM′ of Adjustable Matrix B~′
Next, we focus on how to find out the greatest lower bound of Z. The problem can be described as storing intervals of [0,Zmax], analyzing the corresponding X value, and finding the greatest lower bound of Z that makes X=0. This problem can be solved by segment tree.
Substep 1 (sets the initial value). Assume the accuracy level is ξ; let the initial value of ωiM be (∏j=1naijM)1/n, and ω1M=1; let Zmax=Z=G(aijM,ω~M), and Zmin=Z=0.
Substep 2 (builds a segment tree by using interval [0,Z]). For example, in Figure 1, [0,Z] is the interval, and P1, P2, P3, P4 is the list of distinct interval endpoints. We separate intervals into two parts in every division and terminate this process till the value of the interval is less than the accuracy level (ξ). Then obtain the X value in problem (29)–(34) by setting the current Z value. If X=0, then the next Z value is equal to the lower bound of the current node. The calculation steps will end till it reaches endpoints (P1; P2; P3; P4) based on accuracy level ξ.
The structure of the segment tree.
Substep 3. Select the greatest lower value of Z when X=0; obtain the feasible solution of ωiM, ωjM to achieve bijM′.
Note 2.
The segment tree is special for storing intervals. The built time is O(nlogn) for n intervals, and it uses O(nlogn) storage. The reason we adapted to the segment tree is because the segments can be stored in any arbitrary manner, it can easily be adapted to counting queries, and it helps us to query the number of segments that contain a given point.
4.4. Stage 3: Obtain the bijL′ and bijU′ of the Adjustable Matrix B~′
Once the optimal solution (bijM′) has been obtained, next, we focus on obtaining the value of bijL′ and bijU′. The modified matrix is a combination of the adjustable matrix and the original matrix based on Definition 2; then the adjustable matrix should have the minimum fuzziness and maximum preservation of the original matrix’s pattern. If B~′ is minimum fuzziness, then fuzziness of B~ will mostly come from A~, and B~ will be more similar with A~. In fact, the minimum fuzziness of B~′ could reduce uncertainty factors of B~. If B~′ could maximally preserve the pattern of A~, then the combination of B~′ and A~ could reach the most potential of similarity with A~. We propose Theorem 3 to obtain the value of bijL′ and bijU′ based on the above theory.
Theorem 3.
The optimal solution vector is ωiM; then BijM′=ωiM/ωjM, i=1,2,…,n. Set CL, CU as arbitrary positive constants. Define the value of ωiL, ωiU in the following formulas:
(35)ωiL=CL·ωiM,whereCL=min{∑j=1naijM∑j=1naijL,(∏j=1naijM)1/n(∏j=1naijL)1/n},ωiU=CU·ωiM,whereCU=max{∑j=1naijM∑j=1naijU,(∏j=1naijM)1/n(∏j=1naijU)1/n}
Then the value of bijL′ and bijU′ is defined as follows:
(36)bijL′=ωiLωjL,bijU′=ωiUωjU.
Proof.
The value of CL and CU should satisfy two conditions: one is minimum fuzziness of ωiM, and the other one is maximally maintaining similarity of original matrix A~.
By the first condition, we can get
(37)ωiL≤ωiM≤ωiU,ωiL=CminωiM,ωiU=CmaxωiM.
By the second condition, we need to consider the distance between aijL, aijM, and aijU, maintain the relationship among the original matrix, and make the new matrix closest to the original matrix’s pattern. It means to find out the smallest coefficient between aijL and aijM and the smallest coefficient between aijM and aijU. We can get the following formulas based on the second condition:
(38)Cmin=min{∑j=1naijM∑j=1naijL,(∏j=1naijM)1/n(∏j=1naijL)1/n},Cmax=max{∑j=1naijM∑j=1naijU,(∏j=1naijM)1/n(∏j=1naijU)1/n}.
Therefore, we can prove formula (35) exists and prove that it is correct by (38). To be more precise, for instance, in Figure 2, (b~ij)2′ is not satisfied with condition 1, and then it is not the minimum fuzziness of associated weights. If (b~ij)1′ is not satisfied with condition 2, then it does not have the same pattern with matrix A~. (b~ij)3′ is the optimal solution.
Choosing optimal matrix B~′ which is closest to matrix A~.
5. An Algorithm to Obtain Modified PCM B~
After analysis in Sections 4.2, 4.3, and 4.4, we propose an algorithm to conclude how to obtain the modified PCM B~ (see Algorithm 1).
Algorithm 1: Find modified PCM.
Algorithm Find Modified_Matrix(Zmax,Zmin,ξ,A~)
Input: Zmax, Zmin, ξ, original matrix A~
Output: Zmax, Zmin, optimal matrix B~
BEGIN
(1) If (Zmax-Zmin<ξ) & (X=0)
Then
The current ωiM is the desired optimal solution of weight vector.
Adopt (16) to get bijM′.
Use Theorem 3 to obtain bijL′ and bijU′.
Adjustable PCM B~′=(bijL′,bijM′,bijU′).
Obtain Modified PCM B~ by Definition 2.
Stop.
(2) Else Search segment tree
Find the greatest lower value of Z when X=0
Zmax = upper bound of the interval; Zmin = lower bound of the interval
Solve the problem (29)–(34),
Save the new value of ωiM
END
6. Numerical Illustration and Comparison with Crisp Numbers6.1. Calculation of an Illustration by Using Proposed Algorithm
We run the experiments by software Matlab (R2009a) on a personal computer with Intel Core 2.2 GHZ and 4 G RAM. First we test crisp numbers by using Algorithm 1 and then compare them with [6, 7].
The inconsistent matrix in [6, 7] is the following matrix:(39)A=(1.00005.00003.00007.00006.00006.00000.33330.25000.20001.00000.33335.00003.00003.00000.20000.14290.33333.00001.00006.00003.00004.00006.00000.20000.14290.20000.16671.00000.33330.25000.14290.12500.16670.33330.33333.00001.00000.50000.20000.16670.16670.33330.25004.00002.00001.00000.20000.16673.00005.00000.16677.00005.00005.00001.00000.50004.00007.00005.00008.00006.00006.00002.00001.0000).
For matrix A, λmax=9.669, CR=0.161>0.1, and the principal eigenvector is ω = (0.1730 0.0540 0.1881 0.0175 0.0310 0.0363 0.1668 0.3332)T.
The value of CR is more than 0.1. Therefore, we will adopt Algorithm 1 to obtain the new consistency matrix.
Calculation Step 1. Input of the initial value of A~ and initial value of ξ.
The original matrix A~=(aijL,aijM,aijU); here, crisp number is a specific case of fuzzy number in our model. Set aijL=aijM=aijU=A.
The acceptable precise degree ξ=0.1. (Here, we adopt 0.1 as an example.)
Calculation Step 2. Calculation process.
Calculate the initial value of Z by (17).
First time Z=10.0725; substitute Z into Algorithm 1; Zmax=10.075, Zmin=0, and Zmax-Zmin>ξ; set new Z=(Zmax-Zmin)/2.
The second time, Z=(10.0725-0)/2=5.0362; substitute new Z into Algorithm 1; solve the problem (29)–(34); the result is X=0 and w = (1.0000 0.3469 4.0000 0.5262 0.2902 0.1346 0.9375 1.4637). We put the following calculation in Table 1.
The values of parameters for each iterative time.
Iterative time
Zmax
Zmin
Z
ξ
X
ω
1
10.0725
0
5.0362
10.0725
0
ω1
2
5.0362
2.5181
2.5181
2.5181
1
—
3
3.7772
2.5181
3.7772
1.2591
0
ω2
4
3.7772
3.1476
3.1476
0.6296
1
—
5
3.7772
3.4624
3.4624
0.3148
1
—
6
3.7772
3.6198
3.6198
0.1574
1
—
7
3.7772
3.6985
3.6985
0.0787
0
ω3
Calculation Step 3. Description parameters’ meaning. The value of ξ is a stopping sign. If current value of ξ is less than 0.1, stop the calculation process.
The value of X can determine how to change the current Z value. If X=0, it means there is a solution for problem (29)–(34); then save the value of vector ω and set Zmax=Z; else X=1; it means there is not a solution for problem (29)–(34); then set Zmin=Z, Z=Zmax.
Now, we go to discuss the results. When in the 7th iterative time, the gap between Zmin and Zmax is 0.0787, which is less than 0.1; the process stops at this point. In order to better understand, we use the segment tree to express the changing process in Figure 3.
An example of iterative times in segment tree structure.
In Figure 3, the current Z value is colored with red and bold. The first Z value is 10.0725, and X=0, which means there is a solution for inequalities (29)–(34); the second Z value is 5.0362, and X=0; by combining the first result, it must have a solution when Z value is between 5.0362 and 10.0725. Therefore, the program goes to search the left subtree of the node; the third Z value is 2.5181, and X=1, which means there is not a solution for inequalities (29)–(34); the program needs to search the right subtree of this node, because the right child node is bigger than 2.5181. We continue the process till the gap between two child nodes is less than ξ.
The final result of positive vector is ω3 = (1.0000 0.9097 2.6082 0.2677 0.4345 0.4345 1.1620 3.3244)T.
On the basis of ω3, we construct the new consistency matrix B′ as in the following:(41)B′=(1.00001.09930.38343.73542.30152.30150.86060.30080.90971.00000.34883.39792.09362.09360.78280.27362.60822.86721.00009.74246.00276.00272.24450.78450.26770.29430.10261.00000.61610.61610.23040.08050.43450.47770.16661.62301.00001.00000.37390.13070.43450.47770.16661.62301.00001.00000.37390.13071.16201.27750.44554.34062.67452.67451.00000.34953.32443.65461.274612.41797.65127.65122.86091.0000).
Here, we adopt β=0.8 as an example in Definition 2. The new matrix B is as follows:(42)B=(1.00003.69321.98816.17374.95364.95360.40300.25940.27081.00000.33644.62832.79172.79170.26280.16270.50302.97301.00006.61083.44644.33834.92880.26290.16200.21610.15131.00000.37690.29940.15720.11450.20190.35820.29022.65311.00000.57430.22670.15880.20190.35820.23053.33971.74111.00000.22670.15882.48173.80580.20296.36194.41194.41191.00000.46553.85476.14683.80418.73546.29896.29892.14841.0000).
6.2. Comparison with References
Xu and Wei [6] defined the original matrix A (the elements are aij) that can be replaced by the new matrix B (the elements are bij), which is showed in the following equation:
(43)bij=aijα(ωiωj)1-α,
where α is the positive value which is less than, but approaching to, 1.
Cao et al. [7] proposed an equation to obtain the new matrix B, which is showed by the following:
(44)bij=(ωiωj)∘D′,
where ∘ is the symbol of Hadamard product. For example, A=B∘C means aij=bij×cij,∀i,j=1,…,n, and D′ is the modified deviation matrix, which is showed in the following equation:
(45)D′=[dij′]=γD⊕(1-γ)DI,
where D is the deviation matrix and DI is a zero deviation matrix when [dij]=1. The value of γ is between 0 and 1.
α and γ has different meanings for two papers, but the two parameters should be as close to 1 as possible. In two papers, they mentioned that α=γ=0.98 is the most suitable value to get the optimal new matrix. We will discuss β’s meaning and the relationship with α and γ in Section 8. We compare with two references in two situations: one is the required critical ratio (CR) less than 0.1 (Table 2); the other one is the required critical ratio (CR) close to 0 (Table 4).
COP (condition of order preservation) parameter value.
Original matrix ω
ωXU
ωCao
ωOur(0.05)
ωOur(0.1)
ωOur(0.2)
{a1,a2}
3.2055
3.0855
3.2037
2.9152
2.5062
2.8852
{a1,a3}
0.9198
0.9681
0.9197
0.9212
0.8064
0.9383
{a1,a4}
9.8822
9.6712
9.8857
8.7519
8.0060
9.3096
{a1,a5}
5.5733
5.4259
5.5806
4.5830
4.5674
4.5358
{a1,a6}
4.7634
4.6041
4.7658
4.0119
3.9984
3.9706
⋯
⋯
⋯
⋯
⋯
⋯
⋯
Conclusion
Cao et al. [7] are closer to the original matrix ω, but the gap among Cao et al. [7], Xu and Wei [6], and our method is very narrow (less than 1), the three methods almost in the same extends to close to original ω. Thus, our method is acceptable in this parameter.
From Table 2, we reach the outcome that the CR value is lower than [6, 7]; at the same time, the method could achieve lower values of δ and σ in short iterative times. It means that our method can preserve more original information and obtain a more consistent new matrix in short iterative times. When we rank the priority weight ω derived from A, the ranking results are the same except when ξ=0.1 in two similar weights, which means the priority weight ω which is derived from our method is acceptable.
On the basis of Table 2, we go to discover the difference of COP parameter in our method and two references. The preference value between every two alternatives is gotten from priority weight ω of the column “priority weight” in Table 2. For example, the value of {a1,a2} is obtained in ωXU = (1.0000 0.3241 1.0329 0.1034 0.1843 0.2172 0.9804 1.9353), which is 1/0.3241=3.0855.
The modified new matrix BXU, BCao, BOur(0.05), BOur(0.1), and BOur(0.2) is in the following: (46)BXu=(1.00002.95971.05019.44675.22854.40661.02070.51160.33791.00000.35483.19181.76661.48890.34490.17290.95232.81851.00008.99614.97914.19640.97200.48720.10590.31330.11121.00000.55350.46650.10800.05420.19130.56610.20081.80681.00000.84280.19520.09780.22690.67170.23832.14381.18651.00000.23160.11610.97972.89971.02889.25535.12264.31731.00000.50121.95465.78512.052518.464810.21978.61331.99501.0000),BCao=(1.00003.20550.91989.88225.57334.76341.03710.51930.31201.00000.28693.08291.73871.48600.32350.16201.08723.48511.000010.74436.05955.17891.12750.56460.10120.32440.09311.00000.56400.48200.10490.05250.17940.57510.16501.77311.00000.85470.18610.09320.20990.67290.19312.07461.17001.00000.21770.10900.96433.09090.88699.52905.37414.59321.00000.50071.92586.17291.771219.030810.73299.17311.99711.0000),BOur(0.05)=(1.00004.29592.27106.74914.97054.97050.46420.29340.23281.00000.33034.34982.40822.40820.26020.15820.44033.02731.00006.32663.02733.81074.97050.26020.14820.22990.15811.00000.34590.27480.16560.11840.20120.41520.33032.89061.00000.57430.26020.17890.20120.41520.26243.63871.74111.00000.26020.17892.15433.84280.20126.03743.84283.84281.00000.45693.40886.32283.84288.44495.58925.58922.18861.0000),BOur(0.1)=(1.00003.69321.98816.17374.95364.95360.40300.25940.27081.00000.33644.62832.79172.79170.26280.16270.50302.97301.00006.61083.44644.33834.92880.26290.16200.21610.15131.00000.37690.29940.15720.11450.20190.35820.29022.65311.00000.57430.22670.15880.20190.35820.23053.33971.74111.00000.22670.15882.48173.80580.20296.36194.41194.41191.00000.46553.85476.14683.80418.73546.29896.29892.14841.0000),BOur(0.2)=(1.00004.25162.31337.17904.91934.91930.46800.30440.23521.00000.34004.67502.40822.40820.26510.16580.43232.94141.00006.60662.94143.70264.91930.26510.13930.21390.15141.00000.32190.25570.15700.11550.20330.41520.34003.10671.00000.57430.26510.18760.20330.41520.27013.91071.74111.00000.26510.18762.13693.77270.20336.37023.77273.77271.00000.47023.28546.03123.77278.65775.33155.33152.12661.0000).
The gap of elements in every two new matrixes (BXU, BCao, BOur(0.05), BOur(0.1) and BOur(0.2)) is less than 1.5<2, which proves these five matrixes are considerably close with each other; but, in Table 2, the CR value of our method is less than the other two methods, which means BOur(0.05), BOur(0.1), and BOur(0.2) are more consistent than BXU and BCao. Meanwhile, the value of δ and σ for BOur(0.05) is the lowest, which means BOur(0.05) is the best solution for original matrix A. Next, we go to discuss the second situation when CR is close to 0. The analysis results are in Table 4.
The iterative times for [6, 7] 820 and 1619 are quite large, which will cost the running time. The value of δ and σ in these two references is far away from the acceptable value, which means the priority weight of ωXU and ωCao is not acceptable at all; but the iterative times of our method are less than 10 times, the value of δ is less than 4, and the value of σ is less than 2, which means our result is acceptable to some extent.
7. Numerical Illustration and Comparison with Fuzzy Numbers
To judge the effectiveness of Algorithm 1 for fuzzy PCMs, we analyze several parameters including the inconsistency index NI [13], consistency index CCI [14, 15], δfuzzy, σfuzzy, COP, iteration times, and running time.
We adopt the same inconsistent matrix with Ramík and Korviny [13], which is
(47)A~=((1,1,1)(2,3,4)(4,5,6)(14,13,13)(1,1,1)(3,4,5)(16,15,14)(15,14,13)(1,1,1)).
For matrix A~, NI39(A~)=0.219. It is an inconsistent PCM with fuzzy elements. We adopt Algorithm 1 to obtain the modified new matrix under different parameters. The results are shown in Table 5.
Effective analysis for Algorithm 1 based on nine parameters.
β=0.5
NI [13]
CCI [14, 15]
δfuzzy
σfuzzy
COP
Iteration times
Running time (seconds)
ξ=0.1
0.0887
0.1378
1.2841
0.5688
Keep
5
0.033
ξ=0.01
0.0887
0.1378
1.2841
0.5688
Keep
8
0.031
ξ=0.001
0.0886
0.1378
1.2815
0.5691
Keep
11
0.042
β=0.6
NI
CCI
δfuzzy
σfuzzy
COP
Iteration times
Running time (seconds)
ξ=0.1
0.1007
0.1991
0.9979
0.4692
Keep
5
0.021
ξ=0.01
0.1007
0.1991
0.9979
0.4692
Keep
8
0.034
ξ=0.001
0.1007
0.1991
0.9960
0.4695
Keep
11
0.046
For this matrix, the modified matrices B~ are quite similar when the accurate degrees are ξ=0.1 and ξ=0.01, and, therefore, we only give the modified matrix B~ when ξ=0.1 and ξ=0.001 under β=0.5 and β=0.6: (48)B~(ξ=0.1,β=0.5)=([1,1,1][2.021,2.453,2.718][5.284,5.480,5.800][0.350,0.407,0.424][1,1,1][3.202,3.460,3.895][0.154,0.182,0.211][0.241,0.288,0.331][1,1,1]),B~(ξ=0.001,β=0.5)=([1,1,1][2.017,2.449,2.714][5.281,5.477,5.797][0.350,0.408,0.425][1,1,1][3.205,3.463,3.899][0.154,0.182,0.211][0.241,0.288,0.331][1,1,1]),B~(ξ=0.1,β=0.6)=([1,1,1][2.016,2.553,2.936][4.997,5.380,5.839][0.327,0.391,0.404][1,1,1][3.1608,3.562,4.094][0.156,0.185,0.218][0.232,0.280,0.331][1,1,1]),B~(ξ=0.001,β=0.6)=([1,1,1][2.014,2.550,2.933][4.995,5.378,5.837][0.327,0.392,0.405][1,1,1][3.163,3.565,4.098][0.156,0.185,0.218][0.232,0.280,0.331][1,1,1]).
In Table 5, the inconsistency index NI is less than 0.1 and consistency index CCI is less than 0.3147, which indicates the modified matrix can reach a consistent requirement; δfuzzy satisfies 0<δfuzzy<2 and σfuzzy satisfies 0<σfuzzy<1, which shows the obtained new matrix is in an acceptable distance with A~; the value of COP, which is gotten from priority vector ω~ of B~, can preserve order of preference and order of intensity preference, which presents B~ can maintain the pattern of A~ (similarity). Meanwhile, Algorithm 1 has high convergence speed based on the less iteration times and running time. The gap among these four matrixes is quite narrow; B~(ξ=0.1,β=0.5) is the best choice when we select the smallest value of the consistency index (NI, CCI), δfuzzy, and σfuzzy.
8. Discussion
Tables 2 and 4 conclude the effectiveness of Algorithm 1 by comparing with Cao et al. [7] and Xu and Wei [6] based on PCMs with crisp elements. Algorithm 1 can retain more original information and achieve lower value of δ and σ when both α [6] and γ [7] approach 1. Table 5 summarizes the effectiveness of Algorithm 1 for PCMs with fuzzy elements. The modified PCMs with fuzzy elements can maintain original information and reach acceptable consistency level as well.
In Algorithm 1, β has different meaning with α and γ. In Cao et al. [7] and Xu and Wei [6], the results gotten by using α and γ equal to 0.98 are significantly better than those by using α and γ less than 0.98. Yet, it is not always the case for β. The true meaning of β is the proportion of the original matrix to adjustable matrix. The approximate prefect range of β is [0.25, 0.8] based on the experiments’ results, and there is no clue which value is the best one for β as the inconsistency level of PCMs is different. As a matter of fact, changing β’s value will not add running time, because this operation runs in constant time. As a future research, it would be interesting to figure out the exact prefect range of β. In this section, we focus on efficiency analysis of Algorithm 1 as effective analysis is done in Sections 6 and 7.
8.1. Efficiency Analysis: Algorithm Running Time
To demonstrate the overall efficiency of Algorithm 1, we measure the average running time and iteration times for crisp and fuzzy elements. The elements of crisp matrix A and fuzzy A~ are gotten from randomly generated numbers by programming. The size (n) of matrix A and A~ varies from 3 to 10 (in real life problems, the size is usually no more than 10). We adopt twenty matrixes for each size.
The assumed accuracy level ξ is the following three numbers: 0.1, 0.01, and 0.001. The value of β in the final step (B=aijβ(bij′)1-β) will not affect the running time. The average running time of crisp elements is shown in Figure 4(a). The average running time of fuzzy elements is shown in Figure 4(b). In all cases, the running times are less than half a second, which is acceptable in real experiments. As expected, the higher the accuracy degree, the longer the running time in the same matrix size. The figure shows the growth rate of fuzzy matrixes’ running time is more irregular than crisp matrixes.
Average running time with fuzzy and crisp elements (in seconds).
8.2. Efficiency Analysis: Convergence Rate
The speed of convergence is one important factor of the efficiency for an iterative method. In Algorithm 1, the only parameter that can influence iteration times is the accuracy degree (ξ). α and γ are the parameters which can influence the number of iterations for [6, 7], respectively. According to the numerical illustration in Section 6, we study the convergence rate with respect to the values of ξ, α, and γ, by using Algorithm 1 and [6, 7], respectively. Meanwhile, we examine the convergence rate for fuzzy elements based on the data in Section 7. Figure 5 shows the results.
Convergence rate of Cao et al. [7], Xu and Wei [6], and Algorithm 1.
The convergence rate of Cao et al. [7] is slower than Xu and Wei [6] when γ=α. For these two methods, the lower the parameters value, the higher the rate of convergence. Algorithm 1 can approach its limits faster than Cao et al. [7] and Xu and Wei [6]. The maximum iteration time for Algorithm 1 is less than twenty when ξ=0.0001, while the maximum iteration times for Cao et al. [7] and Xu and Wei [6] are 1619 and 820, respectively. For fuzzy elements, the convergence rate of Algorithm 1 has low growth rate as well.
9. Conclusions
In this work, an algorithm has been proposed to derive a consistent PCM with crisp or fuzzy elements from an inconsistent one. The presented approach used the same numerical example used by [6, 7, 13]. The experiments reveal that the proposed approach could retain more original information and the convergence rate is faster than Cao et al. [7] and Xu and Wei [6] in different values of CR. Two effective criteria, δ and σ, show that the distance between modified PCM and original PCM is acceptable for both crisp and fuzzy elements. A new effectiveness criterion COP reflects that the modified PCM resembles the original PCM (crisp and fuzzy elements). In conclusion, this approach could enhance the quality of vague and inaccuracy data for decision makers and also could better handle the inconsistency problem of AHP and fuzzy AHP.
In the future work, we will apply this approach to different applications. Meanwhile, efforts should be made to explore the prefect range of β and study the issue of selecting the situation where we can supply a consistency PCM to an inconsistency one based on real-life meaning.
AppendixThe Calculation Steps of (19)
Before we go to find these elements, define the range of every value of bijL, bijM, bijU. Given fuzzy reciprocal matrix A~ = {aij~}n×n={aijL,aijM,aijU}n×n, it has the support SUPP(a~ij)⊆S=[1/σ,σ], where σ>1, ∀i,j∈{1,2,…,n}. This means 1/σ≤aijL≤aijM≤aijL≤σ.
Given a vector of fuzzy weights ω~ = (ω~1,ω~2,…,ω~n), which is the corresponding eigenvector matrix ω~ closest to original matrix A~, the value of eigenvector matrix ω~ should satisfy the following formula:
(A.1)ωi~≈{(∏j=1naijL)1/n,(∏j=1naijM)1/n,(∏j=1naijL)1/n}≤{(σ·σ⋯σ︸n)1/n,(σ·σ⋯σ︸n)1/n,(σ·σ⋯σ︸n)1/n}={σ,σ,σ},ωi~≈{(∏j=1naijL)1/n,(∏j=1naijM)1/n,(∏j=1naijU)1/n}≥{(1σ·1σ⋯1σ︸n)1/n,(1σ·1σ⋯1σ︸n)1/n,(1σ·1σ⋯1σ︸n)1/n}={1σ,1σ,1σ}.
The eigenvector of modified matrix B~ and the adjustable matrix B~′ should also be in this range; to be clearer, the range of eigenvector is
(A.2){1σ,1σ,1σ}≤ωi~≤{σ,σ,σ}{∀ii∈(1,2,⋯,n),n∈ℝ},{1σ,1σ,1σ}≤ωi~′≤{σ,σ,σ}{∀ii∈(1,2,⋯,n),n∈ℝ}.
Conflict of Interests
The authors declare that there is no conflict of interests regarding the publication of this paper.
SaatyT. L.1980New York, NY, USAMcGraw-HillZhangH. Q.OuzroutY.BourasA.Della SelvaV.SavinoM.Selection of optimal product lifecycle management components based on AHP methodologiesProceedings of the International Conference on Advanced Logistics and Transport (ICALT ’13)May 2013Sousse, Tunisia523528ZhangH. Q.OuzroutY.BourasA.MazzaA.SavinoM.PLM components selection based on a maturity assessment and AHP methodologyProceedings of the International Conference on Product Lifecycle Management Conference (PLM ’13)July 2013Nantes, FranceTorfiF.FarahaniR. Z.RezapourS.Fuzzy AHP to determine the relative weights of evaluation criteria and Fuzzy TOPSIS to rank the alternatives20101025205282-s2.0-7064910211810.1016/j.asoc.2009.08.021KarapetrovicS.RosenbloomE. S.A quality control approach to consistency paradoxes in AHP199911937047182-s2.0-003334783510.1016/S0377-2217(98)00334-8XuZ. S.WeiC. P.A consistency improving method in the analytic hierarchy process199911624434492-s2.0-034467250110.1016/S0377-2217(98)00109-XCaoD.LeungL. C.LawJ. S.Modifying inconsistent comparison matrix in analytic hierarchy process: a heuristic approach20084449449532-s2.0-3864911356910.1016/j.dss.2007.11.002AnholcerM.2013XuY. J.WangH. M.Eigenvector method, consistency test and inconsistency repairing for an incomplete fuzzy preference relation20133751715183LeungL. C.CaoD.On consistency and ranking of alternatives in fuzzy AHP200012411021132-s2.0-003423085610.1016/S0377-2217(99)00118-6MortezaM.BafandehA. R.A new method for consistency test in fuzzy AHP2013252457461WangT. C.ChenY. H.Applying fuzzy linguistic preference relations to the improvement of consistency of fuzzy AHP200817819375537652-s2.0-46549093655RamíkJ.KorvinyP.Inconsistency of pair-wise comparison matrix with fuzzy elements based on geometric mean201016111160416132-s2.0-7794991111810.1016/j.fss.2009.10.011BulutE.DuruO.KeçeciT.YoshidaS.Use of consistency index, expert prioritization and direct numerical inputs for generic fuzzy-AHP modeling: a process model for shipping asset management2012392191119232-s2.0-8005494784310.1016/j.eswa.2011.08.056DopazoE.LuiK.ChouinardS.GuisseJ.A parametric model for determining consensus priority vectors from fuzzy comparison matrices201310.1016/j.fss.2013.07.022BuckleyJ. J.Fuzzy hierarchical analysis19851732332472-s2.0-46549093655AguarónJ.Moreno-JiménezJ. M.The geometric consistency index: approximated thresholds200314711371452-s2.0-003744904210.1016/S0377-2217(02)00255-2GassS. I.RapcsákT.Singular value decomposition in AHP200415435735842-s2.0-034759384310.1016/S0377-2217(02)00755-5SteinW. E.MizziP. J.The harmonic consistency index for the analytic hierarchy process200717714884972-s2.0-3375047696310.1016/j.ejor.2005.10.057SaatyT. L.19911Pittsburgh, Pa, USARWS PublicationsDuboisD.The role of fuzzy sets in decision sciences: old techniques and new directions201118413282-s2.0-8005297086210.1016/j.fss.2011.06.003YangM.KhanF. I.SadiqR.Prioritization of environmental issues in offshore oil and gas operations: a hybrid approach using fuzzy inference system and fuzzy analytic hierarchy process201189122342-s2.0-7865124892810.1016/j.psep.2010.08.006BrunelliM.A note on the article “inconsistency of pair-wise comparison matrix with fuzzy elements based on geometric mean”, Fuzzy Sets and Systems, vol. 161, 1604–1613, 20102011176176782-s2.0-7995816665910.1016/j.fss.2011.03.013AguarónJ.Moreno-JiménezJ. M.The geometric consistency index: approximated thresholds2003147137145Bana e CostaC. A.VansnickJ.-C.A critical analysis of the eigenvalue method used to derive priorities in AHP20081873142214282-s2.0-3684902401910.1016/j.ejor.2006.09.022de JongP.A statistical approach to Saaty's scaling method for priorities19842844674782-s2.0-0001270743SaatyT. L.HuG.Ranking by eigenvector versus other methods in the analytic hierarchy process19981141211252-s2.0-0013251599SaatyT. L.Decision-making with the AHP: why is the principal eigenvector necessary2003145185912-s2.0-003744877510.1016/S0377-2217(02)00227-8AlmulhimT. S.MikhailovL.XuD.-L.Deriving weights from group fuzzy pairwise comparison judgement matrices2013Springer545555MogiW.Izumi-choN.ShinoharaM.Optimum priority weight estimation method for pairwise comparison matrixProceedings of the 10th International Symposium on the Analytic Hierarchy/Network Process2009CrawfordG.WilliamsC.A note on the analysis of subjective judgment matrices19852943874052-s2.0-0001490143KouG.ErguD.PengY.ShiY.A new consistency test index for the data in the AHP/ANP2013Springer1127WinstonW. L.VenkataramananM.GoldbergJ. B.20031Thomson/Brooks/Cole