uta

This module implements the UTA algorithms.

Implementation and naming conventions are taken from [SGM05].

class UTA(performance_table, preference_structure, criteria_segments=None, delta=0.001, post_optimality=False, post_optimality_coeff=0, solver_args=None)

Bases: Learner[AdditiveValueFunctions[OrdinalScale]], Ranker

This class represents the UTA disaggregator.

Parameters
  • performance_table (PerformanceTable[OrdinalScale]) –

  • preference_structure (PreferenceStructure) –

  • criteria_segments (Optional[Dict[Any, int]]) – number of segments per criteria

  • delta (float) – discrimination threshold for preference relations

  • post_optimality (bool) – if True, post-optimality is applied

  • post_optimality_coeff (float) – coefficient used to compute threshold on UTA objective function cost when performing post-optimality

  • solver_args (Optional[Dict]) – extra arguments supplied to the solver

Raises

TypeError – if relations contains a mcda.api.core.relations.IncomparableRelation instance

Attribute relations

preference_structure given in input as a mcda.core.relations.PreferenceStructure

Attribute problem

UTA base LP problem

Attribute post_optimality_problem

UTA post optimal LP problem

Note

Post-optimality threshold is computed as follows: (1 + post_optimality_coeff) * F_star where F_star is the optimum objective cost computed by UTA

Note

criteria functions are computed for normal scales, so when applying aggregation you must provide normalized values ( mcda.api.core.PerformanceTable alone are automatically normalized)

disaggregate()

Perform disaggregation and return result.

Returns

basic ranker with additive value functions

Return type

AdditiveValueFunctions[OrdinalScale]

learn()

Perform disaggregation using UTA and return result.

Returns

basic ranker with additive value functions

Return type

AdditiveValueFunctions[OrdinalScale]

property objective

Return objective function final value.

Objective taken from base problem or post_optimality_problem.

rank(**kwargs)

Rank alternatives.

Rank alternatives in performance_table according to learned additive value functions.

Returns

Return type

CommensurableValues[OrdinalScale]

class UTAstar(performance_table, preference_structure, criteria_segments=None, delta=0.001, post_optimality=False, post_optimality_coeff=0, solver_args=None)

Bases: UTA

This class represents the UTA* disaggregator.

Parameters
  • performance_table (PerformanceTable[OrdinalScale]) –

  • criteria_segments (Optional[Dict[Any, int]]) – number of segments per criteria

  • preference_structure (PreferenceStructure) –

  • delta (float) – discrimination threshold for preference relations

  • post_optimality (bool) – if True, post-optimality is applied

  • post_optimality_coeff (float) – coefficient used to compute threshold on UTA objective function cost when performing post-optimality

  • solver_args (Optional[Dict]) – extra arguments supplied to the solver

Raises

TypeError – if relations contains a mcda.api.core.relations.IncomparableRelation instance

Attribute relations

preference_structure given in input as a mcda.core.relations.PreferenceStructure

Attribute problem

UTA* base LP problem

Attribute post_optimality_problem

UTA* post optimal LP problem

Note

Post-optimality threshold is computed as follows: (1 + post_optimality_coeff) * F_star where F_star is the optimum objective cost computed by UTA*

Note

criteria functions are computed for normal scales, so when applying aggregation you must provide normalized values ( mcda.api.core.PerformanceTable alone are automatically normalized)

disaggregate()

Perform disaggregation using UTA* and return result.

Returns

utility functions

Return type

AdditiveValueFunctions[OrdinalScale]

learn()

Perform disaggregation using UTA and return result.

Returns

basic ranker with additive value functions

Return type

AdditiveValueFunctions[OrdinalScale]

property objective

Return objective function final value.

Objective taken from base problem or post_optimality_problem.

rank(**kwargs)

Rank alternatives.

Rank alternatives in performance_table according to learned additive value functions.

Returns

Return type

CommensurableValues[OrdinalScale]