# `skcriteria.core.dominance` module¶

Dominance helper for the DecisionMatrix object.

class skcriteria.core.dominance.DecisionMatrixDominanceAccessor(dm)[source]

Calculate basic statistics of the decision matrix.

bt()[source]

Compare on how many criteria one alternative is better than another.

bt = better-than.

Returns

Where the value of each cell identifies on how many criteria the row alternative is better than the column alternative.

Return type

pandas.DataFrame

eq()[source]

Compare on how many criteria two alternatives are equal.

Returns

Where the value of each cell identifies how many criteria the row and column alternatives are equal.

Return type

pandas.DataFrame

dominance(*, strict=False)[source]

Compare if one alternative dominates or strictly dominates another alternative.

In order to evaluate the dominance of an alternative a0 over an alternative a1, the algorithm evaluates that a0 is better in at least one criterion and that a1 is not better in any criterion than a0. In the case that `strict = True` it also evaluates that there are no equal criteria.

Parameters

strict (bool, default `False`) – If True, strict dominance is evaluated.

Returns

Where the value of each cell is True if the row alternative dominates the column alternative.

Return type

pandas.DataFrame

compare(a0, a1)[source]

Compare two alternatives.

It creates a summary data frame containing the comparison of the two alternatives on a per-criteria basis, indicating which of the two is the best value, or if they are equal. In addition, it presents a “Performance” column with the count for each case.

Parameters
• a0 (str) – Names of the alternatives to compare.

• a1 (str) – Names of the alternatives to compare.

Returns

Comparison of the two alternatives by criteria.

Return type

pandas.DataFrame

dominated(*, strict=False)[source]

Which alternative is dominated or strictly dominated by at least one other alternative.

Parameters

strict (bool, default `False`) – If True, strict dominance is evaluated.

Returns

Where the index indicates the name of the alternative, and if the value is is True, it indicates that this alternative is dominated by at least one other alternative.

Return type

pandas.Series

dominators_of(a, *, strict=False)[source]

Array of alternatives that dominate or strictly-dominate the alternative provided by parameters.

Parameters
• a (str) – On what alternative to look for the dominators.

• strict (bool, default `False`) – If True, strict dominance is evaluated.

Returns

List of alternatives that dominate `a`.

Return type

numpy.ndarray

has_loops(*, strict=False)[source]

Retorna True si la matriz contiene loops de dominacia.

A loop is defined as if there are alternatives a0, a1 and ‘a2’ such that “a0 ≻ a1 ≻ a2 ≻ a0” if `strict=True`, or “a0 ≽ a1 ≽ a2 ≽ a0” if `strict=False`

Parameters

strict (bool, default `False`) – If True, strict dominance is evaluated.

Returns

If True a loop exists.

Return type

bool

Notes

If the result of this method is True, the `dominators_of()` method raises a `RecursionError` for at least one alternative.