electre

This module implements the Electre algorithms.

Implementation and naming conventions are taken from [Vin98a].

class IElectre(performance_table)

Bases: Generic[T], ABC

This class represents the common interface between all Electre algorithms

Parameters

performance_table (PerformanceTable[QuantitativeScale]) –

abstract concordance()

Compute the concordance matrix.

Returns

concordance matrix

Return type

AdjacencyValueMatrix[QuantitativeScale]

abstract construct()

Construct the outranking structure.

Returns

outranking structure

Return type

T

abstract discordance()

Compute the discordance matrix.

Returns

discordance matrix

Return type

PartialValueMatrix[QuantitativeScale]

abstract exploit(outranking_structure, **kwargs)

Exploit outranking structure.

Parameters

outranking_structure (T) –

Returns

result

Return type

Any

class IElectre1(performance_table, criteria_weights)

Bases: IElectre[T], Generic[T], ABC

This class implements common methods for Electre I and II.

Parameters
concordance()

Compute the concordance matrix.

Returns

concordance matrix

Return type

AdjacencyValueMatrix[QuantitativeScale]

abstract construct()

Construct the outranking structure.

Returns

outranking structure

Return type

T

discordance()

Compute the discordance matrix.

Returns

discordance matrix

Return type

PartialValueMatrix[QuantitativeScale]

abstract exploit(outranking_structure, **kwargs)

Exploit outranking structure.

Parameters

outranking_structure (T) –

Returns

result

Return type

Any

class IElectre3(performance_table, criteria_weights, indifference_thresholds, preference_thresholds, veto_thresholds)

Bases: IElectre[AdjacencyValueMatrix], ABC

This class implements basic Electre III methods shared to other classes.

Parameters
  • performance_table (PerformanceTable[QuantitativeScale]) –

  • criteria_weights (Dict[Any, float]) –

  • indifference_thresholds (Dict[Any, float]) –

  • preference_thresholds (Dict[Any, float]) –

  • veto_thresholds (Dict[Any, float]) – missing criteria won’t apply veto

concordance(performance_table=None)

Compute the concordance matrix.

Parameters

performance_table (Optional[PerformanceTable[QuantitativeScale]]) – use performance_table attribute if not provided

Returns

concordance matrix

Return type

AdjacencyValueMatrix[QuantitativeScale]

abstract construct()

Construct the outranking structure.

Returns

outranking structure

Return type

T

credibility(performance_table=None)

Compute the credibility matrix.

Parameters

performance_table (Optional[PerformanceTable[QuantitativeScale]]) – use performance_table attribute if not provided

Returns

credibility matrix

Return type

AdjacencyValueMatrix[QuantitativeScale]

discordance(performance_table=None)

Compute the discordance matrix.

Parameters

performance_table (Optional[PerformanceTable[QuantitativeScale]]) – use performance_table attribute if not provided

Returns

discordance matrix

Return type

PartialValueMatrix[QuantitativeScale]

abstract exploit(outranking_structure, **kwargs)

Exploit outranking structure.

Parameters

outranking_structure (T) –

Returns

result

Return type

Any