skcriteria.madm.simple module

Some simple and compensatory methods.

skcriteria.madm.simple.wsm(matrix, weights)[source]

Execute weighted sum model without any validation.

class skcriteria.madm.simple.WeightedSumModel[source]

Bases: SKCDecisionMakerABC

The weighted sum model.

WSM is the best known and simplest multi-criteria decision analysis for evaluating a number of alternatives in terms of a number of decision criteria. It is very important to state here that it is applicable only when all the data are expressed in exactly the same unit. If this is not the case, then the final result is equivalent to “adding apples and oranges”. To avoid this problem a previous normalization step is necessary.

In general, suppose that a given MCDA problem is defined on \(m\) alternatives and \(n\) decision criteria. Furthermore, let us assume that all the criteria are benefit criteria, that is, the higher the values are, the better it is. Next suppose that \(w_j\) denotes the relative weight of importance of the criterion \(C_j\) and \(a_{ij}\) is the performance value of alternative \(A_i\) when it is evaluated in terms of criterion \(C_j\). Then, the total (i.e., when all the criteria are considered simultaneously) importance of alternative \(A_i\), denoted as \(A_{i}^{WSM-score}\), is defined as follows:

\[A_{i}^{WSM-score} = \sum_{j=1}^{n} w_j a_{ij},\ for\ i = 1,2,3,...,m\]

For the maximization case, the best alternative is the one that yields the maximum total performance value.

Raises

ValueError: – If some objective is for minimization.

References

[Fishburn, 1967], [Wikipedia contributors, 2021b], [Tzeng & Huang, 2011]

skcriteria.madm.simple.wpm(matrix, weights)[source]

Execute weighted product model without any validation.

class skcriteria.madm.simple.WeightedProductModel[source]

Bases: SKCDecisionMakerABC

The weighted product model.

WPM is a popular multi-criteria decision analysis method. It is similar to the weighted sum model. The main difference is that instead of addition in the main mathematical operation now there is multiplication.

In general, suppose that a given MCDA problem is defined on \(m\) alternatives and \(n\) decision criteria. Furthermore, let us assume that all the criteria are benefit criteria, that is, the higher the values are, the better it is. Next suppose that \(w_j\) denotes the relative weight of importance of the criterion \(C_j\) and \(a_{ij}\) is the performance value of alternative \(A_i\) when it is evaluated in terms of criterion \(C_j\). Then, the total (i.e., when all the criteria are considered simultaneously) importance of alternative \(A_i\), denoted as \(A_{i}^{WPM-score}\), is defined as follows:

\[A_{i}^{WPM-score} = \prod_{j=1}^{n} a_{ij}^{w_j},\ for\ i = 1,2,3,...,m\]

To avoid underflow, instead the multiplication of the values we add the logarithms of the values; so \(A_{i}^{WPM-score}\), is finally defined as:

\[A_{i}^{WPM-score} = \sum_{j=1}^{n} w_j \log(a_{ij}),\ for\ i = 1,2,3,...,m\]

For the maximization case, the best alternative is the one that yields the maximum total performance value.

Raises

ValueError: – If some objective is for minimization or some value in the matrix is <= 0.

References

[Bridgman, 1922] [Miller & others, 1963]