The methods of MCEWR
A multi-criteria evaluation starts from a decision table: a set of alternatives \(a = 1, \dots, m\), a set of criteria \(j = 1, \dots, n\), the value \(x_j(a)\) of every alternative on every criterion, and a weight \(w_j\) for every criterion. Every method on this page turns that table into a ranking of the alternatives, and each does it on the basis of a different idea of what a good decision is. The ten methods, the three objective weighting schemes and the five robustness analyses are described below, with the equations the engine implements. Every equation was checked against a worked example computed by hand; the examples are in Methods Explained, and the complete mathematics, options and verification are in the Method Reference.
Five methods are those of the original 1995 model [21], applied in the published studies [22] [23]; they are audited: the Python edition reproduces the 1995 program's results digit for digit. Five were added in 2026 and are provisional: they follow the primary literature and pass independent checks, but a published worked example remains to be reproduced by the author.
Two steps every method shares
Standardization. Criteria are measured in different units, so most methods first bring them to a common scale. The Method step offers four codes. With \(\min_j\) and \(\max_j\) the smallest and largest values of criterion \(j\) among the alternatives present:
\[ r_j(a) = \begin{cases} x_j(a) & \text{code 0: the values as given}\\[4pt] \dfrac{x_j(a) - \min_j}{\max_j - \min_j} & \text{code 1: the range}\\[10pt] \dfrac{x_j(a)}{\sum_b x_j(b)} & \text{code 2: the share of the total}\\[10pt] \dfrac{x_j(a)}{\max_j} & \text{code 3: the fraction of the maximum} \end{cases} \]For a criterion to be minimized the code-1 formula is inverted, so that \(r_j = 1\) is always the best value. Codes 1 to 3 depend on the set of alternatives present – the origin of the rank-reversal question discussed at the end of this page.
Weights. The declared weights are relative: within each group of criteria they are divided by their sum, \(w_j = W_j / \sum_k W_k\), unless the box use the weights as given is ticked. Criteria may form a hierarchy; the weights then apply within each group and the group results are combined upwards.
1. Weighted Average Method (WAM) audited
The simplest and oldest idea: multiply how well an alternative does on each criterion by the importance of that criterion, and add. The alternative with the largest total wins. The method assumes full compensation: a poor value on one criterion can always be offset by good values elsewhere, in the proportion the weights dictate. That is reasonable for costs and benefits that trade against each other, and questionable for safety limits or irreversible losses, which is why the outranking methods below exist. WAM is the reference against which every other method is read.
\[ V(a) = \sum_{j=1}^{n} w_j \, r_j(a) \]Options in the Method step (step 6): none of its own.
2. Compromise Programming (CP) audited
Imagine the alternative that has the best value of every criterion at once – the ideal point. It usually does not exist. Compromise Programming measures how far each real alternative is from it and prefers the nearest. The ideal \(f_j^{*}\) and the anti-ideal \(f_{j}^{-}\) of each criterion are either taken from the alternatives present or, better, fixed in advance in the input file (the Upper and Lower limits): fixed reference points do not move when an alternative is added or removed, so the ranking cannot reverse. The exponent \(s\) says how much a single large shortfall should hurt: with \(s = 1\) shortfalls are added, with \(s = 2\) they are squared first, so one serious weakness costs more than several small ones.
\[ d_j(a) = \frac{f_j^{*} - r_j(a)}{f_j^{*} - f_j^{-}}, \qquad L_s(a) = \sum_{j=1}^{n} \bigl( w_j \, d_j(a) \bigr)^{s} \]The classical form takes the \(s\)-th root of \(L_s\); the 1995 program does not, and the root does not change the order. The switch CP: the s-th root of the distance adds it. With the limits fixed in advance and \(s = 1\), CP is term for term the SPOTIS method of Dezert et al. (2020) [20], whose ranking is free of rank reversal.
Options in the Method step (step 6): cp_power (1 or 2) and cp_use_provided_limits (use the Upper and Lower values of the file as the ideal and the anti-ideal).
3. PROMETHEE II (and PROMETHEE I) audited
Rather than scoring each alternative, PROMETHEE compares them two at a time. For each ordered pair \((a, b)\) and each criterion, a preference function \(P_j\) converts the difference \(x_j(a) - x_j(b)\) into a degree of preference between 0 and 1. Six functions are available: the usual criterion (any difference counts fully), the U-shape, V-shape, level, linear and Gaussian criteria, which need an indifference threshold \(q_j\) below which a difference is ignored and a preference threshold \(p_j\) above which the preference is complete. The weighted sum of the degrees is the preference index \(\pi(a,b)\); the flows measure how much an alternative dominates the others (leaving flow \(\phi^{+}\)) and is dominated by them (entering flow \(\phi^{-}\)). PROMETHEE II ranks by the net flow. PROMETHEE I keeps the two flows apart and reports, for each pair, preference, indifference or incomparability – the honest answer when one alternative dominates more while the other is dominated less.
\[ \pi(a,b) = \sum_{j=1}^{n} w_j \, P_j\bigl(x_j(a) - x_j(b)\bigr), \qquad \phi^{+}(a) = \frac{1}{m}\sum_{b \neq a} \pi(a,b), \qquad \phi^{-}(a) = \frac{1}{m}\sum_{b \neq a} \pi(b,a), \qquad \phi(a) = \phi^{+}(a) - \phi^{-}(a) \]The 1995 program divides the flows by \(m\); the modern convention divides by \(m - 1\) (the switch PROMETHEE flows divided by n − 1). The order is the same.
Options in the Method step (step 6): the preference function (1-6), p and q per criterion in the Criteria step (step 3); the switch promethee_partial in step 6.
4. ELECTRE II audited
ELECTRE also compares pairs, and adds a veto. For a pair \((a, b)\) the concordance \(C(a,b)\) is the share of the weight on which \(a\) is at least as good as \(b\); the discordance \(D(a,b)\) is the largest difference against \(a\), on the criteria where \(b\) is better, measured on the scale of the criterion. \(a\) outranks \(b\) when enough of the weight agrees and no single criterion objects too strongly. Nothing is added up: a very poor performance cannot be compensated, only vetoed. ELECTRE II builds two outranking graphs – a strong one with the severe levels \(p^{*}, q^{*}\) and a weak one with the milder \(p^{0}\) (or \(p^{-}\)) and \(q^{0}\) – ranks the alternatives in each, and takes the median of the two positions.
\[ C(a,b) = \frac{\sum_{j \,:\, x_j(a) \geq x_j(b)} w_j}{\sum_{j} w_j}, \qquad D(a,b) = \max_{j \,:\, x_j(b) > x_j(a)} \frac{x_j(b) - x_j(a)}{\text{scale}_j} \] \[ a \;S\; b \iff C(a,b) \geq p, \quad D(a,b) \leq q, \quad C(a,b) \geq C(b,a) \]The five levels \(p^{*} \geq p^{0} \geq p^{-}\) and \(q^{*} \geq q^{0}\) belong to the problem and are read from the input file. If the strong relations form a cycle the graph cannot be ranked (error 201); raise the concordance levels, lower the discordance levels, or use ELECTRE III.
Options in the Method step (step 6): the five levels in the file's group line; electre_min_discordance_zero for unstandardized data.
5. Analytic Hierarchy Process (AHP) audited
AHP is built for the case where nobody can put a number on a criterion but everybody can compare two things at a time. Items are compared in pairs on Saaty's 1-to-9 scale (1 equal, 3 slightly better, 5 clearly, 7 much, 9 extremely better; the reciprocal for the reverse judgement). The comparison matrix \(A\) is reciprocal with ones on the diagonal, and the priorities are its principal eigenvector, normalized to add to 1. The same procedure gives the weights of the criteria from pairwise comparisons between them, and the priorities are combined level by level through the hierarchy. A consistency ratio tells whether the judgements contradict one another; above 0.10 they should be revised. With ordinary measured values instead of judgements, AHP's aggregation reduces to a weighted sum.
\[ A \, \mathbf{p} = \lambda_{\max} \, \mathbf{p}, \qquad CI = \frac{\lambda_{\max} - n}{n - 1}, \qquad CR = \frac{CI}{RI_n} \]\(RI_n\) is Saaty's random index for a matrix of size \(n\) (0.58 for \(n = 3\), 0.90 for 4, 1.12 for 5, 1.24 for 6, 1.32 for 7). The final priority of an alternative is \(\sum_j w_j \, p_j(a)\).
Options in the Method step (step 6): ahp_min_method: how a criterion to be minimized is inverted before the comparison.
6. Expected Value (EV) provisional
Expected Value takes only the order of importance of the criteria seriously – criterion 1 matters more than criterion 2 – and replaces the unknown weights by their expected values over all weight vectors that respect that order. The result is the rank-order-centroid vector of Barron and Barrett [10]. The scores of the alternatives are treated the same way: only their rank under each criterion is used, replaced by its expected value. The two are combined by a weighted sum. Tied criteria (equal declared weights) share the average of the positions they occupy. The method is honest about ordinal knowledge: it neither invents numbers nor discards the order.
\[ w_{(i)} = \frac{1}{n} \sum_{k=i}^{n} \frac{1}{k} \quad \text{for the criterion in position } i, \qquad e_j(a) = \frac{m + 1 - \text{rank}_j(a)}{m + 1}, \qquad EV(a) = \sum_{j=1}^{n} w_{(j)} \, e_j(a) \]Options in the Method step (step 6): ev_weights and ev_scores: ordinal (the method proper) or cardinal (use the numbers as given; both cardinal reproduces WAM).
7. Regime Analysis (RA) provisional
Regime Analysis asks: given only the order of importance of the criteria, how confident can we be that \(a\) is better than \(b\)? For each pair it considers every weight vector consistent with the stated order, and measures the share of them for which the weight on \(a\)'s side exceeds the weight on \(b\)'s side. That share is read as the probability that \(a\) is preferred; the ranking value of an alternative is the average of its probabilities against the others. The result is a statement of robustness – \(a\) beats \(b\) under 96 % of the admissible weightings – rather than a bare order. The probabilities are estimated by sampling the admissible weight set; the seed and the number of draws are recorded so that a published number can be reproduced exactly.
\[ P(a \succ b) = \Pr_{\mathbf{w} \in \Omega}\Bigl[\sum_{j \,:\, x_j(a) > x_j(b)} w_j \;>\; \sum_{j \,:\, x_j(b) > x_j(a)} w_j\Bigr], \qquad RA(a) = \frac{1}{m-1} \sum_{b \neq a} P(a \succ b) \]\(\Omega\) is the set of weight vectors that respect the declared order of importance, with tied criteria treated as equal.
Options in the Method step (step 6): ra_weights (ordinal or cardinal), ra_samples, ra_seed.
8. TOPSIS provisional
TOPSIS – Technique for Order Preference by Similarity to the Ideal Solution – measures two distances: the best alternative should be near the ideal (the best value of every criterion) and far from the anti-ideal (the worst value of every criterion). Each column is first normalized by its Euclidean length and weighted; the ideal \(v_j^{+}\) and anti-ideal \(v_j^{-}\) are read from the weighted table; the closeness \(C\) balances the two distances between 0 and 1. There is nothing to tune, which explains the method's popularity, but both reference points are recomputed from whichever alternatives are present, so TOPSIS is the method most often caught by the rank-reversal test.
\[ v_j(a) = w_j \frac{r_j(a)}{\sqrt{\sum_b r_j(b)^2}}, \qquad D^{+}(a) = \sqrt{\sum_j \bigl(v_j(a) - v_j^{+}\bigr)^2}, \qquad D^{-}(a) = \sqrt{\sum_j \bigl(v_j(a) - v_j^{-}\bigr)^2}, \qquad C(a) = \frac{D^{-}(a)}{D^{+}(a) + D^{-}(a)} \]Options in the Method step (step 6): none of its own; with standardization 0 it is the textbook method on the raw data.
9. VIKOR provisional
VIKOR looks for a compromise: an alternative that is good for the group of criteria as a whole and not badly unfair to any single one. It computes the total weighted shortfall \(S\) (the group utility) and the worst single shortfall \(R\) (the individual regret), and blends them into the index \(Q\) with a strategy weight \(v\) (0.5 by default; \(v = 1\) counts the total only, \(v = 0\) the worst criterion only). The smallest \(Q\) wins – but VIKOR then tests the winner: the acceptable advantage condition \(Q(a_2) - Q(a_1) \geq 1/(m - 1)\) and the acceptable stability condition (the first by \(Q\) must also be first by \(S\) or by \(R\)). If either fails, a set of compromise solutions is reported instead of a single winner.
\[ S(a) = \sum_{j} w_j \frac{f_j^{*} - r_j(a)}{f_j^{*} - f_j^{-}}, \qquad R(a) = \max_{j} \, w_j \frac{f_j^{*} - r_j(a)}{f_j^{*} - f_j^{-}} \] \[ Q(a) = v \, \frac{S(a) - S^{*}}{S^{-} - S^{*}} + (1 - v) \, \frac{R(a) - R^{*}}{R^{-} - R^{*}} \]Options in the Method step (step 6): vikor_v, between 0 and 1.
10. ELECTRE III provisional
ELECTRE III is ELECTRE with a memory of how imprecise measurements are. Each criterion carries an indifference threshold \(q_j\), below which a difference is noise, and a preference threshold \(p_j\), above which the preference is complete; between them the partial concordance \(c_j\) rises linearly. An optional veto threshold \(v_j\) lets a single criterion destroy the credibility of an outranking when the difference against \(a\) is too large. The comprehensive concordance and the discordances combine into a credibility \(\sigma(a,b)\) between 0 and 1. The ranking is obtained by two distillations – descending, which repeatedly extracts the best alternatives, and ascending, which extracts the worst – and the two positions are averaged; pairs on which the distillations disagree are reported as incomparable. With \(q = p = 0\) and no veto the credibility reduces to the plain concordance, the standard check of an implementation.
\[ c_j(a,b) = \begin{cases} 1 & x_j(b) - x_j(a) \leq q_j \\ 0 & x_j(b) - x_j(a) \geq p_j \\ \dfrac{p_j - \bigl(x_j(b) - x_j(a)\bigr)}{p_j - q_j} & \text{otherwise} \end{cases}, \qquad C(a,b) = \sum_j w_j \, c_j(a,b) \] \[ d_j(a,b) = \begin{cases} 0 & x_j(b) - x_j(a) \leq p_j \\ 1 & x_j(b) - x_j(a) \geq v_j \\ \dfrac{x_j(b) - x_j(a) - p_j}{v_j - p_j} & \text{otherwise} \end{cases}, \qquad \sigma(a,b) = C(a,b) \prod_{j \,:\, d_j(a,b) > C(a,b)} \frac{1 - d_j(a,b)}{1 - C(a,b)} \]The distillations use the discrimination threshold \(s(\lambda) = \alpha + \beta \lambda\) with \(\alpha = 0.30\) and \(\beta = -0.15\) by default.
Options in the Method step (step 6): q, p and veto per criterion in the Criteria step (step 3); electre3_alpha, electre3_beta.
Weights of the criteria: given, equal, Best-Worst
Every method above needs a weight per criterion, and the Weights step of the evaluator offers six ways to obtain them. The first three are judgements of the decision maker; the three objective schemes of the next section read them off the data.
Given weights
The weights of the criteria table, divided by their sum within each group of sibling criteria (the switch divide by the group sum), so that every group sums to 1: \(w_j = W_j / \sum_k W_k\). With the switch off the numbers are used exactly as entered, which only makes sense when they already are shares.
Equal weights
Every evaluated criterion of a group receives \(w_j = 1/n\). Not a method but the neutral starting point of a study, and the natural companion of the sensitivity analysis: a ranking that changes as soon as the weights move away from equal deserves a second look.
Best-Worst Method (BWM), linear model provisional
The Best-Worst Method of Rezaei [24] asks the decision maker for far fewer comparisons than a full pairwise matrix – \(2n - 3\) instead of \(n(n-1)/2\) – and in a form that is easy to answer consistently. Within a group of criteria the decision maker names the best (most important) criterion \(B\) and the worst (least important) criterion \(W\), then gives on the 1–9 scale of Saaty how much more important the best is than every other criterion (the Best-to-Others vector \(a_{Bj}\)) and how much more important every criterion is than the worst (the Others-to-Worst vector \(a_{jW}\)); \(a_{BB} = a_{WW} = 1\), and \(a_{BW}\) appears in both vectors. Ideal weights would satisfy \(w_B / w_j = a_{Bj}\) and \(w_j / w_W = a_{jW}\) exactly; real judgements do not, so the weights are chosen to make the largest violation as small as possible. The original model minimizes the largest ratio error and may have several optimal weight vectors; the linear model of Rezaei [25] minimizes the largest difference error and has a unique optimum. MCEWR solves it as a linear program – \(n + 1\) unknowns, \(4n\) inequalities – with its own simplex routine (no third-party package, so that the same code runs in the browser and on the server):
\[ \min \xi^{L} \quad \text{subject to} \quad \bigl| w_B - a_{Bj}\, w_j \bigr| \le \xi^{L}, \qquad \bigl| w_j - a_{jW}\, w_W \bigr| \le \xi^{L} \quad \text{for every } j, \qquad \sum_{j=1}^{n} w_j = 1, \qquad w_j \ge 0 \]The optimum \(\xi^{L*}\) is the largest violation of a comparison by the optimal weights: 0 when the judgements are fully consistent (\(a_{Bj}\, a_{jW} = a_{BW}\) for every \(j\), and then \(w_j = a_{jW} / \sum_k a_{kW}\) exactly), and the larger the more the judgements contradict one another. Two consistency indicators accompany the weights: the consistency ratio \(CR = \xi^{L*} / CI(n, a_{BW})\), where \(CI\) is the largest \(\xi^{L*}\) any comparison system with \(n\) criteria and that best-to-worst value can produce (the definition of Rezaei [24] with the index of the linear model derived by Ratandhara and Kumar [27]), so that \(CR = 0\) is perfect consistency and \(CR = 1\) the worst possible; and the input-based ratio of Liang, Brunelli and Rezaei [26], \(\max_j |a_{Bj} a_{jW} - a_{BW}| / (a_{BW}^2 - a_{BW})\), which needs no optimization and can be read before the weights are computed. Neither has a universal threshold; a ratio well above 0.1–0.2 is a signal to look at the judgements again. Judgements are given per group of sibling criteria (a hierarchy has one comparison system per group); groups without judgements keep their given weights.
Verification: the solver reproduces the five worked examples of Ratandhara and Kumar [27] (weights and \(\xi^{L*}\) to four decimals), their table of consistency indices, the closed-form optimum on random comparison systems, and an exact-arithmetic simplex. The judgements are saved in the project file (.mcewr) and travel with it.
Objective weights: entropy, CRITIC, MEREC
The three objective schemes of the Weights step compute weights from the decision table itself, answering a narrower question: which criterion carries the most information about the differences between these alternatives? A criterion on which every alternative scores the same tells nothing and receives almost no weight, however important it may be in reality – so objective weights are a check on expert weights, not a replacement for them. Entropy and MEREC need strictly positive values; CRITIC needs only that the alternatives differ.
Entropy weights
The share \(p_j(a)\) of each alternative in the total of criterion \(j\) is treated as a probability, and the entropy of Shannon [16] measures how evenly the values are spread. A criterion whose values differ much has low entropy and carries much information \(d_j\); the weights are proportional to the information.
\[ p_j(a) = \frac{x_j(a)}{\sum_b x_j(b)}, \qquad E_j = -\frac{1}{\ln m} \sum_{a} p_j(a) \ln p_j(a), \qquad d_j = 1 - E_j, \qquad w_j = \frac{d_j}{\sum_k d_k} \]CRITIC weights
CRITIC – Criteria Importance Through Intercriteria Correlation [17] – rewards a criterion that is dispersed (its contrast, the standard deviation \(\sigma_j\) of its column standardized to 0-1) and little correlated with the others (its conflict, the sum of \(1 - r_{jk}\) over the other criteria): it says something the others do not. Because every column is rescaled to 0-1 first, CRITIC responds to the shape of the spread, not to its physical size.
\[ C_j = \sigma_j \sum_{k=1}^{n} \bigl(1 - r_{jk}\bigr), \qquad w_j = \frac{C_j}{\sum_k C_k} \]MEREC weights
MEREC – Method based on the Removal Effects of Criteria [18] – measures how much the overall performance of the alternatives changes when a criterion is removed. Values are normalized so that the best alternative gets the smallest number; the overall performance \(S(a)\) is a logarithmic aggregate; the effect of removing criterion \(j\) is the total absolute change of the performances, and the weights are proportional to those effects.
\[ S(a) = \ln\Bigl(1 + \frac{1}{n}\sum_{j} \bigl|\ln \tilde{x}_j(a)\bigr|\Bigr), \qquad S_{-j}(a) = \ln\Bigl(1 + \frac{1}{n}\sum_{k \neq j} \bigl|\ln \tilde{x}_k(a)\bigr|\Bigr), \qquad E_j = \sum_a \bigl| S_{-j}(a) - S(a) \bigr|, \qquad w_j = \frac{E_j}{\sum_k E_k} \]\(\tilde{x}_j(a) = \min_j / x_j(a)\) for a criterion to maximize and \(x_j(a) / \max_j\) for one to minimize.
Sensitivity analysis: how firm is the ranking?
A ranking is worth reporting only if it survives reasonable doubt about its inputs. The Sensitivity step (step 9) moves one input at a time – a weight, a value of the decision matrix, or a setting of the method – re-runs the method and settings of step 6 at every step, and locates by bisection the point where the winner changes; the Robustness step (step 10) perturbs all the inputs at once, at random, and counts the positions.
The weight sweep and the critical share
The share \(t\) of one criterion is varied from 0 to 1 while the other criteria keep their proportions to one another, and the winner is recorded along the way. Where the winner changes, a bisection finds the exact share – the critical share \(t_j^{c}\) – and the relative change \(|t_j^{c} - w_j| / w_j\) it represents. The criterion with the smallest change is the weak point of the decision. For an additive method the crossing can be verified by hand, because the ranking value is linear in the weights.
\[ w_k(t) = \begin{cases} t & k = j \\ (1 - t)\,\dfrac{w_k}{\sum_{i \neq j} w_i} & k \neq j \end{cases}, \qquad t_j^{c} = \min \bigl\{ t : \text{the winner under } \mathbf{w}(t) \text{ differs from the base winner} \bigr\} \]The decision-value sweep and the critical value
The same question for the data: how much must one value \(x_{aj}\) of the decision matrix change before the winner changes? The value of the chosen alternative (by default the base winner) on each criterion is moved from \(x_{aj} - R_j\) to \(x_{aj} + R_j\), where \(R_j\) is the range of the criterion over the alternatives, the method is re-run at every step, and a bisection finds the nearest critical value \(x_{aj}^{c}\). The change is reported as a share of the range, \(|x_{aj}^{c} - x_{aj}| / R_j\), so that values near zero and values in different units can be compared; the cell with the smallest share is the most sensitive value of the study. Values given as Saaty comparisons are not varied. (One-at-a-time sensitivity of the performance values: Triantaphyllou and Sánchez [28].)
The settings of the method
One numeric setting – the standardization code, or an option of the method such as the VIKOR \(v\), the Compromise Programming power \(p\) or the ELECTRE III thresholds \(\alpha, \beta\) – is given several values and the method is re-run for each. For every value the winner, the whole order and Spearman's \(\rho\) of the positions against the base run are reported; a value the engine refuses (outside the option's range) is listed as not evaluated. It answers, for instance, whether the VIKOR compromise depends on the strategy weight \(v\), or whether the standardization alone changes the ranking.
Monte Carlo robustness: rank acceptability under random perturbation
Every value of the decision matrix, and if you wish every free weight, is multiplied by an independent factor \(1 + u\); \(N\) such samples are drawn, the alternatives are re-ranked each time, and the share of samples that put each alternative at each position is reported – the rank acceptability in the spirit of SMAA-2 [29] – with its mean rank, the share of samples in which it keeps its base position, and the stability of the base winner. \(u\) is drawn uniformly in \([-\delta, \delta]\), or from the symmetric triangular distribution on that interval with mode 0 when small errors are thought more likely than large ones. Weights are renormalized by the method as usual; values given as Saaty comparisons and weights given as Saaty priorities are not perturbed; a sample the engine refuses (for example a negative value under an objective weight scheme) is counted and reported. The random seed is recorded so that the table can be reproduced exactly.
\[ x_{aj}^{(s)} = x_{aj}\,(1 + \delta_x u_{aj}^{(s)}), \qquad w_j^{(s)} = \frac{w_j\,(1 + \delta_w u_j^{(s)})}{\sum_k w_k\,(1 + \delta_w u_k^{(s)})}, \quad u \sim U(-1, 1) \text{ or } \mathrm{Tri}(-1, 0, 1), \qquad \text{acceptability}(a, k) = \frac{1}{N} \sum_{s=1}^{N} \mathbf{1}\bigl[\text{rank}^{(s)}(a) = k\bigr] \]Rank reversal: does the ranking depend on the list of alternatives?
Most methods measure every alternative against the others: standardization uses the best and worst values present, TOPSIS builds its reference points from the set, PROMETHEE compares every pair. The arrival or departure of a third alternative can therefore swap two that were not touched – the rank reversal first discussed for AHP by Belton and Gear [19]. The Rank reversal step (step 11) tests it directly with three experiments, for the methods you tick and the settings of step 6:
| Test | What is done | A reversal means |
|---|---|---|
| remove | each alternative is removed in turn and the others re-ranked | two of the remaining alternatives swapped places |
| duplicate | an exact copy of each alternative is added in turn | two of the original alternatives swapped places |
| dominated | an alternative worse than every other on every criterion is added | a hopeless newcomer changed the order of the others |
The result counts, per method and test, the trials with at least one reversal and the number of reversed pairs, and lists every instance. Methods whose reference points are fixed in advance – Compromise Programming with the limits given in the file, the SPOTIS computation [20] – never reverse; methods whose reference points come from the set, TOPSIS above all, reverse often. A reversal is a documented property of a method, not a defect of the program; the tab exists so that it can be reported rather than discovered in review.
References
- Nijkamp, P., Rietveld, P., and Voogd, H. (1990). Multicriteria Evaluation in Physical Planning. North-Holland, Amsterdam.
- Zeleny, M. (1973). Compromise programming. In Cochrane, J. L. and Zeleny, M. (eds), Multiple Criteria Decision Making, University of South Carolina Press, Columbia, pp. 262-301.
- Duckstein, L., and Opricovic, S. (1980). Multiobjective optimization in river basin development. Water Resources Research, 16(1), 14-20. doi:10.1029/WR016i001p00014
- Brans, J. P., Vincke, P., and Mareschal, B. (1986). How to select and how to rank projects: the PROMETHEE method. European Journal of Operational Research, 24(2), 228-238. doi:10.1016/0377-2217(86)90044-5
- Roy, B. (1968). Classement et choix en présence de points de vue multiples (la méthode ELECTRE). Revue française d'informatique et de recherche opérationnelle, 2(8), 57-75.
- Roy, B., and Bertier, P. (1973). La méthode ELECTRE II: une application au média-planning. In Ross, M. (ed.), Operational Research 72, North-Holland, Amsterdam, pp. 291-302.
- Saaty, T. L. (1977). A scaling method for priorities in hierarchical structures. Journal of Mathematical Psychology, 15(3), 234-281. doi:10.1016/0022-2496(77)90033-5
- Saaty, T. L. (1980). The Analytic Hierarchy Process. McGraw-Hill, New York.
- Rietveld, P. (1980). Multiple Objective Decision Methods and Regional Planning. North-Holland, Amsterdam.
- Barron, F. H., and Barrett, B. E. (1996). Decision quality using ranked attribute weights. Management Science, 42(11), 1515-1523. doi:10.1287/mnsc.42.11.1515
- Hinloopen, E., Nijkamp, P., and Rietveld, P. (1983). Qualitative discrete multiple criteria choice models in regional planning. Regional Science and Urban Economics, 13(1), 77-102. doi:10.1016/0166-0462(83)90007-1
- Hwang, C. L., and Yoon, K. (1981). Multiple Attribute Decision Making: Methods and Applications. Springer, Berlin. doi:10.1007/978-3-642-48318-9
- Opricovic, S., and Tzeng, G. H. (2004). Compromise solution by MCDM methods: a comparative analysis of VIKOR and TOPSIS. European Journal of Operational Research, 156(2), 445-455. doi:10.1016/S0377-2217(03)00020-1
- Roy, B. (1978). ELECTRE III: un algorithme de classements fondé sur une représentation floue des préférences en présence de critères multiples. Cahiers du CERO, 20(1), 3-24.
- Figueira, J., Mousseau, V., and Roy, B. (2005). ELECTRE methods. In Figueira, J., Greco, S., and Ehrgott, M. (eds), Multiple Criteria Decision Analysis: State of the Art Surveys, Springer, New York, pp. 133-162.
- Shannon, C. E. (1948). A mathematical theory of communication. Bell System Technical Journal, 27(3), 379-423. doi:10.1002/j.1538-7305.1948.tb01338.x
- Diakoulaki, D., Mavrotas, G., and Papayannakis, L. (1995). Determining objective weights in multiple criteria problems: the CRITIC method. Computers & Operations Research, 22(7), 763-770. doi:10.1016/0305-0548(94)00059-H
- Keshavarz-Ghorabaee, M., Amiri, M., Zavadskas, E. K., Turskis, Z., and Antucheviciene, J. (2021). Determination of objective weights using a new method based on the removal effects of criteria (MEREC). Symmetry, 13(4), 525. doi:10.3390/sym13040525
- Belton, V., and Gear, T. (1983). On a short-coming of Saaty's method of analytic hierarchies. Omega, 11(3), 228-230. doi:10.1016/0305-0483(83)90047-6
- Dezert, J., Tchamova, A., Han, D., and Tacnet, J.-M. (2020). The SPOTIS rank reversal free method for multi-criteria decision-making support. 23rd International Conference on Information Fusion (FUSION), Rustenburg, South Africa.
- Mahmoud, M. R. (1995). Multi-criteria Location and Sizing of Water Resources Projects by GIS and Dynamic Programming. Ph.D. dissertation, Colorado State University, Fort Collins, Colorado.
- Mahmoud, M. R., and Garcia, L. A. (2000). Comparison of different multicriteria evaluation methods for the Red Bluff diversion dam. Environmental Modelling & Software, 15(5), 471-478. doi:10.1016/S1364-8152(00)00025-6
- Mahmoud, M. R., Fahmy, H., and Labadie, J. W. (2002). Multicriteria siting and sizing of desalination facilities with geographic information system. Journal of Water Resources Planning and Management, 128(2), 113-120. doi:10.1061/(ASCE)0733-9496(2002)128:2(113)
- Rezaei, J. (2015). Best-worst multi-criteria decision-making method. Omega, 53, 49-57. doi:10.1016/j.omega.2014.11.009
- Rezaei, J. (2016). Best-worst multi-criteria decision-making method: some properties and a linear model. Omega, 64, 126-130. doi:10.1016/j.omega.2015.12.001
- Liang, F., Brunelli, M., and Rezaei, J. (2020). Consistency issues in the best worst method: measurements and thresholds. Omega, 96, 102175. doi:10.1016/j.omega.2019.102175
- Ratandhara, H. M., and Kumar, M. (2025). An analytical framework for the linear best-worst method and its application to achieve sustainable development goals-oriented agri-food supply chains. arXiv:2506.17666. https://arxiv.org/abs/2506.17666
- Triantaphyllou, E., and Sánchez, A. (1997). A sensitivity analysis approach for some deterministic multi-criteria decision-making methods. Decision Sciences, 28(1), 151-194. doi:10.1111/j.1540-5915.1997.tb01306.x
- Lahdelma, R., and Salminen, P. (2001). SMAA-2: Stochastic multicriteria acceptability analysis for group decision making. Operations Research, 49(3), 444-454. doi:10.1287/opre.49.3.444.11220