skcriteria.ranksrev.rank_reversal_by_clones module

Implementation of the rank reversal test by cloning alternatives.

This module provides the RankClonesChecker class, which evaluates the stability of an MCDA method by introducing copies of non-optimal alternatives and checking if the top-ranked alternative changes.

According to this criterion, the indication of the best alternative should remain unchanged when identical or near-identical copies of non-optimal alternatives are introduced.

class skcriteria.ranksrev.rank_reversal_by_clones.RankClonesChecker(dmaker)[source]

Bases: SKCMethodABC

Check the stability of a method against the cloning of alternatives.

This checker evaluates if the best alternative remains the same when a copy of some of the non-optimal alternatives is introduced.

The checker iterates through all non-optimal alternatives, creates a clone of each one, and evaluates the new decision matrix with the same decision maker. The result is a collection of rankings, one for each cloned alternative, which can be compared with the original ranking.

This test was proposed in: Belton, V., & Gear, T. (1983). On a short-coming of Saaty’s method of analytic hierarchies. Omega, 11(3), 228-230.

Parameters:

dmaker (Decision maker - must implement the evaluate() method) – The MCDA method, or pipeline to evaluate.

References

[Belton & Gear, 1983]

property dmaker

The MCDA method, or pipeline to evaluate.

evaluate(dm)[source]

Execute the checker.

Parameters:

dm (DecisionMatrix) – The decision matrix to be evaluated.

Returns:

An object containing multiple rankings of the alternatives, with information on any changes made to the original decision matrix in the extra_ attribute.

Return type:

RanksComparator