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 appliedpost_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
- learn()
Perform disaggregation using UTA and return result.
- Returns
basic ranker with additive value functions
- Return type
- 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
- 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 appliedpost_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
- learn()
Perform disaggregation using UTA and return result.
- Returns
basic ranker with additive value functions
- Return type
- 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