Tunny Icon
TunnyDocs

The next-gen Grasshopper optimization tool.

PROMETHEE

Overview

PROMETHEE (Preference Ranking Organisation METHod for Enrichment Evaluations) evaluates every pair of trials (a, b) — "how much is a preferred over b?" — and aggregates those preferences into flow scores.

  • PROMETHEE I: conceptually a partial ranking (allows incomparable pairs) based on Φ+ and Φ-. Tunny Dashboard displays it as a single total order (Φ+ descending, tiebreak Φ- ascending) and additionally reports, per trial, the number of trials it is incomparable with (shown as ⇹N in the chart)
  • PROMETHEE II: complete ranking using Φnet

For each trial, Tunny Dashboard provides:

Output Description
Positive flow Φ+ How much the trial outperforms the others
Negative flow Φ- How much the trial is outperformed by the others
Net flow Φnet Φ+ − Φ- (positive = overall advantage, negative = disadvantage)
PROMETHEE I ranking Trials ordered by Φ+ descending (ties by Φ- ascending)
PROMETHEE II ranking Trials ordered by Φnet descending

Algorithm

Step 1: Threshold Auto-Computation

For each objective j, compute the preference threshold from the data range:

rangej=maxifijminifij\text{range}j = \max_i f{ij} - \min_i f_{ij}

pj=0.2×rangej(strict preference threshold)p_j = 0.2 \times \text{range}_j \quad \text{(strict preference threshold)}

q=0(indifference threshold)q = 0 \quad \text{(indifference threshold)}

Step 2: Linear Preference Function

For a trial pair (a, b), compute the signed difference for objective j:

dj=fbjfaj(minimize)d_j = f_{bj} - f_{aj} \quad \text{(minimize)}

dj=fajfbj(maximize)d_j = f_{aj} - f_{bj} \quad \text{(maximize)}

Linear preference function:

Pj(d)={0if d0dpjif 0<d<pj1if dpjP_j(d) = \begin{cases} 0 & \text{if } d \le 0 \ \frac{d}{p_j} & \text{if } 0 < d < p_j \ 1 & \text{if } d \ge p_j \end{cases}

Tunny Dashboard only supports the linear preference function. Other preference-function shapes (Usual, U-shape, Level, Gaussian, etc.) are candidates for future support.

Step 3: Aggregated Preference Index

π(a,b)=jwjPj(dj(a,b))[0,1]\pi(a, b) = \sum_j w_j \cdot P_j(d_j(a, b)) \quad \in [0, 1]

π(a, b) = 1 means a is strictly preferred over b across all objectives. Tunny Dashboard normalizes the weights internally so they sum to 1 (mirroring VIKOR / TOPSIS), which guarantees π ∈ [0, 1] and Φnet ∈ [-1, 1] even for unnormalized input weights.

Step 4: Positive and Negative Flows

Φ+(i)=1m1biπ(i,b)\Phi^+(i) = \frac{1}{m-1} \cdot \sum_{b \ne i} \pi(i, b)

Φ(i)=1m1biπ(b,i)\Phi^-(i) = \frac{1}{m-1} \cdot \sum_{b \ne i} \pi(b, i)

Φnet(i)=Φ+(i)Φ(i)\Phi^{\text{net}}(i) = \Phi^+(i) - \Phi^-(i)

Step 5: Ranking

PROMETHEE I (Φ+ desc, tiebreak Φ- asc): pairs with Φ+(a) > Φ+(b) but Φ-(a) > Φ-(b) (or lower on both) are incomparable — one trial outranks more while also being outranked more. The displayed order is totalized via the tiebreak rule above, and each trial also reports how many valid trials it is incomparable with (shown as ⇹N next to the flows in the chart; 0 means the trial has a defined outranking relation with every other trial).

PROMETHEE II (Φnet desc): always produces a complete ranking.

Numerical Example

3 trials × 2 objectives, both minimized, weights w=[0.5,0.5]w = [0.5, 0.5]:

Trial Obj 1 Obj 2
0 1 1
1 3 3
2 5 5

Step 1 — thresholds: Obj 1: range = 5 − 1 = 4, p₁ = 0.8. Obj 2: range = 5 − 1 = 4, p₂ = 0.8.

Step 2–3 — preference matrix π: π(0,1)\pi(0,1): obj 1 has d=31=20.8P=1.0d = 3 - 1 = 2 \ge 0.8 \Rightarrow P = 1.0, obj 2 the same, so π=0.5×1.0+0.5×1.0=1.0\pi = 0.5 \times 1.0 + 0.5 \times 1.0 = 1.0. π(0,2)=1.0\pi(0,2) = 1.0 the same way. π(1,0)\pi(1,0): d=13=20P=0d = 1 - 3 = -2 \le 0 \Rightarrow P = 0 for both objectives, so π=0\pi = 0. π(1,2)=1.0\pi(1,2) = 1.0. π(2,0)=π(2,1)=0\pi(2,0) = \pi(2,1) = 0.

π(a,b) b=0 b=1 b=2
a=0 - 1.0 1.0
a=1 0 - 1.0
a=2 0 0 -

Step 4 — flows:

Φ+(0)=(1.0+1.0)/2=1.0,Φ(0)=(0+0)/2=0\Phi^+(0) = (1.0 + 1.0)/2 = 1.0, \quad \Phi^-(0) = (0+0)/2 = 0

Φ+(1)=(0+1.0)/2=0.5,Φ(1)=(1.0+0)/2=0.5\Phi^+(1) = (0+1.0)/2 = 0.5, \quad \Phi^-(1) = (1.0+0)/2 = 0.5

Φ+(2)=(0+0)/2=0,Φ(2)=(1.0+1.0)/2=1.0\Phi^+(2) = (0+0)/2 = 0, \quad \Phi^-(2) = (1.0+1.0)/2 = 1.0

Φnet=[1.0, 0.0, 1.0]\Phi^{\text{net}} = [1.0,\ 0.0,\ -1.0]

Step 5 — ranking:

Ranking Order
PROMETHEE I 0 → 1 → 2 (Φ+ descending)
PROMETHEE II 0 → 1 → 2 (Φnet descending)

Comparison with TOPSIS / VIKOR

Aspect TOPSIS VIKOR PROMETHEE
Approach Distance ideal Gap linear combo Pairwise preference
Ranking Complete (score) Complete (Q) I: partial / II: full
Score range [0, 1] [0, 1] Φnet ∈ [−1, 1]
Complexity O(m × n) O(m × n) O(m² × n)

Edge Cases

NaN/Inf trials: any trial with a non-finite objective value is excluded from pairwise computation; flows set to 0.0, placed last in ranking.

Single trial: m = 1, denominator max(m−1, 1) = 1, all flows = 0.0.

All trials identical: p_j = 0, all differences = 0, all flows = 0.0.

Complexity

O(m² × n + m log m). The pairwise comparison is the bottleneck — a few tens of milliseconds for 10,000 trials × 4 objectives, but it slows sharply as the number of trials grows.

Controls in the App

PROMETHEE I: shows two bars per trial — a Φ+ bar (how much it outperforms others) and a Φ- bar (how much it is outperformed) — ordered by the PROMETHEE I ranking. Trials with incomparable counterparts show a ⇹N marker next to the flow values.

PROMETHEE II: shows a single Φnet bar per trial, with bar width proportional to |Φnet| — positive values indicating overall advantage, negative values overall disadvantage.

Switching between PROMETHEE I and II is instant: Φ+, Φ-, and Φnet are always computed together, so no recomputation is needed when you toggle the view.

When to Use

Want pairwise "how much is a better than b?"    → PROMETHEE I / II
Want the Φ+/Φ- flow breakdown (still a total order)? → PROMETHEE I
Need a complete ranking with net flow score?     → PROMETHEE II
Dataset > 10,000 trials and speed matters?       → prefer TOPSIS / VIKOR

Combine with the Entropy Weight Method for an objective, data-driven
threshold-and-weight setup.

References

  • Brans, J.-P. (1982). L'ingénierie de la décision: élaboration d'instruments d'aide à la décision. La méthode PROMETHEE. In R. Nadeau & M. Landry (Eds.), L'aide à la décision: Nature, Instruments et Perspectives d'Avenir (pp. 183–214). Presses de l'Université Laval.
  • Brans, J.-P., & Vincke, P. (1985). A Preference Ranking Organisation Method: The PROMETHEE Method for MCDM. Management Science, 31(6), 647–656. https://doi.org/10.1287/mnsc.31.6.647
  • Brans, J.-P., Vincke, P., & Mareschal, B. (1986). How to select and how to rank projects: The PROMETHEE method. European Journal of Operational Research, 24(2), 228–238. https://doi.org/10.1016/0377-2217(86)90044-5
  • Brans, J.-P., & Mareschal, B. (2005). PROMETHEE methods. In Multiple Criteria Decision Analysis: State of the Art Surveys (pp. 163–186). Springer. https://doi.org/10.1007/0-387-23081-5_5