comet
mcda.comet
COMET aggregation: rank tools by triangular fuzzy interpolation over characteristic objects.
COMET is the Characteristic Objects METhod of Salabun 2015. It is rank reversal free: adding or removing an alternative cannot change the relative order of the others, because the model is fit on a fixed grid of characteristic objects and not on the alternatives themselves.
The method needs an expert who, for every pair of characteristic objects, says which one is preferred. In an automated pipeline there is no human expert, so beam uses the simple additive weighting (weighted sum) of a characteristic object’s coordinates as the expert rule: characteristic object a is preferred to b when its weighted sum is larger, and the two are equal when their weighted sums are equal. This is a deterministic, auditable stand-in for the human pairwise judgement.
The COMET machinery is delegated to pymcdm.methods.COMET. beam supplies the characteristic values and a pymcdm.methods.comet_tools.FunctionExpert that applies the weighted-sum rule above. pymcdm then builds the Matrix of Expert Judgement, the Summed Judgement, the per-object preference, and the triangular fuzzy interpolation. The native implementation of those steps has been replaced by that call.
Reference: Salabun, W. (2015). The Characteristic Objects Method: A New Distance-based Approach to Multicriteria Decision-making Problems. Journal of Multi-Criteria Decision Analysis, 22(1-2), 37-50.
Functions
| Name | Description |
|---|---|
| comet | Compute COMET preference scores per tool. |
comet
mcda.comet.comet(normalized, weights, characteristic_values=None)
Compute COMET preference scores per tool.
The input is the matrix produced by min_max_normalize: values in [0, 1] with every column oriented so higher is better. COMET first fixes a small set of characteristic values per criterion and forms characteristic objects as their Cartesian product. A weighted-sum expert (see _weighted_sum_expert) ranks the objects and assigns each a preference P. Each criterion value is then turned into triangular fuzzy memberships over its characteristic values, and an alternative’s score is the sum over characteristic objects of P times the product of the matching memberships across criteria. Higher is better. These steps are carried out by pymcdm.methods.COMET.
Because the model is fit on the fixed grid of characteristic objects, COMET is rank reversal free: adding or removing an alternative does not change the scores of the others.
Parameters
| Name | Type | Description | Default |
|---|---|---|---|
normalized |
np.ndarray | Shape (n_tools, n_metrics), values in [0, 1]. |
required |
weights |
np.ndarray | Shape (n_metrics,), non-negative; typically sums to 1. |
required |
characteristic_values |
np.ndarray | list[list[float]] | None | Optional characteristic values per criterion. Either a 2D array-like of shape (n_metrics, k) or a list of n_metrics sequences, each with the same length k of 2 or 3. When omitted, the endpoints of the normalized scale, [0.0, 1.0] for every criterion, are used. Values per criterion must be sorted and strictly increasing. |
None |
Returns
| Type | Description |
|---|---|
| np.ndarray | Shape (n_tools,), COMET preference in [0, 1]. |
Notes
The expert function is the weighted sum of a characteristic object’s coordinates, a deterministic stand-in for the human pairwise judgement that COMET assumes. See the module docstring and docs/explanations/aggregation-methods.md#comet.
References
Salabun, W. (2015). The Characteristic Objects Method: A New Distance-based Approach to Multicriteria Decision-making Problems. Journal of Multi-Criteria Decision Analysis, 22(1-2), 37-50.