PROMETHEE
概要
PROMETHEE(Preference Ranking Organisation METHod for Enrichment Evaluations)は、1982 年に J.-P. Brans が提案し、Brans & Vincke (1985) らにより発展した多基準意思決定(MCDM)手法です。 トライアル間のペアワイズ比較に基づいて選好度を計算し、正のフロー(Φ+)と負のフロー(Φ-)からランキングを導出します。
PROMETHEE I は理論上は部分ランキング(Partial Ranking、比較不能なペアを許容)です。 Tunny Dashboard では Φ+ 降順、Φ- 昇順のタイブレークによる全順序で表示しつつ、トライアルごとの比較不能件数(チャートでは ⇹N 表示)もあわせて示します。 PROMETHEE II は完全ランキング(Complete Ranking)を提供します。
Tunny Dashboard では、各トライアルについて次の情報が得られます:
| 出力 | 説明 |
|---|---|
| 正のフロー Φ+ | そのトライアルが他をどれだけ上回るか |
| 負のフロー Φ- | そのトライアルが他にどれだけ下回るか |
| ネットフロー Φnet | Φ+ − Φ-(正なら概ね優位、負なら概ね劣位) |
| PROMETHEE I 順位 | Φ+ 降順(同値は Φ- 昇順)に並べたトライアルの順位 |
| PROMETHEE II 順位 | Φnet 降順に並べたトライアルの順位 |
理論背景
基本思想
PROMETHEE はすべてのトライアルペア (a, b) について「a は b よりどの程度好ましいか」を数量化し、それを集約してランキングを作ります。 距離測度(TOPSIS)や妥協指標(VIKOR)ではなく、選好関数を用いたペアワイズ比較が特徴です。
アルゴリズムの概要
m 個のトライアル × n 個の目的関数からなる決定行列を入力とし、以下のステップで計算します:
Step 1: 各目的関数の閾値(p)を自動算出
Step 2: 選好関数 P(d) の計算(Linear 型)
Step 3: 多指標選好度 π(a, b) の集約
Step 4: 正のフロー Φ+ と負のフロー Φ- の計算
Step 5: PROMETHEE I / II ランキングの生成Step 1: 閾値の自動算出
各目的関数 j について、有効トライアルの値域から閾値を設定します:
- q(無差別閾値):0(わずかな差でも選好に反映)
- p(厳格選好閾値):値域の 20%(これを超える差は完全な選好)
Tunny Dashboard は Linear 型のみ対応です。他の選好関数(Usual, U-shape, Level, Gaussian 等)は将来的な拡張候補です。
Step 2: Linear 選好関数
トライアル a と b の目的 j における差分:
- 最小化目的: (a が小さいほど d が正)
- 最大化目的: (a が大きいほど d が正)
Linear 選好関数:
- : a は b より劣る(選好なし)
- : 差が閾値未満(部分選好)
- : 差が閾値以上(完全選好)
Step 3: 多指標選好度
すべての目的関数について重み付き和をとり、a と b の総合選好度を計算します:
Tunny Dashboard は VIKOR / TOPSIS と同様に、渡された重みを内部で合計 1 に正規化してから使用します。 これにより、未正規化の重みを渡しても 、 が保証されます。
- : a は b より全目的で劣るか同等
- : a は b より全目的で厳格に優位
- は必ずしも 1 になりません(非対称)
Step 4: フローの計算
各トライアル i について、正のフローと負のフローを計算します:
- Φ+(i): トライアル i が他をどれだけ上回るか(高いほど優秀)
- Φ-(i): トライアル i が他にどれだけ下回るか(低いほど優秀)
- Φnet(i): ネットフロー。正なら概ね優位、負なら概ね劣位
- (すべてのフロー値は [0, 1] に正規化されるため)
Step 5: ランキング
PROMETHEE I(理論上は部分ランキング)
Φ+ の降順でソートします。Φ+ が同値の場合、Φ- の昇順でタイブレークします。
理論上は以下のケースで比較不能となります:
- かつ → 比較不能(一方が上回る面と下回る面の両方を持ちます)
Tunny Dashboard での扱い: 表示順は上記のタイブレーク規則(Φ+ 降順、Φ- 昇順)による全順序です。 あわせて、各トライアルが何件の有効トライアルと比較不能か(Φ+ と Φ- の両方で厳密に上回るか下回る相手の数)も示します。 チャートではフロー値の隣に ⇹N として表示され、⇹N が 0 のトライアルは他の全トライアルと優劣が定まっています。
PROMETHEE II(完全ランキング)
Φnet の降順でソートします。すべてのトライアルが順位付けされます。
TOPSIS / VIKOR との比較
| 項目 | TOPSIS | VIKOR | PROMETHEE |
|---|---|---|---|
| アプローチ | 理想解との距離 | ギャップの線形結合 | ペアワイズ選好比較 |
| 距離測度 | ユークリッド(L2) | マンハッタン(L1)+ Chebyshev(L∞) | 重み付き選好度 |
| ランキング | スコア降順(完全) | Q 値昇順(完全) | I: 部分 / II: 完全 |
| パラメータ | なし | v(戦略的重み) | 閾値 p(自動算出) |
| 計算量 | O(m × n + m log m) | O(m × n + m log m) | O(m² × n + m log m) |
| スコア範囲 | [0, 1] | [0, 1] | Φnet ∈ [-1, 1] |
数値例
問題設定
3 トライアル × 2 目的、両方最小化、重み
| トライアル | 目的1 | 目的2 |
|---|---|---|
| 0 | 1 | 1 |
| 1 | 3 | 3 |
| 2 | 5 | 5 |
Step 1: 閾値
目的1: range = 5 - 1 = 4, p₁ = 0.8 目的2: range = 5 - 1 = 4, p₂ = 0.8
Step 2-3: 選好度行列 π
: 目的1 は → 、目的2 も同様 → : 目的1 は → 、目的2 も同様 → : 目的1 は → 、目的2 も同様 → : 目的1 は → 、目的2 も同様 → ,
| π(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: フロー
Step 5: ランキング
| ランキング | 順位 |
|---|---|
| PROMETHEE I | 0 → 1 → 2(Φ+ 降順) |
| PROMETHEE II | 0 → 1 → 2(Φnet 降順) |
挙動の詳細
NaN / Inf トライアルの扱い
いずれかの目的関数値が非有限(NaN または ±Inf)のトライアルは、有効トライアルから除外され、フローは 0.0、ランキング末尾に配置されます。 すべてのトライアルが非有限値の場合は、全フロー 0.0、ランキングは元の並び順になります。
単一トライアルの場合
のときはペアが存在しないため、分母のゼロ除算を防ぐガードが働き、全フローは 0.0 となります。
値域ゼロ(全トライアル同一値)
となり選好関数は の場合常に 1.0 を返しますが、すべての差分が 0 なので となり、結果として全フロー 0.0 となります。
計算量
| ステップ | 計算量 |
|---|---|
| 閾値算出 | O(m × n) |
| 選好度行列 | O(m² × n) |
| フロー計算 | O(m²) |
| ソート | O(m log m) |
| 合計 | O(m² × n + m log m) |
選好度行列の O(m²) がボトルネックです。 1 万トライアル × 4 目的関数でも数十ミリ秒程度ですが、トライアル数が増えると急激に遅くなります。
UI での表示
PROMETHEE I
トライアルごとに 2 本のバーを表示します:
- Φ+ バー(青系): 他をどれだけ上回るか
- Φ- バー(赤系): 他にどれだけ下回るか
PROMETHEE I のランキング順に並びます。 比較不能な相手がいるトライアルには、フロー値の隣に ⇹N(比較不能件数)が表示されます。
PROMETHEE II
トライアルごとに 1 本の Φnet バーを表示します:
- 正値(青系): 概ね優位
- 負値(アクセント色): 概ね劣位
- バーの幅は |Φnet| に比例
PROMETHEE I ↔ II の切替は即座に行われます。 Φ+/Φ-/Φnet は常に同時に計算されるため、切替時の再計算は不要です。
特性・限界
強み:
- ペアワイズ比較に基づく直感的な解釈ができます(a は b よりどれだけ好ましいか)
- PROMETHEE I は比較不能なペアを許容する部分ランキングです。Tunny Dashboard は Φ+ 降順、Φ- 昇順のタイブレークによる全順序で表示しつつ、トライアルごとの比較不能件数(⇹N)を明示します
- PROMETHEE II で完全な順序付けができます
- 選好関数の種類と閾値で、目的関数ごとの選好の度合いを調整できます
弱み:
- O(m²) の計算量です。トライアル数が増えると急激に遅くなります(10 万件で数秒)
- 閾値 p の設定が結果に影響します(Tunny Dashboard では固定で range×0.2)
- Linear 型のみ対応しています(他の選好関数は将来拡張)
- Φnet が負値をとり得るため、TOPSIS/VIKOR のような [0, 1] スケールと直接比較できません
使用場面の目安
多目的最適化結果からペアワイズの優劣関係を可視化したい
↓
トライアル間の「どちらがどの程度好ましいか」を定量化したい
↓
PROMETHEE I / II ランキング
トライアル数が多い(>1万)場合は計算時間に注意。
Entropy 重みと組み合わせることで客観的な重み設定が可能。参考文献
- 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