VIKOR
概要
VIKOR 法は、1998 年に Serafim Opricovic によって提案され、Opricovic & Tzeng (2004) の比較研究で広く知られるようになった多基準意思決定(MCDM: Multi-Criteria Decision Making)手法です。 セルビア語で「複数基準最適化と妥協解」を意味する名称であり、複数の評価基準(目的関数)が競合する問題で、理想解に最も近い妥協解(compromise solution)を選択します。
Tunny Dashboard では、各トライアルについて次の情報が得られます:
| 出力 | 説明 |
|---|---|
| 効用指標 S | 理想からの全体的なギャップ(小さいほど良い) |
| 後悔指標 R | 最悪の目的関数でのギャップ(小さいほど良い) |
| 妥協指標 Q | S と R を統合した指標(小さいほど良い妥協解) |
| 表示スコア | 1 − Q。高いほど良い(UI では見やすさのためこちらを表示) |
| ランキング | Q の小さい順(妥協解に近い順)に並べたトライアルの順位 |
| 最適値・最劣値 | 各目的関数の、有効トライアル中の最良値と最悪値 |
| 妥協解集合 | 受容条件(C1/C2)を満たす妥協解の集合 |
基本思想
VIKOR は以下の2つの距離測度を用いて妥協解を求めます。
- S:重み付きマンハッタン距離(L1 ノルム)。全体的な効用性を評価します
- R:重み付きチェビシェフ距離(L∞ ノルム)。最悪の基準での後悔を評価します
そして、パラメータ (0〜1)でこれらを線形結合し、妥協指標 を算出します。
アルゴリズム
入力
| 変数 | 説明 |
|---|---|
| 試行 の目的 の値 | |
| 目的 の重み(正規化済み、 ) | |
| 戦略的重み(デフォルト 0.5) |
重みの正規化: 合計が 1 でない重みを設定した場合、合計が正の有限値であれば合計で割って正規化します。合計が 0 以下や非有限(NaN 等)の場合は一様な重みが使われます。
Step 1: 最適値・最劣値の決定
各目的 について、全試行中のベスト(最適値)とワースト(最劣値)を求めます。
- 最小化目的: ,
- 最大化目的: ,
Step 2: S 値と R 値の計算
各試行 について:
- 効用指標 (Utility measure):全目的の重み付きギャップの総和です。小さいほど理想に近くなります。
- 最大後悔 (Regret measure):全目的中で最大のギャップです。小さいほど「最悪の基準」でも優れています。
ゼロ除算ガード: の場合、その目的の寄与は 0 とします(全試行が同一値なら差がないため)。
Step 3: S*、S-、R*、R- の計算
Step 4: Q 値の計算
各試行 について:
パラメータ の意味:
| の値 | 重み付け | 意味 |
|---|---|---|
| 重視 | 全体的な効用性を優先(max-consensus) | |
| 均等 | 効用と後悔のバランス | |
| 重視 | 個別の最悪ケースを優先(min-regret) |
ゼロ除算ガード: の場合、第1項は 0 とします。 の場合、第2項は 0 とします。
Step 5: Q 値によるランキング
の昇順(小さい順)に試行を並べます。 Q 値が小さいほど妥協解に近く、良い解です。
Step 6: 妥協解の受容条件(C1/C2)
値最小の解 が単独の妥協解として採用可能かを、Opricovic & Tzeng (2004) の 2 条件で判定します。
C1(受容可能な優位性 / Acceptable advantage):
ここで は有効(全目的が有限値の)試行数です。 1 位と 2 位の Q の差が十分に大きいことを確認します。
C2(意思決定の安定性 / Acceptable stability in decision making): が または のランキングでも1位(同率を含む)であること。
妥協解集合の決定:
- C1・C2 とも成立 → が唯一の妥協解
- C2 のみ不成立 → と が妥協解
- C1 不成立 → を満たす すべてが妥協解
エッジケース: の場合は唯一の有効試行が妥協解、 の場合は空集合です。
Tunny Dashboard では、妥協解集合は MCDM Scatter Chart 2D / 3D ウィジェットで ★ マーク付きで表示されます(クリック詳細モーダルにも表示)。
TOPSIS との比較
| 項目 | TOPSIS | VIKOR |
|---|---|---|
| 距離測度 | ユークリッド距離(L2) | マンハッタン(L1)+ チェビシェフ(L∞) |
| 理想解へのアプローチ | 正・負の理想解との距離比 | 重み付きギャップの線形結合 |
| ランキング方向 | 降順(スコア高いほど良い) | 昇順(Q 小さいほど良い) |
| 戦略パラメータ | なし | (効用 vs 後悔) |
| ゼロ除算処理 | スコア = 0.5 | 寄与 = 0 |
| 適用場面 | 全体的な類似性を重視 | 妥協点・バランスを重視 |
数値例
問題設定
3試行 × 2目的、両方最小化、重み 、
| 試行 | 目的1 | 目的2 |
|---|---|---|
| 0 | 1 | 2 |
| 1 | 3 | 1 |
| 2 | 2 | 2 |
Step 1: 最適値・最劣値
目的1: , , range = 2 目的2: , , range = 1
Step 2: S と R の計算
| 試行 | contrib1 | contrib2 | S | R |
|---|---|---|---|---|
| 0 | 0.5 | 0.5 | ||
| 1 | 0.5 | 0.5 | ||
| 2 | 0.75 | 0.5 |
Step 3: S*, S-, R*, R-
, , , (同順)
Step 4: Q 値
なので term2 = 0:
Step 5: ランキング
となり、試行 0 と 1 が同率 1 位、試行 2 が最下位です。
計算量
O(m × n + m log m) です。 50,000 トライアル × 4 目的関数で 100ms 未満です。
使用場面の目安
特定の目的の最悪ケースを抑えたい(max-regret)? → v < 0.5 の VIKOR
目的関数全体の合意度を最大化したい? → v > 0.5 の VIKOR
パラメータ不要で直感的な [0,1] スコアが欲しい? → TOPSIS参考文献
- Opricovic, S., & Tzeng, G.-H. (2004). Compromise solution by MCDM methods: A comparative analysis of VIKOR and TOPSIS. European Journal of Operational Research, 156(2), 445–455. https://doi.org/10.1016/S0377-2217(03)00020-1
- Opricovic, S. (1998). Multicriteria Optimization of Civil Engineering Systems. Faculty of Civil Engineering, Belgrade.