多准则妥协解排序法(VIKOR)
多准则妥协解排序法(VIKOR)
更多算法请见这里:2024 数学建模国赛 C 题攻略(无废话版)
算法简介
VIKOR(VlseKriterijumska Optimizacija Kompromisno Resenje)评价法又称多准则妥协解排序方法,是一种用于多属性决策的方法,能够同时考虑群体效用最大化和个体遗憾最小化以及融入决策者主观偏好,因此具有更高的排序稳定性和可信度。VIKOR 方法适用于决策者不能或不知道如何准确表达其偏好、评价准则间存在冲突和不可公度(测度单位不同、处理冲突问题的决策者能够接受妥协解方案)的情形。
VIKOR 算法在国赛评价类题目中有较为广泛的应用。作为 TOPSIS 的平替,VIKOR 法具有更高的灵活性。
算法步骤
-
确定理想解和反理想解:根据决策目标,确定理想解和反理想解。对于最大化型指标,计算第 i i i 个指标的理想解和反理想解:
b i ∗ = max j b i j b i − = min j b i j b_i^* = \max_j b_{ij}\\ b_i^- = \min_j b_{ij} bi∗=jmaxbijbi−=jminbij -
测量群体效用与个体遗憾:计算第 j j j 个待评价对象的群体效用值 S j S_j Sj和个体遗憾值 R j R_j Rj。其计算公式如下:
S j = ∑ i = 1 n w i b i ∗ − b i j b i ∗ − b i − R j = max i w i b i ∗ − b i j b i ∗ − b i − S_j=\sum_{i=1}^{n}w_i\frac{b_i^*-b_{ij}}{b_i^*-b_{i}^{-}}\\ R_j=\max_{i}w_i\frac{b_i^*-b_{ij}}{b_i^*-b_{i}^{-}} Sj=i=1∑nwibi∗−bi−bi∗−bijRj=imaxwibi∗−bi−bi∗−bij
其中 b i ∗ b_i^* bi∗ 代表属性 i i i 下的理想解, b i − b_i^- bi−代表属性 i i i 下的反理想解, b i j b_{ij} bij 代表属性 i i i 下的第 j j j 个样本, w i w_i wi是属性 i i i 的指标权重。 -
计算折衷指标值:定义综合度量值 Q j Q_j Qj,用于衡量每个备选方案的综合表现,设置一个系数 v v v 用于控制决策结果偏向于群体效用还是个体遗憾的权重, v v v 越大,结果越偏向于群体效用,反之偏向于个体遗憾。其计算公式如下:
Q j = v S j − S ∗ S − − S ∗ + ( 1 − v ) R j − R ∗ R − − R ∗ , i = 1 , 2 , ⋯ , m Q_j=v\frac{S_j-S^*}{S^--S^*}+(1-v)\frac{R_j-R^*}{R^--R^*},i=1,2,\cdots,m Qj=vS−−S∗Sj−S∗+(1−v)R−−R∗Rj−R∗,i=1,2,⋯,m
其中, S ∗ = max ( S ) , S − = min ( S ) , R ∗ = max ( R ) , R − = min ( R ) S^*=\max(S),S^-=\min(S),R^*=\max(R),R^-=\min(R) S∗=max(S),S−=min(S),R∗=max(R),R−=min(R), v ∈ [ 0 , 1 ] v\in[0,1] v∈[0,1]代表决策机制,根据决策者的个人偏好而设置。 -
对群体效用值 S j S_j Sj、个体遗憾值 R j R_j Rj、折衷值 Q j Q_j Qj进行排序(逆序,值越小越排在前面),得到三个排序的列表 S , R , Q S,R,Q S,R,Q。
-
定义以下两个条件:
记 Q Q Q中的排名第1和第2的值对应的评价对象为 A ( 1 ) A^{(1)} A(1)和 A ( 2 ) A^{(2)} A(2), Q ( A ( 1 ) ) Q(A^{(1)}) Q(A(1))和 Q ( A ( 2 ) ) Q(A^{(2)}) Q(A(2))分别为这两个评价对象对应的折衷值。
条件1:可接受优势:
Q ( A ( 2 ) ) − Q ( A ( 1 ) ) ≥ 1 / ( n − 1 ) Q(A^{(2)}) - Q(A^{(1)}) \geq 1/(n-1) Q(A(2))−Q(A(1))≥1/(n−1)
条件2:可接受的稳定性:
S ( A ( 1 ) ) S(A^{(1)}) S(A(1))在 S S S中是最小的或 R ( A ( 1 ) ) R(A^{(1)}) R(A(1))在 R R R中是最小的
-
最后根据以上两条件来确定最终的结果:
- 如果同时满足条件1和条件2,那么 A ( 1 ) A^{(1)} A(1)为最终的折衷解;
- 如果条件1满足,但条件2无法满足,则折衷解为 A ( 1 ) A^{(1)} A(1)和 A ( 2 ) A^{(2)} A(2);
- 如果条件2满足,条件1无法满足,那么 A ( 1 ) , A ( 2 ) , ⋯ , A ( r ) A^{(1)}, A^{(2)},\cdots,A^{(r)} A(1),A(2),⋯,A(r)均为折衷解,其中 r r r的值为满足 Q ( A ( r ) ) − Q ( A ( 1 ) ) < 1 / ( n − 1 ) Q(A^{(r)}) - Q(A^{(1)}) < 1/(n-1) Q(A(r))−Q(A(1))<1/(n−1)的最大值。
算法优点
- VIKOR 方法相比 TOPSIS 方法多了一个决策机制系数,它可以使决策者做出更激进或更保守的决策(调整群体效用与个体遗憾的权重)。
- VIKOR 方法的独特优势在于可以得到带有优先级的折衷方案,这使得通过 VIKOR 排序后的最佳方案可能不止一个。